原松梅
(哈爾濱工業大學 機電學院,黑龍江 哈爾濱 150001 )
“雙一流”建設是繼“211” “985”工程后,我國向高等教育強國邁進的戰略決策,旨在建設一批世界一流大學和一流學科(簡稱“雙一流”),而培養創新人才是建設“雙一流”的重要使命[1]。哈爾濱工業大學是一所以理工為主、首批進入“211”“985”工程和“雙一流”建設的國家重點大學之一,承擔著為國家培養創新人才的重任,而建設優質的雙語課程是提高學生國際視野、創新精神和綜合素質的重要手段之一,是學校向“雙一流”邁進的必然選擇。
科學技術的迅猛發展促進了我國科技人員與國外企業的交流與合作,近年來越來越多的科技人員去國外學習先進的科學理論和技術,同時也有更多的IT企業迫切需要既懂外語又有計算機程序設計能力的復合型人才,這對高校程序設計類課程的設置提出更高的要求。C++程序設計課程(以下簡稱C++)采用雙語教學模式的優勢有以下幾點。
1)有利于提高學生的程序設計思維能力。
同很多計算機編程語言一樣,C++程序設計語言是用英文開發的,其中的關鍵字、保留字、變量名、函數名本身就是英文詞組,很多與漢語的含義相近,如main、include、return等;而且C++程序開發和調試的工具軟件是英文說明,程序調試過程中的警告、錯誤信息以及結果也是英文描述。因此,講解C++語法時不需要進行從英文到漢語的翻譯,只需對其英文本意進行直譯[2],學生更直接地接觸英文本意,可以更好地領會程序的開發及調試步驟,更熟練地掌握程序的糾錯方法,為運用C++語言進行程序開發、后繼課程的學習和今后從事IT領域的工作奠定良好的基礎。
2)有利于提高學生的英語交際能力。
課程教學不僅能培養學生具備面向對象程序設計的基本思想和基本技能,掌握基本方法還能使學生通過閱讀英文資料、雙語教材,掌握更多的計算機專業術語和詞匯,提高英文閱讀及理解能力、專業英語應用水平和英語交際能力,促進學生開闊國際視野,更好地適應未來國內外就業市場的需要。
建設一門優秀的課程像打仗一樣,只有了解課程的特點并掌握學生的學情,才能更新教學理念、制訂出合理的教學目標,有的放矢、因材施教,這也是取得良好教學效果的重要保證。
C++程序設計語言的數據類型豐富且抽象繁雜、語法規則多、程序設計自由度大,大量的語法規則、結構化程序設計、面向對象程序設計等諸多內容,就是用中文講授,都會令學生感到枯燥、難懂,更何況采用雙語教學。
有的院系原本開設C語言程序設計和C++與面向對象程序設計兩門課程,目前根據培養方案的調整,已經將兩門課程合二為一,因此教學學時大大減少。
作為大一學生的第一門程序設計課程,C++采用雙語教學模式對學生和教師來說更是一個嚴峻的挑戰。據了解,目前國內的高中教學大綱對計算機教學的要求逐年提高,但由于高考應試的需求和各省市、各地區教學條件和教學水平的差異,大一學生在入學時的認知能力、英語水平及計算機知識有很大差異。
首先,大多數學生缺少程序設計的概念(少數學生在高中時接觸過諸如VB這類課程),加上C++程序設計語言的數據類型抽象繁雜、語法規則多、面向對象程序設計思想不易理解,尤其是雙語教材、全英文教學課件,容易使學生對課程的學習和對知識的理解不知所措、望而卻步。
其次,許多大一學生還習慣于高中時的應試教育模式,學習上過于依賴,缺乏刻苦鉆研和自主學習的精神,對課程學習中遇到的困難心理準備不足,一旦遇到困難,往往因懼怕而厭學、逃課甚至放棄。
最后,大多數學生對計算機語言課程的學習期望值較高,但學習時又會感到枯燥難懂,進而對課程的學習,尤其是對后續課程的學習、對專業能力的提高以及對就業有什么幫助,心存疑惑。
對任課教師而言,應該了解學生的特點:①學生數理基礎不同,尤其是數字媒體類專業,文、理科學生各占50%,這對計算機類課程雙語學習有直接影響;②學生的英語程度不一,統計數據表明來自城市的學生英語水平往往優于來自鄉鎮的學生;③手機的普及應用導致課堂上出現了眾多的“低頭族”,很多學生沉溺于玩手機,忽視知識的講授;④教學內容繁多,學時不斷減少,從原來的56學時(理論48學時+實驗12學時)減到48學時(理論36學生+實驗12學時);⑤雙語教學增加任課教師備課的時間和難度,僅制作滿足教學需要的英文教學課件,就需要花費大量時間。
通過對課程特點及學生學情的分析,要想提高C++程序設計雙語教學的時效性,最重要的是激發學生的學習動機[3]。要實現這一目標,必須擯棄“以教師為中心”的傳統教學模式,建構一種既能發揮教師主導作用、又能充分體現學生主體作用的新型教學模式,在教學的全過程中突出“以學生為本”的教學思想,以增強學生的學習信心、提高學生的學習興趣、掌握學習方法為教學策略。
通過課程的教學,培養學生程序設計、程序實現及程序調試能力,培養學生面向對象程序設計的思維,掌握面向對象程序設計的基本思想和基本方法,最終達到熟練運用C++語言進行面向對象程序設計、解決實際應用問題的目的,為后繼課程的學習和將來解決工程問題、科學技術問題奠定良好的基礎。
通過典型算法的學習,激發學生應用計算機編程的興趣和主動學習的積極性,培養學生應用計算機程序設計語言描述并解決現實世界中一般問題的能力。通過小組合作式的教學方式,培養學生的合作意識和團隊精神。通過查找、閱讀英文資料,培養學生的英文閱讀及理解能力,提高其專業英語應用水平和英語交際能力。通過填寫課程總結、評價表等活動,培養學生的自主學習能力、自我評價和對客觀事物評價的能力。
為解決教學時數少、教學內容多這一矛盾,要勇于進行課程改革和創新,主要是做好課程內容的取舍、優選教材、案例驅動、合作式學習。
C++教學最簡單也是最直接的組織方法是以語法為主線,即先講面向過程程序設計,再講面向對象程序設計。這種組織教學的結果是使學生學到較繁瑣的語法規則,而對程序設計思想沒有整體的把握。本課程教學中擯棄以語法講授為主的傳統方法,整個教學過程突出程序設計的方法和技術(算法),注重對學生邏輯思維的訓練和程序設計能力的提高,立足于讓學生掌握實實在在的應用技能。
針對課程內容抽象、學時少的特點,教學中應該選取一些直觀、形象、有趣的經典案例。例如,在講解循環結構時,引入“口令檢查”的案例,程序可以讓用戶多次輸入口令,直到限制的次數為止;引入“圣誕樹”的案例,程序經過多重循環,使“圣誕樹”動起來;在函數一章,通過“百錢買百雞”的案例講解“窮舉法”,通過“漢諾塔”的案例講解函數的遞歸調用方法;在數組一章,引用洗撲克牌、冒泡排序等案例。這些有趣的案例,可使學生帶著濃厚的學習興趣,并跟著教師的思路積極思考,加深對問題的理解,有效提高綜合思維能力。
教材的選取應該根據課程的教學目標、教學內容和學生特點來考慮。本課程選取由電子工業出版社出版、愛爾蘭學者Paul Kelly和哈爾濱工業大學蘇小紅教授合著的《雙語版 C++程序設計(第2版)》[4]作為主要教材,選取由清華大學出版社出版、清華大學鄭莉教授主編的《C++語言程序設計(第4版)》[5]和譚浩強教授主編的《C++程序設計(第2版)》作為參考教材,使學生在學習理論知識時以雙語教材為主、以中文教材為輔;在上機實驗及程序的調試中,以中文教材為主。這種中、英文教材結合的學習方式,能夠使學生循序漸進地掌握更多的計算機專業英文詞匯,而且對雙語教材愛不釋手,明顯提高英語閱讀和理解水平。
現代教育理論提倡以學生為中心,即強調學生“學”的主動性,而教師的主導作用應體現在組織、指導、幫助和促進學生的學習上。重點高校的學生往往具有自主學習的能力,因此在少學時的情況下,教師在課堂上更應該突出課程的重點、難點,而將很多課堂講不到的內容留給學生自主學習,如可將教材中Chapter Three Keyboard Input and Screen Output(鍵盤輸入和屏幕輸出) 、Chapter Six String(字符串)和Chapter Fourteen Files and Streams[4](文件和流)3章的內容略講,將主要內容留給學生,讓他們通過實驗課和課后習題加深理解,并以學習小組的形式進行交流和討論,課堂上再以小組的形式匯報,教師對各小組的匯報予以評分、對共性問題予以答疑解惑。這樣,既能夠調動學生自主學習的積極性,又可以培養學生的合作意識和團隊精神,最大限度地發揮教師的主導作用和學生的主體作用。
由于面向對象程序設計思想勾畫程序的整體框架,反映客觀事物之間的內在聯系,增加程序可利用性,因此教學中可直接講授面向對象程序設計方法,為學生后續課程(如網絡媒體程序設計課程等)的學習打下基礎。
為客觀地了解教學效果,在授課過程中和課程結束后,通過學生的自我評價和對課程的評價發現教學中存在的問題。筆者設計了C++程序設計雙語教學問卷調查表,分為學生自我評價和對課程評價兩部分。學生自我評價包括個人學習態度、學習方法、學習收獲、學習不足及改進措施;課程評價包括課程的學時數及教材選用是否合理,雙語教學的合理程度如何,教師的教學態度、教學方法、教學水平、教學不足、改進建議等。教師根據學生無記名教學評價的結果,及時進行總結和反思,找出存在的問題。此舉表明教學不再是教師一個人的孤軍作戰,而是師生全員參戰,起到教學相長的作用,還可以加深師生感情。
C++具有實踐性強的特點,很多內容不通過上機實驗是難以理解和掌握的。為提高學生的綜合應用能力和創新能力,激發學生的學習主動性和創造性,本課程除了安排驗證性的實驗外,還應設計一些綜合性的實驗題目;在課程結束時布置大作業,其選題既接近實際需要,又能讓學生感興趣。大作業分為基本題和綜合題:基本題按教學順序設計,以加深學生對所學知識的理解;綜合性題目具有一定的難度,與實際生活或工作相關,是對課程的總結和鞏固。大作業是以小組為單位完成,既培養學生分析、解決、研究和探索問題的能力,又培養學生的團隊合作精神。
筆者在C++程序設計雙語教學過程中,無論是在教學理念的確立、教學目標的制訂,還是在教學策略的選取、教學方法的改進以及對教材的理解和英文課件的制作方面,都花費了大量的時間和心血。令人欣慰的是在學習第一門程序設計課程時,很多學生從“不敢學”“我要學”轉變為“我想學”“沒學夠”,而且還有學生在課程結束后仍然帶著問題與教師研討,主動報名參加中國大學生計算機設計大賽并取得優異的成績;每年還有學生考取國內外高校計算機類專業的研究生。時代的發展勢不可擋,在培養創新型人才方面的探索永無止境,如采用全英文授課方式、采用MOOC和SPOC教學方式等都將需要更多的投入和付出。要實現“雙一流”的宏偉目標、培養信息社會需要的創新型人才,任重而道遠,教師作為培養高級專門人才的生力軍,應始終以飽滿的熱情、積極的人生態度和不懈的追求與時代共舞。