
文章編號:1672-5913(2011)17-0060-03 中圖分類號:G642 文獻標識碼:A
摘 要:本文針對教與學雙方均感到困難的C++ 課程,在總結實訓教學經(jīng)驗的基礎上,從教學內容、教學模式、教學方法等方面進行探討,并提出一些具體措施。
關鍵詞:C++語言;教學模式;教學方法
基金項目:西華大學軟件工程特色專業(yè)項目(10TSZY317);西華大學教育教學改革項目(西華教字[2010]407號)。
作者簡介:陳紅紅,女,講師,研究方向為軟件工程及計算機教育。
C++語言是我校學生接觸的第一門程序設計語言,由于數(shù)據(jù)類型繁多、語法結構復雜、內容豐富,加上課時有限,因此,在教學過程中教學雙方都有困難。實踐證明,如果缺乏教師引導,學生容易產(chǎn)生畏難情緒,學習興趣難以激發(fā)。
現(xiàn)有的教學模式一般都采用理論加上機模式,即課堂上講語法,上機調程序的教學模式,而區(qū)別只是兩者的比例不同。就課堂教學而言,由于課時有限,教師要完成教學任務,課堂教學仍然是教師滿堂灌,學生處于被動學習狀態(tài),學生的學習熱情很難調動起來。另外,一個教師帶一個班學生在機房上機,很難做到全面輔導和即時解答每個學生提出的問題,難以達到教學目的。雖然教師要求學生上交源程序、上機報告等內容,但無法杜絕學生相互抄襲的現(xiàn)象,學生實際編寫和調試程序的能力沒有提高。
教師講學生練、教師示范學生模仿的教學方式,讓學生感覺枯燥乏味,沒有興趣,難以理解,久而久之,學生便失去了學好C++語言的動力,教學效果也不理想。
讓學生在短暫的課程學習時間內掌握C++語言的基本知識和編程技能已成為我們教學探索的目標。
1 我們的做法
以前,我校“C語言程序設計”和“面向對象程
序設計(C++語言)”分別在大一下期和大二上期開設。前者的學時為56(理論)+32(上機),后者為48(理論)+16(上機)。雖然課時不少,但教學效果不明顯。經(jīng)過兩個學期的學習,學生除了掌握一些語法知識,具備一些簡單的編程基礎外,面對復雜的編程問題,仍然無從下手。針對這種情況,同時,也是為了適應高校教學改革的需要,我們的新教學計劃把這兩門課合并為“C/C++程序設計語言”,放到大一上期對新生開設,學時為64(理論)+16(上機),同時在大一下期新開設了“C/C++基礎編程實訓”課程,學時為32上機學時。經(jīng)過兩年的實踐,我們對該教學模式有了一些體會。
1.1 教學目標及內容
我們的實訓以培訓能力為主要目標,培養(yǎng)學生編程思想和編程能力,使其具有一定的獨立和協(xié)作編程能力。
我們根據(jù)學生的具體情況制定了相應的教學計劃,把實訓內容分為九個章節(jié),其中七個單元實訓,兩個綜合實訓。如表1所示。
每章節(jié)由實訓目的、實訓預備知識、實訓內容與要求三部分內容組成,既有驗證環(huán)節(jié),也有設計和編程環(huán)節(jié)。
表1 教學內容及課時分配
1.2 教學模式及方法
我們將實訓放到機房。理論課和上機課不再有明確的界線,可以在上機的過程中穿插理論知識的講解,這樣做可以使學生將理論知識和具體實踐相結合,加深學生對抽象概念的理解,具體做法如下。
針對每次單元實訓,教師首先根據(jù)學生的具體情況抽出10~15分鐘進行實訓預備知識點的復習,再根據(jù)學生的知識背景、學習方法、接受能力等各方面的不同情況,做一些個性化的教學。例如,在課堂上隨機抽取兩至三道題目要求學生課堂完成。對基礎較好的同學要求全部完成,基礎較差的同學可以只完成一題,其余的題作為課后作業(yè)必須完成。同時,我們鼓勵學生不要放棄,循序漸進。與以前的上機實驗相比,這樣的實訓練習加強了對學生獨立編程的考核,提高了他們的動手能力,大多數(shù)學生從實訓中獲得了成就感,有了學習的信心。
經(jīng)過了幾個單元的訓練后,我們安排一次綜合實訓。以面向過程部分為例,由于之前已經(jīng)對數(shù)據(jù)類型、程序控制結構、數(shù)組、指針、結構體等基本知識點進行了針對性的訓練,所以該綜合實訓就是結合目標系統(tǒng),對上述知識點進行組裝的問題。
我們將全班同學分成6個項目小組,各自完成一個目標系統(tǒng)的開發(fā)。由于我們在大一上期已經(jīng)開設了軟件工程課程,所以,我們要求學生按軟件工程思想進行項目開發(fā)和管理,由組長負責人員分工和團隊協(xié)作,強調需求分析過程,要求提交需求分析報告,以考查學生對系統(tǒng)的理解程度。最后按項目考核方式進行驗收,要求每個同學都要參加答辯,并完成實訓報告。
這種項目訓練方式培養(yǎng)了學生之間的協(xié)作能力和自主學習能力。從檢查結果來看,學生對此表現(xiàn)出了濃厚的興趣。這種將軟件工程思想融入程序設計教學中的模式,不但鞏固了軟件工程教學的理論知識,又讓學生明白了程序設計的作用和地位。通過責任感和成就感激勵了學生參與的積極性,使學生體會到開發(fā)的樂趣和過程,激發(fā)出強烈的編程興趣。既達到了教學目的又取得了較好的教學效果。
實踐證明,先設計后編碼的這種方式,既培養(yǎng)了學生分析問題、解決問題的思維能力,又使學生獲得了編程的思路和技巧。如果把單純的程序設計語言比作制作的話,那融入了軟件工程思想的程序設計實訓就是組裝了。眾所周知,組裝要比制作容易多了。
1.3 教材的選用
目前很多的案例教材,通常都給出了相關的程序源代碼,這會導致學生放棄思考,直接復制交差。針對這些情況,我們組織教師自行編寫實訓教材。課程內容的組織和案例選擇上既不能太難,使學生感到畏懼,也不能太簡單(因為學生已經(jīng)具備了一定的基礎),而使學生失去探索和學習的興趣。為此,我們針對每次單元實訓,既有驗證環(huán)節(jié)的訓練,又有設計環(huán)節(jié)。重點突出解題思路和方法,讓學生覺得通過努力可以編出程序。學生在這一過程中既進行了思考、設計,又取得了成績,有了成就感,培養(yǎng)了分析問題和解決問題的能力。
對于所有的題目,我們都會事先做一遍,這樣做雖然增加了教師的工作量,但教學效果明顯。我們在同年級兩個不同專業(yè)上采用了兩種教材,一種是上述的自編教材,另一種是選用現(xiàn)成的案例教程。經(jīng)過一學期的實訓對比,采用前者教材的學生在編程能力、解決問題的能力等方面強于后者。
1.4 課程考核
我們的實訓目標是使學生能綜合運用所學的知識進行一定難度的程序設計。為此,我們提出了該課程考試的指導思想:即重視實訓過程,看重編程能力的提高。我們采用復合考核的方式,考試成績由平時考核、過程考核和期末機考成績組成。重點突出“會不會做”,強調學生的開發(fā)能力考核。實踐證明,這種考核方法不但能更客觀地反映學生的學習情況,還能引導學生有意識地加強上機實踐能力的培養(yǎng),起到了良好的教學效果。
具體的考核成績組成如下。
1) 平時成績*10%(考勤成績*40%+課后編程作業(yè)*60%)。
2) 期末機試成績*40%。
3) 實驗成績*50%(7個單項實訓占實驗成績的50%,2個綜合實訓占實驗成績的50%)。
1.5 軟件開發(fā)團隊的組建
結合實訓模式,我們從現(xiàn)有的學生中挑出了一些比較優(yōu)秀的學生,組成了軟件開發(fā)團隊,每周安排一些時間進行指導,引導并培養(yǎng)他們確定自己的研究方向。我們從自學一些必要的準備知識入手,通過小組學習、討論的方式完成自學過程,在儲備了一些基本知識及技能后,我們根據(jù)學生的具體情況,給出一些研究方向及問題,讓學生去鉆研完成,同時選出其中能力較強的同學,加入到實驗室研發(fā)團隊中,與研究生一起跟隨指導老師做一些實際項目,以提高學生動手能力,擴展知識面,為將來的學習或工作做好準備。
以前的課堂教學,教師和學生的互動機會有限,對學生的情況也不太熟悉,更談不上組織學生參加項目競賽。但通過實訓,教師與學生的互動環(huán)節(jié)增加。
尤其是通過軟件開發(fā)團隊的組建,對學生的知識背景、動手能力等各方面情況都比較清楚。這樣做,一方面解決了項目人員的后備軍問題;另一方面提高了學生的學習積極性。
2 結語
綜上所述,融入軟件工程思想的C/C++實訓教學模式,將理論講授為主、實踐為輔的傳統(tǒng)的教學模式轉換為以實訓為主、理論教學為輔的新模式。它以實訓本身的魅力吸引學生自主學習,解決了初學者對編程的恐懼心理,提高了對程序設計的興趣。當然,在新教學模式的探索中,我們也遇到了一些困難,比如教材出自不同的教師,對難度的把握不一致。太難,初學者容易喪失信心,容易放棄;太容易,又會導致能力得不到提高??偠灾摻虒W模式正在進一步完善中。對比10級和09級的學生,前者的動手能力和學習興趣總體上明顯高于后者。實訓提高了學生的學習自主性和積極性,使學生逐漸具備真正的軟件開發(fā)能力,并在分析問題,協(xié)作意識、設計和測試能力等方面都得到了鍛煉和提高。教學質量和教學效果明顯提高。由此可見,這是一個成功的教學模式。
參考文獻:
[1] 徐章艷.“C語言程序設計”實驗教學的探討[J]. 電氣電子教