文章編號(hào):1672-5913(2015)07-0051-04
中圖分類(lèi)號(hào):G642
摘要:分析C語(yǔ)言教學(xué)中存在的普遍問(wèn)題,從教學(xué)內(nèi)容組織形式、教學(xué)方法以及考核方式等方面提出一系列有針對(duì)性的教學(xué)方法,指出這種教學(xué)方法能有效地提高學(xué)生的學(xué)習(xí)效率和質(zhì)量。
關(guān)鍵詞:C語(yǔ)言程序設(shè)計(jì);公共基礎(chǔ)課;教學(xué)方法
0 引 言
為提高大學(xué)生利用計(jì)算機(jī)解決問(wèn)題的能力,全國(guó)高校普遍為理工科專(zhuān)業(yè)的低年級(jí)學(xué)生開(kāi)設(shè)了C語(yǔ)言程序設(shè)計(jì)這門(mén)必修的公共基礎(chǔ)課程。一方面,該課程是學(xué)生接觸的第一門(mén)程序設(shè)計(jì)類(lèi)課程,其編程思維的養(yǎng)成是一個(gè)較長(zhǎng)的過(guò)程;另一方面,該課程具有內(nèi)容繁多、知識(shí)點(diǎn)關(guān)聯(lián)性強(qiáng)、算法抽象、實(shí)踐性要求高等特點(diǎn),學(xué)生在學(xué)習(xí)過(guò)程中易產(chǎn)生畏難心理,進(jìn)而出現(xiàn)學(xué)習(xí)動(dòng)力不足、積極性不高等問(wèn)題。C語(yǔ)言程序設(shè)計(jì)是一門(mén)難學(xué)也難教的課程,目前在教學(xué)上普遍存在很多問(wèn)題。文獻(xiàn)對(duì)C語(yǔ)言程序設(shè)計(jì)的教學(xué)方法給出了建議,但都不夠系統(tǒng)和全面。
1 C語(yǔ)言程序設(shè)計(jì)教學(xué)方法研究
1.1 理論教學(xué)
對(duì)于大多數(shù)課程而言,從宏觀上將課程知識(shí)點(diǎn)及其關(guān)聯(lián)講授給學(xué)生非常必要,這便于學(xué)生更加系統(tǒng)深刻地理解所學(xué)內(nèi)容。筆者以文獻(xiàn)作為教材講解C語(yǔ)言程序設(shè)計(jì)的知識(shí)點(diǎn)結(jié)構(gòu)。如圖1所示,知識(shí)點(diǎn)之間的關(guān)聯(lián)可以層層細(xì)化,教師首先從宏觀上給學(xué)生介紹C語(yǔ)言程序的整體組成結(jié)構(gòu)(如圖1一(a),然后針對(duì)圖1.(a)中一個(gè)源程序文件的組成成分舉例介紹,如圖1一(b)所示。在圖1一(b)中,教師對(duì)涉及的知識(shí)點(diǎn)進(jìn)行歸類(lèi),共包含預(yù)處理命令、數(shù)據(jù)類(lèi)型、運(yùn)算符、語(yǔ)句和函數(shù)等5部分,然后圖1.(c)至圖1一(i)依次層層展開(kāi)上述各類(lèi)知識(shí)點(diǎn)的組成,逐步細(xì)化。
從宏觀上梳理C語(yǔ)言與程序設(shè)計(jì)課程的知識(shí)點(diǎn)是非常必要和重要的,這樣可以避免學(xué)生“只見(jiàn)樹(shù)木,不見(jiàn)森林”,最后只學(xué)到一堆零散的知識(shí)點(diǎn),只有從宏觀上把握各個(gè)知識(shí)點(diǎn)在知識(shí)體系中的位置和作用,才能學(xué)得深、記得牢。
對(duì)于程序語(yǔ)言課程,如果僅僅介紹語(yǔ)法的運(yùn)用,學(xué)生往往對(duì)知識(shí)點(diǎn)理解不深刻。我們?cè)诮虒W(xué)實(shí)踐中的體會(huì)是:在講解C語(yǔ)言語(yǔ)法的基礎(chǔ)上,適當(dāng)?shù)仄饰鼍幊陶Z(yǔ)言在計(jì)算機(jī)中的運(yùn)行機(jī)制,會(huì)讓學(xué)生的理解更加透徹。因此,我們的課堂教學(xué)方法分為如下兩部分。
1)課件講解。
課件講解包括兩部分,即知識(shí)點(diǎn)要點(diǎn)總結(jié)和知識(shí)點(diǎn)運(yùn)行機(jī)制剖析。知識(shí)點(diǎn)要點(diǎn)總結(jié)就是告訴學(xué)生該知識(shí)點(diǎn)如何使用;而知識(shí)點(diǎn)運(yùn)行機(jī)制剖析則告訴學(xué)生該程序在計(jì)算機(jī)內(nèi)存中的執(zhí)行過(guò)程。由于絕大部分高校在開(kāi)設(shè)C語(yǔ)言程序設(shè)計(jì)之前都會(huì)開(kāi)設(shè)計(jì)算機(jī)文化基礎(chǔ)等課程,因此學(xué)生有足夠的計(jì)算機(jī)基礎(chǔ)知識(shí)來(lái)理解C語(yǔ)言程序的運(yùn)行機(jī)制。
2)實(shí)例演示。
作為一門(mén)編程語(yǔ)言,C語(yǔ)言需要在實(shí)踐中理解和掌握,因此,課堂教學(xué)中,在具體的編程環(huán)境(如VC++6.0)下演示十分必要。通過(guò)在具體的軟件環(huán)境下編程,告訴學(xué)生應(yīng)該做什么和不應(yīng)該做什么,并總結(jié)該知識(shí)點(diǎn)的注意事項(xiàng)。相比傳統(tǒng)的脫離編程環(huán)境,只在PPT或黑板上進(jìn)行板書(shū)的教學(xué)模式,該方法的教學(xué)效果要好得多。在課堂教學(xué)中,具體的教學(xué)步驟如下:①使用PPT或者板書(shū)列出該知識(shí)點(diǎn)的注意要點(diǎn);②在編程環(huán)境(如VC++6.0)下演示該知識(shí)點(diǎn)的用法,給出正確的和錯(cuò)誤的使用方法,并進(jìn)行對(duì)比;③通過(guò)幻燈片動(dòng)畫(huà)或Flash動(dòng)畫(huà)等形式演示程序在計(jì)算機(jī)內(nèi)存中的執(zhí)行過(guò)程,讓學(xué)生更加深刻地理解程序的運(yùn)行機(jī)制。
3)教學(xué)難點(diǎn)與重點(diǎn)——“復(fù)合知識(shí)點(diǎn)”。
從C語(yǔ)言的教學(xué)內(nèi)容來(lái)講,數(shù)組、函數(shù)和指針是教學(xué)的重點(diǎn)章節(jié),這些章節(jié)之間相互關(guān)聯(lián)的部分又是重點(diǎn)中的難點(diǎn),如數(shù)組和函數(shù)結(jié)合,數(shù)組名做函數(shù)參數(shù),數(shù)組和指針結(jié)合,指向數(shù)組的指針變量,函數(shù)和指針結(jié)合,指向函數(shù)的指針變量等。在教學(xué)過(guò)程中要反復(fù)強(qiáng)調(diào)各個(gè)知識(shí)點(diǎn)的注意事項(xiàng),如果基本知識(shí)點(diǎn)能夠理解透徹,上述難點(diǎn)內(nèi)容也就迎刃而解了。
1.2 上機(jī)實(shí)踐教學(xué)
在實(shí)踐教學(xué)中,教師可以通過(guò)實(shí)際教學(xué)案例循序漸進(jìn)地強(qiáng)化學(xué)生對(duì)C語(yǔ)言知識(shí)點(diǎn)的理解。上機(jī)實(shí)踐的教學(xué)內(nèi)容通常分為兩部分:基本知識(shí)點(diǎn)練習(xí)和綜合訓(xùn)練。首先通過(guò)基本知識(shí)點(diǎn)的練習(xí),讓學(xué)生掌握該知識(shí)點(diǎn)的使用,即鞏固課堂所學(xué)內(nèi)容;然后通過(guò)一個(gè)綜合性的大作業(yè),訓(xùn)練學(xué)生綜合應(yīng)用C語(yǔ)言知識(shí)點(diǎn)的能力,例如,通過(guò)編寫(xiě)“學(xué)生課程成績(jī)統(tǒng)計(jì)系統(tǒng)”考查學(xué)生對(duì)數(shù)組、結(jié)構(gòu)體、指針、函數(shù)、文件等知識(shí)的綜合掌握情況。
對(duì)于初學(xué)編程語(yǔ)言的學(xué)生,往往沒(méi)有養(yǎng)成良好的編程習(xí)慣,出錯(cuò)的可能性較大,而出錯(cuò)之后進(jìn)行調(diào)試又將耗費(fèi)較長(zhǎng)的時(shí)間,這勢(shì)必對(duì)學(xué)生的學(xué)習(xí)熱情產(chǎn)生負(fù)面影響。因此,一開(kāi)始就給學(xué)生制定科學(xué)的編程步驟和規(guī)范,使學(xué)生養(yǎng)成良好的編程習(xí)慣,將大大減少程序出錯(cuò)的可能。在C語(yǔ)言教學(xué)實(shí)踐中,我們總結(jié)了“五步編程法”:①定義變量,如“int a;”;②對(duì)變量進(jìn)行初始化,如“a=0;”,對(duì)變量進(jìn)行初始化操作是一種良好的編程習(xí)慣,可防止未對(duì)變量賦值而引起的隱性錯(cuò)誤;③通過(guò)scanf語(yǔ)句賦值,如“scanf(“%d”,&a);”;④實(shí)現(xiàn)程序的主要算法,該部分是程序的主體;⑤通過(guò)printf語(yǔ)句將結(jié)果輸出在顯示器上,將結(jié)果輸出在顯示器上便于比較程序運(yùn)行結(jié)果是否正確。
下面是按照上述五步編寫(xiě)的一個(gè)完整的C語(yǔ)言程序,用來(lái)比較兩個(gè)整數(shù)的大小。按照上述五步進(jìn)行編程,經(jīng)過(guò)一段時(shí)間的訓(xùn)練之后,學(xué)生出現(xiàn)語(yǔ)法錯(cuò)誤的可能性大大降低,此時(shí)學(xué)生更多的精力將集中在程序算法的設(shè)計(jì)和實(shí)現(xiàn)上。
1.3 考試形式
對(duì)于C語(yǔ)言程序設(shè)計(jì)的考核方式,我們采用知識(shí)點(diǎn)考核和編程實(shí)踐相結(jié)合的方式。知識(shí)點(diǎn)考核偏重于C語(yǔ)言基本語(yǔ)法,用于檢驗(yàn)學(xué)生對(duì)知識(shí)點(diǎn)的掌握是否全面,此項(xiàng)考核約占總成績(jī)的40%;編程實(shí)踐考核用于檢驗(yàn)學(xué)生的實(shí)際動(dòng)手能力,學(xué)生將在規(guī)定的時(shí)間內(nèi)根據(jù)題目在機(jī)器上編程,此項(xiàng)考核約占總成績(jī)的60%。為了實(shí)現(xiàn)知識(shí)點(diǎn)的考核,我們將考試與計(jì)算機(jī)二級(jí)C語(yǔ)言上機(jī)考試緊密結(jié)合,采用題庫(kù)平臺(tái)進(jìn)行上機(jī)考試,學(xué)生直接在機(jī)器上答題并提交,知識(shí)點(diǎn)考核多采取客觀題,如填空題、程序修改題以及讀程序題等,編程題在實(shí)戰(zhàn)編程中考核。C語(yǔ)言程序設(shè)計(jì)課程的重要特點(diǎn)就是實(shí)踐性強(qiáng),學(xué)習(xí)該課程的目的就是為了編寫(xiě)程序。因此從考試的角度講,進(jìn)行編程實(shí)踐是最合適的方式,通過(guò)上機(jī)編程來(lái)考核學(xué)生的學(xué)習(xí)情況也是最公正和客觀的方式。
2 C語(yǔ)言程序設(shè)計(jì)教學(xué)實(shí)踐結(jié)果分析
中國(guó)礦業(yè)大學(xué)(北京)每年都有40多個(gè)班級(jí)同時(shí)開(kāi)設(shè)C語(yǔ)言程序設(shè)計(jì)課程,因此該課程教學(xué)質(zhì)量的高低將直接影響全校理工科學(xué)生對(duì)C語(yǔ)言的理解和掌握。中國(guó)礦業(yè)大學(xué)(北京)C語(yǔ)言程序設(shè)計(jì)教學(xué)團(tuán)隊(duì)經(jīng)過(guò)長(zhǎng)期的探索總結(jié)出一套行之有效的C語(yǔ)言教學(xué)方法,我們將上述方法在學(xué)校越崎實(shí)驗(yàn)班中進(jìn)行了試點(diǎn)。如圖2所示,采用上述教學(xué)法的越崎實(shí)驗(yàn)班的C語(yǔ)言程序設(shè)計(jì)課程考試成績(jī)要明顯好于其他班級(jí),其中90分以上的學(xué)生占10.7%,80分以上的學(xué)生占總?cè)藬?shù)的53.6%。另外,學(xué)生的學(xué)習(xí)積極性比采用上述方法前得到明顯提高,很多學(xué)生都對(duì)計(jì)算機(jī)編程產(chǎn)生了濃厚興趣,實(shí)踐證明我們提出的上述方法是行之有效的。
3 結(jié)語(yǔ)
中國(guó)礦業(yè)大學(xué)(北京)C語(yǔ)言程序設(shè)計(jì)教學(xué)團(tuán)隊(duì)在長(zhǎng)期的教學(xué)實(shí)踐中探索出的這套教學(xué)方法被證明是行之有效的,它能夠極大地提高學(xué)生的學(xué)習(xí)興趣,不但讓學(xué)生學(xué)得會(huì)、記得牢,而且能夠舉一反三,把該方法應(yīng)用到其他編程語(yǔ)言的學(xué)習(xí)中。長(zhǎng)期的教學(xué)實(shí)踐使我們深刻地認(rèn)識(shí)到,教學(xué)方法的好壞對(duì)提高教學(xué)質(zhì)量有直接和重要的影響。我們團(tuán)隊(duì)提出的這套教學(xué)方法是對(duì)C語(yǔ)言程序設(shè)計(jì)教學(xué)方法的初步嘗試,希望能夠?qū)Ω叩仍盒語(yǔ)言程序設(shè)計(jì)教學(xué)方法的研究起到拋磚引玉的作用。