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