邰非
摘 要:隨著當(dāng)前國(guó)家信息化進(jìn)程的不斷推進(jìn)深化,社會(huì)對(duì)跨專業(yè)從事計(jì)算機(jī)編程人才的需求也越來(lái)越多,C++作為基礎(chǔ)語(yǔ)言,在很多領(lǐng)域都有廣泛的應(yīng)用,這也給高校轉(zhuǎn)型改革提供了指導(dǎo)方向。就工科院校非計(jì)算機(jī)系專業(yè)的學(xué)生而言,如何能快速全面掌握C++語(yǔ)言對(duì)滿足社會(huì)需求起到很大的作用。文章針對(duì)非計(jì)算機(jī)專業(yè)C++課程課時(shí)少、任務(wù)重的特點(diǎn),從培養(yǎng)學(xué)生動(dòng)手能力與實(shí)踐能力角度出發(fā),提出一種互動(dòng)式教學(xué)模式,最大程度上激發(fā)學(xué)生學(xué)習(xí)語(yǔ)言的熱情,從而為高校、社會(huì)培養(yǎng)更多的合格編程人才。
關(guān)鍵詞:C++;互動(dòng)式教學(xué)模式;建立
中圖分類號(hào):G642 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2096-000X(2017)08-0127-02
Abstract: With the continuous deepening of informatization process, the society needs more and more talents to engage in computer programming. As a basic language, C++ has a wide range of applications in many fields, which also provides a direction for the transformation of universities. As for the non-computer majors in engineering colleges, how to master the C++ language quickly and effectively plays an important role in meeting the needs of society. According to the characteristics of C++ course for non-computer majors, such as less classes and heavy tasks, starting from the cultivation of students' manipulative and practical ability, this paper puts forward a kind of interactive teaching mode. This mode can inspire students' language learning enthusiasm, so as to cultivate more qualified programming talents for universities and society.
Keywords: C++; interactive teaching mode; establish
隨著社會(huì)信息化進(jìn)程的快速推進(jìn),對(duì)跨專業(yè)領(lǐng)域的計(jì)算機(jī)人才需求日益增大,尤其是與專業(yè)相關(guān)的工科類復(fù)合人才。C++作為計(jì)算機(jī)專業(yè)的必修課,也成為工科非計(jì)算機(jī)專業(yè)重要選修課程。C++作為面向?qū)ο蟮氖走x編程語(yǔ)言,其實(shí)用性、強(qiáng)大性在整個(gè)軟件領(lǐng)域都是認(rèn)可的。但由于其難度及復(fù)雜性,高校中的教學(xué)效果并不理想。這與以往的C++教學(xué)模式及現(xiàn)行的教育體制不無(wú)關(guān)系。教育體制的改變是個(gè)長(zhǎng)期的工程,但如何在這種漫長(zhǎng)的改變中通過(guò)對(duì)教學(xué)模式的革新來(lái)提高教學(xué)效果則是一種捷徑,這種模式將會(huì)幫助高校為社會(huì)提供合格的編程人才。
一、C++教學(xué)存在的問(wèn)題
(一)C++教學(xué)目標(biāo)不明
目前高校中對(duì)C++語(yǔ)言的教學(xué)安排,主要涉及語(yǔ)法概念及相關(guān)應(yīng)用,另外非計(jì)算機(jī)專業(yè)設(shè)置的C++課時(shí)相對(duì)較少,在內(nèi)容上沒(méi)有考慮面向?qū)ο缶幊痰膹?fù)雜性和重要性,往往讓人感覺(jué)開設(shè)這門課只是為了應(yīng)付信息化建設(shè)的要求。其根本原因是高校對(duì)C++課程定位不準(zhǔn)確造成的。因此學(xué)生對(duì)學(xué)習(xí)C++語(yǔ)言的積極性不高。即便是學(xué)習(xí),仍然像學(xué)習(xí)其它學(xué)科一樣,對(duì)概念進(jìn)行死記硬背。
(二)C++實(shí)踐教學(xué)不足
C++語(yǔ)言屬于實(shí)踐性非常強(qiáng)的一門課,原則上理論課與上機(jī)課要以1:1的時(shí)間進(jìn)行配置,以此培養(yǎng)學(xué)生實(shí)際編程能力,課堂上的概念講解過(guò)多過(guò)細(xì),容易造成學(xué)生能動(dòng)性不足。當(dāng)然作為高校教師在教學(xué)之余,除了提高自身的理論知識(shí),也要積極去與企業(yè)合作,一方面可及時(shí)掌握軟件市場(chǎng)新動(dòng)向,另一方面又可以將企業(yè)遇到的難題轉(zhuǎn)換成課題,帶領(lǐng)學(xué)生去攻關(guān)。
二、C++教學(xué)內(nèi)容的選擇原則
(一)選擇合適的教材
國(guó)內(nèi)教材偏重于基礎(chǔ)語(yǔ)法、語(yǔ)義,所提供的習(xí)題也多是這方面的。學(xué)生在學(xué)完后,不知道這種語(yǔ)言究竟能做什么,國(guó)外教材在這方面做的比國(guó)內(nèi)好,我們可以選擇比較經(jīng)典的國(guó)外教材,對(duì)于基礎(chǔ)好的工科學(xué)生,甚至可以選擇國(guó)外原版教材。這樣會(huì)有一舉兩得的效果。另外教材的更新也要與時(shí)俱進(jìn),例如現(xiàn)在國(guó)內(nèi)的C++教材基本上是按照C++98標(biāo)準(zhǔn)來(lái)編寫的,極少數(shù)引入了還沒(méi)有標(biāo)準(zhǔn)化的C++0x標(biāo)準(zhǔn)。至于2013年IOS就正式推出C++11標(biāo)準(zhǔn),則國(guó)內(nèi)沒(méi)有任何教材內(nèi)容能跟上。該標(biāo)準(zhǔn)在語(yǔ)言層面上做了很大的改動(dòng),這些改動(dòng)也是順應(yīng)時(shí)代的變化。
(二)選擇合適的教學(xué)內(nèi)容
在選擇合適的教材后,以非計(jì)算機(jī)專業(yè)工科C++課程教學(xué)要求為基礎(chǔ),結(jié)合不同的專業(yè)培養(yǎng)目標(biāo)設(shè)置課程的重點(diǎn),同時(shí)把難點(diǎn)抽取出來(lái)形成小專題,形成著力于提升基礎(chǔ)性、應(yīng)用性的教學(xué)大綱。在教學(xué)的過(guò)程中結(jié)合社會(huì)需求不斷地進(jìn)行內(nèi)容調(diào)整。
除了C++語(yǔ)言層面的教學(xué)外,也要引入編譯環(huán)境的學(xué)習(xí)與使用,比如微軟的VS IDE集成編譯環(huán)境的使用,底層采用GCC的輕量級(jí)編譯環(huán)境MinGW或集成了MinGW的EditPlus等等。
三、基于實(shí)踐的互動(dòng)式教學(xué)模式構(gòu)建
(一)創(chuàng)建實(shí)踐性強(qiáng)的小工程題庫(kù)
除了課本上概念性強(qiáng)的題目外,有必要在長(zhǎng)期的教學(xué)與實(shí)踐過(guò)程中創(chuàng)建小工程題庫(kù),這對(duì)教授C++語(yǔ)言的教師也提出了要求,教師在空余時(shí)間可以去軟件公司承擔(dān)實(shí)際項(xiàng)目,在實(shí)際項(xiàng)目中抽取重用性較高且與工程相關(guān)的小工程項(xiàng)目,將其轉(zhuǎn)化成操作性強(qiáng)的小課題,這些小課題與實(shí)踐緊密結(jié)合,容易引起學(xué)生的學(xué)習(xí)熱情。筆者曾在一家金融軟件公司承擔(dān)項(xiàng)目,在開發(fā)過(guò)程中,將金融POS機(jī)具打印中的格式化輸出所遇到的問(wèn)題抽象,形成小課題并給學(xué)生做,出乎意料,學(xué)生用非常好的算法完美解決。后又從曾經(jīng)承擔(dān)過(guò)的流媒體項(xiàng)目中抽取幾十個(gè)小工程形成完整的涵蓋整個(gè)C++教學(xué)內(nèi)容的題庫(kù)供教學(xué)使用。
(二)互動(dòng)教學(xué)模式的構(gòu)建與有效實(shí)施
基于工科院校C++課時(shí)少及上機(jī)時(shí)間不足的特點(diǎn),結(jié)合前面準(zhǔn)備的具有較強(qiáng)實(shí)踐性小工程的基礎(chǔ)上,對(duì)書中的例題做一些改進(jìn),即純粹的理論概念類型題目轉(zhuǎn)化為與現(xiàn)實(shí)相結(jié)合的題目??紤]到激發(fā)學(xué)生的動(dòng)手熱情和培養(yǎng)團(tuán)隊(duì)協(xié)作精神,可將班級(jí)分成若干小組,在概念理論講解完后,以小組的形式上講臺(tái)把前面改進(jìn)的例題當(dāng)場(chǎng)編輯、編譯、調(diào)試、運(yùn)行。小組成員必須在規(guī)定的時(shí)間內(nèi)完成程序的運(yùn)行。在這期間可以查閱資料,相互討論,甚至可以求助于其它小組成員。另外這些例題還做了特殊處理,里面設(shè)置了各種語(yǔ)法錯(cuò)誤、算法錯(cuò)誤,甚至還包括不合理的架構(gòu)用法。當(dāng)學(xué)生順利完成后,根據(jù)情況可對(duì)例題提出新的需求,如果學(xué)生在規(guī)定的時(shí)間內(nèi)沒(méi)有完成,則讓另一組同學(xué)上臺(tái)繼續(xù)。在編輯代碼的過(guò)程中要求學(xué)生嚴(yán)格按照編碼規(guī)范來(lái)書寫程序,以培養(yǎng)出學(xué)生良好的書寫程序習(xí)慣。教學(xué)過(guò)程提倡人人動(dòng)手、人人參與,學(xué)生在訓(xùn)練的過(guò)程中從被動(dòng)逐漸轉(zhuǎn)變?yōu)橹鲃?dòng),學(xué)習(xí)效率大大提高。
(三)課外互動(dòng)平臺(tái)資源的利用
作為課外的補(bǔ)充交流,建立QQ交流群,及時(shí)回答學(xué)生上課沒(méi)聽懂或看書中遇到的問(wèn)題,就相關(guān)問(wèn)題展開討論。也可以將一些與工程相關(guān)的疑難有待解決的問(wèn)題在群內(nèi)公布。始終用實(shí)踐去引導(dǎo)學(xué)生的興趣。另外還可以邀請(qǐng)一些已工作并從事軟件開發(fā)的學(xué)長(zhǎng),在群內(nèi)講述自己的工作經(jīng)歷。在這種互動(dòng)交流中提高學(xué)生學(xué)習(xí)C++語(yǔ)言的興趣,形成一個(gè)良好學(xué)習(xí)氛圍。
(四)社會(huì)實(shí)踐互動(dòng)資源的利用
除了校內(nèi)活動(dòng)外,還可以積極鼓勵(lì)學(xué)生參加社會(huì)團(tuán)體組織,比如:中國(guó)計(jì)算機(jī)學(xué)會(huì)。學(xué)生可以選擇其中感興趣的方向,了解所需要的知識(shí),在教師的幫助下制定一套行之有效的學(xué)習(xí)計(jì)劃,并持之以恒地執(zhí)行,為將來(lái)的發(fā)展打好基礎(chǔ),有條件的可以參加學(xué)會(huì)舉辦的研討會(huì)。特別優(yōu)秀的學(xué)生,還可以發(fā)表文章。另外還可以組織學(xué)生參加一些省、市地區(qū)級(jí)的計(jì)算機(jī)知識(shí)競(jìng)賽和計(jì)算機(jī)等級(jí)考試,以此提高C++語(yǔ)言學(xué)習(xí)的實(shí)效性。作為實(shí)踐的補(bǔ)充,可以為學(xué)生安排去軟件公司短期實(shí)習(xí),把自己所學(xué)的與真實(shí)的市場(chǎng)項(xiàng)目結(jié)合。
四、結(jié)束語(yǔ)
以基于實(shí)踐的互動(dòng)模式C++教學(xué)方法,經(jīng)過(guò)多屆教學(xué)的實(shí)踐檢驗(yàn),表明能讓學(xué)生快速掌握基礎(chǔ)知識(shí),在實(shí)際動(dòng)手編程能力方面比普通教學(xué)方法效果要好,學(xué)生在學(xué)習(xí)的過(guò)程中對(duì)C++語(yǔ)言的興趣不斷提高,主觀能動(dòng)性增強(qiáng)。因此該方法適用于高校為社會(huì)信息化培養(yǎng)合格的人才。
參考文獻(xiàn)
[1]孫庚.項(xiàng)目教學(xué)法在“C++程序設(shè)計(jì)”課程教學(xué)中的實(shí)踐[J]. 計(jì)算機(jī)教育,2008(2)CHENSONG-QING,SHEN.
[2]那一沙,吳子?xùn)|,杜修平.基于建構(gòu)主義的面向?qū)ο蟪绦蛟O(shè)計(jì)C++教學(xué)[J].現(xiàn)代遠(yuǎn)距離教育,2008(4).
[3]肖明.案例教學(xué)法在“C++語(yǔ)言程序設(shè)計(jì)”教學(xué)中的應(yīng)用[J]. 計(jì)算機(jī)教育,2010(6).
[4]李駿楊,陳漢武.工科專業(yè)C++語(yǔ)言教學(xué)目標(biāo)與方法的探討[J].計(jì)算機(jī)教育,2007(08X).
[5]王金娟,彭浩.設(shè)計(jì)模式之狀態(tài)模式在C++教學(xué)中的運(yùn)用[J]. 計(jì)算機(jī)時(shí)代,2016(10).
[6]吳舜歆,梁寶蘭.Online Judge在C++程序設(shè)計(jì)課程實(shí)踐教學(xué)中的應(yīng)用[J].高教學(xué)刊,2016(9).