岳彥龍 袁亞娜 張學(xué)軍
摘? ?要:利用編程教學(xué)培養(yǎng)計(jì)算思維已成為業(yè)界共識(shí),數(shù)字游戲和編程能夠有效結(jié)合,因此,游戲化編程教學(xué)不僅可以培養(yǎng)計(jì)算思維,還能夠有效避免傳統(tǒng)編程教學(xué)的局限性。文章在分析計(jì)算思維要素、Python五大核心概念及數(shù)字游戲要素的基礎(chǔ)上,構(gòu)建了三者之間的關(guān)系模型,進(jìn)一步提出了面向高中生計(jì)算思維培養(yǎng)的Python游戲化編程教學(xué)模型,并基于該教學(xué)模型,以“貪吃蛇”游戲?yàn)槔?,介紹了具體教學(xué)設(shè)計(jì)方法。
關(guān)鍵詞:計(jì)算思維;Python;DGBL;教學(xué)設(shè)計(jì);高中生
中圖分類號(hào):G434;TP314 文獻(xiàn)標(biāo)志碼:B 文章編號(hào):1673-8454(2021)22-0093-04
一、問題的提出
《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)》(以下簡稱《2017年課標(biāo)》)將計(jì)算思維列為信息技術(shù)學(xué)科核心素養(yǎng)之一[1],可見智能時(shí)代計(jì)算思維對(duì)人才創(chuàng)新和科技創(chuàng)新的重要性。
計(jì)算思維(Computational Thinking)的提出可以追溯到20世紀(jì)50年代[2],2006年美國卡內(nèi)基·梅隆大學(xué)的周以真教授給出了較為公認(rèn)的界定,她認(rèn)為計(jì)算思維需要通過借鑒計(jì)算機(jī)科學(xué)的基本概念來解決問題、設(shè)計(jì)系統(tǒng)和理解人類行為[3]。Shute認(rèn)為可以通過編程、機(jī)器人、游戲以及非數(shù)字干預(yù)等手段或方法來培養(yǎng)計(jì)算思維[4]。雖然編程技能與計(jì)算思維技能是不相同的,但是會(huì)編程是能夠進(jìn)行計(jì)算思維的一個(gè)前提條件,因此,通過編程教學(xué)培養(yǎng)計(jì)算思維已成為共識(shí)。
然而在傳統(tǒng)的編程教學(xué)中利用編程語言教學(xué),容易使學(xué)習(xí)變得枯燥、乏味,從而導(dǎo)致學(xué)習(xí)效果不佳,當(dāng)然也就無法談及計(jì)算思維的培養(yǎng)。Kazimoglu通過對(duì)自愿參加的25名被試學(xué)生的反饋分析,結(jié)果證明通過玩數(shù)字游戲在學(xué)習(xí)編程的過程中培養(yǎng)計(jì)算思維是有效的[5]。但人們的關(guān)注大多在如何培養(yǎng)計(jì)算思維上,是在做實(shí)證研究,對(duì)于利用游戲化編程教學(xué)培養(yǎng)計(jì)算思維的教學(xué)設(shè)計(jì)研究寥寥無幾。所以,本研究嘗試在該方面做一些探索。
二、基于數(shù)字游戲的學(xué)習(xí)
那么,什么是數(shù)字游戲呢?Prensky[6]將數(shù)字游戲等同于電腦游戲,而Deniz[7]認(rèn)為數(shù)字游戲是一種新媒介,數(shù)字游戲是對(duì)現(xiàn)實(shí)的一種改造,它是通過符號(hào)系統(tǒng)對(duì)閱讀系統(tǒng)進(jìn)行編碼,再加上聲音來創(chuàng)造和傳遞信息。數(shù)字游戲不僅包括電腦游戲,還包括雅達(dá)利游戲、手機(jī)游戲、游戲機(jī)游戲等,因此,本研究贊同Deniz的說法。從某種意義上來說,數(shù)字游戲是一種個(gè)人媒體,它包含了新媒體的數(shù)字化、交互性、虛擬性、多樣性、模塊化等特征,并將這些特征融入到游戲的行為中。雖然基于實(shí)體的傳統(tǒng)游戲概念被數(shù)字制作的游戲媒介所取代,但是數(shù)字游戲還是保留了傳統(tǒng)游戲的要素,即場景、角色、交互、規(guī)則、挑戰(zhàn)。
基于數(shù)字游戲的學(xué)習(xí)(Digital Game-Based Learning,簡稱“DGBL”)是由Prensky[6]提出的,是指任何教育內(nèi)容與數(shù)字游戲相結(jié)合進(jìn)而產(chǎn)生學(xué)習(xí)的一種學(xué)習(xí)方式。但是該方式是基于一定的假設(shè),即教育內(nèi)容要能夠和數(shù)字游戲進(jìn)行結(jié)合或融合,這樣一來才能實(shí)現(xiàn)與傳統(tǒng)學(xué)習(xí)方法一樣甚至更好的效果。
那么,基于數(shù)字游戲的學(xué)習(xí)是否真的有效?答案是肯定的?;跀?shù)字游戲的學(xué)習(xí)有效的三個(gè)主要原因如下:①將學(xué)習(xí)融入游戲環(huán)境能夠增加參與度,這是相當(dāng)重要的,尤其是對(duì)于那類厭惡學(xué)習(xí)的人來說;②基于數(shù)字游戲的學(xué)習(xí)是互動(dòng)的,因?yàn)樗髮W(xué)生自己動(dòng)手做;③基于數(shù)字游戲的學(xué)習(xí)是解決問題的過程,能夠激發(fā)學(xué)生的創(chuàng)造力。通過對(duì)上述原因的分析可以發(fā)現(xiàn),基于數(shù)字游戲的學(xué)習(xí)是有效的也是可行的。但是,難點(diǎn)在于如何將數(shù)字游戲和學(xué)習(xí)結(jié)合在一起。Prensky[6]從參與和學(xué)習(xí)兩個(gè)視角進(jìn)行考慮基于數(shù)字游戲的學(xué)習(xí)的有效性,如圖1所示。他根據(jù)參與和學(xué)習(xí)兩個(gè)維度,將游戲化學(xué)習(xí)分為三類:基于數(shù)字游戲的學(xué)習(xí)(DGBL)、純游戲、基于計(jì)算機(jī)的訓(xùn)練(CBT)。當(dāng)?shù)屯度?低學(xué)習(xí)(第三象限)時(shí)是基于計(jì)算機(jī)的訓(xùn)練,而當(dāng)高參與性/低學(xué)習(xí)性 (第二象限)時(shí)就只是純游戲,只有當(dāng)參與性和學(xué)習(xí)性都很高(第一象限)時(shí),基于數(shù)字游戲的學(xué)習(xí)才會(huì)發(fā)生。因此,需要選擇或創(chuàng)造一種能夠吸引玩家的游戲風(fēng)格和一種能夠教授玩家所需要的內(nèi)容的學(xué)習(xí)風(fēng)格,然后以某種方式將兩者融合在一起。此外,還需要考慮環(huán)境、技術(shù)和可用資源。
三、Python游戲化編程教學(xué)模型
1.計(jì)算思維、Python、數(shù)字游戲之間的關(guān)系模型
計(jì)算思維、Python及數(shù)字游戲之間的關(guān)系是構(gòu)建Python游戲化編程教學(xué)模型的基礎(chǔ)。本研究根據(jù)三者要素之間的關(guān)聯(lián)建構(gòu)了如圖2所示的關(guān)系模型。該模型主要分為三層,由里到外依次是計(jì)算思維、Python和數(shù)字游戲。
最內(nèi)層是計(jì)算思維,也是要實(shí)現(xiàn)的最終目標(biāo)。本研究依據(jù)Google公司2018年推出的面向全球教育者的計(jì)算思維課程,將計(jì)算思維分為分解、模式識(shí)別、抽象和算法四個(gè)要素[8]。
中間層為近幾年興起的編程語言Python,Python依靠其強(qiáng)大的第三方庫在網(wǎng)絡(luò)爬蟲、數(shù)據(jù)分析、文本處理、用戶圖形界面、Web開發(fā)以及游戲開發(fā)等方面展現(xiàn)出強(qiáng)大的功能[9],也是計(jì)算思維培養(yǎng)的有效方式之一。Python作為面向?qū)ο蟮恼Z言,具有類、對(duì)象、屬性、方法、事件五大核心概念。
最外層是繼承了傳統(tǒng)游戲要素(即場景、角色、交互、規(guī)則、挑戰(zhàn))而形成的數(shù)字游戲,作為一種個(gè)人媒介,具有數(shù)字化、交互性、虛擬性、多樣性、模塊化等特征,能夠和學(xué)習(xí)內(nèi)容按照某種方式結(jié)合,并通過參與和學(xué)習(xí)兩個(gè)視角形成基于數(shù)字游戲的學(xué)習(xí)。
三者呈現(xiàn)這種關(guān)系的原因是,三者各要素之間存在某種天然的聯(lián)系,即各要素之間能夠直接映射,進(jìn)而能夠通過游戲化編程教學(xué)從四個(gè)方面對(duì)計(jì)算思維進(jìn)行培養(yǎng)。
2.Python游戲化編程教學(xué)模型
在對(duì)計(jì)算思維、Python及數(shù)字游戲之間關(guān)系梳理的基礎(chǔ)上,結(jié)合教學(xué)設(shè)計(jì)相關(guān)內(nèi)容構(gòu)建了如圖3所示的面向高中生計(jì)算思維培養(yǎng)的Python游戲化編程教學(xué)模型。
該教學(xué)模型主要分為兩部分:
一是教師活動(dòng)。在教師活動(dòng)中,教師首先要確定教學(xué)目標(biāo)(這里的教學(xué)目標(biāo)包括:數(shù)字游戲制作情況的目標(biāo)、Python編程語言掌握情況的目標(biāo)以及計(jì)算思維培養(yǎng)情況的目標(biāo))、分析學(xué)習(xí)者(高中生)現(xiàn)有的基礎(chǔ)和認(rèn)知水平以及分析教學(xué)內(nèi)容(所教Python知識(shí)點(diǎn)與數(shù)字游戲等內(nèi)容),然后要向?qū)W生告知本節(jié)課的學(xué)習(xí)目標(biāo);其次,創(chuàng)設(shè)數(shù)字游戲教學(xué)情境需要的對(duì)話并設(shè)置相應(yīng)的問題;再次,對(duì)Python知識(shí)點(diǎn)進(jìn)行講解,并根據(jù)計(jì)算思維的要素對(duì)數(shù)字游戲進(jìn)行分析。在課堂上,教師要時(shí)刻觀察學(xué)生的反應(yīng)并提供及時(shí)的指導(dǎo);最后,教師針對(duì)學(xué)生做出的數(shù)字化游戲進(jìn)行點(diǎn)評(píng)并總結(jié)本節(jié)課的學(xué)習(xí)內(nèi)容。
二是學(xué)生活動(dòng)。在學(xué)生活動(dòng)中,首先,正式上課之前學(xué)生要明確依據(jù)自己的學(xué)習(xí)情況制定合理的學(xué)習(xí)目標(biāo),目標(biāo)能夠給學(xué)生學(xué)習(xí)的動(dòng)力,接著學(xué)生要感知并熟悉本節(jié)課的學(xué)習(xí)或教學(xué)情境,明確所要解決的問題;其次,在教師講解的同時(shí),要將理解轉(zhuǎn)化為知識(shí),并思考數(shù)字游戲的制作;再次,學(xué)生要利用計(jì)算思維中分解、模式識(shí)別、抽象、算法等要素,并結(jié)合所學(xué)的Python知識(shí)點(diǎn)分析問題、提出解決方案并實(shí)施方案;最后,在課堂上對(duì)自己的數(shù)字化游戲進(jìn)行分享并對(duì)他人制作的數(shù)字化游戲進(jìn)行交流。與此同時(shí),學(xué)生在分析問題、提出解決方案、實(shí)施方案、分享與交流等環(huán)節(jié),要善于進(jìn)行反思與總結(jié),并及時(shí)調(diào)用教師所講的內(nèi)容進(jìn)行總結(jié),以達(dá)到提升學(xué)生計(jì)算思維的目的,避免在日后的學(xué)習(xí)中走彎路。
四、“貪吃蛇”游戲的教學(xué)設(shè)計(jì)
1.教學(xué)目標(biāo)
無論是一節(jié)課的教學(xué)或是單元教學(xué),甚至是一門課程,教學(xué)目標(biāo)是必要的,而且教學(xué)目標(biāo)的高低會(huì)直接影響到學(xué)生的學(xué)習(xí)效果。按照維果茨基的“最近發(fā)展區(qū)”理論,教學(xué)目標(biāo)的設(shè)定不能超過其潛在水平,也不能低于其現(xiàn)有水平,而是要著眼于學(xué)生的最近發(fā)展區(qū)設(shè)置合適的教學(xué)目標(biāo),并根據(jù)學(xué)生的學(xué)習(xí)情況及時(shí)調(diào)整教學(xué)目標(biāo),逐步進(jìn)行下一個(gè)發(fā)展區(qū)的發(fā)展,不斷逼近學(xué)生的潛在水平。
本研究中“貪吃蛇”游戲案例的教學(xué)目標(biāo)主要有三個(gè)方面:計(jì)算概念、計(jì)算實(shí)踐和計(jì)算觀念[10]。每一方面又分別對(duì)應(yīng)計(jì)算思維的培養(yǎng)目標(biāo)、Python編程知識(shí)目標(biāo)、數(shù)字游戲的目標(biāo)。按照三者之間的關(guān)系模型設(shè)置了以下的教學(xué)目標(biāo),如表1所示。
2.學(xué)習(xí)者分析
學(xué)習(xí)者既是教學(xué)對(duì)象,也是學(xué)習(xí)的主體,對(duì)于學(xué)習(xí)者的分析應(yīng)從學(xué)習(xí)者的現(xiàn)有基礎(chǔ)、認(rèn)知水平、學(xué)習(xí)風(fēng)格等維度進(jìn)行。如本研究案例中學(xué)習(xí)者為高中一年級(jí)學(xué)生,在第一學(xué)期學(xué)生已經(jīng)學(xué)習(xí)過Python編程,對(duì)Python中的變量、列表、判斷、循環(huán)、函數(shù)等知識(shí)有一定掌握,但是對(duì)于Python編程的類、對(duì)象、屬性、方法、事件五大核心概念并不了解。高中生的邏輯思維、抽象思維等有了進(jìn)一步的發(fā)展,有利于計(jì)算思維的培養(yǎng),并且高中生對(duì)游戲感興趣,更傾向于基于數(shù)字游戲的學(xué)習(xí)。
3.教學(xué)內(nèi)容分析
教學(xué)內(nèi)容是為了實(shí)現(xiàn)教學(xué)目標(biāo),是要求學(xué)習(xí)者系統(tǒng)學(xué)習(xí)的知識(shí)、技能和思想、行為的總和。教學(xué)內(nèi)容分析的目的在于揭示教學(xué)目標(biāo)規(guī)定的且需要學(xué)生形成的能力或傾向的構(gòu)成成分及其層次關(guān)系,并據(jù)此確定促使這些能力或傾向習(xí)得的有效教學(xué)條件[11]。本研究案例中的教學(xué)內(nèi)容主要是用Python編程實(shí)現(xiàn)“貪吃蛇”游戲,涉及到的Python知識(shí)主要是類、對(duì)象、事件、屬性、方法五大核心概念,同時(shí)根據(jù)圖2所示的三者之間的關(guān)系模型,分析計(jì)算思維的四要素、Python的五大核心概念、游戲的五要素之間具體的對(duì)應(yīng)關(guān)系,分析結(jié)果如表2所示。
4.教學(xué)流程
教學(xué)流程即按照一定的規(guī)則先后展開教學(xué)活動(dòng)的程序。在實(shí)際的教學(xué)中,教學(xué)流程會(huì)隨著教學(xué)活動(dòng)發(fā)生改變,因此要設(shè)計(jì)合理的教學(xué)流程,并要根據(jù)教學(xué)情況及時(shí)調(diào)整或者修改教學(xué)流程。
本研究“貪吃蛇”案例中,首先,教師要告知學(xué)習(xí)者學(xué)習(xí)目標(biāo),在學(xué)習(xí)者明確學(xué)習(xí)目標(biāo)的基礎(chǔ)上,教師提出兩個(gè)問題:①Python中的五大核心概念成為解決問題通用概念的原因是什么?②“貪吃蛇”游戲是如何利用這五大核心概念來實(shí)現(xiàn)的?然后通過展示“貪吃蛇”游戲的代碼視圖以及調(diào)試游戲創(chuàng)設(shè)基于數(shù)字游戲?qū)W習(xí)的情境;其次,教師需要對(duì)制作該游戲,所需要的Python編程知識(shí)(即五大核心概念:類、對(duì)象、事件、屬性、方法)進(jìn)行精講,并根據(jù)表2中的分析結(jié)果和計(jì)算思維的四要素對(duì)“貪吃蛇”游戲進(jìn)行分析,揭示“貪吃蛇”游戲制作的過程及運(yùn)行原理;再次,教師指導(dǎo)學(xué)生分析前面提出的相關(guān)問題,提出相應(yīng)的解決方案并實(shí)施;最后,組織學(xué)生進(jìn)行作品的展示與交流,并針對(duì)學(xué)生的學(xué)習(xí)做總結(jié)和點(diǎn)評(píng)。
五、結(jié)語
國內(nèi)外利用編程教學(xué)培養(yǎng)計(jì)算思維已成為共識(shí)。Python作為一門強(qiáng)大的編程語言,能夠和數(shù)字游戲有效結(jié)合,由于傳統(tǒng)編程教學(xué)存在一定的局限性,因此,通過游戲化編程教學(xué)培養(yǎng)計(jì)算思維是一種較好的選擇。自《2017年課標(biāo)》發(fā)布以來,如何利用信息技術(shù)各模塊的內(nèi)容培養(yǎng)信息技術(shù)學(xué)科核心素養(yǎng),進(jìn)而促進(jìn)新課標(biāo)的落地已成為當(dāng)下的研究熱點(diǎn),要實(shí)現(xiàn)新課標(biāo)的落地就要對(duì)信息技術(shù)教學(xué)理論和實(shí)踐不斷探索。本研究對(duì)通過Python游戲化編程教學(xué)培養(yǎng)計(jì)算思維的教學(xué)設(shè)計(jì)進(jìn)行研究,希望能給研究者和一線教師帶來借鑒和啟示。
參考文獻(xiàn):
[1]中華人民共和國教育部.普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)[M].北京:人民教育出版社,2018:6.
[2]Matti Tedre,Peter J.Denning. The long quest for computational thinking[A].Proceedings of the 16th Koli Calling International Conference on Computing Education Research[C].Koli:ACM Press,2016:120-129.
[3]Jeannette M.Wing.Computational thinking[J].Communications of the ACM,2006,49(3):33-35.
[4]Valerie J Shute,Chen Sun,Jodi Asbell-Clarke.Demystifying computational thinking[J].Educational Rese arch Review,2017(22):142-158.
[5]Cagin Kazimoglu,Mary Kiernan,Liz Bacon,et al.Learning Programming at the Computational Thinking Level via Digital Game-Play[J].Procedia Computer Science,2012(9):522-531.
[6]Marc Prensky.Digital Game-Based Learning[M].New York,NY:McGrawHill,2001:141-163.
[7]Deniz Yengin.Digital game as a new media and use of digital game in education[J].The Turkish Online Journal of Design,Art and Communication,2011,1(1):20-25.
[8]谷歌(2018).Google面向教育者的計(jì)算思維課程[EB/OL].(2019-07-28)[2021-04-10].https://max.book118.com/html/2019/0711/8030031065002034.shtm.
[9]張學(xué)軍,董曉輝.高中人工智能課程項(xiàng)目案例資源設(shè)計(jì)與開發(fā)[J].電化教育研究,2019,40(8):87-95.
[10]Brennan K,Resnick M.New frameworks for studying and assessing the development of computational thinking[A].Proceedings of the 2012 Annual Meeting of the American Educational Research Association[C].Vanco uver,2012:1-25.
[11]南國農(nóng).信息化教育概論(第2版)[M].北京:高等教育出版社,2011:73-76.
(編輯:李曉萍)