文章編號(hào):1672-5913(2008)16-0055-02
摘要:傳統(tǒng)的C語(yǔ)言教學(xué)模式面臨越來(lái)越多的新問(wèn)題,已經(jīng)不適合當(dāng)代教育的發(fā)展。本文從我校C語(yǔ)言程序設(shè)計(jì)教學(xué)情況入手,借鑒教育心理學(xué)的理論,對(duì)C語(yǔ)言程序設(shè)計(jì)課程的教學(xué)改革以及實(shí)踐情況進(jìn)行了探討。
關(guān)鍵詞:C語(yǔ)言程序設(shè)計(jì);教學(xué)模式;算法
中圖分類號(hào):G642.0
文獻(xiàn)標(biāo)識(shí)碼:B
1C語(yǔ)言教學(xué)中面臨的問(wèn)題
(1) 學(xué)生對(duì)學(xué)習(xí)該門課程沒(méi)有明確的學(xué)習(xí)目的,沒(méi)有學(xué)習(xí)興趣。很多同學(xué)認(rèn)為這門課就是介紹C語(yǔ)言的一些語(yǔ)法規(guī)則,對(duì)以后的學(xué)習(xí)、就業(yè)和發(fā)展沒(méi)有什么影響,所以不愿學(xué)。而且很多同學(xué)通過(guò)網(wǎng)絡(luò)了解到現(xiàn)在流行的程序開(kāi)發(fā)語(yǔ)言是Java和C#,更覺(jué)得C語(yǔ)言沒(méi)有用處。
(2) 目前很多學(xué)校C語(yǔ)言課程的教學(xué)仍停留在傳統(tǒng)的模式上,過(guò)分注重語(yǔ)句、語(yǔ)法等細(xì)節(jié)的教授,學(xué)生學(xué)習(xí)C語(yǔ)言之后感覺(jué)只能實(shí)現(xiàn)一些簡(jiǎn)單的程序,比如只能把一些數(shù)據(jù)存儲(chǔ)到數(shù)值中再輸出在屏幕上,或者更難點(diǎn)的使用結(jié)構(gòu)體建立一個(gè)數(shù)據(jù)鏈表等。這些東西跟日常生活相距甚遠(yuǎn),學(xué)生不愿意學(xué),這樣也就給后續(xù)的課程教學(xué)、畢業(yè)設(shè)計(jì)乃至畢業(yè)后參加工作帶來(lái)了隱患。
2C語(yǔ)言教學(xué)改革方案
2.1設(shè)定兩個(gè)階段的學(xué)習(xí)目標(biāo)
第一階段,需要教師在上第一節(jié)課之前,設(shè)計(jì)好一個(gè)用純C語(yǔ)言開(kāi)發(fā)的目標(biāo)軟件,該軟件應(yīng)該包括C語(yǔ)言程序設(shè)計(jì)的核心知識(shí)點(diǎn)。當(dāng)然目標(biāo)軟件需要根據(jù)學(xué)生的基礎(chǔ)而設(shè)定,例如一個(gè)簡(jiǎn)單的學(xué)生管理系統(tǒng),學(xué)生比較熟悉,也相對(duì)容易上手。該軟件可以在第一次課時(shí)進(jìn)行展示,告訴同學(xué)通過(guò)課程學(xué)習(xí)和老師的幫助就可以實(shí)現(xiàn)該軟件,這樣可以增強(qiáng)學(xué)生的熱情,同時(shí)也可以介紹一下C軟件工程師的就業(yè)情況等。
第二階段,在課程學(xué)習(xí)之后組織一些學(xué)有余力的學(xué)生對(duì)學(xué)生管理系統(tǒng)加以改進(jìn)使之能成為一個(gè)實(shí)用型的軟件。例如,學(xué)期結(jié)束每個(gè)班級(jí)都會(huì)進(jìn)行綜合測(cè)評(píng),而該測(cè)評(píng)工作量往往很大。測(cè)評(píng)時(shí)需要計(jì)算每個(gè)學(xué)生的綜合成績(jī),而綜合成績(jī)又是由考試成績(jī)和實(shí)踐成績(jī)組成,同時(shí)要考慮一些加分情況。最后還要對(duì)綜合成績(jī)進(jìn)行排名取一定比例分配獎(jiǎng)學(xué)金,其中又有些特定的規(guī)則要考慮,例如一個(gè)同學(xué)盡管綜合成績(jī)很高,但是有門課掛科,按照學(xué)校規(guī)定也是不能進(jìn)行獎(jiǎng)學(xué)金評(píng)定。該軟件的設(shè)計(jì)較為復(fù)雜,這就需要教師把這個(gè)任務(wù)進(jìn)行分解,從先易后難、先實(shí)現(xiàn)普通功能后實(shí)現(xiàn)特殊功能的角度出發(fā),讓學(xué)生一步步完成該任務(wù)。每取得一個(gè)進(jìn)步,要給予一定的鼓勵(lì),同時(shí)可以選擇一些學(xué)習(xí)積極性很高,實(shí)踐能力強(qiáng)的同學(xué)擔(dān)當(dāng)“項(xiàng)目經(jīng)理”,促使這部分人盡快成長(zhǎng)。我院074班鄭略略、戴媛等幾位同學(xué)就基本完成了該軟件的開(kāi)發(fā),并且榮獲了校軟件協(xié)會(huì)頒發(fā)的三等獎(jiǎng)、中科企業(yè)獎(jiǎng)學(xué)金等。
2.2合理選擇教材
建議有條件的學(xué)校選擇兩本教材,一本為國(guó)內(nèi)流行的教學(xué)效果較好的教材,一本為國(guó)外經(jīng)典教材的翻譯本。國(guó)內(nèi)的教材較為精煉,但缺乏一個(gè)思考的過(guò)程。例如國(guó)內(nèi)很多教材在介紹某個(gè)算法的時(shí)候只給出一個(gè)最優(yōu)的算法,讓學(xué)生感覺(jué)自己完全不可能想出來(lái),只能照樣子做下。而有些國(guó)外的教材知識(shí)鋪墊比較多,正好可以給學(xué)生一個(gè)由淺入深的接受過(guò)程。一本好的教材除了理論基礎(chǔ),應(yīng)還介紹一些實(shí)例算法的思考過(guò)程,以及經(jīng)典的應(yīng)用實(shí)例和練習(xí),這樣才能充分激發(fā)學(xué)生的學(xué)習(xí)興趣。
例如比方在求解最大公約數(shù)的時(shí)候,很多國(guó)內(nèi)教科書只給出一個(gè)經(jīng)典的輾轉(zhuǎn)相除法算法,這是根據(jù)一個(gè)數(shù)學(xué)定理得到的求最大公約數(shù)的算法。大部分學(xué)生都不知道這個(gè)定理,但他們一般會(huì)從最大公約數(shù)的定義出發(fā),即幾個(gè)數(shù)所公有的約數(shù)叫這幾個(gè)數(shù)的公約數(shù),公約數(shù)中最大的一個(gè)叫做這幾個(gè)數(shù)的最大公約數(shù)。按照該理論可以寫出學(xué)生很容易理解的算法:
main()
{
int m,n,j;
clrscr();
printf(\"input n,m(n>0,m>0):\");
scanf(\"%d%d\",n,m);
j=(n<m)?n:m;
for(;j>0;j--)
{
if(n%j==0m%j==0)
break;
else
continue;
}
printf(\"max gys is:%d\\",j);
}
該程序的思想是,從兩個(gè)數(shù)中選出較小的那個(gè)整數(shù),從它開(kāi)始依次遞減(步長(zhǎng)為1),直到某個(gè)數(shù)可以同時(shí)整除這兩個(gè)數(shù),最先滿足條件的就是最大公約數(shù)。如果先按照學(xué)生的普遍思路出發(fā)講解這個(gè)簡(jiǎn)單的程序?qū)崿F(xiàn)方法,然后再講解經(jīng)典算法,學(xué)生就會(huì)更有自信,興趣也會(huì)更濃。
2.3采用“2+1”授課方式
傳統(tǒng)的教學(xué)方式是老師滔滔不絕地講,學(xué)生規(guī)規(guī)矩矩地聽(tīng)。課堂教學(xué)基本上是教師自我表演的天地,較少有學(xué)生參與的機(jī)會(huì)。以我院為例,從2007年開(kāi)始采用C語(yǔ)言教學(xué)在實(shí)驗(yàn)室進(jìn)行的模式,三節(jié)課連堂,前兩節(jié)老師多媒體授課,后一節(jié)讓學(xué)生把老師講的例子調(diào)試和加以修改實(shí)現(xiàn)一些有實(shí)際意義的功能。
在前面兩節(jié)課中,要注意突出語(yǔ)言特色,充分運(yùn)用形象思維講授函數(shù)、把握由淺入深、循序漸進(jìn)的過(guò)程,把函數(shù)和指針作為重點(diǎn)和難點(diǎn)。教學(xué)中可盡量用一些通俗的比喻來(lái)說(shuō)明一些抽象的概念。例如,在學(xué)生剛開(kāi)始學(xué)習(xí)變量的時(shí)候,可以舉這樣一個(gè)例子,變量就相當(dāng)于一個(gè)“碗”,
變量的值就相當(dāng)于碗里面的東西。在講指針時(shí),可以這樣舉例,對(duì)于\"地址\",它就相當(dāng)于房間的門牌號(hào),每個(gè)房間都有自己的號(hào)碼,在每個(gè)房間都住著人。這就像內(nèi)存中的數(shù)據(jù),它們都存放在內(nèi)存單元中,內(nèi)存單元就相當(dāng)于房間,每個(gè)地址就相當(dāng)于門牌號(hào),里面所存放的數(shù)據(jù)就像是住的人。通過(guò)這些形象通俗的比喻,學(xué)生理解起來(lái)就容易了許多。
在后一節(jié)的實(shí)踐中,教師應(yīng)該根據(jù)學(xué)生在前兩節(jié)學(xué)到的知識(shí)點(diǎn)把簡(jiǎn)單學(xué)生管理系統(tǒng)進(jìn)行功能分解,讓學(xué)生來(lái)實(shí)現(xiàn)相應(yīng)的部分。對(duì)于少數(shù)與該管理系統(tǒng)聯(lián)系不是十分緊密的知識(shí)點(diǎn),我們可以抓住學(xué)生愛(ài)玩游戲的特點(diǎn),布置一些小的游戲任務(wù)讓學(xué)生實(shí)現(xiàn),不同的學(xué)生可能有不同的實(shí)現(xiàn)方法,教師把典型的一些實(shí)現(xiàn)方法加以對(duì)比,讓學(xué)生來(lái)評(píng)價(jià)優(yōu)劣,使學(xué)生知道未來(lái)程序改進(jìn)的方向。
2.4抓住大學(xué)生“爭(zhēng)強(qiáng)好勝”的心理
學(xué)生大都希望別人能夠肯定自己,如果教師能利用這一點(diǎn)在學(xué)習(xí)上加以引導(dǎo),會(huì)有較好的效果。例如,我院教師在教授C語(yǔ)言期間,常出一些問(wèn)題給學(xué)生思考,并且鼓勵(lì)學(xué)生參與C語(yǔ)言程序設(shè)計(jì)競(jìng)賽,對(duì)表現(xiàn)積極的學(xué)生經(jīng)常加以表?yè)P(yáng),發(fā)現(xiàn)此部分同學(xué)主動(dòng)性更好,學(xué)的也更扎實(shí)。表1為我院072班課程考試結(jié)果,上課常積極思考并因此經(jīng)常得到老師表?yè)P(yáng)的同學(xué)成績(jī)都是優(yōu)秀。
3結(jié)束語(yǔ)
在“C語(yǔ)言程序設(shè)計(jì)”的教學(xué)中,應(yīng)該充分抓住當(dāng)代大學(xué)生的心理加以引導(dǎo),以程序設(shè)計(jì)和課程設(shè)計(jì)為主,
通過(guò)教學(xué)方式的改變,激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生不但掌握高級(jí)編程語(yǔ)言的知識(shí)和基本算法,更重要的是掌握程序設(shè)計(jì)的思想和方法,使其能靈活應(yīng)用高級(jí)語(yǔ)言進(jìn)行程序設(shè)計(jì)解決一些實(shí)際問(wèn)題。
參考文獻(xiàn):
[1] 劉曉鋒,吳亞娟. 計(jì)算機(jī)專業(yè)“C語(yǔ)言程序設(shè)計(jì)”教學(xué)與教學(xué)改革[J]. 四川師范學(xué)院學(xué)報(bào),2004,24(l): 34-36.
[2] 方加娟.李紅彼. 多媒體輔助教學(xué)在C語(yǔ)言教學(xué)中的應(yīng)用[J]. 計(jì)算機(jī)與建材. 2005,(32): 47-48.
[3] 張大均. 教育心理學(xué)[M]. 北京: 人民教育出版社,2004.