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