第一篇:《C語言程序設(shè)計》教學的幾點體會
《C語言程序設(shè)計》教學的幾點體會.txt我不奢望什么,只希望你以后的女人一個不如一個。真懷念小時候啊,天熱的時候我也可以像男人一樣光膀子!《C語言程序設(shè)計》教學的幾點體會
《C語言程序設(shè)計》是我系各專業(yè)的必修課程,也是我校非計算機專業(yè)開設(shè)的程序設(shè)計課程之一。作為計算機類的專業(yè)基礎(chǔ)課,目的是使學生掌握程序設(shè)計的基本方法并逐步形成正確的程序設(shè)計思想,能夠熟練地使用C語言進行程序設(shè)計并具備調(diào)試程序的能力,為后繼課程及其他程序設(shè)計課程的學習和應(yīng)用打下基礎(chǔ)。對于非計算機專業(yè)來說,該課程有實際應(yīng)用價值,為用計算機解決實際問題提供了方法,是后續(xù)理論和實踐教學的基礎(chǔ)和重要工具,同時也是計算機二級考試所統(tǒng)一要求的課程之一。
筆者多年來為從事高級語言程序設(shè)計教學與實習,結(jié)合國內(nèi)外優(yōu)秀編程語言的教學方法和模式,不斷地總結(jié)和積累經(jīng)驗并運用于教學實踐之中,取得了較好的教學效果,有助于學生在有限的教學時間內(nèi),以最快最簡單易懂的方式,扎實地掌握C語言的內(nèi)容,并能運用自如。
下面是筆者在C語言教學中的一點體會,僅供大家參考。
培養(yǎng)興趣
恩格斯說“興趣與愛好是最好的老師”。為了使初學者能盡快地掌握計算機知識,進入計算機的應(yīng)用領(lǐng)域,在課程講授過程中,要特別注意培養(yǎng)學生的學習興趣。初接觸計算機時,很多學生感到新奇、好玩,這不能說是興趣,只是一種好奇。隨著課程的不斷深入,大量的規(guī)則、定義、要求和機械的格式出現(xiàn),很容易使一部分(甚至是大部分)學生產(chǎn)生枯燥無味的感覺。為了把學生的好奇轉(zhuǎn)化為學習興趣,授課時我們改變過去先給出定義和規(guī)則的講授辦法,而是從具體問題入手,努力把枯燥無味的“語言”講的生動、活潑。
在第一節(jié)課上,就給學生找一些《高等數(shù)學》、《線性代數(shù)》等已學課程的問題,用算法語言來求解,使學生體會程序設(shè)計的用途和一種全新的解決問題的方法。在課程的進行中,引導(dǎo)學生學一種算法,就嘗試在同行課程中應(yīng)用。我們還經(jīng)常介紹一些趣味性算例,如: “菲波納契兔子問題”、“水仙花數(shù)”、“競賽記分”等,培養(yǎng)學生的學習興趣,讓大家積極主動、自覺獨立地獲取知識,打好學習程序設(shè)計語言的基礎(chǔ)。整個教學過程中應(yīng)該把解題思路、方法和步驟(即“算法”)當作授課的重點,從而讓學生明白如何分析并解決實際問題,逐漸培養(yǎng)學生進行程序設(shè)計的正確思維模式。
循序漸進
絕大部分學生是第一次接受計算機語言,“通俗性、可接受性”的教學原則同樣適合于這門課的教學。在課程講授過程中,我們沒有把重點放在語法規(guī)則的敘述上,而是放在算法和程序設(shè)計方法上,通常由幾個例題引出一種語法規(guī)則,通過一些求解具體問題的程序來分析算法,介紹程序設(shè)計的基本方法和技巧,既注重教材的系統(tǒng)性、科學性,又注意易讀性和啟發(fā)性。從最簡單的問題入手,一開始就介紹程序,要求學生編寫程序,通過反復(fù)編寫、運行程序來掌握語言的規(guī)定和程序設(shè)計的方法。同一個語法規(guī)則、同一種算法,在選擇例題時也是由簡到難,逐步呈現(xiàn)給學生。在學習上不要求學生死記語法規(guī)則,而是要求學生能把各個孤立的語句組織成一個有機的、好的程序。注意培養(yǎng)學生良好的編程風格,讓學生在編制程序過程中不斷總結(jié)、鞏固,達到學會方法、記住語法規(guī)則,提高設(shè)計技巧的目的。
以“菲波納契兔子問題”為例,在基本程序設(shè)計部分,可以啟發(fā)學生使用循環(huán)語句,利用變量的交替賦值實現(xiàn)。
main(){ long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){ printf(“%12ld %12ld”,f1,f2);
if(i%2==0)printf(“n”);/*控制輸出,每行四個*/
f1=f1+f2;/*前兩個月加起來賦值給第三個月*/
f2=f1+f2;/*前兩個月加起來賦值給第三個月*/ } }
而在數(shù)組部分,可以啟發(fā)學生采用直接的數(shù)組元素賦值來解決。
main(){ long fib[20];fib[1]=1;fib[2]=1;for(i=1;i<=20;i++){ printf(“%12ld”,fib[i]);
if(i%4==0)printf(“n”);/*控制輸出,每行四個*/
fib[i+2]=fib[i]+fib[i+1];/*前兩個月加起來賦值給第三個月*/ } }
這樣,通過對兩種解法的比較和分析,幫助學生更好地掌握循環(huán)語句和數(shù)組的概念。
改進授課方法,實現(xiàn)教學相長
我們要求學生事先預(yù)習,實際上就是要求他們課前自學,講課時以學生預(yù)習過為起點,只講難點、重點、有變化之處,這樣既給了學生思維分析的余地,又節(jié)省課時。這就要求必須精選教學內(nèi)容,注意詳略安排的合理性。在章節(jié)間的授課安排也注意了詳略得當。如在講到“選擇分支結(jié)構(gòu)”,“循環(huán)結(jié)構(gòu)”這些關(guān)鍵性章節(jié)時就講的特別精,使學生做到非常熟練、透徹掌握的程度,而講到“字符處理”章節(jié)時,讓學生做到一般了解即可。課上經(jīng)常找一些設(shè)計技巧比較好、解題思路比較精的例題讓學生自己“讀程序”,找出精妙之處或不理解之處,對普遍性的問題共同講解,個別問題課后解答。
我們有意地設(shè)置一些不同深淺的筆誤或口誤,馬上讓學生肯定對與錯,以考查學生注意力集中的程度,提高他們的敏銳性和判別能力。對有些問題,給出一種程序設(shè)計方法后,讓學生討論,還有沒有其它的程序設(shè)計方法和思路,讓他們發(fā)表意見,提出自己的解題思路編程方法,給學生以表達已見、陳述思路、交流觀點的機會。這就要求老師既有引導(dǎo)又能放開,既有事先的精心備課,又有課堂上的因勢利導(dǎo),同時也可以從學生討論中提出的問題來豐富教材內(nèi)容,受到較好的教學相長的效果。
如講授printf和puts對字符串的處理,我們采用下面的例子進行學習:
#define N 6 main(){char ch[3][4]={“123”,“456”,“78”};int i;for(i=0;i<3;i++){printf(“%s”,ch[i]);puts(ch[i]);} }
結(jié)果是什么?
這個時候?qū)W生就會提出不同的看法,我們可以通過演示得出正確的答案是:
123123 456456 7878
這時我們進行分析,引導(dǎo)學生理解讀取字符串和輸出字符串時對字符串輸出時‘