佟延秋
摘要:本文針對當(dāng)前Java教學(xué)中重要性日益凸顯的實踐環(huán)節(jié)進(jìn)行了論述,從教育游戲的概念及教育游戲在Java教學(xué)中應(yīng)用的可行性入手,提出了基于“Robocode”教育游戲的“Java程序設(shè)計”課程教學(xué)設(shè)計模式,并對該模式進(jìn)行了詳細(xì)的闡述。
關(guān)鍵詞:教育游戲;Java教學(xué);教學(xué)設(shè)計
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1 “Java程序設(shè)計”課程的地位
自從1995年Java釋名開始,經(jīng)過十余年的發(fā)展,“Java程序設(shè)計”語言已經(jīng)成為軟件開發(fā)領(lǐng)域內(nèi)的主流開發(fā)語言之一。從近幾年市場上對程序開發(fā)人才的需求來看,無論是企業(yè)級的J2EE開發(fā),還是小型設(shè)備的嵌入式J2ME開發(fā),甚至是應(yīng)對RIA時代的JavaFX開發(fā),都離不開Java的身影。從如圖1所示的2009年7月的TIOBE開發(fā)語言排行榜的統(tǒng)計結(jié)果來看,Java位列第一位,占有率為20.452%。
從課程設(shè)置的角度來看,“Java程序設(shè)計”不僅僅在計算機(jī)專業(yè)中開設(shè),在電子、通信、教育技術(shù)、信息管理等專業(yè)的本科階段中也是非常重要的課程。同時,全國軟件資格水平考試和高校計算機(jī)等級考試中也增設(shè)了Java相關(guān)的考試內(nèi)容。由于社會上對Java開發(fā)崗位需求的增加,與Java相關(guān)的培訓(xùn)課程也如雨后春筍般涌現(xiàn)出來。
因此,如何提高高校本科階段“Java程序設(shè)計”課程的教學(xué)質(zhì)量,培養(yǎng)適應(yīng)市場需求的高素質(zhì)Java開發(fā)人才,已經(jīng)成為一個非常重要的研究課題。
2教育游戲概念淺析
教育游戲產(chǎn)業(yè)研究報告將教育游戲定義為:能夠培養(yǎng)游戲使用者的知識、技能、智力、情感、態(tài)度、價值觀,并具有一定教育意義的計算機(jī)游戲軟件。
香港中文大學(xué)尚俊杰等人提出了“輕游戲”,他們認(rèn)為:
(1)“輕游戲”是一個教育軟件, 其中的內(nèi)容和任務(wù)都是和課程相關(guān)的;
(2)“輕游戲”必須具備游戲的某些特征,充分利用主流游戲的內(nèi)在動機(jī),如挑戰(zhàn)、好奇、幻想、控制、目標(biāo)、競爭、合作等(M alone &Lepper 1987);
(3)“輕游戲”應(yīng)該能很容易地被用到課堂教學(xué)中,即“輕游戲”是嵌入了主流游戲的內(nèi)在動機(jī)的教育軟件。
2006年,李藝曾提出:教育游戲是電子化的軟件,由游戲設(shè)計和制作人員創(chuàng)作、承載著具體的教育和娛樂目的,它的運(yùn)行狀態(tài)可為游戲者提供包含教育內(nèi)容的游戲環(huán)境,游戲者在此環(huán)境中可進(jìn)行游戲活動。
祝智庭和趙海蘭等人也對教育游戲在狹義上和廣義上分別做了定義。狹義上的教育游戲是指教育性和游戲性整合在一起,在玩游戲的過程中所產(chǎn)生的自然的教育效果。從廣義上來講,教育游戲是指具有教育素材和游戲性因素的所有的教育軟件。
3教育游戲用于“Java程序設(shè)計”教學(xué)的優(yōu)勢
3.1培養(yǎng)學(xué)生的興趣
興趣是最好的老師,是能夠促進(jìn)學(xué)習(xí)者盡快入門的基礎(chǔ)和前提,能對學(xué)習(xí)者的學(xué)習(xí)起到推動作用。玩耍是人類的天性,而作為現(xiàn)代電子技術(shù)產(chǎn)物的電子游戲所具有的參與(Participation)、互動(Interactive)和娛樂(Entertainment)特質(zhì),能夠讓學(xué)習(xí)者在游戲的過程中始終感受到樂趣(Funativity),在心理上處于一種輕松愉悅的狀態(tài),從而達(dá)到在樂中學(xué)、在做中學(xué)的目的。
3.2提高學(xué)生的實踐能力
作者在多年的Java教學(xué)中發(fā)現(xiàn),無論是教材的章節(jié)排列順序還是某些教師的講授,大多都是從Java語言的誕生及語法開始講起。這樣做的好處是能夠使教學(xué)由淺入深地展開,但同時也存在著弊端。由Java語言的語法開始講授會讓學(xué)生學(xué)習(xí)的精力更多地消耗在過往知識的回憶與對比上。因為,在此之前學(xué)生已經(jīng)學(xué)習(xí)過多門程序設(shè)計語言。Java不僅僅是一種程序設(shè)計語言,更多的是一門程序開發(fā)技術(shù)。作者在第一節(jié)課上就向?qū)W生展示Java技術(shù)的一個簡單的應(yīng)用——桌面游戲開發(fā),并為游戲中的坦克編寫代碼,控制坦克的移動與射擊。這樣學(xué)生的學(xué)習(xí)興趣一下子便被提升起來。
這里,我們選擇了一款名為“Robocode”的游戲用于教學(xué)。該游戲基于Java開發(fā),屬于即時戰(zhàn)略類游戲。游戲是以坦克之間互相射擊的形式進(jìn)行的,坦克可以在規(guī)定的二維平面內(nèi)移動,并可以通過坦克上的雷達(dá)偵測對方坦克,然后進(jìn)行射擊。游戲以將對方坦克炸毀為勝利條件。該游戲運(yùn)行畫面如圖2所示。
“Robocede”游戲提供了3種類型的坦克:第一種是系統(tǒng)自帶的坦克,如“Corners”、“Crazy”、“RamFire”等。通過坦克的名稱(類名)可以看出,這種類型的坦克帶有特定的移動、偵測和射擊算法,可供學(xué)生與電腦進(jìn)行互動競賽;第二種是通過鍵盤與鼠標(biāo)進(jìn)行控制的坦克,如“Interactive”。這種類型的坦克通過鍵盤的方向鍵控制坦克的移動,使用鼠標(biāo)左鍵進(jìn)行射擊;第三種是通過使用Java語言編程的方式進(jìn)行控制的坦克。文章主要是利用這種方式進(jìn)行“Java程序設(shè)計”的教學(xué)。“Robocede”游戲為手工編寫Java程序提供了一個名為“Robot Editor”的代碼編輯器,如圖3所示。
從圖2所示的編輯器界面中可以看出,“Robot Editor”已經(jīng)提供了一個基礎(chǔ)的代碼框架,該代碼框架的UML圖如圖4所示。其中的包名可以使用學(xué)生的學(xué)號(需符合Java命名規(guī)則),類名可以使用學(xué)生的姓名(需符合Java命名規(guī)則)。其中的類提供了3個方法,具體功能見表1。
3.3提高算法的運(yùn)用能力
當(dāng)學(xué)生對“Robocode”游戲的基本操作已經(jīng)熟悉,并能夠熟練進(jìn)行手工代碼的編寫進(jìn)行游戲后,學(xué)生們對游戲勝利的渴望便會急劇的增加。他們會發(fā)現(xiàn),要想讓自己的坦克能夠取得比賽的勝利,必需要對對方坦克的位置、自己坦克的位置、自己坦克的移動以及當(dāng)自己被擊中后的處理等相關(guān)的參數(shù)進(jìn)行精確的計算。即要針對表1中游戲提供的3個基礎(chǔ)函數(shù)編寫精良的算法。因此,這就可能需要將人工智能以或神經(jīng)網(wǎng)絡(luò)算法運(yùn)用到自己坦克代碼的編寫上來。這樣,一個簡單的“Robocode”游戲不僅僅能夠讓Java學(xué)習(xí)變得有趣,同時在一定程度上還能夠培養(yǎng)學(xué)生對計算機(jī)科學(xué)算法學(xué)習(xí)的興趣。
4基于教育游戲的“Java程序設(shè)計”課程教學(xué)設(shè)計模式
教學(xué)設(shè)計涉及到一個組織化的教學(xué)過程,如教學(xué)目標(biāo)、教學(xué)內(nèi)容、學(xué)習(xí)者、教學(xué)策略、教學(xué)媒體以及將這些基本要素整合為一個模型。ADDIE(Analysis, Design, Development, Implement, Evaluation)教學(xué)設(shè)計模式包括教學(xué)的分析(Analysis)、設(shè)計(Design)、開發(fā)(Development)、實施(Implement)和評價(Evaluation)五個環(huán)節(jié)?;诮逃螒虻摹癑ava程序設(shè)計”教學(xué)設(shè)計模式如圖5所示。
4.1學(xué)習(xí)者分析與學(xué)習(xí)環(huán)境分析
這里我們的授課對象為大三第二學(xué)期本科生,在此之前,已經(jīng)學(xué)習(xí)了計算機(jī)的相關(guān)理論知識和一些編程語言。本“Java程序設(shè)計”課程分為理論和實踐兩個環(huán)節(jié)進(jìn)行教學(xué)。理論與實踐教學(xué)分別占32學(xué)時,理論課在多媒體教室進(jìn)行,實驗課在計算機(jī)實驗室進(jìn)行,每個學(xué)生人手一臺計算機(jī)。
4.2教育游戲軟件的選擇
本文選擇“Robocode”游戲軟件用于“Java程序設(shè)計”課程教學(xué)。該軟件本身就是基于Java開發(fā)的,最新版本為1.7版。軟件非常小,安裝后大約為8.15M。“Robocode”游戲軟件的使用非常簡單,啟動后的主界面如圖6所示。其中“Battle”菜單下的命令用于新建戰(zhàn)役、打開戰(zhàn)役、保存戰(zhàn)役和導(dǎo)入/導(dǎo)入記錄。“Robot”菜單下的命令用于新建單個坦克/坦克集群、導(dǎo)入/打包坦克?!癘ptions”菜單下的命令用于設(shè)置游戲窗口的屬性。
4.3教育游戲教學(xué)策略的設(shè)計
基于教育游戲的學(xué)習(xí)環(huán)境是一個開放的學(xué)習(xí)環(huán)境,在這樣的環(huán)境下,學(xué)習(xí)者很容易產(chǎn)生迷失現(xiàn)象,即學(xué)習(xí)者不能將注意力集中于學(xué)習(xí)任務(wù)上。為了避免學(xué)生在學(xué)習(xí)的過程中迷失學(xué)習(xí)任務(wù),我們提出的教學(xué)設(shè)計模式是以建構(gòu)主義為指導(dǎo)思想,在學(xué)習(xí)的過程中采用協(xié)作學(xué)習(xí)教學(xué)策略,教師在教學(xué)活動中為學(xué)習(xí)者提供腳手架。
哈希姆(Harasim, 1995) 將協(xié)作學(xué)習(xí)定義為:“兩個或兩個以上的個體通過共同的工作來構(gòu)建意義、探索主題或提高技能的活動?!绷_切爾和提雷(Roschelle & Teasley,1995)認(rèn)為:協(xié)作是在結(jié)構(gòu)和維持對問題的共同理解的過程中持續(xù)努力的結(jié)果,是一種協(xié)調(diào)、同步的活動。杰恩(Jehng,1997)將協(xié)作定義為不同個體共享彼此的知識,并最終形成一致性知識的過程。在具體的實踐教學(xué)中,我們以兩名學(xué)生為一組,這兩名學(xué)生分別為自己的坦克編寫代碼,然后進(jìn)行比賽。
4.4教育游戲活動的實施
(1) 按照加涅的九事件教學(xué)安排移習(xí)活動并創(chuàng)設(shè)學(xué)習(xí)情境。教師在“Robocode”游戲平臺上向?qū)W生演示人機(jī)之間的坦克對戰(zhàn)。
(2) 向?qū)W生講解“Robocode”游戲軟件的操作技能。
(3) 觀察學(xué)習(xí)者使用“Robocode”游戲軟件時的小組作協(xié)作學(xué)習(xí)活動,教師在適當(dāng)?shù)臅r機(jī)給予面對面的干預(yù)和指導(dǎo)。
4.5學(xué)習(xí)結(jié)果的評價
以建構(gòu)主義理論為指導(dǎo)的教學(xué)設(shè)計模式更加強(qiáng)調(diào)學(xué)習(xí)者在學(xué)習(xí)過程中的真實體驗,而傳統(tǒng)的標(biāo)準(zhǔn)化測驗并不能完全檢測出學(xué)習(xí)者的能力,因此對學(xué)習(xí)結(jié)果的評價就不能使用傳統(tǒng)的標(biāo)準(zhǔn)化測驗。而替代性評價則避免了典型的多項選擇測驗中存在的問題。這些新的評價系統(tǒng)中所蘊(yùn)涵的核心思想是:要求學(xué)生自己展示自己的學(xué)習(xí),或者展示自己能夠利用在學(xué)習(xí)過程中學(xué)到的知識和技能來完成一些實際工作,其目的就是要在真實的情境中展示學(xué)生自己的水平。在實際的教學(xué)活動中,我們采用以下兩種評價方式。
4.5.1檔案帶評價
替代性評價的一種常見形式是檔案帶評價(portfolio assessment),即搜集和評估學(xué)生在一段時間內(nèi)的作平樣本(Hambleton,1996;Herbert & Schultz,1995;Rolheiser,Brower,&Stevahn,2000)。教師可以收集學(xué)生的作品、研究設(shè)計以及其他一些反映高級心理技能的作品,并以此作為評估學(xué)生進(jìn)步程度的依據(jù)。這里,我們主要是查看學(xué)生在游戲過程所編寫的Java代碼。
4.5.2表現(xiàn)性評價
表現(xiàn)性評價(performance assessment)是在現(xiàn)實生活中對學(xué)生知識和技能的實際表現(xiàn)進(jìn)行考察的測驗。表現(xiàn)性評
價的一個例子就是完成論文,完成論文不僅要求學(xué)生展現(xiàn)自己知道什么,還要表現(xiàn)出自己能做什么。汽車駕駛員和飛行員的駕照考試、醫(yī)學(xué)上的臨床測驗等,都是表現(xiàn)性評價(Swanson,Norman,&Linn,1995)。通過觀察學(xué)生之間進(jìn)行游戲的勝負(fù)結(jié)果,并對勝利/失敗坦克代碼進(jìn)行分析,來評價學(xué)生的實踐操作能力。
5總結(jié)
文章以高校本科“Java程序設(shè)計”課程教學(xué)為平臺,采用一種全新的教學(xué)理念——將電腦游戲引入實踐教學(xué),在寓教于樂的過程中培養(yǎng)學(xué)生的實踐能力。
參考文獻(xiàn):
[1]TIOBE Software. TIOBE Programming Community Index for July 2009[EB/OL]. http://www.tiobe.com/index.php/ content/paperinfo/tpci/index.html.
[2]中國互聯(lián)網(wǎng)絡(luò)信息中心. 第十七次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告[EB/OL]. http://www.cnnic.com.cn/html/ Dir/ 2006/01/17/3508.htm,2006.
[3] 尚俊杰,李芳樂.“輕游戲”:教育游戲的希望和未來[J]. 電化教育研究,2005(1):25.
[4]Harasim Letal. Learning Networks [M]. Cambridge,MA: MIT Press,1995.
[5]Jehng J.J. The Psycho-social processes and cognitive effects of peer-based collaborative interaction with computers [J]. Journal of Educational Computing Research. 1997,17(11):19-46.
[6] D.Campell, 2000; Marzano, Pickering&Pollock, 2001; Newmanetal, 1995.
[7] 羅伯特?斯萊文. 教育心理學(xué)[M]. 姚梅林,譯. 北京:人民教育出版,2004.