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