紀(jì)鑫琰,李鴻科,趙 瑞
(陜西科技大學(xué) 教育學(xué)院,陜西 西安 710021)
計(jì)算思維被認(rèn)為是學(xué)生必備的信息技術(shù)學(xué)科素養(yǎng)之一[1]。國務(wù)院在2017 年印發(fā)《新一代人工智能發(fā)展規(guī)劃》提出,應(yīng)逐步在中小學(xué)日常教學(xué)中推進(jìn)編程教育,開設(shè)人工智能相關(guān)課程[2]。當(dāng)前,我國大部分地區(qū)已經(jīng)開設(shè)了少兒編程課程來培養(yǎng)學(xué)生計(jì)算思維能力,但由于編程教育仍處于發(fā)展階段,仍存在諸多問題亟待解決。
為此,本文提出游戲化編程的教學(xué)方法提升學(xué)生編程教學(xué)體驗(yàn),培養(yǎng)學(xué)生計(jì)算思維。
現(xiàn)階段,培養(yǎng)學(xué)生計(jì)算思維的主要方式為編程教學(xué)。例如,楊文正[3]運(yùn)用Scratch 編程教學(xué)培養(yǎng)學(xué)生問題界定、特征抽象、算法設(shè)定等計(jì)算思維的核心能力。龔鑫等[4]結(jié)合Flash 編程游戲——Lightbot,在游戲化編程情景下探索培養(yǎng)學(xué)生計(jì)算思維的方法。丁世強(qiáng)等[5]設(shè)定編程項(xiàng)目及游戲化情景培養(yǎng)學(xué)生計(jì)算思維。孫立會等[6]以Scratch 編程為媒介,通過實(shí)踐教學(xué)探索學(xué)生計(jì)算思維的培養(yǎng)路徑。
綜上所述,通過編程教學(xué)培養(yǎng)中小學(xué)生計(jì)算思維的研究大多采用了可視化編程工具,為學(xué)生營造游戲化、趣味化的編程環(huán)境。在學(xué)習(xí)過程中,引導(dǎo)學(xué)生自主探究問題、編寫程序、解決問題,以提升自身計(jì)算思維。
不少學(xué)者提出通過多學(xué)科融合教學(xué)培養(yǎng)學(xué)生計(jì)算思維。例如,孫立會等[7]發(fā)現(xiàn),數(shù)學(xué)、科學(xué)及信息技術(shù)學(xué)科與學(xué)生計(jì)算思維能力的發(fā)展存在正向積極關(guān)系。張屹等[8]通過STEM 課程案例——會打招呼的機(jī)器人,實(shí)踐證明該課程可培養(yǎng)學(xué)生創(chuàng)造性思維,提升學(xué)生解決實(shí)際問題的能力。李峰[9]設(shè)計(jì)計(jì)算思維與食物鏈課程案例,結(jié)合計(jì)算思維的學(xué)與用,圍繞項(xiàng)目活動探索培養(yǎng)學(xué)生計(jì)算思維的路徑。
以上研究大多融合數(shù)學(xué)、科學(xué)、工程及信息技術(shù)學(xué)科培養(yǎng)學(xué)生計(jì)算思維。在學(xué)科融合教學(xué)中,圍繞項(xiàng)目活動開展教學(xué),讓學(xué)生自主操作,在解決實(shí)際問題過程中提升自身計(jì)算思維。然而,編程教學(xué)、多學(xué)科融合教學(xué)的方式僅將計(jì)算思維的核心理念融于教學(xué)環(huán)節(jié)中,未具體落實(shí)到策劃構(gòu)思、模式構(gòu)建、邏輯分析、問題解決等思維能力的培養(yǎng),未能從多方面培養(yǎng)學(xué)生計(jì)算思維。
為此,本文基于現(xiàn)有游戲化教學(xué)和計(jì)算思維培養(yǎng)的相關(guān)研究,構(gòu)建游戲化教學(xué)情景,以游戲故事情節(jié)的發(fā)展推動編程教學(xué)進(jìn)程,通過分配游戲角色、分析游戲沖突、開展游戲活動等方式提升學(xué)生問題分解、模型建構(gòu)、迭代試誤等方面能力,增強(qiáng)學(xué)生解決復(fù)雜問題的信心、處理棘手問題的恒心、發(fā)生沖突的包容心及團(tuán)隊(duì)溝通能力。
在中低年齡段,學(xué)生心理認(rèn)知方式正由形象思維向邏輯思維過渡,但在日常學(xué)習(xí)和生活中仍以感性認(rèn)識為主。因此,相較于文本編程,學(xué)生對可視化和圖形化編程的興趣更大。并且,可視化編程只需學(xué)生按要求疊加相應(yīng)的程序指令模塊即可使屏幕顯示的角色完成相應(yīng)動作,既符合學(xué)生心理認(rèn)知活動的發(fā)展規(guī)律,又鍛煉了學(xué)生的實(shí)際操作能力。
可視化編程學(xué)習(xí)不要求學(xué)生掌握復(fù)雜的程序代碼和語法,只需在腳本區(qū)按照一定邏輯順序完成程序指令模塊即可實(shí)現(xiàn)相應(yīng)的程序操作,相較于記憶編程方式,能夠使學(xué)生了解編程的內(nèi)在邏輯。在理清編程的思路后,學(xué)生僅需按照劇本要求,在腳本區(qū)對程序積木進(jìn)行組合即可完成任務(wù)目標(biāo)。
游戲化編程教學(xué)的本質(zhì)是充分挖掘編程的娛樂屬性,提升學(xué)生積極性、編程學(xué)習(xí)能力及計(jì)算思維能力。該方式讓學(xué)生推動故事情節(jié)發(fā)展來完成編程項(xiàng)目,使屏幕上的游戲角色完成相應(yīng)動作,為編程教學(xué)增添了趣味性和故事性,使低年齡段學(xué)生能夠以輕松愉快的心情學(xué)習(xí)編程,有益于激發(fā)學(xué)生求知欲,增強(qiáng)學(xué)生創(chuàng)造力。
由于中小學(xué)學(xué)生接觸編程的機(jī)會較少,大部分都是第一次進(jìn)行編程學(xué)習(xí),不具備任何編程經(jīng)驗(yàn)。顯然,英文文本類編程并不符合中小學(xué)階段學(xué)生的認(rèn)知特點(diǎn),學(xué)習(xí)難度較大。因此,應(yīng)按照實(shí)際情況選擇教學(xué)方式,既要保證編程內(nèi)容的前沿性[10],又要給學(xué)生營造一種良好、愉悅的編程學(xué)習(xí)環(huán)境。
游戲化編程教學(xué)是一種貼合學(xué)生生活的編程教學(xué)模式,在教學(xué)過程中能聯(lián)系學(xué)生生活經(jīng)驗(yàn),與數(shù)學(xué)、科學(xué)、藝術(shù)等學(xué)科相互交融,極大豐富了學(xué)生的知識面。
以游戲化編程與數(shù)學(xué)學(xué)科交融為例,使用編程繪制一個正多邊形前,需考慮多邊形的內(nèi)角和、每個角大小、旋轉(zhuǎn)角度等方面的數(shù)學(xué)知識。因此,學(xué)生不但要熟練掌握編程操作技能,還應(yīng)具備相應(yīng)的數(shù)學(xué)知識。這對于中小學(xué)生而言,雖然難度較大,但能夠提升學(xué)生自主學(xué)習(xí)能力。
4.1.1 游戲選題
學(xué)生對問題的認(rèn)知是掌握編程對象、確定編程算法、梳理編程框架的基礎(chǔ)。通過游戲化選題提升學(xué)生自主思考的意識和能力,需要在游戲化情景導(dǎo)入編程時,引導(dǎo)學(xué)生對為什么該角色需要完成這樣的任務(wù)?如何才能幫助該角色完成任務(wù)等問題進(jìn)行深入思考,提升學(xué)生多角度、深層次認(rèn)識問題的能力。
4.1.2 游戲表述
編程教學(xué)中最重要是將自身想法轉(zhuǎn)換為計(jì)算機(jī)語言,此時就需要教師對學(xué)生進(jìn)行引導(dǎo)。因此,教師在課程教學(xué)中應(yīng)有意識地引導(dǎo)學(xué)生進(jìn)行語言轉(zhuǎn)換,使學(xué)生在編程環(huán)節(jié)尋找合適的程序指令模塊實(shí)現(xiàn)編程效果。具體的,首先教師帶領(lǐng)學(xué)生對編程問題進(jìn)行自然語言描述;然后引導(dǎo)學(xué)生對描述語言進(jìn)行梳理,并以流程圖形式將問題具體化;最后,依據(jù)程序設(shè)計(jì)框架將自然語言轉(zhuǎn)換為計(jì)算機(jī)程序指令。
4.1.3 游戲情境
可視化編程應(yīng)用提供的編程情景更適合中小學(xué)學(xué)生,為建構(gòu)學(xué)生編程知識提供了新途徑[11]。在游戲化情景學(xué)習(xí)編程,有助于學(xué)生在原有知識及認(rèn)知上對編程知識及編程操作進(jìn)行深入理解,從而完成對知識的主動建構(gòu)。
游戲化編程教學(xué)設(shè)計(jì)應(yīng)突出游戲化教學(xué)優(yōu)勢。例如,通過游戲化教學(xué)模式鍛煉學(xué)生發(fā)現(xiàn)問題、分析問題、解決問題的能力。教師以游戲故事為教學(xué)主線,拋出問題引發(fā)學(xué)生思考,并對如何使游戲角色完成任務(wù)進(jìn)行假設(shè),從而制定合適的教學(xué)方案引導(dǎo)學(xué)生通過編程實(shí)現(xiàn)游戲效果。
此外,技能訓(xùn)練應(yīng)包含學(xué)生思維訓(xùn)練,在教學(xué)過程中通過提問、思路梳理等方式引導(dǎo)學(xué)生邏輯化地整理自身思維,養(yǎng)成分析問題、建立模型、運(yùn)行方案、解決問題的習(xí)慣,引導(dǎo)學(xué)生逐步將其發(fā)展成一種習(xí)慣化的思維能力。
為了解游戲化編程教學(xué)對學(xué)生思維發(fā)展的實(shí)際影響,將游戲化編程教學(xué)案例分為教學(xué)思路設(shè)計(jì)、教學(xué)案例實(shí)施和教學(xué)案例3個部分進(jìn)行解析。
4.3.1 教學(xué)設(shè)計(jì)思路
游戲化編程教學(xué)活動分為游戲?qū)?、明確問題、算法設(shè)計(jì)、迭代實(shí)施、交流展示、課堂總結(jié)6個環(huán)節(jié)。
具體的,游戲?qū)胫附處煄ьI(lǐng)學(xué)生以特定游戲活動展開教學(xué),可分為游戲活動導(dǎo)入、游戲視頻、游戲故事導(dǎo)入等;明確問題指通過游戲活動切入學(xué)習(xí)主題,明確學(xué)生學(xué)習(xí)任務(wù);算法設(shè)計(jì)指在明確問題后,對程序指令模塊進(jìn)行分析、組合;迭代實(shí)施指對程序進(jìn)行更迭試錯和解決問題;交流展示指將學(xué)生完成的作品發(fā)布至終端進(jìn)行保存,以便于教師查看、評分;課堂總結(jié)指教師進(jìn)行內(nèi)容總結(jié)、步驟回顧、思路梳理。教學(xué)思路設(shè)計(jì)流程如圖1所示。
Fig.1 Design of teaching ideas圖1 教學(xué)思路設(shè)計(jì)
4.3.2 游戲化編程案例設(shè)計(jì)
以《在編程中學(xué)會創(chuàng)造學(xué)會創(chuàng)造》(第一冊)課本的第十七課決戰(zhàn)超聲蝠——搗亂為例,結(jié)合學(xué)生計(jì)算思維培養(yǎng)目標(biāo)設(shè)計(jì)游戲化教學(xué)。
本次教學(xué)采用線下課堂授課方式,學(xué)習(xí)對象為小學(xué)4年級學(xué)生,教學(xué)內(nèi)容主要講述編程元素的基本操作、嵌套循環(huán)、分裂積木塊等。教學(xué)目標(biāo)為:①掌握積木庫中重復(fù)執(zhí)行積木塊應(yīng)用,學(xué)會分裂積木塊;②引導(dǎo)學(xué)生開展交流合作,增強(qiáng)團(tuán)隊(duì)協(xié)作和人際交往能力;③提升學(xué)生編程興趣;④培養(yǎng)學(xué)生計(jì)算思維。
(1)游戲?qū)?。教師展示源碼世界的故事動畫片段,導(dǎo)出教學(xué)內(nèi)容——如何通過編程貓制作游戲動畫。
(2)明確問題。明確編程對象,只對超聲蝠的動作及動畫效果進(jìn)行編程。教師采用小組討論方式對超聲蝠動作和動畫效果進(jìn)行規(guī)范化梳理,引導(dǎo)學(xué)生在課堂中進(jìn)行討論并畫出思維導(dǎo)圖,如圖2所示。
(3)算法設(shè)計(jì)。教師帶領(lǐng)學(xué)生對編程對象動作、大小設(shè)定及超聲蝠在屏幕中的角度進(jìn)行分析,從而明確所需算法。具體流程如圖3所示。
Fig.2 Problem sorting圖2 問題思路梳理
Fig.3 Algorithm design圖3 算法設(shè)計(jì)
(4)迭代實(shí)施。首先,教師向?qū)W生講述循環(huán)嵌套結(jié)構(gòu)的原理及應(yīng)用,并安排活動任務(wù)。然后,引導(dǎo)學(xué)生對程序指令模塊進(jìn)行拼接、組合,當(dāng)出現(xiàn)嵌套位置錯誤情況時應(yīng)及時進(jìn)行編程糾錯。最后,講述分裂積木塊的操作原理,引導(dǎo)學(xué)生對分裂積木塊進(jìn)行操作,在試錯中學(xué)會分裂積木塊的正確使用方法。
(5)交流展示。作品完成后,學(xué)生小組內(nèi)部推薦一人展示作品,供全班同學(xué)進(jìn)行點(diǎn)評。
(6)課堂總結(jié)。教師進(jìn)行課堂總結(jié),回顧循環(huán)嵌套結(jié)構(gòu)的原理、分裂積木塊的使用方式及注意事項(xiàng)。
4.3.3 游戲化編程案例分析
(1)游戲選題—嵌入問題—思維啟發(fā)。為了讓編程問題通俗易懂,本文采用游戲故事導(dǎo)入方式嵌入編程問題,設(shè)置故事情節(jié)導(dǎo)出編程教學(xué)問題,為學(xué)生認(rèn)識問題、分析問題、解決問題奠定基礎(chǔ)。
(2)游戲角色—分配問題—思維發(fā)散。在教學(xué)案例設(shè)計(jì)中,將編程問題分配給游戲故事中的具體角色,使問題更容易被理解,學(xué)生在設(shè)計(jì)解決方案時動力更大,在梳理思路、建構(gòu)編程模型時邏輯性更強(qiáng)。
(3)游戲沖突—分析問題—思維聚焦。引導(dǎo)學(xué)生分析游戲角色間的活動及沖突,嘗試?yán)镁幊谭椒ń鉀Q問題。例如,將設(shè)置變量參數(shù)、執(zhí)行嵌套模式、設(shè)置造性切換、設(shè)置運(yùn)動軌跡具象為游戲角色間的活動,以便于學(xué)生對問題進(jìn)行梳理。
(4)游戲過程—解決問題—思維轉(zhuǎn)換。編程教學(xué)以游戲故事發(fā)展脈絡(luò)為線索,推動編程教學(xué)。在解決問題過程中,教師鼓勵學(xué)生編程初步完成程序作品,后續(xù)再進(jìn)行調(diào)試和完善。以此提升學(xué)生的迭代思維和解決問題的能力。一旦遇見難度較大問題時,教師則應(yīng)及時對問題進(jìn)行分解、指導(dǎo)。
(5)游戲結(jié)果—反省問題—思維總結(jié)。在教學(xué)中通過游戲活動、自主交流、角色扮演等方式,使學(xué)生親身感知、動手操作、發(fā)現(xiàn)問題、解決問題,提升學(xué)生的實(shí)際動手能力和邏輯思維。此外,游戲化編程為師生提供輕松愉快的編程環(huán)境,減少學(xué)生排斥心理,提升學(xué)生學(xué)習(xí)積極性。
在教學(xué)實(shí)施過程中培養(yǎng)學(xué)生的計(jì)算思維能力,以問題為導(dǎo)向嵌入、分配、分析和解決編程問題來發(fā)展學(xué)生的抽象化概括能力、問題分解能力、算法思維及歸納能力。同時,積極引導(dǎo)學(xué)生歸納總結(jié)問題發(fā)生的規(guī)律,提升學(xué)生解決問題的邏輯思維能力。
游戲化編程教學(xué)對發(fā)展中小學(xué)學(xué)生計(jì)算思維具有建設(shè)性的意義,符合學(xué)生學(xué)習(xí)編程的心理認(rèn)知和操作應(yīng)用發(fā)展水平,能顯著提升學(xué)生計(jì)算思維。本文在游戲化編程教學(xué)的基礎(chǔ)上,重點(diǎn)分析可視化編程培養(yǎng)學(xué)生計(jì)算思維能力的優(yōu)勢。實(shí)踐表明,該方法能顯著提升中小學(xué)學(xué)生的計(jì)算思維能力和學(xué)習(xí)積極性。后續(xù),將從其他角度探索學(xué)生計(jì)算思維的發(fā)展路徑。