吳麗娟, 吳建軍, 李 柳
(沈陽師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院, 沈陽 110034)
?
《C程序設(shè)計》課堂教學(xué)方法改革創(chuàng)新的探索
吳麗娟, 吳建軍, 李 柳
(沈陽師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院, 沈陽 110034)
通過多年的《C程序設(shè)計》課程及課堂的教學(xué)改革探索,對課堂教學(xué)方法和教學(xué)環(huán)節(jié)的創(chuàng)新進行了歸納總結(jié),提出了“X+3”課堂教學(xué)方法。在課堂教學(xué)中,根據(jù)不同教學(xué)環(huán)節(jié)和教學(xué)內(nèi)容采用不同的教學(xué)方法。首先,采用問題驅(qū)動法引入新知識,使學(xué)生明確學(xué)習(xí)的內(nèi)容和解決的問題,程序舉例法鞏固所學(xué)的知識,遞進式問題驅(qū)動教學(xué)法完成課堂難點和重點的講解,掌握解決問題的方法;然后,歸納總結(jié)與練習(xí)的創(chuàng)新教學(xué)法加強學(xué)生對所學(xué)知識的掌握與理解,鍛煉學(xué)生利用所學(xué)知識分析問題與解決問題的能力;最后,通過習(xí)題課的翻轉(zhuǎn)嘗試教學(xué)法,提升學(xué)生創(chuàng)新探索的能力。通過對課堂教學(xué)環(huán)節(jié)改革創(chuàng)新的問卷調(diào)查和信息反饋,教學(xué)方法得到學(xué)生的認(rèn)可,并取得了良好的效果。
課堂教學(xué); 問題驅(qū)動; “X+3”教學(xué)法; 總結(jié)與練習(xí); 翻轉(zhuǎn)嘗試
《C程序設(shè)計》作為一門計算機程序設(shè)計基礎(chǔ)課程,是沈陽師范大學(xué)物理科學(xué)學(xué)院電子信息工程專業(yè)的必修基礎(chǔ)課,是學(xué)習(xí)本專業(yè)其他課程的前修課程。該課程的概念、語法和規(guī)則較多,語句使用靈活,對于一年級剛接觸編程的學(xué)生是一門較難掌握的課程。
課堂教學(xué)作為課程的關(guān)鍵的教學(xué)單元,其教學(xué)方法的創(chuàng)新改革,直接影響課程的教學(xué)質(zhì)量和學(xué)生的學(xué)習(xí)效果以及創(chuàng)新創(chuàng)業(yè)教育。目前該課程的課堂教學(xué)大多采用傳統(tǒng)的講授式教學(xué)法,教師認(rèn)認(rèn)真真地講完精心準(zhǔn)備的一堂課后,學(xué)生的反饋的信息是“基本理解概念和知識點,但用語句自己編寫程序比較困難”,因此對于計算機語言類課程,課堂教學(xué)方法的改革創(chuàng)新勢在必行。
C語言是一種結(jié)構(gòu)化的程序設(shè)計語言,數(shù)據(jù)結(jié)構(gòu)豐富,語法規(guī)則多,理論、實驗課時有限,要求學(xué)生不僅要掌握數(shù)據(jù)結(jié)構(gòu)、典型算法,還要利用C語言完成程序的設(shè)計編寫, 這么多的教學(xué)內(nèi)容,在有限的課堂教學(xué)內(nèi)完成,教學(xué)任務(wù)是很繁重的。其次,上課學(xué)生人數(shù)多,采用傳統(tǒng)的講授式教學(xué)法很難了解學(xué)生對知識的掌握情況?!禖程序設(shè)計》課程作為學(xué)校的課堂教學(xué)改革的試點課程,課堂教學(xué)的改革創(chuàng)新是課程改革重要部分,經(jīng)過多年的改革與實踐,本文提出了“X+3”課堂教學(xué)方法的改革創(chuàng)新,利用多媒體教學(xué)課件與教學(xué)平臺輔助教學(xué)。
“X+3”方法中的“X”指的是根據(jù)不同教學(xué)內(nèi)容和教學(xué)要求采用的不同教學(xué)方法。如問題驅(qū)動法、案例法、翻轉(zhuǎn)嘗試法、啟發(fā)式、應(yīng)用舉例法、實驗對比法、遞進案例法等。方法中的“3”指的是問題驅(qū)動教學(xué)法、歸納練習(xí)和課堂翻轉(zhuǎn)教學(xué)法。
問題驅(qū)動教學(xué)法,就是在教學(xué)過程中教師根據(jù)教學(xué)內(nèi)容設(shè)置問題,將問題作為知識講解的載體,將新知識點融入問題中,讓學(xué)生主動思考問題的解決方法,并在解決過程問題中講解知識點,將問題貫穿整個課堂教學(xué)過程的教學(xué)方法。
由于《C程序設(shè)計》課程的基本概念較多,語法、數(shù)據(jù)結(jié)構(gòu)復(fù)雜,算法較難,在教學(xué)過程中,在課堂上通過問題教學(xué)法可以提高學(xué)生的注意力,課堂氣氛活躍,有利地調(diào)動學(xué)生思維的積極性和主動性,充分體現(xiàn)學(xué)生的主體地位。
問題驅(qū)動教學(xué)法可以利用課堂提問的方法,調(diào)動學(xué)生去思考問題;或者使用演示運行結(jié)果的方法,使學(xué)生因為看到運行結(jié)果而引起探索問題的原因;或者使用改錯的方法,讓學(xué)生思考錯誤的原因,從而掌握所學(xué)知識。
歸納練習(xí)和課堂翻轉(zhuǎn)教學(xué)法,對于課堂新知識點的教學(xué)過程可分為:1)教授過程,使學(xué)生掌握新知識的概念和應(yīng)用;2)歸納過程,即對本節(jié)課所學(xué)的知識進行歸納總結(jié),找出難點和重點;3)練習(xí)過程, 根據(jù)本節(jié)課所學(xué)的知識和應(yīng)用舉例,進行基本概念和知識提升的練習(xí),在做練習(xí)的過程中,學(xué)生對所學(xué)的知識進行鞏固,達到自主學(xué)習(xí)的目的。教師檢查,從中發(fā)現(xiàn)學(xué)生對知識的掌握情況,及時補充講解,使學(xué)生對本節(jié)所學(xué)的知識進行充分的理解和掌握;4)在習(xí)題課中采用課堂翻轉(zhuǎn)嘗試教學(xué)法,以學(xué)生為主體,教師為學(xué)生提供嘗試環(huán)境試題,讓學(xué)生獨立思考,探索創(chuàng)新。
《C程序設(shè)計》課堂教學(xué)環(huán)節(jié)包括復(fù)習(xí),回顧上節(jié)內(nèi)容;新知識的引入,詳細(xì)講解新知識點,應(yīng)用舉例;歸納總結(jié)與課堂練習(xí)等。根據(jù)各階段不同的教學(xué)要求,采用不同的教學(xué)方法。
2.1 問題驅(qū)動法引入新知識
引入新知識時,教學(xué)目標(biāo)是充分調(diào)動學(xué)生的學(xué)習(xí)積極性,明確學(xué)習(xí)的內(nèi)容,思考如何解決問題,掌握知識點。
例如從如何解決以下問題入手,引入循環(huán)結(jié)構(gòu)新知識點:1) 輸入全班90個學(xué)生的成績;2) 求100個整數(shù)和;3) 查找90個學(xué)生中C成績的最高分;4) 統(tǒng)計一組數(shù)中素數(shù)的個數(shù)。本章教學(xué)內(nèi)容比較簡單,教學(xué)時間較短,只需點到“要學(xué)什么,怎么實現(xiàn)”就可以。
例1 求100個整數(shù)和的求解。其代碼如下:
for(i=1;i<100;i++)
sum=sum+i;
教師列舉需要編程解決的問題,并進行算法分析,寫出程序流程圖和算法的主要語句,講解所用到的新的知識內(nèi)容,實現(xiàn)循環(huán)控制,分析循環(huán)控制注意的關(guān)鍵問題。選取的案例應(yīng)圍繞教學(xué)重、難點,程序簡潔,內(nèi)容接近學(xué)生原有知識和能力,具有一定的應(yīng)用性和趣味性。充分激發(fā)學(xué)生的好奇心和求知欲,使學(xué)生產(chǎn)生學(xué)習(xí)的動力。
2.2 程序舉例法鞏固新知識
程序舉例鞏固新知識點,解決實際問題。在課堂教學(xué)階段,教學(xué)目標(biāo)是要學(xué)生熟練掌握C語言的語法知識點和典型算法的設(shè)計。
案例1 判斷n是否是素數(shù)[9]
#include
void main()
{
int n,i,k;
scanf(″%d″,&n);
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>=k+1)
printf(″%d is a prime number ″,n);
else
printf(″%d is not a prime number ″,n);
}
語法知識點:for(; ;)語句的使用語法;
算法設(shè)計:判斷素數(shù)的算法。
在計算機語言學(xué)習(xí)過程中,編寫程序要解決的問題一般都是簡單的數(shù)學(xué)問題,學(xué)生對問題本身都是清楚的,但如何使用計算機編寫程序來解決問題對初學(xué)者來說是一個難點,如果只是簡單的程序講解,學(xué)生會感覺平淡而失去學(xué)習(xí)興趣,無法很好地掌握語句的使用和程序設(shè)計的精髓。
判斷素數(shù)的算法是本課中最典型的算法之一,其難點是for(; ;)語句循環(huán)結(jié)束后,循環(huán)控制變量i值的變化情況,就此問題在課堂上讓學(xué)生進行思考,i值在什么情況下n是素數(shù)?將所學(xué)的新知識點融入到問題中,以程序為載體,講授知識點;問題作為驅(qū)動,理解for語句在程序中的應(yīng)用;分析程序,給出運行結(jié)果,學(xué)生閱讀程序后,明確所學(xué)的知識內(nèi)容,掌握語句的初步使用和算法的設(shè)計思想。
2.3 遞進式問題驅(qū)動法解決難點
遞進式問題驅(qū)動完成課堂難點的講解。指針一章是本書的難點,利用已學(xué)的知識引導(dǎo)學(xué)生分析案例,討論問題的解決方法,遞進式提問,環(huán)環(huán)緊扣,引導(dǎo)學(xué)生分析并解答問題,掌握課堂的難點。
案例2 返回值指針值得函數(shù)
學(xué)生在上機實驗中用數(shù)組的方法實現(xiàn)了求10個學(xué)生5門功課的平均分,并且要排序平均分。
#define N 10
#define M 5
float a_stu[N];
void aver_stu(float score[10][5])
{int i,j;
float s;
for(i=0;i {s=0; for(j=0;j s+=score[i][j]; a_stu[i]=s/5.0;} } 案例分析3 #define N 10 #define M 5 float *aver_stu(void) {int i,j; float s; float a_stu[N]; for(i=0;i {s=0; for(j=0;j s+=score[i][j]; a_stu[i]=s/5.0; } return a_stu; } 案例1實驗的目的是要求學(xué)生掌握函數(shù)的定義和全局變量的使用,所以在實驗中每個學(xué)生的平均分是用全局變量定義。在講到函數(shù)返回值是指針時,在本實驗的基礎(chǔ)上提出問題:如果每個學(xué)生的平均分不用全局變量,如何將在函數(shù)中求得的所有學(xué)生的平均分如何帶回到主調(diào)函數(shù)中?函數(shù)的返回值是什么? 學(xué)生自主思考后教師給出提示:數(shù)組的名字代表什么?函數(shù)的返回類型如何定義? 由此引出函數(shù)返回值為指針類型,給出返回值為指針類型的函數(shù)的定義,學(xué)生參與思考和逐步遞進式的案例分析3,學(xué)生掌握了本課的主要知識點,然后給出舉一反三的實踐練習(xí)題,鞏固本課堂所學(xué)知識。 2.4 歸納練習(xí)法掌握知識點 課程總結(jié)時,對本節(jié)課的知識點進行歸納總結(jié),在此基礎(chǔ)上針對所學(xué)的新知識點進行練習(xí),對C課程,主要掌握新語句的語法和功能,以及解決實際問題的應(yīng)用。所以課堂練習(xí)題有基本概念的掌握和應(yīng)用2部分,首先由教師給出課堂練習(xí)題,題目要具備全面性、完整性、覆蓋新的知識內(nèi)容和已學(xué)過的知識,從基本概念題到綜合應(yīng)用題,難度要適中,由淺入深引導(dǎo)學(xué)生分析、討論,給出答案,歸納總結(jié)所用到的知識點。 在完整的案例分析之后,借鑒遞進式教學(xué)法的思想,對練習(xí)題進一步擴展,增加難度,舉一反三,啟發(fā)學(xué)生對案例進一步完善。 1) 循環(huán)結(jié)構(gòu)語句語法的實踐練習(xí)案例 以下程序段中do-while循環(huán)的結(jié)束條件是( ) int n=0,i; do { scanf(″%d″,&i); n++; }while(p!=567 &&n<3); A) i的值不等于567或者n的值小于3; B) i的值等于567或者n的值大于等于3; C) i的值不等于567并且n的值小于3; D) i的值等于567并且n的值大于等于3; 2) 循環(huán)結(jié)構(gòu)階乘算法的實踐練習(xí)案例 編寫程序,求5! #include void main() {int t=1,i=2; do {t=t*i; i++; } while(i<=5 ); printf(″t=%d″,t); } 3) 所學(xué)知識點的綜合實踐案例 有如下程序 #include #include void main() { int n1=0,n2=0; char c; for( ;(c=getchar())!= ′#′; ) switch(c) {case ′a′ case ′h′: default: n1++; case ′0′: n2++; } printf(″%d,%d
″,n1,n2); } 如果從鍵盤上輸入china#〈回車〉,則程序運行結(jié)果為( ) A) 5,5 B) 5,0 C) 6,6 D) 2,0 通過練習(xí)鞏固所學(xué)的內(nèi)容,使學(xué)生掌握分支、循環(huán)結(jié)構(gòu)控制語句語法和應(yīng)用。在練習(xí)過程中充分調(diào)動學(xué)生的積極性與主動性,讓學(xué)生“邊練邊學(xué)”,進一步提高學(xué)生對基本概念和語法規(guī)則的理解和掌握,使學(xué)生更加深刻的理解課堂講解中沒有掌握的知識點,并將學(xué)到的知識轉(zhuǎn)化為編程的能力,使不同程度的學(xué)生都能在此教學(xué)環(huán)節(jié)得到提高,達到課堂所學(xué)知識在本節(jié)課就能消化掌握的目的。 由簡到難的遞進式課堂練習(xí),滿足了不同程度學(xué)生學(xué)習(xí)的要求,可以幾個同學(xué)一起討論,互相幫助,互相解答疑問。在典型習(xí)題的分析過程中,要求學(xué)生積極參與,充分挖掘?qū)W生自主學(xué)習(xí)的能力和學(xué)習(xí)信心,培養(yǎng)學(xué)生實踐創(chuàng)新能力,同時倡導(dǎo)學(xué)生要具有團隊合作精神,因此,歸納總結(jié)與練習(xí)是課堂教學(xué)必不可少的教學(xué)環(huán)節(jié)。 2.5 翻轉(zhuǎn)嘗試教學(xué)法提升學(xué)生創(chuàng)新能力 課堂翻轉(zhuǎn)嘗試教學(xué)一般用于習(xí)題課中。該教學(xué)法以學(xué)生為主體,教師為學(xué)生創(chuàng)建嘗試條件和試題,為學(xué)生的嘗試活動提出任務(wù),學(xué)生在所學(xué)的知識的基礎(chǔ)上,用“七分熟”的舊知識創(chuàng)新學(xué)習(xí)“三分生”的新知識。試題包含新舊知識的連接點和探究性,能夠調(diào)動學(xué)生學(xué)習(xí)探索新問題的興趣。 案例4 求3*3矩陣的對角線元素的和 解答1 #include void main() {int a[3][3],sum=0; int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(″%d″,&a[i][j]); for(i=0;i<3;i++) sum=sum+a[i][i]; printf(″sum=%6d
″,sum); } 解答2 #include〈stdio.h〉 void main() {int a[3][3],sum=0; int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf(″%d″,&a[i][j]); for(i=0;i<3;i++) for(j=0;j<3;j++) if(i==j||i+j==2) sum=sum+a[i][j]; printf(″sum=%6d
″,sum); } 解答1是習(xí)題解答指導(dǎo)書中給出的答案,只求出正方向矩陣對角線元素和,本題作為反轉(zhuǎn)嘗試法教學(xué)的案例,要求學(xué)生自主設(shè)計算法并編寫程序,教師檢查后提出思考討論的問題:思考對角線有幾條?如何判斷對角線上的元素?讓學(xué)生討論判斷條件,并修改完善程序如解答2所示。 通過翻轉(zhuǎn)嘗試教學(xué)法培養(yǎng)學(xué)生分析問題、全面思考的能力,掌握C程序算法的設(shè)計思想,發(fā)展學(xué)生思維,增強學(xué)生的創(chuàng)新能力,也為教師有針對性地重點講解提供信息。 “教學(xué)有法,但無定法”,沒有一種放之四海而皆準(zhǔn)的教學(xué)方法,應(yīng)根據(jù)不同的教學(xué)內(nèi)容、學(xué)生的理解情況,采用不同的教學(xué)方法的組合與創(chuàng)新,形成符合實際的高效教學(xué)方法[9]。 在《C程序設(shè)計》課程的課堂教學(xué)中,通過多年的教學(xué)實踐,將問題驅(qū)動教學(xué),舉例教學(xué),啟發(fā)教學(xué)、遞進式教學(xué)與傳統(tǒng)的講授教學(xué)相結(jié)合,營造了良好的課堂教學(xué)氣氛,激發(fā)了學(xué)生的學(xué)習(xí)興趣,讓學(xué)生在愉快的環(huán)境下學(xué)習(xí),既提高了教學(xué)效率,又培養(yǎng)了學(xué)生獨立學(xué)習(xí)的能力。通過2015級電子專業(yè)79份問卷調(diào)查和信息反饋,對啟發(fā)與講授,講授與互動的3+X教學(xué)方法得到所有學(xué)生的認(rèn)可,并取得了良好的效果。2015級電子專業(yè)79人,在2015—2016學(xué)年第2學(xué)期《C程序設(shè)計》課程期末考試中良好以上占29.5%,不及格率占8.9%,其中包含重修學(xué)生22人,是歷屆學(xué)生中及格率最高的一年。 [1]相方莉.“微課”翻轉(zhuǎn)課堂在高職C語言教學(xué)中的應(yīng)用研究[J]. 中國教育信息化·基礎(chǔ)教育, 2014(20):8-10. [2]劉小晶. 翻轉(zhuǎn)課堂模式在“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)中的應(yīng)用研究[J]. 教學(xué)實踐與教師專業(yè)發(fā)展, 2014(8):105-109. [3]曾明星. 軟件開發(fā)類課程翻轉(zhuǎn)課堂教學(xué)模式研究[J]. 實驗室研究與探索, 2014,3(2):203-206. [4]王蕊,薩娜. C_程序設(shè)計課程的翻轉(zhuǎn)課堂教學(xué)模式研究與實踐[J]. 軟件工程師, 2015,18(3):49-50. [5]韓新才. 高校生物技術(shù)專業(yè)教學(xué)方法改革探索與實踐[J]. 廣東化工, 2008,35(1):118-120. [6]王新光,萬定生,張希偉. 淺談程序設(shè)計語言教學(xué)中工程能力的培養(yǎng)[J]. 吉林大學(xué)學(xué)報(信息科學(xué)版), 2005,23(增刊2):110-112. [7]許淑華. C++程序設(shè)計課堂教學(xué)“X+2"方法探討[J]. 計算機時代, 2014(6):63-65. [8]譚浩強. C程序設(shè)計[M]. 4版. 北京:清華大學(xué)出版社, 2012. [9]張黎寧,苗哲,周宇. 基于多種教學(xué)方法優(yōu)勢互補的《C程序設(shè)計》課堂教學(xué)[J]. 計算機工程應(yīng)用技術(shù), 2008,4(8):2284-2285. Exploration ofCprogramdesignteaching methods reform and innovation WULijuan,WUJianjun,LILiu (College of Physics Science and Technology, Shenyang Normal University, Shenyang 110034, China) The classroom teaching methods and the teaching link innovation are induced and summed up by exploring ofCprogramdesigncourse teaching of many years in the paper. The “X +3” classroom teaching method are put forward. The different teaching methods are used according to the different teaching links and teaching contents in class teaching. At first new knowledge points are introduced by adopting the problem-driven method to make students clear learning content and the problem; the new knowledge are consolidated by the program example, class difficulty and important parts are explained to master the methods of solving the problem by progressive problem-driven teaching method; Then innovation teaching methods of summing up and practice strengthen the students master and understand the knowledge that have studied, and exercise students to analyze and solve problems abilities; Finally improve students’ ability of innovation to explore by flipping class and try teaching model. The teaching method gets the students approved and achieved good results through questionnaire investigation and information feedback. classroom teaching; problem-driven; “X + 3” teaching method; generalization and practice; flipped class and try 2016-06-19。 遼寧省科技廳自然科學(xué)基金資助項目(201102205)。 吳麗娟(1964-),女,遼寧遼中人,沈陽師范大學(xué)教授,博士。 1673-5862(2016)04-0503-06 G642.0 A 10.3969/ j.issn.1673-5862.2016.04.0263 結(jié) 論