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