白忠祖


編程思維實際上是一種邏輯思維,是高效解決問題的優化方式,也就是提出問題、分析問題、解決問題的能力。編程思維不僅運用于編寫程序,更能遷移于學習和生活等諸多方面,編程思維較強的學生在學習、記憶、創新能力等這些方面都優于同齡者。
根據皮亞杰認知理論,7~12歲孩子處于“具體運算階段”,可以從具體事物中獲得的表象進行邏輯思維,形象思維開始形成,不僅可以正向去思維,還可以進行反向思維,是培養思維的黃金期。實際上,培養學生邏輯思維在各種各樣的課堂或活動中實現,但通過編程思維訓練使學生的思維更為縝密,邏輯性更強。
scratch編程軟件是圖形化、模塊化的工具,其趣味性較強,不需要記憶代碼,通過對模塊的拖曳完成編程,更適合孩子編程思維的培養。因此,從小學一年級開始就可以介入圖形化編程,培養編程思維。
小學生喜歡信息課,主要是課程的操作性、探究性、實踐性特征,因此在信息技術課中開設scratch編程,非常受學生歡迎。大多學生喜歡游戲,我在六年級課堂中也介入游戲,但不是玩游戲,而是用scratch編寫游戲,要讓學生在“玩中學”“做中學”。當然課堂絕不能以學生的好惡偏離信息技術課程的目標,教師要緊緊抓住培養興趣、養成信息意識、提高解決問題能力等符合學生年齡特點和認知規律的實踐任務實施教學。
我在教學中指導學生編寫“打字母”小游戲時,嘗試以問題分解、模式識別、抽象概括和算法流程的編程思維的過程為基礎,訓練學生的編程思維,收到了不錯的效果。
一、先行感知,積累經驗
創新從來都不是無中生有的,必須在建立在原有認知的基礎上。制作“打字母”小游戲,一方面要對scratch軟件有一定學習基礎;另一方面,要讓學生先行對這種游戲有所了解,也就是讓學生先行玩各種打字母游戲。然后不管這些的游戲用什么語言編寫,學生只考慮用scratch編寫出類似的效果,達到超越自我的創新,發展編程思維,教學的目的就算達到了。
二、提出問題,分解問題
會提問題是一切學習的最佳品質,是學會學習的開始。鼓勵學生將所有困惑轉化成問題提出來,然后再將每一個大問題拆解成許多小的部分。這些小部分更容易理解,讓問題更加容易解決。
但在實踐中,我們發現在分解問題的過程中模式辨識的思維過程一直參與其中,先前經驗不足的學生分解不出有價值的問題。所以,在這個階段小組合作,相互啟發尤為重要。與此同時,我們也能看出,將編程思維的幾個過程完全割裂開來是不現實的,有的學生在問題階段已有整體規劃或具體的程序模塊,這體現出學生模式辨識的水平差異。而教學中讓學生充分提出和分解問題的目的是使他們的思考更為深刻、清晰。
三、模式識辨
從以往的經驗中找到解決此類問題的類似辦法或模式,學生以往解決問題的模式越多,越容易解決問題,或者從以往經驗中得到規律并且舉一反三將它運用到其他的問題中。簡單地說,學會處理這些問題,才是我們學習的核心。學習一定要有它的成長點,在模式辨識的思維活動中,學生也會產生新的問題,面對新問題,學生找不到停靠點時候,教師要慢下進度,組織先行材料,找到解決問題的新方法,納入學生的模式庫中。
四、抽象概括
經過前階段的問題與識辨,學生已經對編寫“打字母小游戲”各方面問題及解決方法有了積累,接下來要啟動抽象思維模式。一方面要從以上信息中找到關鍵點,關注關鍵信息,忽略不必要細節;另一方面,要抽象出這26個字母運行所具有的共同部分,同時還要有所概括,找出那些全局性的內容,并能梳理出基本的過程。通過指導與交流,學生能整理出以下結果:
全局性:隨機模塊控制字母。
字母共同部分:
字母接收到控制信號克隆本體出現。
接收到相應字符鍵刪除克隆體消失。
為變量增加分值。
全局性:變量值達到一定數值轉換場景。
五、算法與測試
算法是一步步解決問題的過程。這一階段最好能要求學生寫出流程,有能力的學生畫出流程圖,也可以直接用語言描述流程。總之,現在一切都要交給學生,開始思考細節,邊編寫邊測試,選擇程序模塊間的最佳組合,使運行流暢,實現功能。學生思維訓練的結果在這一階段能得到基本的檢驗,并且得到深化(附:學生作品)。
總之,在小學信息技術課堂教學中引入圖形化編程并進行編程思維的訓練,不僅豐富了課堂教學內容,而且提升了學生思維的品質,提高了解決問題的能力,增強了自信心。學生學習的熱情和興趣因自由創作而持久濃厚,學生進而創作出“漢字打字游戲”“打臺球”“電子琴”“推箱子”“時鐘”“小貓釣魚”“企鵝大闖關”“七巧板”等令人意想不到的作品。