林偉騰
【摘要】計算思維是21世紀人工智能時代人人都應具備的核心技能之一,而如何有效地培養學生的計算思維是教育界必須關注和思考的問題。在小學階段,信息技術課程中的編程課程是滲透計算思維的重要途徑。在Scratch教學中,以趣味游戲為載體,既提高了學生的學習興趣,又可以讓學生在游戲的編程設計中經歷計算思維的過程。
【關鍵詞】計算思維;趣味游戲;信息技術;Scratch
計算思維是目前國內外各界廣泛關注的一個概念,它是21世紀人工智能時代人人都應具備的核心技能之一。什么是計算思維呢?2006年,美國卡內基·梅隆大學計算機科學系主任周以真教授提出:計算思維是運用計算機科學的思維方式進行問題求解、系統設計、以及人類行為理解等一系列的思維活動。在小學階段,信息技術課程中的編程課程是滲透計算思維的重要途徑。Scratch編程教學中,以學生喜歡的趣味游戲為載體,讓學生在游戲中掌握游戲的設計思路、編程的知識,經歷計算思維的過程,有效培養計算思維。
經過對六年級學生的教學實踐分析,下面以Scratch編程《飛機大戰》為例,探索提出在小學信息技術編程課堂上,通過“思維導圖分解問題——分模塊展示識別模式——繪制程序流程圖形成算法——程序調試”的教學模式,滲透學生計算思維,讓計算思維深入人心。
一、Scratch 游戲《飛機大戰》
曾幾何時,微信內置經典小游戲《飛機大戰》火爆社交圈,刮起一波“全民打飛機”的浪潮。基于Scratch編程開發的《飛機大戰》沿襲了其趣味性和娛樂性,并且具有簡易性,適合小學生模仿設計。
游戲介紹:玩家通過鼠標控制戰機,在躲避迎面而來的敵機時,戰機通過發射子彈打掉敵機來贏取分數,撞上敵機則玩家生命值遞減,直至為零時游戲結束。游戲過程中,玩家打中降落的補給,生命值即可增加。游戲主界面如下圖1。
上課伊始,筆者先與學生討論飛機大戰游戲,并讓學生試玩,引出本節課任務——設計游戲《飛機大戰》。相比玩游戲,制作游戲讓學生們更加躍躍欲試。
二、問題分解,思維導圖來幫忙
將問題分解是計算思維中關鍵的一個環節。在學生明確設計任務后,筆者會讓學生思考游戲的組成,各部分各模塊的功能,嘗試將復雜問題簡易化。對于每一款游戲,引導學生從下面幾個問題思考。
1.該游戲中的主要功能是什么?
2.該游戲由哪幾部分組成,有哪些元素或者模塊?
3.該游戲各元素的功能是什么?
思考討論完上述問題后,筆者會引導學生繪制思維導圖,如圖2。
在思維導圖的幫助下,學生可以清晰地梳理到游戲由五部分組成,并認識到游戲的設計思想,從大功能簡化分解到各模塊、各個具體任務中。經過問題分解的過程,學生策略性和計算性的思維得以發展。
三、模塊展示,挖掘規律,識別模式
在問題導向和思維導圖分解后,學生要解析模塊的規律和趨勢。筆者將準備好的功能模塊及實現方式作展示,組織學生小組討論分析內部規律,找出異同點。
以《飛機大戰》為例,在教師的引導下,學生踴躍反饋,挖掘出以下規律:
1.敵機和補給都是降落的,在頂部位置開始降落;
2.子彈是上升的,直到射中目標或者到達頂部;
3.敵機、子彈和補給數量逐漸增多;
4.存在相應事件處理:敵機爆炸、戰機爆炸、子彈消失等。
綜合以上規律,可以嘗試對敵機、子彈和補給模塊識別模式:
發現模式的能力是可以鍛煉的,在教學上,我們要引導學生挖掘規律,找出異同之處,也可采用韋恩圖進行思維練習。
四、繪制程序流程圖,形成算法
程序流程圖是程序運行具體步驟的描述,也是問題解決的方法、算法的一種描述。畫流程圖的過程實際是思考、設計的邏輯過程,它是算法的梳理,也是計算思維的體現。所以,在小學階段,Scratch編程教學有必要借助程序流程圖來編程。
進入編程設計之前,引導學生繪制程序流程圖。以敵機模塊為例:
在教學中,繪制一個完整的流程圖也許會有困難,教師應注意方式,可以采用填空、模仿等方式由淺入深、由易到難引導學生完成。
完成流程圖,即可在Scratch中搭建對應積木,完成設計,敵機模塊編程如圖4-2。
五、程序調試
在程序運行時出現錯誤,俗稱BUG,是屢見不鮮的事。當出現BUG時,需要調試程序。在教學中,要鼓勵學生,提高學生發現錯誤并修復錯誤的能力,教授學生問題溯源、檢查程序流程圖、分模塊測試、逐行調試等方法,對錯誤逐一擊破。在案例中,學生在運行后就發現了一些問題。如,運行程序時發現沒有敵機,問題出在哪?
既然沒有“敵機”,那么就關注敵機模塊,學生采用逐行調試的方法,發現“敵機”在y坐標180處,即最頂部時,敵機顯示,但后面程序進入分支結構“碰到邊緣”,就刪除了克隆體。如何解決呢?引導學生采用以下兩種方法:一是將“敵機”造型中心點移到“敵機”上方;二是降低y坐標初始值。這樣敵機不會一開始就接觸頂部邊緣,如圖5-1,5-2。
調試是思維再思考、再設計的過程,程序中回溯、調試、糾錯的過程,更是學生不斷進行自我優化和成長的過程,也是計算思維有效滲透的過程。
六、結束語
基于Scratch編程的《飛機大戰》游戲案例教學,以“思維導圖分解問題——分模塊展示識別模式——繪制程序流程圖形成算法——程序調試”為教學模式,學生在玩中學、學中玩,經歷了游戲設計和計算思維的過程,提高了計算思維能力。
在小學階段,教師無法深入講解計算思維,但通過Scratch趣味游戲,結合上述教學模式,引導學生運用計算思維去思考,潛移默化地培養其計算思維,提升其解決問題的自信和能力以及在未來的成長與學習生活中運用計算思維挑戰困難的能力。
參考文獻:
[1]Jeannette M. Wing. Computational Thinking[J].Communications of the ACM,2006,49(3).
[2]劉向永.計算思維改變信息技術課程[J].中國信息技術教育,2013(6).
[3]李曉明,蔣宗禮,王志英等.積極研究和推進計算思維能力的培養[J].計算機教育,2012(5).
[4]黃靜,高延英,楊宇姝.基于計算思維的程序設計課程教學模式研究[J].計算機教育,2013(5).
[5]王益.程序設計教育:現狀、問題與推進策略[J].中國電化教育,2006(12).