唐玄,劉娟,劉世軍
(蚌埠學院 計算機與信息工程學院,安徽 蚌埠 233000)
美國高等教育信息化協會(EDUCAUSE)在2021年4月推出了《2021年地平線報告:教學版》報告,該報告指出,由于新冠疫情而使未來的高等教育將一直依賴遠程技術和數字學習[1].“在線學習聯盟”(The Online Learning Consortium)在2020年2月發布的《數字學習演化趨勢》報告指出,基于游戲的學習已經成為數字學習的七大主要趨勢之一[2].“研究與市場”(Research and Markets)公司在2021年5月發布的《游戲學習市場:2021到2026年預測》報告指出,全球的基于游戲的學習市場在未來幾年內將以20.07%的速度飛速增長[3].一些高校的課程教學中已經使用了基于游戲的學習,如病毒學課程中使用了“CD4 Hunter”移動游戲、分子生物學課程中使用了“Foldit”桌面游戲、有機化學課程中使用了 “PolyCraftWorld”——“我的世界”(MineCraft)修改版游戲[4].然而,程序語言課程作為高等教育中科學、技術、工程和數學(STEM)相關專業學生都必須學習的基礎課程[5],更應該引入基于游戲的學習技術.在課程教學中使用基于游戲的學習技術,已經被證明比傳統教學更加能夠促進學生對計算機記憶概念的了解,更加具有激勵性,同時無關性別[6].對國外一所大學本科生進行調查也顯示了東亞學生能夠積極接受基于游戲的學習[7].2011年,牟琴通過在《C語言程序設計》課程中引入“漢諾塔”“博弈”兩個游戲驗證“基于輕游戲的程序設計課程教學和學習模型”,結果表明,相對于傳統教學方式獲得了更高的贊同度和認可度[8]。2019年,肖志嬌等開發了“基于游戲的面向對象程序設計課程實驗系統”,將游戲開發任務引入面向對象程序設計實驗之中,提高了學習者的學習效率和學習效果[9]。2021年,龔鑫等使用Armor Games制作的用于學習程序設計思想的Lightbot游戲將"基于游戲的體驗式學習計算思維培養模型"應用于教學,結果表明可以提升學習者的計算思維,從而提高學習者學習效果[10]。因此,本文構建了一個基于游戲的高校程序語言課程學習工具,通過將該工具用于程序語言課程教學中,從而用來提高學生的學習積極性,最終獲得良好的學習成績.
2018年,Falco等在論文中指出,學生在學習程序語言的過程中,主要面臨數學基礎、解決問題、學習動機、語言語法等問題,教師則面臨著方法和工具的選擇問題[5].通常,教師會采用兩種不同的方法來選取工具:使用現有的教育游戲、自主開發合適的應用程序.
常見基于游戲的程序語言學習工具有CodeCombat、CodinGame、CodeHunt、Screeps、Swift Playgrounds、FMSLogo、Scratch等[11,12],它們的名稱和特性如表1所示.

表1 基于游戲的程序語言學習工具
然而這些工具存在很多缺點.有的工具沒有開源程序代碼或者需要價格高昂的商業授權,教師無法針對學生的實際情況創建合適的游戲項目;有的工具不支持中文,增加了部分教師和學生的使用難度;有的工具支持的語言有限,不適合高校五花八門的程序語言課程教學;有的工具沒有移動版本和離線版本,無法適應現在比較流行的移動學習和線上線下混合學習;有的工具采用積木式、繪圖式編程,相對于高校學生太過于簡單;有的工具采用了答題、字符等較為簡單的游戲界面,趣味性不強,不能很好地增強學生的學習主動性.
部分研究者或教師自主開發了學習工具.2009年,Jiau等人基于PyGame框架開發了一種三維戰棋類桌面游戲,幫助學生學習程序語言,促使學生進行自我激勵[13].2017年,Hooshyar等人開發了基于網頁的棋盤策略類游戲幫助學生學習程序設計導論課程,并且增強了學生解決網絡問題的能力[14].2020年,Priyaadharshini 等人開發了支持簡單拖放以及選擇題的移動游戲應用,并使用該應用幫助學生學習Python語言,激發學生的好奇心,更好地學習和理解程序語言相關概念[15].然而,這些自主開發的工具依賴于桌面、移動、網頁平臺之中的一種,不能適應多種平臺;另外,使用編程語言原生庫或輕量級框架進行學習工具開發,具有較高的技術門檻,不利于普通教師根據實際情況修改程序,影響了研究結果的推廣.
為了解決以上問題,本文將立足于實際,解決以下兩個關鍵問題:
Q1:如何開發一個方便教師使用、修改的學習工具?
Q2:學習工具對學生的學習是否有促進作用?
分別針對Q1和Q2采用以下方法:
(1)針對問題Q1,本文設計并實現了一種基于游戲的程序語言學習工具——TXProg系統.
該工具基于C/S、B/S混和結構,使用HTTP協議通信,系統總體架構部署如圖1所示.用戶可以使用桌面或移動設備運行客戶端程序,通過局域網或互聯網訪問服務端程序.為了保證高可用性,服務端可以部署成單個或多個節點多個實例.

圖1 TXProg系統總體架構部署圖
系統服務端程序采用純C語言開發,支持多種操作系統平臺,在Windows XP SP3、FreeBSD 12.3、Debian 8.11、CentOS 6.10操作系統環境下通過了測試;客戶端程序采用Godot[16]游戲(版本:3.2.3)引擎工具開發,支持移動端、桌面端、網頁端等多種操作系統平臺,在Android 4.4、FireFox 78.11、Chromium 73.0.3683.75環境下通過了測試.
運行服務端程序前,將安裝包解壓到任意目錄,然后確保編譯程序所在目錄被添加到搜索路徑,使用命令行運行服務端程序,默認端口為1980.服務端程序界面如圖2所示.

圖2 TXProg系統服務端程序界面
運行客戶端程序后,進入程序主界面.主界面沿水平方向分為兩個區域:“游戲地圖”“控制面板”.左邊的“游戲地圖”區域為二維像素風格游戲地圖,采用32像素的正方形地磚,分辨率為640×480像素.右邊的“控制面板”區域為選項卡風格的面板窗口,選擇選項卡能夠分別顯示“賬號”“任務”“設置”“幫助”四個面板.移動、網頁、桌面的客戶端程序界面分別如圖3、4、5所示.

圖3 TXProg系統移動客戶端程序界面

圖4 TXProg系統網頁客戶端程序界面

圖5 TXProg系統桌面客戶端程序界面
“幫助”面板顯示系統使用方法,如圖6所示.游戲主角叫做英雄(Hero),可使用聊天(Chat)、移動(Move)、攻擊(Chop)3種指令控制它完成任務.每個任務隱藏一個問題,根據游戲描述猜出問題,并且完成3件子任務:使用聊天指令說出隱藏問題答案、使用移動指令收集游戲地圖上的所有金幣、使用攻擊指令打敗游戲地圖上的所有怪物.

圖6 TXProg系統“幫助”面板界面
“設置”面板用于配置系統 的網絡服務器地址、界面語言、聲音開關,如圖7所示.

圖7 TXProg系統 “設置”面板界面
用戶通過“賬號”面板登錄成功后,會顯示用于安全授權的會話編號,并且自動切換至“任務”面板,如圖8所示.

圖8 TXProg系統“任務”面板界面
“任務”面板主要用來管理程序問題、程序代碼等相關信息,內容如下:
a.“編號”下拉菜單中顯示程序問題編號,用戶可以通過選擇其他編號切換程序問題.“名稱”文本框、描述文本框分別顯示程序問題的標題、正文.
b.“語言”下拉菜單中顯示程序語言類型,當前版本支持5種編程語言,分別為匯編、C、Python、Java、Shell.
c.“文件”文本框顯示服務端程序代碼文件名稱,格式為“_tx_task_會話編號_程序問題編號.語言后綴”,不同語言有不同的后綴.
d.“源碼”文本框用于顯示和編輯程序代碼.
e.“輸入”文本框顯示程序問題的輸入文本,每行代表一個游戲角色,格式為“角色類型 角色橫坐標 角色縱坐標”,角色類型包括:英雄(h)、金幣(c)、火焰(f)、怪物(o),橫坐標和縱坐標取值范圍分別為[0,19]、[0,14].
f.“輸出”文本框顯示程序編譯運行結果.用戶編寫程序代碼后,選擇“運行”按鈕,服務端程序開始編譯或解釋運行程序,讀取輸入文本輸出多行指令,然后校驗輸出文本是否匹配程序問題答案,從而判斷是否完成任務并返回結果給客戶端,客戶端則根據程序運行結果控制游戲角色執行相應的指令,從而驅動游戲運行.
g.“重置”按鈕用于將“游戲地圖”恢復到任務初始狀態.
h.“切換”按鈕用于將“控制面板”區域在全屏和還原之間切換,方便用戶專注于編寫代碼.
i.“運行”按鈕將程序源碼提交至服務器編譯執行.
系統內置了5個默認任務,涵蓋了程序語言課程的5個基本知識點,如表2所示.

表2 TXProg系統任務與知識點關系
(2)針對問題Q2,采用了隨機抽樣的前測后測控制分組實驗設計方法,將實驗對象分為控制組和實驗組,控制組學生采用傳統學習技術進行學習,實驗組學生使用TXProg系統,即采用基于游戲的學習技術進行學習.對實驗對象使用兩種測量工具進行前測后測,從而確定TXProg系統作為基于游戲的學習工具對程序語言學習是否有促進作用.
本文最終以自然班級為抽樣單位,選擇了我院本學期學習“Java程序設計”課程的兩個班級作為實驗對象.控制組和實驗組班級人數分別為55、56.經過專家評估,當前樣本容量能夠控制統計誤差.
本文基于自我效能(Self-Efficacy)理論[17]制訂了5分“程序語言學習自我效能”量表.該量表共12題,涵蓋3個維度——量級、一般、強度,克隆巴赫信度系數為0.93,以高分的方式體現高自我效能,從而有助于增強學習動機、提高學業成績[18].
本文從課程試題庫中挑選了TXProg系統相關知識點的8道選擇題,組成了每題2分、共16分的測驗試卷,用于測量學生的知識掌握程度.
實驗結束后,經過篩選去除不合格數據,共獲得了控制組38份、實驗組42份有效的自我效能問卷和測驗試卷.
(1)針對問題Q1,TXProg系統客戶端采用Godot游戲編輯器制作程序,大大地降低了制作游戲地圖的難度,支持了移動、桌面、網頁全平臺,內置的類似Python腳本也降低了深層次修改的難度.
(2)針對問題Q2,使用了GNU PSPP (版本:0.10.2)統計分析軟件對問卷和測驗試卷進行了研究.
對自我效能問卷、測驗試卷進行描述統計,各組p值均小于0.05,表明具有顯著性差異.對比控制組和實驗組,均值均有提高,采用基于游戲的學習技術明顯比傳統學習技術更加能夠增強學生自我效能、提高學生學業成績,如表3、4所示.

表3 自我效能問卷統計分析結果

表4 測驗試卷統計分析結果
TXProg系統可以達到目標,然而僅針對本校兩個專業學生、一門程序語言課程進行了分析,沒有仔細分析樣本之間差異性,樣本數量仍然較小,爭取以后推廣到其他專業、課程TXProg系統服務端、客戶端程序可以在http://tang.chat網站中下載,因缺少macOS,TXProg系統暫未提供iOS版本移動客戶端,知識點涉及面較小,以后將優化系統 ,進一步增強易用性、增加任務.