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