黃華軍
摘要:c++程序設計是高等院校計算機科學技術專業的一門專業基礎課。對于初學程序設計的大學生,c++存在語法多、規則復雜的問題,使教師教學與學生學習都感覺困難。文章針對c++教學中存在的問題,從教學計劃、教學內容、教學方式和考核4個方面闡述對c++程序設計課程教學進行的改革探索。
關鍵詞:c++教學;教學改革;三步法;主動學習
0、引言
c++具有功能豐富、表達能力強、靈活方便、應用面廣、目標程序效率高、可移植性好的特點,因此很多高校都將其作為計算機專業的一門專業基礎課。該課程對培養學生的編程技能與邏輯思維能力、分析解決問題的能力、自學能力有重要作用。但是,c++存在概念多、規則復雜、使用靈活、不易調試等問題,使得教師教學和學生學習都感到困難,特別是很多高等院校將c++作為計算機專業學生入學后首先接觸的第一門專業基礎課,這種現象尤為明顯,而c++基礎學不好將直接影響后續專業課程的學習。因此如何進行c++程序設計課程教育,進一步提高教學效果與質量,成為了計算機專業課程建設中的一個緊迫任務。
1、教學計劃改革
教學計劃改革前,中南林業科技大學c++程序設計課程安排在大學一年級第2學期開設,其中理論課程安排在第1~16周,每周4學時,共64學時,4學分;實踐課程安排在第2~19周,每周2學時,共36學時,2學分。
筆者通過幾年的教學實踐,發現教學計劃中存在3點問題:
(1)學生沒有編程基礎。中南林業科技大學計算機專業學生在大學一年級第1學期的專業基礎課程只開設了計算機導論這門課程,導致學生缺乏計算機編程基礎的知識。
(2)理論教學跨度過長。C++程序設計理論課時共64學時,需要、16周的教學時間。這使學生在學習過程中遺忘了前面的教學內容,從而影響學生的學習熱情。
(3)實踐教學課時不足。C++是一門實踐要求強的課程,理論教學與實踐教學課時合理安排應是1:1或者1:1.5。而中南林業科技大學的c++程序設計課程的實踐教學課時不足,從而影響學生學習興趣。
基于以上3點問題一中南林業科技大學對c++程序設計課程的教學計劃做了修改,將c++程序設計課程教學內容分為兩個部分。
(1)面向過程教學內容安排在大學一年級第1學期進行,其中,理論課時32學時,每周4學時,共8周,2學分;實踐教學課時32學時,每周4學時,共8周,2學分。
(2)面向對象的教學內容安排在大學一年級第2學期,其中,理論課時32學時,每周4學時,共8周,2學分;實踐教學課時32學時,每周4學時,共8周,2學分。
2、教學改革
2.1 教學內容改革
根據新版教學計劃,對c++程序設計的教學內容進行改革。首先調整教學大綱內容。最初的教學大綱是按照64學時編制的,內容涉及c++面向過程編程和面向對象編程思想。新修改后的教學大綱分為兩部分:第1部分是C++面向過程的程序設計思想;第2部分是c++面向對象的程序設計思想。每部分包括32學時的理論教學和32學時的實踐教學。
在面向過程的教學內容中,重點介紹c++的基本語法、規則和編程思想,詳細介紹數據類型、變量、運算符、表達式、語句、控制語句、數組、函數、函數重載、參數傳遞的關鍵知識點,弱化了指針的知識點。同時對一些知識進行歸類教學,采用“三步法”教學方法對關鍵知識點進行歸納和總結。
在面向對象的教學內容中,重點對c++中類、對象、成員函數、數據成員、構造函數、封裝性、信息隱藏、繼承性和多態性等知識點進行詳細介紹,弱化運算符重載的內容。
通過對教學內容的改革,使學生在具體的教學過程中,不會產生迷惑,從而避免學生在接觸到程序設計時,區分不了面向過程與面向對象的編程思想。面向過程程序設計思想的重點是c++基本語法、規則和編程思路的形成,而面向對象的教學則可以為學生在后續學習目前流行的開發語言Java和c#等面向對象程序設計語言時提供幫助。
2.2 “三步法”的教學方法
“三步法”是筆者通過長期的C++教學過程發現的一個規律?!叭椒ā钡慕虒W方法定義為:在c++語法中,一般存在“定義、聲明和應用”3個步驟,因此,將這3個步驟稱為“三步法”教學。通過“三步法”的學習,能夠使學生減少編程過程中的語法錯誤,提高編程能力。
在面向過程的教學內容中,總結了許多采用“三步法”教學的知識點。如函數的“三步法”教學方法是函數的定義、聲明和調用。對于函數,我們在教學過程中第1步要定義函數,即定義函數的功能;第2步是向編譯器聲明函數的原型;第3步是在需要時進行調用。通過“三步法”教學,學生能夠很快地領會函數的正確使用方法。其他的知識點包括變量的“定義、初始化和應用”、數組的“定義、初始化和應用”等。
在面向對象的教學內容中,也總結了大量的“三步法”教學知識點,其中類與對象是典型的知識點。對于類與對象,總結的是類的定義、對象的定義和對象應用的“三步法”教學方法,旨在告訴學生要正確使用對象方法,第1步必須要定義類數據類型,第2步是利用定義后的類數據類型定義對象,第3步才是對對象的應用。
“三步法”的教學方法是在筆者長期的教學實踐過程中總結出來的教學方法,對于初次接觸計算機編程的學生來說,通過程式化的學習,能快速記住編程的規范,減少語法錯誤,提高初學者的學習興趣與熱情,增強學生的自信心。
2.3 實踐教學的改革
c++程序設計是實踐性很強的一門課,培養學生的編程能力是教學的首要目的。因此,在授課的同時,如何引導學生利用上機實驗來加強實踐也是教學中的一個重要環節。實踐課程的主體是上機實驗課程,但僅在上機實驗課上編程是不夠的,學習效果也會大打折扣。為此,我們對實踐教學進行了改革。endprint
(1)改革實踐課程教學方式。傳統的實踐教學方法是學生上機實驗課,發現問題后由教師答疑,編寫實驗報告,最后由教師批改實驗報告。在這個過程中,我們發現一個問題。由于現在的教材編訂,許多的實驗內容都有標準的答案,這樣容易造成學生在實驗課程中,按照標準答案寫程序,不能使學生的編程思維得到有效的訓練。為此,我們對這一教學方法進行了改進。首先在理論課堂上給出下次實踐課程的實驗內容,要求學生必須先寫好實驗報告;然后在實驗過程中,由鄰桌同學對事先寫好的實驗報告進行調試和批改。這樣做的好處是學生事先對實驗內容進行預習,并設計相應的程序,同時,學生是帶著批判的精神來調試其他同學的程序,激發了學生的學習興趣,提高了實驗課程的學習效率。
(2)以小項目帶動實踐教學,提高學生編程興趣。我們提供許多對學生具有吸引力的小項目,如24點游戲、老虎過河這兩款游戲,不僅玩起來簡單,用c++語言實現起來也簡單,這對剛學習計算機編程的學生來說,既有娛樂性,又簡單易編程,實現后易有成就感,易增加學習興趣。在實現這些小項目的過程中,練習和鞏固了C++語言的基礎知識。另外,我們還設計了與學生的年齡特征及學生生活內容相關的小型系統開發,如課堂點名、簽到系統、學生信息管理系統等。在c++語言的基礎知識學完之后,需要學習面向對象編程,功能模塊增多,難度增加,該類項目與學生的日常生活息息相關,學生對這些項目的各功能模塊的流程也非常熟悉。
(3)采用綜合設計型實驗增加學生團隊合作協調能力。通過布置或由學生結合本人的興趣,從實際應用中選擇有具體應用背景的實驗題目,安排學生分組共同完成。綜合設計型實驗的具體內容如下:
①首先將綜合設計型實驗的題目要求布置給學生,要求學生在選好題目的基礎上,認真研究題目的要求,自行查閱有關資料,寫出系統的需求分析、總體框架設計,確定小組組長和成員,由小組組長進行任務分配工作。
②小組組長組織系統的需求分析、總體框架設計的討論工作,將確定的系統詳細設計方案交于教師審閱。
③在限定的時間內,組長安排成員完成C++語言的代碼設計,完成各個功能單元的實現和調試。
④聯編調試,要求把各個功能塊聯編起來進行調試。
⑤寫出相關的系統分析、設計、實現等實驗報告和文檔。
綜合設計型實驗建立起以學生為中心的教學模式,這樣既鍛煉學生的動手能力,也加強他們交流與團結協作的精神,全面提升學生的程序設計與軟件開發能力。
2.4 考核方式改革
傳統教學模式中,c++理論課程的考核往往只有考試一個環節,顯得不太合理?;谥暗母母?,筆者對c++程序設計理論課程的考核包括以下幾個部分:
平時環節占總成績的20%,主要考查學生的出勤、作業、課堂表現等;團隊表現占總成績的20%,主要考查學生的團隊協作能力;期末考試占總成績的60%,主要考查學生的基本知識點、程序閱讀能力與程序編寫能力。
對于實踐教學,考核以考查為主,主要考查學生在實踐過程中的編程開發能力。實踐課程的考核分4個部分,包括:平時環節(占總成績的20%),實驗過程(占總成績的40%),實驗報告(占總成績的20%),團隊協作(占總成績的20%)o
3、結語
程序設計課程的教學目的是通過一門程序設計語言的教學,使學生掌握程序設計思維,包括基本結構和基本算法等,從而掌握程序設計的一般方法。但c++程序設計課程存在語法復雜、編程靈活、調試困難等問題,再加上開設這門課程時,學生通常屬于初學者,容易讓學生對這門課程普遍感覺枯燥、難懂。
為此,筆者依據多年的教學實踐過程以及對多屆學生進行的調研,對中南林業科技大學的C++程序設計課程進行了教學改革探索,通過修改教學計劃,調整教學內容,采用“三步法”的教學方法和多種形式的實踐課程的教學方式,對C++程序設計這門課程進行了改革。通過這些改革,使中南林業科技大學計算機專業學生的編程能力有了一定的進步,提高了學生的學習熱情與信心。endprint