馬春華 趙衛(wèi)績 劉井蓮 孫曉霞
[摘要]緊扣C++程序設計課程的特點,以市場需求為導向,探討C++課程的教學準備及教學實踐,通過開展基于項目的學習,在教學過程中培養(yǎng)學生的編程能力。
[關鍵詞]C++ 教學實踐 教學準備
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0420127-01
隨著高等教育的快速發(fā)展,每年的計算機專業(yè)畢業(yè)生成倍的增長。就業(yè)壓力逐年遞增,怎樣提高學生的競爭能力成為我們思考的問題。隨著軟件開發(fā)技術的發(fā)展,越來越多的企業(yè)都選擇使用C++ 及其相關技術來構建應用系統(tǒng)。目前,無論國外還是國內,C++技術人才短缺,薪金待遇極為豐厚。程序設計是計算機專業(yè)的一項基本技能[1],我們國內許多高等院校都開設了C++課程,但是學生的程序設計能力并不樂觀。很多畢業(yè)生對于畢業(yè)設計的開發(fā)尚有困難,更何況勝任一份程序員的工作。學生之所以不會寫程序,除了與學生自身努力程度有關之外,更主要的是我們在程序設計教學中存在著一定的問題。傳統(tǒng)的單向灌輸式教學模式已不能適應教學的需要。因此針對C++程序設計的特點,應以市場需求為導向,堅持課程特點與學生特點相結合,加強實踐教學,提高程序設計的能力。在教學中我們應注重激發(fā)學生學習興趣,提高學生在真實情景中解決問題的能力與創(chuàng)新能力,提升學生的綜合能力。我們需要研究、探討新的教學模式、教學方法。
一、C++教學準備
根據(jù)C++ 程序設計課程特點及學生特點,把握好重點、難點和課時分配,制定符合實際的教學內容、教學大綱、實驗大綱以及達到的預期目標;選擇符合學生特點的實驗指導書,即具體的實驗內容;采用有效的教學方法和教學手段;制定科學的考核方式和考核標準,都是影響教學效果的主要因素。
(一)培養(yǎng)理念。半年需要近萬元學費的培訓公司之所以能生存下來,主要因為培訓公司教給了學員軟件開發(fā)技能。因此我們非常有必要虛心吸收企業(yè)的培訓理念和培訓方案,我們也要從學生入學的那天起,就要為學生走出學校大門,順利跨入IT職場的那一刻做準備,倡導“理論夠用,實戰(zhàn)為重”和“以出為主,注重實效”的培養(yǎng)理念。
(二)教學原則。針對目前程序開發(fā)人員需求量大的情況,高校決不能扮演編程速成班的角色,好的程序開發(fā)人員是要有一個完整的學習周期,循序漸進、由淺入深。因此,我們應踏踏實實地按照一個原則來組織教學,那就是精講多練,精講是指老師精講C++中的實用技術和典型實例。多練,是指學生要多練習編程,只有自己動手編程越多,程序才能編的越好。
(三)教學內容。把握好教學內容,是培養(yǎng)學生編程能力的基礎。C是C++的基礎,面向對象程序設計的三大特點:封裝、繼承、多態(tài)是C++課程的主要內容;也要涉及到標準模板庫STL、微軟基礎類庫MFC。尤其是STL,自1998年,ANSI/ISO C++標準正式定案,標準模板庫STL(standard template library)成為了C++標準函數(shù)庫的一個重要組成部分[2],在軟件項目開發(fā)中有著很廣泛的應用。制定符合市場需求的教學大綱與教學內容,是擺在我
們面前的一個急需解決的問題。
二、C++教學實踐
(一)理論教學。理論教學重視基礎知識,強調實用性,知識點實例化。針對學生的理解能力,做好知識點與實例的恰當融合,根據(jù)學生掌握情況,安排合理的實例數(shù)量。在授課中,采用引導式,案例式,使學生熟悉各種C++程序設計算法,為設計模式的引入打下堅實的基礎。在理論教學講解中要緊緊圍繞教學原則,主要做到以下兩方面:
1.突出C++中的實用技術。C++教學內容的選定應C++語言標準為基礎,摒棄傳統(tǒng)的C++教學面向對象內容以語法為主的教學模式,突出C++中的實用技術,包括完善的封裝、派生、多態(tài)和模板,在構造函數(shù)中動態(tài)分配資源、在析構函數(shù)中釋放資源的思想和異常處理等些面向對象的C++程序設計的精髓。
2.注重實例講解。在C++程序設計內容講解中,我們不僅要注重理論知識點的講解思路清晰,更應注重實例的講解,只有實例講解的清晰明了,學生才能真正體會到各個算法的真諦,才能學會編程。因此,在各章節(jié)的實例講解中,應在原來實例基礎上進行擴充,就好比一個簡單的例子,經(jīng)過滾雪球的方式,達到知識不斷積累,內容不斷擴充,功能不斷完善,既銜接了知識點,又增加學生的興趣。
另外,理論教學中,應鼓勵學生及時發(fā)言或討論,從中獲得自己想要的東西。在師生之間的這種交流過程中,老師不僅可以了解學生的學習情況,還可以根據(jù)學生反饋組織教學。
(二)實驗教學。學習程序設計不能紙上談兵,編程能力的培養(yǎng)必須強化動手實踐[1]。教科書上的習題只是為了掌握語言特性,與實際的項目工程有一定距離;在還沒有達到熟練運用各種技術解決問題前,做實際的項目也不是太好,這樣學生是越來越迷糊。比較好的方法是找一些比較經(jīng)典的例子,每個例子集中練習一個或多個知識點。
程序課程實驗環(huán)節(jié)是重中之重。因此我們應重視實驗教學,實驗輔導及實驗總結,引導學生利用課上及課余時間進行大量編程,積累編碼感覺;鼓勵學生多動手編程。
(三)培養(yǎng)編程能力。
1.基礎編程能力培養(yǎng)。重視實驗教學、實驗輔導與實驗總結,注重學生基礎編程能力的培養(yǎng),程序調試能力的培養(yǎng);采用課內實驗,課余上機輔導相結合的方式,完成基本知識點的實驗。
2.調試程序能力培養(yǎng)。調試程序的過程就是發(fā)現(xiàn)錯誤并改正錯誤的過程,調試程序是程序開發(fā)過程中一個必不可少的階段。因此,程序調試能力的培養(yǎng)同樣是重中之重,程序調試能力的培養(yǎng)不是去幫學生調通程序,而是教會學生怎樣去調程序。主要是指導學生怎樣跟蹤程序的運行,怎樣設置斷點,怎樣單步運行,怎樣使用Debug工具。
3.系統(tǒng)設計能力培養(yǎng)。在程序設計教學中,開展基于項目的協(xié)作學習[3],能夠改變以往教學中大量的內容講解、缺乏實際操作經(jīng)驗的局面,使課堂所學得到靈活運用。學生在完成項目的過程中,體驗了真實問題解決的過程,鍛煉了協(xié)作學習能力的同時,也使個人能力得以凸現(xiàn)。出色項目成果的完成,體驗成功的喜悅,也增加了知識探索的動力。因此,吸收企業(yè)的“項目驅動式”培訓模式,把自己看成是一位“教練”,把學生從書海中解脫出來,把“項目訓練”當成重中之重。
通過開展基于項目的協(xié)作學習活動,給學生創(chuàng)設了真實問題情景和協(xié)作學習的環(huán)境,對程序設計類課程具有一定的借鑒意義,讓學生在校期間開始積累開發(fā)經(jīng)驗,從而可以勝任企業(yè)需求。
另外,要注重C++ 程序設計思想的培養(yǎng),使學生能夠在面臨實際問題時,借鑒先進合理的設計思路,充分理解企業(yè)需求,從大局的角度來審視項目工程。
三、總結
新的教學模式、教學方法有益于培養(yǎng)學生的編程能力,但也要同時采取與培養(yǎng)目標相吻合的考核方式。傳統(tǒng)的閉卷考試方式已達不到對學生的學習情況進行有效、合理的考核,因此我們采取了項目大作業(yè)和上機考試相結合的考核方式,前者著重考查學生軟件開發(fā)的大局觀,占期末成績的40%;后者著重考查學生對具體算法的編程實現(xiàn)能力,占期末成績的60%。每學期的教學活動結束后,都要總結教學內容、教學方法和教學手段及學生實踐能力培養(yǎng)情況,尋找出與市場需求之間的差距,逐步修改、完善,以達到理想的教學效果。
基金項目:黑龍江省新世紀教育教學改革工程項目(4859)
參考文獻:
[1]王育堅,Visual C++面向對象編程教程[M].北京:清華大學出版社,2007,10.
[2]葉至軍,C++ STL開發(fā)技術導引[M].北京:人民郵電出版社,2007.7.
[3]向模軍、劉松青,Java教學的探討和實踐[J].計算機與信息技術,2008,(03):104-105.
作者簡介:
馬春華,女,漢族,黑龍江蘭西人,副教授,主要研究方向:計算機控制理論及控制工程。