張念魯 青島遠(yuǎn)洋船員職業(yè)學(xué)院
C語(yǔ)言程序設(shè)計(jì)是一門計(jì)算機(jī)專業(yè)重要專業(yè)基礎(chǔ)課程,但讓學(xué)生真正掌握這門語(yǔ)言卻一直是一個(gè)教學(xué)難題。本人多年來(lái)從事C語(yǔ)言程序設(shè)計(jì)課教學(xué)工作,有一定的體會(huì),現(xiàn)將較為成功的教學(xué)方法總結(jié)如下,與同行切磋。
C語(yǔ)言里有很多內(nèi)容孤立講解不易理解,結(jié)合與之相關(guān)聯(lián)的內(nèi)容則有利接受。相當(dāng)一部分教學(xué)內(nèi)容,需結(jié)合計(jì)算機(jī)工作原理才能讓學(xué)生清楚C語(yǔ)言的處理細(xì)節(jié)。為此,要考慮到內(nèi)容關(guān)聯(lián)性,授課中穿插講解。例如:在講授變量定義,要同時(shí)講解內(nèi)存單元和地址知識(shí),指出變量定義的本質(zhì)就是分配內(nèi)存單元,并畫出內(nèi)存分配示意圖。讓學(xué)生清楚不同類型變量所占內(nèi)存單元字節(jié)數(shù)不同,并說(shuō)明計(jì)算機(jī)對(duì)內(nèi)存單元訪問(wèn)根據(jù)地址進(jìn)行。變量名記錄著分配給它的存儲(chǔ)單元地址,且可以通過(guò)&操作符取出,同時(shí)結(jié)合實(shí)例說(shuō)明地址就是指針。有了這些知識(shí)準(zhǔn)備,學(xué)生在學(xué)習(xí)指針內(nèi)容時(shí)就會(huì)更好理解和接受。
C語(yǔ)言內(nèi)涵主要是程序設(shè)計(jì)思想。因此當(dāng)學(xué)生掌握了C語(yǔ)言基本語(yǔ)法知識(shí)后,從順序程序設(shè)計(jì)開(kāi)始,所有內(nèi)容講解和引出可采用“任務(wù)驅(qū)動(dòng)”法。即每單元知識(shí)點(diǎn)都以實(shí)例引入。首先分析列出解決問(wèn)題的思路即算法,對(duì)于算法的每一步都用相應(yīng)的語(yǔ)句實(shí)現(xiàn),若用現(xiàn)有知識(shí)不能解決,便引入新的知識(shí)點(diǎn)并結(jié)合實(shí)例講解相關(guān)內(nèi)容,直至整個(gè)程序的全面實(shí)現(xiàn)。相應(yīng)實(shí)例的選用基本是生活中能夠?qū)嶋H用到或與課程設(shè)計(jì)相關(guān)的問(wèn)題。第三、解決問(wèn)題要用到輸出和輸入語(yǔ)句是新內(nèi)容,分別進(jìn)行講解,最后給學(xué)生講清楚交換的思想后就可以寫出完整程序,新知識(shí)學(xué)習(xí)變成一個(gè)很自然的過(guò)程。又如對(duì)結(jié)構(gòu)體內(nèi)容的教學(xué),首先是提出任務(wù),處理學(xué)生綜合測(cè)評(píng)信息;然后分析任務(wù),需要存放學(xué)生信息引入構(gòu)造結(jié)構(gòu)體定義;其次分析算法后講解結(jié)構(gòu)體的處理方法。這樣,在解決問(wèn)題過(guò)程中就已經(jīng)融入了結(jié)構(gòu)體部分所有知識(shí)點(diǎn),并且引入typedef的內(nèi)容。
在教學(xué)中,學(xué)生思維方法的培養(yǎng)最為關(guān)鍵。C語(yǔ)言解決的問(wèn)題種類并不太多,常用的算法也限,故掌握不同類型問(wèn)題的解決方法尤為重要。如,很多程序都要求一批數(shù)的和,這類問(wèn)題就兩種循環(huán)算法:一是先產(chǎn)生一個(gè)加數(shù)項(xiàng),累加到累加器中;另一種是先累加一個(gè)加數(shù)項(xiàng),再產(chǎn)生下一個(gè)加數(shù)項(xiàng),并通過(guò)1+2+3+4+…+100經(jīng)過(guò)多次修改變換,最終變成求∏=(1-1/3+1/5-1/7+…)/4的題目。算法相同,程序也是稍做修改而得,學(xué)生解決這類問(wèn)題就變得相對(duì)簡(jiǎn)單。又如,講解對(duì)數(shù)組的處理問(wèn)題時(shí),采用畫內(nèi)存單元分配圖的方法,讓學(xué)生了解到算法如何貼近生活、并非是憑空想象。
教學(xué)生使用通用函數(shù)設(shè)計(jì),建立自己的庫(kù)函數(shù),節(jié)省編程時(shí)間。講解數(shù)組部分內(nèi)容時(shí),大量題目需要講解,例題講解采用自編通用數(shù)組輸入和輸出,程序全部采用函數(shù)實(shí)現(xiàn)以節(jié)省時(shí)間。這樣主程序就成為輸入數(shù)組、輸出數(shù)組、處理數(shù)組、輸出數(shù)組的樣式。每一題目只需要編寫處理數(shù)組的部分,節(jié)省出大量時(shí)間用于分析算法。
有些學(xué)生接受能力較強(qiáng),對(duì)本課程學(xué)習(xí)很有興趣,這些同學(xué)會(huì)起到了很好的示范作用。對(duì)這些同學(xué)給予單獨(dú)指導(dǎo),讓他們跟著老師做指導(dǎo)幫助其他同學(xué)。他們意識(shí)到幫同學(xué)和自己對(duì)本課程學(xué)習(xí)相得益彰,積極性得以充分調(diào)動(dòng)。發(fā)揮他們的作用可幫助其他同學(xué)解決很多本課程的學(xué)習(xí)問(wèn)題。
抓好實(shí)踐教學(xué)環(huán)節(jié)。學(xué)習(xí)C語(yǔ)言,上機(jī)調(diào)試實(shí)驗(yàn)最為重要。所有的編程題目都要求學(xué)生通過(guò)上機(jī)調(diào)試后才以作業(yè)形式上交。教學(xué)中所使用的實(shí)驗(yàn)指導(dǎo)書(shū)不含參考程序,實(shí)驗(yàn)題目全部和課堂所講例題相似,學(xué)生找不到參考答案,必須自己編寫。每次上機(jī)時(shí)都抽查題目準(zhǔn)備和完成情況并做記錄。所以每次實(shí)驗(yàn)學(xué)生都會(huì)精心準(zhǔn)備、認(rèn)真調(diào)試,學(xué)習(xí)效果自然提升。
考核辦法要確保學(xué)生重視每個(gè)環(huán)節(jié)。本課程考核采取形成性考核方式,課程設(shè)計(jì)成績(jī)單列,分?jǐn)?shù)比例為:課程總評(píng)成績(jī) =平時(shí)考試(30%)+期末考試成績(jī)(70% ),平時(shí)成績(jī)由平時(shí)表現(xiàn)、作業(yè)和上機(jī)實(shí)驗(yàn)構(gòu)成;期末成績(jī)由理論和編程構(gòu)成,采用上機(jī)考試方式 。形成性考核具體內(nèi)容及評(píng)分標(biāo)準(zhǔn)為:平時(shí)學(xué)習(xí)表現(xiàn)和期末考試按比例生成。
加分項(xiàng)目:正確回答問(wèn)題一次加 2分,主動(dòng)回答問(wèn)題一次加5分,在課堂上能起積極引導(dǎo)作用加5分,主動(dòng)演示程序加5分。
作業(yè)( 100分):作業(yè)保質(zhì)保量完成滿分,缺一次作業(yè)扣6分,出現(xiàn)拼寫等粗心導(dǎo)致的錯(cuò)誤每個(gè)扣一分,出現(xiàn)語(yǔ)法錯(cuò)誤每個(gè)扣2分。
上機(jī)實(shí)驗(yàn)( 100分):( 1)準(zhǔn)備題目得20分,上機(jī)前認(rèn)真準(zhǔn)備題目,缺一次扣2分;(2)按題目單要求,完成一題目得 2分,所有程序全部調(diào)試通過(guò)、功能實(shí)現(xiàn)得60分;(3)實(shí)驗(yàn)報(bào)告完整規(guī)范得20分;報(bào)告中有源程序清單的15分,說(shuō)明在程序編制中的難點(diǎn)及解決辦法得5分。
C語(yǔ)言教學(xué)必須做到因材施教,本文探討的教學(xué)方法均來(lái)自于本人教學(xué)實(shí)踐,在針對(duì)本院學(xué)生的教學(xué)中取得了顯著的教學(xué)效果。
[1]陳廣紅.C語(yǔ)言程序設(shè)計(jì)[M].武漢大學(xué)出版社,2014
[2]Peter Van Der Linden著.徐波譯.C專家編程[M].人民郵電出版社,2002