吳敏
程序設計對于初中生而言,是一門比較難理解、需要花時間的課程。在學習的過程中,學生往往會因為內容比較枯燥、上機時間短而錯誤百出,對程序設計的學習失去信心,甚至從一開始就產生畏懼心理,影響課堂學習效果。初中階段的程序設計學習,主要難度在于熟悉程序設計的思想,為高中程序設計的學習打下扎實的基礎。因此,程序設計教學中如何引導學生正視出現的錯誤、充分利用錯誤資源提高自己的學習效果,值得每一位信息技術老師深思。
一、正視錯誤、巧用工具,避免簡單錯誤重復化
利用記事本文件,隨時記錄錯誤。在程序設計入門之初,學生所犯的錯誤多為語法或忘記聲明變量等低級錯誤,而這些錯誤直接影響學生后期程序設計的深入學習。如果單純地講授語法知識會比較枯燥,且不利于學生記憶掌握,因此我們可以將語法知識滲透在編程過程中。對于調試中出現的語法錯誤,可以利用記事本文件拷貝下來,比如C++程序設計中,學生會經常出現缺少分號、括號不成對等錯誤。通過記事本文件的記錄,學生會發現很多錯誤是一樣的,對于那些經常出現的錯誤,可以把錯誤情況做成提醒,從而避免簡單錯誤重復化。
在程序設計的各個階段,學生犯的錯誤往往會不一樣。可以讓學生小組討論某一階段主要面臨的重難點問題,針對重點問題,強化練習,全班討論,逐個擊破。
二、巧用錯誤、加深體驗,提升學生信息編程思維
1. 將學生的常見錯誤滲透在教學演示中,讓學生學會糾錯。在程序設計學習過程中,學生的錯誤很多是有共性的。教師在上課的過程中,要充分考慮學生可能犯的錯誤,將學生經常出現的錯誤滲透在教學演示過程中。比如,在編程過程中,經常會用到替身變量,但剛開始,學生往往會忘記替身變量的聲明;教師可在教學過程有意地出錯,讓學生糾錯,以加深學生對變量的理解;還有一些簡單的容易忘記的語法錯誤,在演示過程中時不時地出現幾次,可以讓學生明白錯誤有時難以避免,對于錯誤,要積極地解決。
2. 體驗錯誤帶來的意想不到的價值,在編程中敢于“犯錯”。在編程過程中,學生經常會出現意想不到的錯誤,由此帶來意想不到的運行結果。這些錯誤產生的原因不是學生上課不認真聽講,而是學生真正去認真思考了但是思考的過程中可能有不全面的地方。這類錯誤是學生學習、教師教學過程中珍貴的學習資源。我們要善于發現此類錯誤并能及時地利用其開展延伸教學。比如,將此類問題設置成程序糾錯題,讓學生在糾錯過程中學會讀程序、分析算法,加深對算法的理解,體現錯誤的價值。
3. 以小組力量收集有價值的錯誤,建立錯誤共享資源庫。程序設計除了需要學生邏輯思維嚴謹,還需要學生有大膽的實踐創新思維。我們要鼓勵學生正確對待編程過程中出現的錯誤,而不是把錯誤藏起來。因此,可以定期組織學生交流自己的錯誤記事本,在小組探討的基礎上提出一些有價值的思路,建立共享錯誤資源庫。學生可以查看其他同學的錯誤情況,比對自己相似的錯誤,提醒自己避免錯誤重復化;對于自己還沒有出現過的錯誤,思考一下其中的具體原因,采取應對措施,預防出現此類錯誤。
三、錯中思辨,在錯誤中尋找正確、在正確中尋找錯誤
在錯誤中尋找正確,在正確中尋找錯誤,可以幫助學生錯中思辨,建立強大的算法思維。編程過程中,寫完程序代碼編且程序可以順利運行,但是運行結果全是錯誤的,這樣的錯誤往往是由于算法出現了錯誤而導致的。雖然說運行結果不是起初的設想,但是也有可能是解決該問題的另一種方法,對于這種錯誤,我們可以鼓勵學生進行小組探究,在討論中找出錯誤的地方并進行問題的歸納,探究產生錯誤的原因,真正理解編程過程中的程序思想,對這種問題的探究有利于學生算法思維的培養。例如,在C++程序中打印三角形圖案程序,行列變量i、j的變化可以產生不同的排版效果,教師可以鼓勵學生大膽“犯錯”,在錯誤中思辨,從而真正領會程序中各個變量的功能,融會貫通,實現從無意識地打印出某種圖形到有目的地完成各種圖形的打印。
在程序設計中,沒有絕對的錯誤,也沒有絕對的正確。我們要鼓勵學生從錯誤中吸取經驗,培養學生從正確中反思問題。程序設計過程中,算法并不是唯一的,不同的算法,運算效率相差懸殊,因此,面對看似正確的程序,我們要引導學生同題異構,可以通過設計運算次數變量分析程序的運行效率,借助小組探究,互相促進、提高。
總之,編程學習中的錯誤是難免的,但并不可怕,錯誤有時也是學生思維的火花,教師如果能夠引導學生正確面對、有效利用,“錯誤”產生的思維火花也可以在算法思維的培養中“燎原”。
(作者單位:江蘇省蘇州市吳江區蘇州灣實驗初級中學)
責任編輯:王 燕