曾奕煥


任務驅動法是小學圖形化編程教學中最常用的教學方式,通過創設場景,引導學生利用和整合所學的基礎知識模塊去探索并提出解決任務的方案。但是,沒有經過訓練的學生總是有什么想法就直接上手拖拽積木,結果導致程序雜亂無章,思維混亂。在整個教學過程中,如何讓學生在面對問題時能自主思考、理清思路呢?這就需要教師在前期教學中下功夫,培養學生良好的思維習慣。良好的思維習慣的養成少不了對學生計算思維的培養。下面,筆者以游戲“猜拳游戲——人機戰”為例,闡述如何剖析軟件,做到在小學編程教學中培養學生的計算思維。
● 尋角色,關聯行為
在實際教學中可以發現,學生設計游戲時,總是想到什么角色就直接在程序中添加相關的積木,一旦游戲中的角色變多,整個程序就會變得冗雜,導致最后學生會放棄整個游戲的創作。因此,在程序創立初期,教師可以讓學生先篩選角色,如果背景有動作,也應該添加進來。同時,分析每個角色的行為,并且做到盡可能詳細,做到不錯漏。畫思維導圖是一個不錯的選擇,能讓學生理清思路,如圖1所示。
● 排順序,關聯事件
游戲的角色和行為是獨立的,但是可以通過事件積木將它們關聯起來。教師可以讓學生思考:哪些事件是同時發生的?哪些事件是有先后順序的?哪些事件是重復發生的?這些都涉及學生對程序的三種結構“順序”“分支”和“循環”的思考。例如,在“猜拳游戲——人機戰”中,學生需要思考“計算機”和“人類”這兩個角色的猜拳先后順序,需要思考猜拳的局數如何循環,需要思考猜拳勝負結果出來后的勝負造型的展示,如圖2所示。
● 依算法,搭建積木
學生在設計游戲流程圖的時候,已經初步構想了游戲創作時所涉及的積木,但是流程圖中具體的某些事件還需要構造算法。學生處于具體運算階段,計算思維和邏輯較為模糊,教師應該引導學生針對某些復雜的事件做具體的分析,盡量將思路、算法寫下并補充細節。
例如,在“猜拳游戲——人機戰”中,由于勝負情況較多,學生在搭建積木時容易混淆錯漏,教師可要求其將所有情況羅列出來。需要注意的是,每一種情況都跟角色的造型編號綁定,所以應該將對應編號寫出來,如圖3所示。
● 簡模塊,優化算法
在學生初步完成程序之后,游戲能正常運行了,但是角色的行為和動作涉及的算法可不可以更高效?程序中復雜的模塊可不可以簡化?這些都需要學生去思考。在優化算法這個環節可以開展小組合作探討,小組成員交流之后挑選最優算法。例如,在“猜拳游戲——人機戰”中,由于需要保留計算機造型的編號進行勝負判斷,所以學生新建列表“計算機造型”進行存儲。但是小組討論優化算法后,直接使用“隨機數”進行判斷,如圖4、圖5所示。
● 找錯誤,修正程序
程序的算法進行了優化,還需要對游戲進行測試。修正游戲中的錯誤,是對學生思維和邏輯的一個很大考驗,它要求學生學會尋找和測試臨界值,還要求學生在面對程序錯誤時學會轉變思路去修正。這個環節是學生最喜歡的環節,找出程序中的bug并對游戲進行修正,能讓學生很有成就感。此時,教師可以引導學生進行成員之間的競爭,看誰找的bug最多。
● 再創造,創新游戲
課堂最有趣的地方,一是師生對話時學生富有想象力的答案,二是學生模仿教師的作品時讓人眼前一亮的再創造。如果一節課能讓學生轉變——從等待教師的答案到自己尋找答案、從模仿教師的作品到創造自己的作品,那么這節課就是成功的。在每節課結束時,教師除了對知識點進行總結,還要引導學生創造屬于自己的作品:教會學生防火的游戲,就要引導學生自己做防溺水的作品;教會學生做單機的游戲,就要引導學生自己做出聯機的作品。例如,結束“猜拳游戲——人機戰”后,學生做出了游戲“猜拳游戲兩人PK”,圖6為部分代碼。
● 結語
小學信息技術學科的核心在于培養學生的信息素養,而計算思維是重要的組成部分,圖形化編程作為有效培養學生計算思維的方式,正日益受到重視。要想高效地開展圖形化編程教學,教師需要根據學生特點,選擇合適的教學策略,教會學生剖析軟件,細化流程,優化算法,尋找錯誤,創新游戲,讓學生在樂中學、學中樂。