韓 娜 周 波 馬曉梅黑龍江科技大學(xué)計算機(jī)學(xué)院 黑龍江哈爾濱 150022
基于Greenfoot游戲驅(qū)動的Java程序設(shè)計課程的教學(xué)改革
韓 娜周 波馬曉梅
黑龍江科技大學(xué)計算機(jī)學(xué)院黑龍江哈爾濱150022
Java程序設(shè)計課程是高等院校計算機(jī)相關(guān)專業(yè)的基礎(chǔ)課程,學(xué)生難于理解抽象的面向?qū)ο蟾拍?,不能實現(xiàn)真實世界的虛擬映射。本文應(yīng)用Greenfoot輔助軟件采用游戲驅(qū)動的方式進(jìn)行課程教學(xué),以實踐促進(jìn)教學(xué),激發(fā)學(xué)生的學(xué)習(xí)積極性,極大地提高了教學(xué)效果。
java程序設(shè)計;Greenfoot;游戲驅(qū)動
Java程序設(shè)計課程作為一門專業(yè)基礎(chǔ)課程,于大學(xué)一年級的第二個學(xué)期開設(shè)。Java程序設(shè)計課程的目的是引入面向?qū)ο笏枷耄髮W(xué)生理解面向?qū)ο蟮幕靖拍睿侯?、對象、繼承和封裝等,并能夠?qū)⒒纠碚搼?yīng)用于實踐編程過程。從歷年的教學(xué)反饋上來看,這門課程并沒有達(dá)到理想的效果。傳統(tǒng)的教學(xué)強(qiáng)調(diào)理解基本概念的含義并掌握對應(yīng)的程序?qū)崿F(xiàn),但實際上,學(xué)生并不能真正地將現(xiàn)實世界的問題轉(zhuǎn)化成面向?qū)ο缶幊痰某橄竽M。如何讓學(xué)生能更加直觀地體會對象和類與現(xiàn)實世界的關(guān)聯(lián)關(guān)系就成為Java程序設(shè)計課程關(guān)注的焦點問題從更深的層次上來說,如何將學(xué)生的被動學(xué)習(xí)變成主動學(xué)習(xí),從而促進(jìn)課程的開展是作為教師需要考慮的問題。
興趣是最好的老師,而游戲就是學(xué)生的興趣點之一,如果能夠用游戲驅(qū)動的方式進(jìn)行程序設(shè)計教學(xué),就會極大地提高學(xué)生的學(xué)習(xí)興趣。玩耍是人類的天性,而游戲中的參與、互動和娛樂特質(zhì),能夠讓學(xué)習(xí)者在游戲的過程中始終感受到樂趣,在心理上處于一種輕松愉悅的狀態(tài),從而達(dá)到在樂中學(xué)、在做中學(xué)的目的。[1]以游戲貫穿程序設(shè)計教學(xué)過程中,改變以往從理論到實踐的固定教學(xué)模式,形成從具體的體驗開始,到總結(jié)規(guī)律,最終用理論指導(dǎo)實踐的體驗式學(xué)習(xí)過程。
Java程序設(shè)計課程的教學(xué)過程遵循Kolb學(xué)習(xí)周期[2](如圖1所示)。游戲驅(qū)動教學(xué)設(shè)計為簡單演示游戲雛形,即從具體體驗出發(fā),由學(xué)生經(jīng)過沉思觀察,找到游戲中的特殊角色和場景,從而抽象出面向?qū)ο蟮母拍?,理解掌握游戲開發(fā)步驟后,積極實踐,將該游戲進(jìn)一步完善。
圖1 Kolb學(xué)習(xí)周期
用游戲來驅(qū)動Java程序教學(xué)的一個前提是能夠用可視化的方式進(jìn)行游戲開發(fā)。大規(guī)模游戲開發(fā)軟件的應(yīng)用需要大量的時間和精力才能掌握,會分散學(xué)生學(xué)習(xí)的注意力,模糊焦點問題,背離我們的最終目標(biāo)。因此,簡單易用,有詳盡的參考資料,能夠提供可視化編程環(huán)境(直觀體現(xiàn)面向?qū)ο蟮母拍?,支持Java基本語法,可以進(jìn)行手工編程就成為我們選擇輔助游戲軟件的選擇標(biāo)準(zhǔn)。
根據(jù)Oracle公司對初學(xué)者的推薦[3],我們選擇Alice,Greenfoot和BlueJ進(jìn)行比較并從中選擇一款滿足我們要求的輔助游戲軟件。
2.1Alice
Alice是由卡內(nèi)基梅隆大學(xué)開發(fā)的一款3D動畫可視化開發(fā)軟件。其界面由程序組件的拖拽操作完成。三維的立體對象具有很強(qiáng)的真實感,但是該軟件由圖形化語言完成,不支持文本方式的編程(即不需要手工編程)。[4]
2.2BlueJ
BlueJ軟件由肯特大學(xué)開發(fā)和維護(hù)。它提供了一個全Java的開發(fā)環(huán)境,面向?qū)ο蟮膶哟谓Y(jié)構(gòu)由類似UML的圖形表示。用戶能夠直接使用圖標(biāo)創(chuàng)建任何類的對象,并利用它們的方法進(jìn)行交互。然而,該軟件不支持可視化的演示對象的狀態(tài)和行為。[5]
2.3Greenfoot
Greenfoot是由肯特大學(xué)Michael和Martin設(shè)計的一款Java游戲設(shè)計工具[6],該軟件基于BlueJ軟件,具有BlueJ的優(yōu)點,同時能夠在一個二維表格中顯示所模擬的真實世界場景和角色。
經(jīng)過如表1所示的可視化環(huán)境分析,我們可以看出Greenfoot完全符合我們的基本要求。因而采用Greenfoot作為Java程序設(shè)計課程的輔助教學(xué)軟件。
表1 可視化軟件分析
3.1基本教學(xué)設(shè)計
在Java程序設(shè)計課程的第一次課上,教師展示了一個由Java技術(shù)完成的游戲——吃香蕉(如圖2所示),并為游戲中的角色編寫了控制移動的代碼,從而激發(fā)學(xué)生的興趣。
圖2 吃香蕉初始化界面
從這個游戲開始,首先讓學(xué)生認(rèn)識到游戲中出現(xiàn)角色都可以看成是具體的對象,不對概念本身進(jìn)行贅述,而是通過在Greenfoot的環(huán)境下讓學(xué)生自己動手生成香蕉或是猴子(吃香蕉的人)幫助學(xué)生體會對象及類的直觀表示方式。為了讓猴子能控制來回移動吃到不同位置落下的香蕉,我們引入方法(movemonkey),引導(dǎo)學(xué)生學(xué)會使用帶參數(shù)的方法或不帶參數(shù)的方法的直接應(yīng)用,而不是過分強(qiáng)調(diào)理論。學(xué)生通過自己動手,很快就能掌握方法的規(guī)則,緊接著引導(dǎo)學(xué)生考慮猴子如何吃掉香蕉的操作,引出下一個知識點:繼承,以及繼承的特點。以游戲為驅(qū)動,逐步引入Greenfoot的環(huán)境使用,類和對象及方法、構(gòu)造方法等基本概念和實現(xiàn)語法等知識點。最終完成的游戲具有背景、音效、計分、炸彈等效果,運(yùn)行效果如圖3所示。
圖3 游戲最終效果
該游戲不能涵蓋Java所有的知識點,根據(jù)知識的利用率依次采用鋼琴模擬示例介紹數(shù)組和Color類知識;外有引力模擬引入集合和循環(huán)及標(biāo)準(zhǔn)類庫等。[7]利用Greenfoot可以將游戲貫穿于整個Java教學(xué)過程中,是真正的“做中學(xué)”,學(xué)生的興趣被激發(fā)后,會爆發(fā)出令人不可想象的熱情和好的創(chuàng)意。當(dāng)然,教學(xué)過程中教師首先要具備扎實的Greenfoot操作能力,并能將現(xiàn)實生活中常見情景模擬成為Greenfoot中的場景,才能幫助學(xué)生將好的創(chuàng)意付諸實現(xiàn)。
除了介紹Greenfoot的書籍外,Greenfoot還提供了良好的社區(qū)支持,學(xué)生在學(xué)習(xí)過程中隨時可以將自己的小作品“分享”到網(wǎng)站上,與世界各地的Greenfoot愛好者共同探討。由于Greenfoot在國外使用頻率較高,也間接地為學(xué)生提供了與國外同齡人交流的機(jī)會,能促進(jìn)學(xué)生更多地關(guān)注、了解當(dāng)前的Java發(fā)展的最新技術(shù)動態(tài)。
3.2學(xué)生作品
經(jīng)過一個學(xué)期的學(xué)習(xí),學(xué)生基本都可以熟練地掌握Greenfoot軟件的使用,并能在該環(huán)境下進(jìn)行小游戲的開發(fā)或現(xiàn)實情景模擬,較好地完成了真實世界和Java模擬世界的轉(zhuǎn)化過程,并能根據(jù)自己的創(chuàng)意完成一些小作品,如:猜數(shù)字、接蛋糕、貪吃貓等游戲(如圖4所示)。
基于Greenfoot的游戲項目驅(qū)動Java程序設(shè)計的教學(xué)改革經(jīng)過一個學(xué)期的試點,取得了較好的效果。學(xué)生從過去的被動接受知識,轉(zhuǎn)變?yōu)榉e極主動地學(xué)習(xí)和研究小游戲的開發(fā),不再滿足于教師講授的內(nèi)容,為了讓自己的作品更好玩,更完美,會超前地學(xué)習(xí)自己需要的知識,達(dá)到了“授之以漁”的目的。為游戲驅(qū)動程序教學(xué)奠定了一定基礎(chǔ),但教學(xué)改革過程中也存在一些問題,如何選取適當(dāng)?shù)挠螒虬咐芗ぐl(fā)學(xué)生的熱情,又不讓學(xué)生過分癡迷于游戲是下一步教學(xué)改革需要探討的問題,案例教學(xué)時如何根據(jù)學(xué)生的層次不同,進(jìn)行游戲完成目標(biāo)的分層設(shè)計,如何做好課程最終考核都是下一步的工作重點。
[1] 佟延秋.基于教育游戲的“Java程序設(shè)計”課程教學(xué)改革與實踐[J].計算機(jī)教育,2009(22):142-154.
[2] 簡述KOLB學(xué)習(xí)周期理論[EB/OL].http://wenku.baidu.com/ view/19934825af45b307e87197fa.html?re=view.
[3] New to Java Programming Center — Young Developers. [EB/OL]. [2014-11].http://www.oracle.com/technetwork/topics/newtojava/ youngdevelopers/index.html.
[4] What is Alice? [EB/OL].http://www.alice.org/index. php?page=what_is_alice/what_is_alice.
[5] Objects First with Java A Practical Introduction using BlueJ[EB/OL].http://www.bluej.org/objects-first/description. html#bluej.
[6] 馬曉梅,張劍飛,何鳴.Oracle公司開源項目以Greenfoot帶動Java課程體系改革[J].高師理科學(xué)刊,2014(1):111-113.
[7]michael K?lling.Introduction to Programming with Greenfoot [M]. London: Prentice Hall,2009:61-99.
Teaching Reform of Java Programming Based on Greenfoot and Game-driven
Han Na, Zhou Bo,ma Xiaomei
Heilongjiang University of Science and Technology, Harbin, 150022, China
Java programming is a basic course of computer-relatedmajors in university, but students are difficult to understand abstract objectoriented concepts, so virtualmapping of the real world can not be achieved. In this paper, the assistive software Greenfoot is used to carry out teaching, which is game-driven, in order to promote the teaching practice, to stimulate students' enthusiasm, which greatly enhanced the teaching effectiveness.
Java programming; Greenfoot; game-driven
2014-12-10
韓娜,碩士,講師。周波,博士,教授。馬曉梅,碩士,講師。
2013年黑龍江科技大學(xué)教育教學(xué)改革工程項目“基于Greenfoot的Java程序設(shè)計課程教學(xué)方法的改革和實踐”(編號:JY13-99)的研究成果;2014年黑龍江省高等教育教學(xué)改革項目“工程能力為目標(biāo)的程序設(shè)計課程體系研究”(編號:JG2014010997)。