錯誤案例教學法在C語言教學的應用論文

錯誤案例教學法在C語言教學的應用論文

  摘要:C語言程式設計是一門為許多高校包括獨立學院的非計算機專業理工系學生開設的一門公共選修課程,其課程設定目標是培養理工類非計算機專業學生的程式設計思維和程式設計能力。筆者基於多年來對“C語言程式設計”課程的實際教學經驗,發現把程式設計錯誤案例進行蒐集和分析以及討論的教學法融入C語言教學中,能讓學生有更好的分析問題、解決問題的能力,並且可以大大提高程式設計效率。

  關鍵詞:C語言程式;程式設計思維;錯誤案例教學法

  1C語言中錯誤型別和產生的原因

  1.1C語言程式中的錯誤分類

  在C語言學習程式設計過程中,一般是三種錯誤,語法錯誤、邏輯錯誤以及執行錯誤。

  (1)語法錯誤:沒有按照語言的規範進行程式設計而產生的錯誤。如缺少標點符號,變數沒有申明,變數型別出錯,函式名稱寫錯等等,這些語法錯誤機器一般會給出提示,比如Error和Warning,在執行的時視窗下會顯示錯誤的個數以及出錯的原因等資訊,很容易被發覺,如果沒有修改則會影響整個程式的執行。

  (2)邏輯錯誤:程式可以正常執行,但是得不到預期的結果。常見錯誤有複合語言的花括號後加分號,輸入輸出的資料型別與所用格式說明符不一致等等。而這樣的邏輯錯執行時候並沒有提示,比較難發現,對於初學者而言比較困難,只有在程式設計中進行系統和全面的考慮才能避免邏輯錯誤。

  (3)執行錯誤:在既沒有語法編譯錯誤,也無語法邏輯錯誤的情況下程式執行時發生的錯誤或者程式會忽然停止執行,比如型別溢位,數字表達式格式有誤,除零錯誤等等。

  1.2程式錯誤解析

  (1)為申明變數或使用一些沒有賦值的自動變數:C語言是一門十分嚴謹的程式語言,必須嚴格遵守變數必須先申明後使用的原則,但是很多初學者沒有養成良好的程式設計習慣就會忘記,直接使用,這樣就會不斷有提示變數未定義的錯誤。

  (2)不區分字母的大小寫:在C語言中,大小寫字母是不同的字元,比如A和a表示的是兩個不同的變數。

  (3)分號的亂用:由於分號是C語言的重要組成部分,比如簡單語句以分號為結束標誌,複合語句是用一對花括號括起來的一組語句,空語句只有一個分號。學生很容易忘記加分號,或者多加分號。

  (4)賦值符號當成“=”使用:在很多人的思維裡面“=”符號是“等於”的關係,如A=36,就認為是左邊的.A等於右邊的36,實際上是把右邊的36賦值給左邊的A,如果學生的思維停留在前者“等於”的關係,就會明顯出現編譯的錯誤。

  (5)資料型別定義錯誤,造成資料的溢位:C語言中的整數資料型別在-32768到32767之間,由於很多時候編寫程式都是用的是inta,b,一些初學者都會預設用int來定義所有的變數,忽略了資料型別的範圍,一旦結果超出了這個範圍,甚至是小數,就會得到不一樣的結果,而這個結果可能在程式的執行並不報錯,也比較難發現。綜上所述,這些錯誤很多都是學習程式的學生沒有養成良好的程式設計習慣而造成,這樣的錯誤防不勝防。只有在錯誤中學習,不斷對錯誤進行分析,才能提高自身的程式設計能力。

  2基於錯誤案例培養的C語言程式設計改革的具體措施

  2.1對錯誤案例進行蒐集和分類

  蒐集錯誤案例是一項艱苦的勞動,需要花費一定的時間和精力。首先教師需要明確C語言課程的所有教學內容,對錯誤案例的蒐集也要有針對性,對於教師的要求就是需要研讀教材,根據教學的物件和教學內容知識點分佈,蒐集實踐教學中記錄的錯誤日誌檔案,進行錯誤案例設計,並對錯誤案例進行評估,記錄學生在分析錯誤案例中遇到的問題和反應,從而擬定相應的教學方案。其次可以讓學生組織興趣小組,大約5-6人一組,這樣可以減輕教師的工作,可以由組長協助教師和組員對於提交的錯誤進行分類和整理,甚至可以按章節按知識點進行分類,因為學生程式設計過程中肯定有很多重複的錯誤,如果一一進行上報和記錄會非常繁瑣,組長只需對錯誤的類別和錯誤的頻率進行記錄,就會很有利的協助教師進行錯誤案例的設計。最後即學生自己的工作,因為真正需要學習實踐的是學生本人,雖然每個組有組長,但是組長同樣也是學生,他(她)的工作是既要保證自己的學習,也要彙總其他組員的學習情況,工作比較繁重,所以最好要求每一個學生自己也準備錯誤日誌筆記本,對自己在實踐練習中出現的問題,涉及到的知識點,疑問,錯誤的原因進行整理和記錄,當然如果學生覺得時間有限,也可以用手機進行拍照,如果能透過翻閱圖書,搜尋網路的方式改正錯誤更好,實在沒有能力改正可以去請教其他組員和教師,這樣更能加深對錯誤的記錄,尤其需要關注程式設計過程中經常出現的典型問題,這類問題可能經過多次除錯也沒有結果,需要加強對待,如果經過大家的幫忙或老師的指導後有瞭解決方案也需要記錄下來,以備下次練習出現相關性問題可以自行解決。

  2.2對錯誤案例進行分析和討論

  透過上面的途徑,教師彙總了課堂教學中的錯誤案例後,就可以進行典型錯誤案例設計,可以在課堂正常教學中穿插講解,比如可以先對學生提出錯誤案例問題,引導學生探索錯誤案例涉及的知識點,疑問,最終的解決方案等等。比如講解選擇結構的錯誤案例程式碼,可以先詢問學生這段錯誤的案例程式碼主要是什麼結構?如果是選擇結構,再從頭到尾分析程式碼的步驟,根據所學流程圖的知識,讓學生根據此段程式碼畫出該程式的簡單流程圖。再透過對流程圖的講解很自然引出選擇結構的語法知識點,並找出該程式碼真正錯誤的原因,最後讓學生列舉出日常生活中涉及到選擇結構即條件判斷的例子。教師還可以根據錯誤的型別在實踐環節中給出相應的錯誤程式碼,讓學生檢驗課堂學習的效果,避免程式設計過程中犯同類錯誤,在更正錯誤的過程中發現積極性,培養良好的程式設計習慣。

  2.3教學效果及評價

  透過在C語言程式課教學中引入錯誤案例學習,既能提高學生自主學習的效率、在實踐中取得了更好的教學效果,也能大大提高學生的程式設計能力,例如,學生在定義陣列的時候容易忽視陣列的個數,可能會錯誤地使用下標的數字,只要教師在錯誤案例中重複申明該類錯誤,學生才會加深記憶,經過強調學生則會避免此類錯誤。透過對上課學生進行匿名問卷調查發現,100%的學生認為採用錯誤案例分析和討論的學習模式比傳統教師課堂填鴨式講授語法知識點的模式更能提高自己的學習能力和學習效率。

  3結論

  想要提高C語言的程式設計能力,以及提高教學效果,可以從錯誤案例的蒐集與分類開始,再引導學生透過錯誤案例分析與討論解決實際問題,理清課程知識體系。錯誤案例教學法的運用有利於學生程式思維的建立,有利於學生程式設計能力的提高,同時對促進教學改革和加強素質教育有著積極的意義。在實際程式設計過程中還有其他的可能性,這需要教師在以後的教學過程中更要留心,更要注意錯誤經驗的積累,所以研究此問題不僅僅可以提高學生的程式設計能力,而且對於教師自身教學技能理論加強也有著重要的實際意義。

  參考文獻:

  [1]餘麗紅,龍諾春,林春景.C語言實踐中易出現的程式設計錯誤及解答[J].數字技術與應用,2014(8):220-221.

  [2]楊冬雲.C語言學習中幾個常見典型錯誤分析[J].電腦知識與技術,2017,13(13):65-66.

  [3]薛非.品悟C:拋棄C程式設計中的謬誤與惡習[M].北京:清華大學出版社,2012.

  [4]於啟紅.案例教學法在程式語言課程中的作用探討[J].計算機時代,2014(11):62-64.


最近訪問