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