王婧
摘要:該文將案例教學(xué)與興趣教學(xué)相結(jié)合,提出了將游戲案例應(yīng)用于程序設(shè)計類課程的思路。同時也針對課程中采用的游戲案例的選取和設(shè)計進行了論述,通過實例進行了說明。
關(guān)鍵詞:案例設(shè)計;游戲案例;整體思路
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)02-0124-03
1 引言
“興趣是最好的老師”,這句話在程序設(shè)計類課程中得到了很好的印證。程序設(shè)計類課程的內(nèi)容較為枯燥,學(xué)生很難深入其中。而興趣能夠創(chuàng)造一個寬松愉悅的學(xué)習(xí)環(huán)境,這將成為學(xué)生積極主動學(xué)習(xí)的催化劑。學(xué)生更喜歡鉆研有趣味性的事物,這能讓他們很快的投入,并讓他們的腦瓜更加靈活。因此,如何讓學(xué)生在學(xué)習(xí)的時候產(chǎn)生興趣,就成為我們老師思考和研究的重點。
一般在面向?qū)ο蟪绦蛟O(shè)計授課中,首先要講解大量而繁瑣的語法,而在此過程中,學(xué)生很難立刻看到自己的學(xué)習(xí)成果,因此開始就喪失了學(xué)習(xí)興趣。面向?qū)ο蟪绦蛟O(shè)計屬于計算機設(shè)計語言類的課程,本身具有較強的操作性、直觀性和應(yīng)用型,因此為了讓學(xué)生能夠盡快看到學(xué)習(xí)成果,而不是一直陷入語法的研究中,多數(shù)會采用案例教學(xué)法,以案例為中心來組織教學(xué),將知識和技能融入其中,讓學(xué)生在做中學(xué),學(xué)中做,會取得更好的學(xué)習(xí)效果。這樣在教學(xué)中采用的案例的設(shè)計就尤為關(guān)鍵。不僅要考慮案例的規(guī)模,所融入的知識點,同時也要考慮趣味性、實用性和可操作性。游戲案例教學(xué)法在案例教學(xué)法的基礎(chǔ)上,把小游戲的程序引入課堂,作為程序教學(xué)的催化劑,幫助組織教學(xué)。讓學(xué)生更快的對所學(xué)內(nèi)容產(chǎn)生興趣的同時,通過游戲程序的獨特性,讓學(xué)生在案例的閱讀、思考、分析、討論中,建立起一套適合自己的完整而又嚴(yán)密的邏輯思維方法和思考問題的方式,以提高學(xué)生分析問題、解決問題的能力,從而增強教學(xué)效果。
2 游戲案例的設(shè)計思路
2.1 趣味性游戲解決教學(xué)重點
結(jié)合教學(xué)的相關(guān)知識點,設(shè)計一些游戲案例。這類游戲案例要求規(guī)模一定要小,簡單實用的同時又要緊扣教學(xué)內(nèi)容。
案例1:猜數(shù)游戲。
功能要求:計算機產(chǎn)生隨機數(shù)(1-100之間),猜中即勝,猜不中,提示是大了還是小了,繼續(xù)猜,直至猜到,給出所用次數(shù)和評語。
流程要求:7次以內(nèi)猜對的給予三星獎勵,15次以內(nèi)猜對的給予二星獎勵,20次以內(nèi)猜對的一星獎勵,超過20次沒有猜對的則不允許繼續(xù)猜數(shù)。
這個游戲源自一檔耳熟能詳?shù)木C藝節(jié)目“幸運52”,因此很能引起學(xué)生的共鳴。游戲規(guī)則簡單易懂,學(xué)生很容易接受。游戲?qū)崿F(xiàn)過程中涉及的主要知識技能點包括:輸入輸出語句、隨機數(shù)的產(chǎn)生、分支結(jié)構(gòu)的使用、循環(huán)結(jié)構(gòu)的使用。案例規(guī)模不大,代碼不足三十行,卻涵蓋了Java語言基礎(chǔ)語法以及三大結(jié)構(gòu)語句,可以說是一個很有代表性的教學(xué)小案例。
課堂上老師帶領(lǐng)學(xué)生分析游戲要求,設(shè)計代碼流程,選擇結(jié)構(gòu)語句,一步一步引導(dǎo)學(xué)生完成案例的同時,學(xué)生掌握了相關(guān)知識,了解了程序設(shè)計的流程。
案例2:聊天機器人
要求:用面向?qū)ο蟮乃季S方式創(chuàng)建一款聊天機器人。機器人有自己的名字name;有目前的饑飽程度,也就是生命值fullLevel;可以打招呼(sayHello說出自己的名字);可以喂食(Eat(int foodCount));可以聊天說話(Speak(string str));可以對異常情況進行處理(喂食數(shù)量過多撐死或餓死等);有兩個機器人可供選擇,開始通過數(shù)字1,2來選擇機器人進行聊天。
分析:
創(chuàng)建機器人類,該類包含姓名和生命值兩個屬性以及打招呼、喂食和聊天三個方法
生成兩個機器人類的對象,根據(jù)用戶選擇,調(diào)用不同的對象的方法。
這款游戲源自目前流行的人工智能技術(shù)。很多聊天軟件都有類似的功能。包括蘋果的siri也是類似的智能助手。案例在實際生活中的應(yīng)用讓學(xué)生對其很感興趣。課上所完成的聊天機器人較為簡單,并不具備更深的智能性,但卻結(jié)合了Java中最為重要的面向?qū)ο蟮南嚓P(guān)知識,包括:類的創(chuàng)建、屬性和方法的定義、類的封裝、對象的生成、屬性的設(shè)置和方法的調(diào)用等。
這個游戲案例用于面向?qū)ο蠡A(chǔ)單元的教學(xué)中,能夠很好地激發(fā)學(xué)生的學(xué)習(xí)興趣,并且?guī)椭鷮W(xué)生了解和認(rèn)識面向?qū)ο蟮母拍睿ㄟ^游戲設(shè)計,將知識點串聯(lián),從而理解各個重點問題。
2.2 真實游戲平臺解決教學(xué)難點
一些學(xué)生經(jīng)常玩的真實的游戲平臺,也可以引入教學(xué)中,幫助解決教學(xué)難點。讓學(xué)生知道程序是開放的、實用的,不是封閉的、形式的。通過課上所學(xué)內(nèi)容,完全可以開發(fā)出有趣、實用的程序。
在Java教學(xué)中,面向?qū)ο蟮姆庋b性、繼承性和多態(tài)性是教學(xué)的難點,也是學(xué)生最不容易理解和掌握的內(nèi)容。而IBM公司發(fā)布的Robocode坦克機器人對戰(zhàn)引擎則很好的容納和體現(xiàn)了這些難點問題的應(yīng)用。將其作為教學(xué)案例,能幫助學(xué)生很好地理解概念,掌握技巧,突破教學(xué)難點。
案例:坦克機器人大戰(zhàn)
每個孩子,尤其是男孩子心中都有一份特殊的坦克情結(jié)。一提到坦克機器人大戰(zhàn),學(xué)生就會產(chǎn)生興趣,跟小時候玩過的坦克游戲進行比較。給學(xué)生講解說明,這款坦克機器人對戰(zhàn)平臺,不同于普通的坦克游戲。坦克并不是用鼠標(biāo)鍵盤去控制,而是通過編程,賦予坦克智能,讓他自己在戰(zhàn)場上對戰(zhàn)。激發(fā)學(xué)生的編程的欲望。使用熟悉的程序設(shè)計語言,實現(xiàn)自己喜歡玩的游戲,對學(xué)生來說還是很有吸引力的。在引入案例的時候,一方面要通過演示案例活躍課堂氣氛,吸引學(xué)生注意力;另一方面應(yīng)該強調(diào)案例的挑戰(zhàn)性,激發(fā)學(xué)生的學(xué)習(xí)熱情。
這款游戲引擎是一個游戲半成品,他提供了坦克的父類,學(xué)生可以通過學(xué)習(xí)父類,了解類結(jié)構(gòu)以及封裝的特點。在創(chuàng)建自己的坦克機器人的時候,通過類的繼承,只用簡單的幾行代碼就實現(xiàn)了坦克。當(dāng)學(xué)生看著自己設(shè)計的坦克在戰(zhàn)場上發(fā)射子彈的時候,無比興奮的同時也切實地體會到了類的繼承帶來的好處。對坦克父類方法的重寫,實現(xiàn)了多態(tài)。在學(xué)生完成自己坦克機器人設(shè)計和實現(xiàn)的過程中,學(xué)生就了解了面向?qū)ο蟮闹匾拍睿煜ち嗣嫦驅(qū)ο蟮膶崿F(xiàn)方法,體會到了面向?qū)ο蟮木幊趟枷?。使得編寫代碼不再是為了交作業(yè),而是在實現(xiàn)一個有趣的作品。
通過這個游戲案例的引入,使得課堂氣氛變得非?;钴S,學(xué)生主動學(xué)習(xí)的熱情非常高。很多學(xué)生都是迫不及待的實現(xiàn)自己的坦克,再與其他同學(xué)的坦克對戰(zhàn),來檢驗自己的成果。
2.3 經(jīng)典的綜合性游戲,串聯(lián)知識點,鍛煉綜合實踐能力
經(jīng)典而有趣的游戲更容易引發(fā)學(xué)生的興趣。而這些游戲往往不是只包含幾個知識和技能點,需要對知識的綜合運用。
案例:貪吃蛇
貪吃蛇游戲是一款大家都耳熟能詳?shù)男∮螒?,簡單而?jīng)典。而要實現(xiàn)貪吃蛇則需要一個完整的設(shè)計過程。包括應(yīng)設(shè)計幾個類,類之間的關(guān)系,類的屬性和方法的實現(xiàn),以及界面的設(shè)計,游戲關(guān)卡的設(shè)計等等。因此這是一個綜合性的游戲案例。
游戲案例的興趣是前提,分析和引導(dǎo)是入門,實現(xiàn)是關(guān)鍵。教師要鼓勵學(xué)生去完成所給的案例。要學(xué)生開始就順利的寫出代碼是很有難度的,各種各樣的問題讓他們無從著手。游戲程序的設(shè)計包括幾個模塊,模塊實現(xiàn)的先后順序如何,關(guān)鍵問題在哪里,哪些方法最適宜解決問題等等。因此教師的引導(dǎo)和啟發(fā)就變得非常關(guān)鍵。例如給學(xué)生一些界面設(shè)計的參考案例,提倡個性化的設(shè)計;跟學(xué)生一起找出實現(xiàn)案例的關(guān)鍵點,一起技術(shù)攻關(guān);與學(xué)生一起設(shè)計流程,甚至可以提供一些解決方案供參考。一步一步引導(dǎo)和帶領(lǐng)學(xué)生共同完成,從而培養(yǎng)和鍛煉學(xué)生的綜合實踐能力。
2.4 舉一反三案例,鼓勵學(xué)生獨立完成,強化知識掌握
除了課堂上帶領(lǐng)學(xué)生共同完成的案例,還可以找一些與課堂案例大同小異的游戲案例,鼓勵學(xué)生獨立完成。
案例:是男人就下100層
這個游戲看上去跟前面談到的貪吃蛇游戲沒有任何關(guān)系,但是兩者在設(shè)計思路及實現(xiàn)過程上都非常類似。臺階類似于蛇身的方塊,整個樓梯是由一個一個臺階組成,類似于蛇身是由一個一個方塊組成。蛇吃到食物身體會增加一個方塊,而小人下臺階的同時,臺階也在不斷上移,也就是說在不斷地增加臺階??吹竭@些相似點之后,學(xué)生就會猛然發(fā)現(xiàn),這兩款看似完全不相關(guān)的游戲,原來實現(xiàn)起來卻如此相似。給出學(xué)生以下提示后,不妨就此收住,讓學(xué)生自己進一步思考,獨立完成這個舉一反三的游戲案例。引入這些類似的案例,能讓學(xué)生開拓眼界,善于在不同的程序中找相同,也就能夠舉一反三的完成更多的案例設(shè)計,有利于學(xué)生思維的提升,挖掘?qū)W生潛能。
3 結(jié)論
在面向?qū)ο蟪绦蛟O(shè)計課程授課中運用游戲作為教學(xué)案例,能充分調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性,活躍課堂氣氛,課堂教學(xué)效果也有相應(yīng)的提升。但對老師卻提出了更高的要求。想要讓游戲案例教學(xué)真正發(fā)揮更好的效用,老師應(yīng)該做到以下幾點:
1)認(rèn)真甄選游戲案例。案例規(guī)模、難度都要適中,要精簡、有趣、實用。游戲難度過大或者操作性差,反而會起到反作用。
2)要將知識技能點有機地結(jié)合到游戲中,讓學(xué)生真正在玩中學(xué),在學(xué)中玩。就游戲講游戲,知識點過于分散,反而會讓知識體系不夠系統(tǒng)。
3)課前做好充分準(zhǔn)備,如何引導(dǎo)啟發(fā)學(xué)生,可以將游戲案例做成一些半成品,讓學(xué)生在此基礎(chǔ)上完成,將游戲案例結(jié)合到課程設(shè)計中,充分發(fā)揮作用。
4)案例制作完成之后要有恰當(dāng)?shù)目偨Y(jié)。在總結(jié)中,要揭示出游戲案例中包含的理論知識,讓學(xué)生不只是完成了一個游戲的制作,還知道用了哪些知識制作的這個游戲,如何用這些知識完成其他案例的設(shè)計制作。
游戲案例法是在案例教學(xué)法的基礎(chǔ)上,結(jié)合興趣教學(xué)進行的一種微創(chuàng)新,是在新教學(xué)理念改革的前提下,確立以學(xué)生為主體,以培養(yǎng)學(xué)生動手能力、創(chuàng)新思維為基本方向的一個有效手段。案例教學(xué)法能促進教學(xué)相長,在學(xué)生的整體積極性得到提高的同時,突出教師教學(xué)實踐的亮點,使教師在教學(xué)中獲得充分的滿足感,從而使程序教學(xué)的效能得到穩(wěn)步提升。