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