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