董金釗 董新飛


摘要:編程語言的學(xué)習(xí)枯燥乏味,語法、邏輯、算法等讓初學(xué)者望而卻步。本文作者嘗試將游戲化學(xué)習(xí)理念運用到編程學(xué)習(xí)中,采用網(wǎng)絡(luò)游戲的方式,對學(xué)習(xí)Python語言編程進行了實驗,并對實驗過程、實驗結(jié)果進行了總結(jié),認為游戲化學(xué)習(xí)可以激發(fā)學(xué)習(xí)者的學(xué)習(xí)興趣,提高學(xué)習(xí)效率。
關(guān)鍵詞:CodeCombat;游戲化學(xué)習(xí);Python語言;編程
中圖分類號:G434 文獻標(biāo)識碼:A 論文編號:1674-2117(2018)18-0042-03
● 研究背景
升入高中后,因為參加了學(xué)校組織的Python編程特長學(xué)習(xí)小組,繁重的學(xué)習(xí)任務(wù)擠占了不多的課余時間,面對學(xué)習(xí)壓力,筆者不禁要問,怎么才能既學(xué)習(xí)特長,又愉快玩耍呢?在圖書館查找資料時,筆者發(fā)現(xiàn)了《游戲化學(xué)習(xí)》和《游戲改變世界》兩本書,經(jīng)過細致研讀,知道了游戲?qū)W(xué)習(xí)者的幾個作用:①可以提高游戲者的學(xué)習(xí)興趣;②循序漸進的游戲進程有利于促進知識的掌握;③能夠鍛煉和協(xié)調(diào)手眼互動等基本能力;④有助于培養(yǎng)游戲者解決問題的能力;⑤培養(yǎng)合作能力;⑥為游戲者體驗學(xué)習(xí)提供可能。既然游戲具有一定的教育意義,而學(xué)習(xí)也并非天然姓“苦”,那么若能夠?qū)⑼婢W(wǎng)絡(luò)游戲和學(xué)習(xí)結(jié)合起來,將游戲以一種特定的形式設(shè)計成有效的學(xué)習(xí)方式,讓學(xué)習(xí)者在快樂中學(xué)習(xí),會不會有意想不到的效果呢?
● 理論準(zhǔn)備
2014年度的《地平線報告》中就強調(diào)了“游戲與游戲化”,報告指出,“未來兩到三年,3D打印技術(shù)、游戲與游戲化、沉浸式學(xué)習(xí)環(huán)境和可穿戴技術(shù)將得到廣泛應(yīng)用”。游戲化學(xué)習(xí)(Learn through play),又稱為學(xué)習(xí)游戲化,指的是采用游戲化的方式進行學(xué)習(xí),它是流行的教育發(fā)展方向,已成為“互聯(lián)網(wǎng)+”浪潮中學(xué)習(xí)的風(fēng)向標(biāo)。
筆者在網(wǎng)上搜索相關(guān)資料時,發(fā)現(xiàn)目前國內(nèi)與國外都有學(xué)習(xí)網(wǎng)站做得非常人性化,學(xué)習(xí)者可以在游戲中“寓教于樂”。編程學(xué)習(xí)游戲化的網(wǎng)站有Codecademy、Codeschool、Treehouse、CodinGame、CodeCombat等,涉及的編程語言有HTML/CSS、Python、PHP、Ruby、APIs、Javascript、jQuery等多種。
● 探索過程
1.平臺選擇
筆者所在的特長小組學(xué)習(xí)的編程語言主要為Python,比較各網(wǎng)站的特點后選擇在CodeCombat上學(xué)習(xí)編程(針對級別為初學(xué)者到中級水平的開發(fā)者),其特點是使用游戲化編程模式,通過目標(biāo)引導(dǎo),做到實時反饋。
2.實驗分組
為驗證游戲化學(xué)習(xí)的可行性和實驗效果,筆者所在的特長小組共30名同學(xué)每15人一組分成了教師輔導(dǎo)組和游戲?qū)嶒灲M。兩個小組采用同樣的學(xué)習(xí)進度,教師輔導(dǎo)組實行教師講課、組員自主編程練習(xí)的方式,游戲?qū)嶒灲M采用組員自己游戲、教師指導(dǎo)的方式。兩個小組在實驗一段時間后進行編程競賽,以比較兩種學(xué)習(xí)方法的優(yōu)缺點。
作為游戲化學(xué)習(xí)的倡議者,筆者擔(dān)任了游戲?qū)嶒灲M的組長,負責(zé)統(tǒng)籌學(xué)習(xí)過程和匯總實驗數(shù)據(jù),并在實驗出現(xiàn)不良前兆時向教師匯報并中止游戲?qū)嶒灐=?jīng)過小組討論并結(jié)合游戲?qū)W習(xí)的基本步驟,筆者制訂了學(xué)習(xí)(游戲)計劃,將15人分成3個小組,要求組內(nèi)成員全力合作,相互監(jiān)督,同時在小組間引入了競爭機制。
3.實驗過程
首先,游戲?qū)嶒灲M的同學(xué)都在CodeCombat上注冊了賬號,并對網(wǎng)站進行了初步的了解。CodeCombat支持JavaScript、CoffeeScript、Lua、Python和Clojure5種編程語言,每個級別包含不同的任務(wù),如搜集寶石、打敗怪獸以及找出通往下一關(guān)的道路。一部分關(guān)卡免費,訂閱會員可以玩所有關(guān)卡。對于入門級的學(xué)生來說,免費的關(guān)卡已經(jīng)足夠了。
(1)旗開得勝
游戲?qū)嶒灲M的同學(xué)在了解了游戲機制、熟悉了頁面中各功能的作用后,打開第一個關(guān)卡,選擇道具、英雄、編程語言后就可以在向?qū)У闹敢峦瓿沙醪降挠螒虿僮鳌?/p>
游戲窗口左邊是動畫區(qū),右邊是代碼區(qū)。CodeCombat要求玩家使用代碼來操控游戲人物,在代碼區(qū)輸入代碼后,單擊“運行”按鈕,游戲人物即可按代碼運行結(jié)果來運動。如果有代碼錯誤,會實時以紅色字體提示,同時運行中有問題也實時提示。如果代碼和邏輯沒問題,則可點擊“完成”按鈕進入下一關(guān),學(xué)習(xí)新的內(nèi)容。在游戲中,每一位學(xué)習(xí)者都可以從“實戰(zhàn)”中不斷學(xué)習(xí)編程語言的語法、邏輯等知識……在實驗進行三周,學(xué)習(xí)了基礎(chǔ)知識,對函數(shù)結(jié)構(gòu)有初步的認識后,在基本語法的競賽中,游戲?qū)嶒灲M的成績明顯高于教師輔導(dǎo)組的成績(如表1)。
(2)潰不成軍
在學(xué)習(xí)判斷、循環(huán)語句時,由于需要有更多的創(chuàng)造性,通過語法、接口編寫出復(fù)雜的函數(shù)才能過關(guān),又由于游戲?qū)嶒灲M的同學(xué)缺乏教師的指導(dǎo),缺乏完善編程的思維,游戲?qū)嶒灲M同學(xué)的成績不如教師輔導(dǎo)組(如表2)。
總結(jié)成績低的原因,主要是對理論知識掌握不足,在解決實際問題過程中缺乏教師的及時指導(dǎo),算法選擇不當(dāng),語法錯誤百出。由此得出結(jié)論,光靠激情,沒有教師的及時點撥,沒有最優(yōu)的算法做基礎(chǔ),學(xué)習(xí)編程語言會走很大的彎路。
(3)重整旗鼓
為了提高游戲效率,筆者與游戲?qū)嶒灲M的同學(xué)們又重新學(xué)習(xí)了游戲?qū)W習(xí)的相關(guān)知識,決定在線上編程學(xué)習(xí)的同時,引入線下游戲的模式,做到線上、線下同步進行,同步反饋、同步跟進。
線上就是遵循CodeCombat平臺的游戲規(guī)則,在游戲過程中學(xué)習(xí)和強化編程知識,精進編程能力。在游戲?qū)W習(xí)的同時,加大了“復(fù)盤”力度,即在每個游戲結(jié)束后,休息15分鐘,其間進行小組經(jīng)驗分享,對游戲過程中采用的策略進行復(fù)盤,分析最高分團隊和最低分團隊各自所采用的策略,在討論中找出最優(yōu)算法,并就典型問題向教師請教,加入網(wǎng)上各種討論組,充分利用百度帖吧、論壇、QQ群等向高手學(xué)習(xí)。
線下游戲是指參加游戲?qū)W習(xí)的同學(xué)每3人一個互助小組,在公開、公正、自愿,可執(zhí)行性高的前提下,建立了引入競爭機制的游戲?qū)W習(xí)制度:①籌集游戲基金。經(jīng)過充分討論,游戲成員從自己的零用錢中取出相同的數(shù)目(每人100元),匯集成游戲基金,供游戲中進行獎勵激勵。②把學(xué)習(xí)大目標(biāo)分解為小關(guān)卡。把一個周期的學(xué)習(xí)目標(biāo)(一個知識系列)分割為多個兩天可以完成的小目標(biāo)(小關(guān)卡),關(guān)卡完成后有實時積分獎勵。③周期測試大BOSS。一個學(xué)習(xí)周期進行一次終極大比拼(相當(dāng)于學(xué)科學(xué)習(xí)中的單元測試),請專業(yè)教師當(dāng)裁判,對完成情況進行評價。④獎勵機制。小關(guān)卡積分和大BOSS獎勵積分按40%和60%的比例進行綜合,評選出優(yōu)勝團隊進行現(xiàn)金獎勵,獎勵基金可以自主支配。
經(jīng)過不斷的學(xué)習(xí)和總結(jié),游戲?qū)W習(xí)組同學(xué)的編程能力突飛猛進,從第三次競賽的結(jié)果可以看出(如表3),已將教師輔導(dǎo)組的同學(xué)遠遠地甩在身后。
(4)捷報頻傳
兩個月后,在教師的幫助下,筆者與游戲?qū)嶒灲M的同學(xué)總結(jié)了游戲化學(xué)習(xí)的經(jīng)驗,現(xiàn)在,已在全校相關(guān)學(xué)科進行了實驗推廣,并取得了小范圍的成功。
● 學(xué)習(xí)心得
通過對基于CodeCombat平臺的游戲化學(xué)習(xí)編程實驗的探索,筆者總結(jié)出了游戲化學(xué)習(xí)的基本公式:游戲化學(xué)習(xí)=學(xué)習(xí)項目(游戲)+故事背景(規(guī)則設(shè)定)+反饋機制(積分系統(tǒng)和升級機制)+成就感(獎勵設(shè)定)。在這個游戲化學(xué)習(xí)公式中,激勵人的因素有以下幾個。
1.及時反饋
每完成一個任務(wù)(編程任務(wù)),游戲者都能得到及時的反饋,能快速和清晰地了解自己的游戲行為所產(chǎn)生的收益,并在領(lǐng)取到收益時獲得了極大的心理滿足感。
2.成就感
對于游戲中的每一個任務(wù)或挑戰(zhàn),游戲者都可以無數(shù)次試錯,通過不斷修正、查閱攻略,或者交流,總能最終成功。游戲過程中只記錄成功,不記錄失敗,這樣游戲者展示給別人的總是自己成功的一面,從而能體會出自己的價值。
3.豐厚獎勵
游戲中每完成一個關(guān)卡,游戲者都能解鎖新的技能或者功能;完成一個任務(wù),能獲得罕見材料或者武器、英雄,讓游戲者屬性大增,最不濟還能完成任務(wù),獲取經(jīng)驗和金幣。獲取這些金幣、積分后,英雄游戲者可以按自已的意愿進行處置。
4.多系統(tǒng)、多目標(biāo)和多任務(wù)
游戲中富含各種系統(tǒng),每個系統(tǒng)又包含不同的任務(wù)和成就,這些設(shè)定讓游戲者在游戲中擁有大量的大目標(biāo)和小目標(biāo),每當(dāng)完成一個目標(biāo)后游戲者就會獲得豐厚的獎勵。
● 結(jié)語
將網(wǎng)絡(luò)游戲融入學(xué)習(xí),可以較好地激發(fā)學(xué)習(xí)者的學(xué)習(xí)興趣,使原本動機水平較低的學(xué)習(xí)者能夠自主學(xué)習(xí)程序設(shè)計技能,獲取任務(wù)激勵,獲得成就感,從而培養(yǎng)良好的職業(yè)素養(yǎng)。游戲化學(xué)習(xí)在未來必將不斷擴大應(yīng)用范圍,VR虛擬現(xiàn)實游戲的誕生也會為游戲化學(xué)習(xí)帶來新的體驗。
參考文獻:
[1]百度百科[EB/OL].https://baike.baidu.com/.
[2]極客戰(zhàn)紀[EB/OL].https://e.codecombat.163.com/premium.htm#/premium.
[3]簡·麥戈尼格爾.游戲改變世界[M].閭佳,譯.杭州:浙江人民出版社,2012,9.
[4]莊紹勇.游戲化學(xué)習(xí)[M].北京:北京師范大學(xué)出版社,2015,10.
[5]王世穎.人本游戲——游戲讓世界更美好[M].北京:電子工業(yè)出版社,2014,2.