摘 要:以計算機科學(xué)與技術(shù)專業(yè)“卓越工程師教育培養(yǎng)計劃”為背景,結(jié)合C語言教學(xué)過程中存在的問題,以教學(xué)內(nèi)容為基礎(chǔ),提出了啟發(fā)式、探究式、討論式、參與式、合作式等五種教學(xué)組織形式和教學(xué)方法,切實提高學(xué)生的程序設(shè)計能力和創(chuàng)新能力。
關(guān)鍵詞:卓越計劃;C語言;教學(xué)方法;研究性教學(xué)
中圖分類號:TN70-4;G642
鑒于“C語言程序設(shè)計”這門課的重要性,以及目前在實際教學(xué)過程中這門課存在的亟待解決問題,在景德鎮(zhèn)陶瓷學(xué)院計算機科學(xué)與技術(shù)專業(yè)被立為江西省“卓越工程師教育培養(yǎng)計劃”的背景下,改革該課程的教學(xué)組織形式和教學(xué)方法,提高教學(xué)效果,為實施“卓越計劃”奠定堅實的基礎(chǔ)。
1 教學(xué)組織形式和教學(xué)方法改革
“C語言程序設(shè)計”這門課程是為計算機專業(yè)一年級本科生開設(shè)的專業(yè)必修課,景德鎮(zhèn)陶瓷學(xué)院信息工程學(xué)院在制定課程教學(xué)大綱時,理論教學(xué)32學(xué)時,上機實踐32學(xué)時。開設(shè)課程時間為大一第一學(xué)期,學(xué)生幾乎沒有任何的編程基礎(chǔ)知識。學(xué)生剛接觸時普遍認(rèn)為這門課程難度較大,容易打擊學(xué)生的學(xué)習(xí)積極性并導(dǎo)致學(xué)習(xí)興趣不高?!白吭接媱潯钡哪康氖侵荚谂囵B(yǎng)適應(yīng)社會需求,具有較強工程能力,實踐能力和創(chuàng)新能力的技術(shù)人才,因此需要在實際的教學(xué)過程中改變教學(xué)組織形式并進(jìn)行教學(xué)方法改革,本文提出了五種教學(xué)組織形式和教學(xué)方法,如圖1所示,并將其貫穿于整個理論教學(xué)和實踐教學(xué)過程中。下面將結(jié)合具體的實例來介紹這些教學(xué)方法。
圖1 五種教學(xué)組織形式和教學(xué)方法
(1)啟發(fā)式。比如編程實現(xiàn)求圓的周長和面積。學(xué)生在學(xué)習(xí)了C語言的基本數(shù)據(jù)類型與表達(dá)式后,就可以寫出如下的程序。
void main()
{
float r,l,s,pi;
r=2.0;
pi=3.14;
l=2*pi*r;
s=r*r*pi;
}
這個例子中半徑只能固定為某一個值,如果半徑變了,需要修改程序。如果問題改成:從鍵盤輸入圓半徑,求圓的周長與半徑并輸出,要求圓的半徑可變。這樣給學(xué)生以啟迪,并引出了輸入輸出函數(shù)的教學(xué)內(nèi)容,并可以調(diào)動學(xué)生學(xué)習(xí)這部分內(nèi)容的積極性。
(2)探究式。假設(shè)a=3,b=5,編程實現(xiàn)交換兩個變量a和b的值。剛開始學(xué)生會寫出如下的程序。
void main()
{
int a=3, b=5;
a=b;
b=a;
printf(“a=%d,b=%d”,a,b);
}
程序運行后發(fā)現(xiàn)a和b的值都是5。實驗結(jié)果與預(yù)期的不一樣,這樣需要探究分析下出現(xiàn)這樣結(jié)果的原因,需要學(xué)生學(xué)會編程工具的調(diào)試功能,經(jīng)過單步調(diào)試發(fā)現(xiàn),執(zhí)行完a=b這條語句后a的值已經(jīng)是5,在執(zhí)行b=a后,沒有將a原來的值3賦給b,而是將a新的值5賦給了b,再進(jìn)一步的探究分析,原來a是變量,經(jīng)過a=b這個賦值操作后a原來的值沒有了,這就需要定義個臨時變量int t 來存儲a的值,程序修改如下:t=a;a=b;b=t;
(3)討論式。在講授了利用循環(huán)語句求1到100的累加和之后,馬上給出思考題,求解100的階乘,然后讓學(xué)生進(jìn)行分組討論,如何在1到100的累加和的程序上做修改,1到100的累加和的程序如下。
void main()
{
int s=0;
int i;
for(i=1;i<=100;i++)
s+=i;
printf(“s=%d”,s);
}
經(jīng)過五分鐘左右的討論后,絕大部分學(xué)生做出了兩處修改:s=1;s*=i;但是運行程序后發(fā)現(xiàn)結(jié)果與預(yù)期不一樣。老師經(jīng)過引導(dǎo),指出要注意變量的數(shù)據(jù)類型及范圍,學(xué)生經(jīng)過討論后發(fā)現(xiàn)需要修改s的數(shù)據(jù)類型和輸出函數(shù)的格式控制字符串。經(jīng)過討論和老師的引導(dǎo)后,首先對循環(huán)語句有了更深刻的了解,同時鞏固了之前所學(xué)的輸入輸出函數(shù)和數(shù)據(jù)類型這兩個知識點。
(4)參與式。在理論課教學(xué)時,主要以老師的知識點灌輸為主,學(xué)生參與較少,即使參與,多以簡單地回答老師的提問,偶爾會有一些老師引導(dǎo)式的討論,學(xué)生的主動性發(fā)揮得不夠。參與式教學(xué)方式中,將以學(xué)生為主,老師為輔。這種參與式教學(xué)方式主要在實踐教學(xué)中應(yīng)用。因為上機實踐部分不同于理論教學(xué)部分,需要學(xué)生全身心的參與到程序設(shè)計開發(fā)過程中來,自己動手編寫程序。比如求ax2+bx+c=0的解。大多數(shù)同學(xué)在編寫該程序時,僅考慮到該方程有兩個實根的情況,未考慮到該方程有可能不是一元二次方程以及方程的根是虛根這兩種情況。學(xué)生只有參與到該程序的編寫當(dāng)中,才知道在編程時需要全面考慮問題的各種可能性。
(5)合作式。經(jīng)過了所有知識點的學(xué)習(xí)后,學(xué)生已基本掌握了程序設(shè)計的常用方法和編程技巧,也積累了一些編程和調(diào)試的經(jīng)驗。但是之前的課程教學(xué)過程中以及上機實踐過程中所使用的例子都較為簡單,基本上學(xué)生個人可以獨立完成,然而現(xiàn)在的系統(tǒng)和軟件開發(fā)不是一個人所能完成的。因此為了進(jìn)一步提高學(xué)生的動手能力、解決實際問題的能力,特別是團(tuán)隊協(xié)作與合作能力。為此,設(shè)計了五個綜合性的應(yīng)用程序設(shè)計實例,分別是簡易學(xué)生選修課程系統(tǒng),可以進(jìn)行方程求解和科學(xué)計算的計算器,簡單學(xué)生成績統(tǒng)計,班級學(xué)生通訊錄,商品庫存管理。模仿數(shù)學(xué)建模比賽,三個學(xué)生一個小組,分工協(xié)作完成功能描述與劃分、總體設(shè)計、詳細(xì)設(shè)計、程序編寫、總結(jié)報告等任務(wù),讓學(xué)生充分地體驗合作式程序開發(fā)過程。
2 結(jié)束語
本文結(jié)合了C語言程序設(shè)計教學(xué)過程中典型的實際案例,介紹了啟發(fā)式、探究式、討論式、參與式、合作式等五種教學(xué)組織形式和教學(xué)方法,并在2013級計算機專業(yè)學(xué)生的C語言課程教學(xué)中進(jìn)行了實踐,表明學(xué)生的編程能力、動手能力和協(xié)作能力得到了一定的提高,符合計算機科學(xué)與技術(shù)專業(yè)的“卓越工程師教育培養(yǎng)計劃”的目標(biāo)。
參考文獻(xiàn):
[1]朱福珍,楊自恒,蔣愛平,王曉飛,甄佳奇,付麗.基于“卓越計劃”的“數(shù)字圖像處理”課程教學(xué)研究[J].中國電力教育,2013(28):128-129.
[2]林健.面向“卓越工程師”培養(yǎng)的課程體系和教學(xué)內(nèi)容改革[J].高等工程教育研究,2011(05):1-9.
[3]徐靜.卓越工程師培養(yǎng)計劃下“Java程序設(shè)計”課程改革[J].計算機時代,2013(09):65-66.
[4]白忠建,李巧勤.面向卓越工程師培養(yǎng)的C++教材研究與建設(shè)——兼談C++課程建設(shè)[J].教育教學(xué)論壇,2013(06):193-195.
[5]章義來,葉君耀.C語言程序設(shè)計[M].國防科技大學(xué)出版社,2011.
作者簡介:徐星(1984-),男,博士,副教授;柳炳祥(1966-),男,信息工程學(xué)院書記,博士,教授,碩導(dǎo)。
作者單位:景德鎮(zhèn)陶瓷學(xué)院信息工程學(xué)院,江西景德鎮(zhèn) 333403
基金項目:計算機科學(xué)與技術(shù)省級特色專業(yè)建設(shè)項目;計算機科學(xué)與技術(shù)專業(yè)省級“卓越工程師教育培養(yǎng)計劃”。