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