本文是一篇高級職稱論文范文,論述了基于計算思維的《手機(jī)游戲編程之打地鼠》教學(xué)設(shè)計,選自期刊《中國計算機(jī)科學(xué)前沿》涉及領(lǐng)域包括(但不限于)軟件工程,計算機(jī)體系結(jié)構(gòu),程序設(shè)計理論,算法,人工智能,計算機(jī)圖形學(xué)與虛擬現(xiàn)實,因特網(wǎng),安全與密碼學(xué),生物信息,中文信息處理,智能人機(jī)接口,數(shù)據(jù)庫以及相關(guān)新興學(xué)科和交叉學(xué)科。
【摘 要】中小學(xué)算法與程序設(shè)計教學(xué)一直被詬病為大學(xué)程序設(shè)計教育的下放,且在超越技能訓(xùn)練方面一直停滯不前,需要努力探索新的道路。從教學(xué)理念來看,以計算思維為指導(dǎo)開展算法與程序課堂教學(xué),不僅有利于克服傳統(tǒng)教學(xué)“只見代碼不見人”的弊端,且有利于將計算思維塑造成一種基本的科學(xué)素養(yǎng);從教學(xué)工具來看,以Scratch、App Inventor等為代表的可視化、積木式編程工具解放了學(xué)生的雙手,有利于學(xué)生創(chuàng)新能力的培養(yǎng),應(yīng)成為中小學(xué)算法與程序設(shè)計教育的主流工具;诖,本課題以打地鼠游戲設(shè)計為例,采用App Inventor工具,以計算思維為指引設(shè)計具體教學(xué)目標(biāo)和教學(xué)任務(wù),努力培養(yǎng)學(xué)生的計算思維和創(chuàng)新能力。
【關(guān)鍵詞】App Inventor,計算思維,打地鼠游戲
當(dāng)今時代,以平板、手機(jī)為代表的智能移動終端得到極大推廣,移動應(yīng)用開發(fā)成為程序設(shè)計領(lǐng)域的新寵。這一時代變化也應(yīng)當(dāng)在基礎(chǔ)教育有所映射,以消解程序設(shè)計教育領(lǐng)域的“PC霸權(quán)”。面向移動終端的編程語言有很多,但專業(yè)的開發(fā)工具需要涉及較多的語法學(xué)習(xí),往往令初學(xué)者望而生畏。App Inventor具有零基礎(chǔ)、無門檻、可視化、模塊化等特點,符合新手的自然經(jīng)驗邏輯,只需“創(chuàng)意+代碼拼接”,就可以開發(fā)自己的移動應(yīng)用。將其作為一種事件驅(qū)動式編程語言,也有利于學(xué)生計算思維的培養(yǎng)。[1]因此,App Inventor一經(jīng)對外開放使用,就受到了國內(nèi)外教師和學(xué)生的青睞。
當(dāng)然,選擇一種合適的教學(xué)語言只是第一步,我們還應(yīng)該特別關(guān)注“教什么”和“如何教”的問題。當(dāng)前,中小學(xué)的算法與程序教學(xué)過分強(qiáng)調(diào)變量、函數(shù)、語句結(jié)構(gòu)等編程語言和程序結(jié)構(gòu)的技能,忽視了其內(nèi)在的“算法思想”,長期以來陷入“狹隘工具論”誤區(qū)而難以自拔。幸運的是,計算思維的提出為走出這一誤區(qū)提供了新的方向。其提出肇始于2006年卡內(nèi)基・梅隆大學(xué)計算機(jī)科學(xué)系主任周以真(Jeannette M. Wing)的界定:計算思維是運用計算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計以及人類行為理解的涵蓋計算機(jī)科學(xué)之廣度的一系列思維活動。[2]如今,計算思維受到廣泛重視,不少學(xué)者對該概念進(jìn)行了深入解讀。其中,Karen Brennan和Mitchel Resnick的研究工作具有較強(qiáng)的實踐指導(dǎo)性。他們從Scratch交互式媒體設(shè)計活動的特征出發(fā),建立了計算思維的三維框架。第一個維度是計算概念,包括順序、循環(huán)、事件、并行、條件、運算符、數(shù)據(jù);第二個維度是計算實踐,包括遞增與迭代、測試與調(diào)試、抽象與模塊化;第三個維度是計算觀念,包括表達(dá)(通過創(chuàng)建交互性媒體表達(dá)觀點和創(chuàng)意)、聯(lián)系(交流)、質(zhì)疑(理解技術(shù))。[3]可見,這個三維框架并不僅局限于概念、知識和原理層面,還包括超越算法和編程之外更多的學(xué)習(xí)結(jié)果,包括學(xué)生在創(chuàng)建互動媒體過程中的問題分析與解決能力、系統(tǒng)思考與設(shè)計能力、社交能力、人格塑造與思維品質(zhì)發(fā)展以及價值觀的形成。[4]
Marc Prensky曾指出,娛樂與教學(xué)合為一體的教學(xué)模式才是真正適合于青少年的教學(xué)模式。[5]研究表明,將游戲設(shè)計融入教學(xué)可以激發(fā)學(xué)生的探究欲,消除畏難心理;增強(qiáng)師生互動,使課堂更加生動有趣,實現(xiàn)教師和學(xué)生的雙贏。本課題以經(jīng)典的打地鼠游戲設(shè)計為例,基于上述三維框架設(shè)計教學(xué)目標(biāo),挖掘App Inventor開發(fā)游戲的功能,為通過算法與程序教學(xué)培養(yǎng)學(xué)生的計算思維能力提供新的思路。
方案設(shè)計
1. 教材與學(xué)生情況分析
本課是自編教材《跟我學(xué)App Inventor》第三章《打地鼠游戲》的第一課。教學(xué)內(nèi)容以打地鼠游戲為主線,重點關(guān)注“過程”這一計算概念,以及抽象和模塊化、測試和調(diào)試等計算實踐,培養(yǎng)學(xué)生從界面設(shè)計、功能設(shè)計等不同角度開發(fā)游戲,激發(fā)更多的創(chuàng)意。
本課的教學(xué)對象是浙江省溫州中學(xué)高一學(xué)生。通過前面幾節(jié)課的學(xué)習(xí),學(xué)生已熟練掌握了手機(jī)游戲程序的開發(fā)流程,對事件、屬性、變量、選擇結(jié)構(gòu)、數(shù)學(xué)運算、邏輯運算等重要概念已經(jīng)有了一定的認(rèn)識。另外,通過之前的積累,學(xué)生已經(jīng)對運用App Inventor開發(fā)游戲產(chǎn)生了濃厚的興趣,在界面設(shè)計與編程能力方面都有了顯著的提升,對游戲設(shè)計也有了自己的想法。
2. 教學(xué)目標(biāo)
計算概念:掌握“過程”的定義與使用。
計算實踐:學(xué)生在設(shè)計、創(chuàng)建、探究和調(diào)試的過程中,逐步內(nèi)化抽象和模塊化、過程調(diào)用和代碼復(fù)用、測試和調(diào)試計算實踐策略。
計算觀念:通過體驗App Inventor,設(shè)計并制作打地鼠游戲,表達(dá)自己的想法。
3. 可選方案的設(shè)計與選擇
基于上述教材和學(xué)情分析以及本課的教學(xué)目標(biāo),筆者初步設(shè)計了三種教學(xué)方案(見表1)。
三 地鼠,青蛙,兔子隨機(jī)產(chǎn)生,擊中不同角色,得分不同 畫布組件、多個圖像精靈組件、時鐘組件、聲音組件 復(fù)雜選擇結(jié)構(gòu)、多個自定義過程 多種水平抽象和模塊化、測試和調(diào)試、過程調(diào)用和代碼復(fù)用 表達(dá)、 聯(lián)系
整體而言,三個方案具有由易到難、逐步遞進(jìn)的關(guān)系。從計算概念的角度來看,方案一突出了“過程”的內(nèi)涵及意義,方案二、三在此基礎(chǔ)上更強(qiáng)調(diào)運算及數(shù)據(jù)。從計算實踐的角度來看,方案一注重學(xué)生通過角色扮演掌握抽象和模塊化的思想,并在不斷試誤的過程中掌握修正問題的方法及代碼復(fù)用策略。方案二、三更強(qiáng)調(diào)學(xué)生對教師作品的再利用和再創(chuàng)造,完成更復(fù)雜的作品。方案三除了涉及地鼠對象層→控件信息層→數(shù)據(jù)結(jié)構(gòu)層→編程語言層的抽象,還包括青蛙、兔子等不同對象及其之間關(guān)系的抽象。從計算觀念來看,方案一主要讓學(xué)生學(xué)會利用計算表達(dá)自己的想法。方案二、三更關(guān)注培養(yǎng)學(xué)生的聯(lián)系觀念,強(qiáng)調(diào)學(xué)生通過再修改他人的代碼增加游戲的趣味性,創(chuàng)造自己的個性化作品。從可操作性的角度來看,方案二、三需設(shè)計多種交互效果,代碼塊更為復(fù)雜,容易使學(xué)生望而生畏,對于初學(xué)者而言不太合適。根據(jù)上述分析,本課將重點圍繞方案一展開,其他方案作為拓展性方案在教學(xué)后半段呈現(xiàn),以激發(fā)學(xué)生更多的創(chuàng)意,同時為那些基礎(chǔ)較好的學(xué)生做預(yù)設(shè)準(zhǔn)備。
4. 程序編寫
打地鼠應(yīng)用程序共分為五個部分:一是屏幕初始化事件的程序:借助隨機(jī)函數(shù),設(shè)置地鼠產(chǎn)生的位置。二是計時器事件的程序:借助隨機(jī)函數(shù),設(shè)置地鼠定時產(chǎn)生的位置。三是地鼠觸碰事件的程序:地鼠被打中,發(fā)出敲中聲,位置也隨機(jī)發(fā)生變化。四是畫布觸碰事件所進(jìn)行的計分程序:如果觸碰到畫布上的地鼠,分?jǐn)?shù)加一,否則減一。五是重新開始的程序:點擊重新開始按鈕,界面上得分、失分文本框內(nèi)容清空為零。
“過程”概念的講解主要有兩種教學(xué)思路。一是根據(jù)角色扮演及流程圖,引導(dǎo)學(xué)生編寫代碼。學(xué)生在編寫程序時,可能會發(fā)現(xiàn)上述一、二、三部分程序中均有相同的代碼,實現(xiàn)的功能有相同之處(地鼠在畫布上隨機(jī)產(chǎn)生);教師再自然引出“過程”這一概念,講解其意義及使用方法。二是教師直接講解“過程”的概念、意義并示范建立“過程”。在實際教學(xué)中,筆者選擇了思路一,因為學(xué)生從多次重復(fù)出現(xiàn)的代碼中很容易想到如何縮短程序、提高代碼可讀性的問題,方便引出“過程”的含義及使用。
5. 拓展應(yīng)用
人類學(xué)習(xí)具有“聚類”特點,不管是新知識的獲取還是原有知識的同化,都習(xí)慣以“類”為依據(jù)進(jìn)行加工、存儲和提取。教學(xué)設(shè)計與實施理應(yīng)體現(xiàn)這種邏輯,以某種聚類方式將相關(guān)學(xué)習(xí)內(nèi)容連成組塊,從而在局部上聚類知識內(nèi)容,在宏觀上形成課程內(nèi)容的集合,逐步呈現(xiàn)給學(xué)習(xí)者,從而達(dá)到較好的教學(xué)效果。根據(jù)已有研究,大致有三種聚類方式:以相似的功能、相似的技術(shù)思想、相似的目標(biāo)聚類。[6]
通過這一課的學(xué)習(xí),學(xué)生理解了過程,學(xué)會了抽象和模塊化、代碼復(fù)用、測試和調(diào)試計算實踐策略,并能夠利用計算表達(dá)自己的觀念。按照上述聚類思想,可以拓展出很多的應(yīng)用。例如,以相似的功能(實現(xiàn)地鼠的出現(xiàn))來聚類設(shè)計打地鼠項目,可以借助列表建立多個洞口;建立多種音效和游戲規(guī)則,使游戲具有更強(qiáng)的交互性;以相似的技術(shù)思想為例,學(xué)生可建立多個游戲角色并分別設(shè)置相應(yīng)行為,增加游戲挑戰(zhàn)度及趣味性,更好地進(jìn)行個性化表達(dá)。因此,教學(xué)中希望學(xué)生以界面設(shè)計、功能設(shè)計為觸發(fā)點,盡可能多地發(fā)散出有聚類性質(zhì)的作品。
教學(xué)實踐
在本次教學(xué)中,筆者主要通過四個環(huán)節(jié)來完成教學(xué)。
1. 游戲體驗 引入新課
首先,讓學(xué)生玩打地鼠游戲,激發(fā)其探究欲望,同時拋出一個問題:這個游戲如何設(shè)計。游戲體驗結(jié)束后,請一位學(xué)生回答。本環(huán)節(jié)的設(shè)計有利于教學(xué)的展開,也可為后面學(xué)生的拓展應(yīng)用做鋪墊。
2. 角色扮演 腦力震蕩
學(xué)生角色扮演打地鼠游戲。首先引導(dǎo)學(xué)生小組討論:如果現(xiàn)場模擬打地鼠游戲,我們需要幾位同學(xué)?每位同學(xué)在游戲中的角色是什么?每個人的游戲規(guī)則是什么?腦力震蕩后,請一組學(xué)生進(jìn)行現(xiàn)場表演。每位演員對自己的角色進(jìn)行功能及規(guī)則介紹。經(jīng)過角色扮演,學(xué)生成功地將打地鼠游戲任務(wù)分解為不同模塊,并抽象成程序可解決的問題。本環(huán)節(jié)注重引導(dǎo)學(xué)生對問題進(jìn)行抽象與模塊化(見表2)。學(xué)生歸納出的計算概念如表3所示。
打地鼠項目的思路清晰之后,筆者引導(dǎo)學(xué)生畫相關(guān)流程圖,即開展抽象建模,將解決問題的過程用流程圖的方式表達(dá)出來。以畫布觸碰事件的程序流程圖為例(如圖1),讓學(xué)生獨立完成流程圖設(shè)計,形象直觀的流程圖使得各種操作一目了然,不會產(chǎn)生“歧義性”,便于發(fā)現(xiàn)有錯誤的算法,并有利于轉(zhuǎn)化為程序。
圖1 畫布觸碰事件流程圖
經(jīng)過上面的分析之后,筆者已經(jīng)引導(dǎo)學(xué)生將打地鼠游戲題轉(zhuǎn)化為易于理解和實現(xiàn)的程序問題。
3. 突破重點 解決疑惑
經(jīng)過上一環(huán)節(jié)的角色扮演,學(xué)生迫切希望能夠親自設(shè)計打地鼠應(yīng)用。筆者先演示屏幕初始化事件的程序,隨后向?qū)W生提出任務(wù)一:實現(xiàn)地鼠在屏幕初始化、時鐘控制、地鼠被擊中時均可隨機(jī)出現(xiàn)。學(xué)生在筆者的指引下完成任務(wù)。這時,學(xué)生會發(fā)現(xiàn)三個事件的程序塊相同,紛紛提出如何避免編寫重復(fù)代碼的問題,從而引出教學(xué)重點“過程”這一概念。筆者演示過程的建立及調(diào)用。學(xué)生修改原有的程序,重寫代碼,不斷測試和調(diào)試,觀察是否實現(xiàn)同樣效果,以深化對“過程”的理解――“過程”中的代碼可以被重復(fù)地調(diào)用,從而減少編程的工作量,優(yōu)化代碼結(jié)構(gòu),也方便日后對程序的閱讀、維護(hù)、使用。 接下來,筆者提出任務(wù)二:地鼠被點中則加一分;否則,減一分并設(shè)置聲效。讓學(xué)生繼續(xù)通過自主探究完成任務(wù)。學(xué)生在調(diào)試程序時,會發(fā)現(xiàn)點中地鼠時分?jǐn)?shù)并沒有發(fā)生變化。此時,應(yīng)留給學(xué)生充足的自主探究空間和時間,讓學(xué)生自由討論,發(fā)散他們的思維,提出不同的解決方案,以便讓學(xué)生更好地掌握測試和調(diào)試計算實踐策略。如果學(xué)生未能解決問題,引導(dǎo)學(xué)生回顧計分原理:利用if選擇語句,實現(xiàn)成績累加,并強(qiáng)調(diào)細(xì)節(jié),即得分框、失分框的text屬性一開始均應(yīng)設(shè)置為“0”,方能實現(xiàn)數(shù)學(xué)運算。
4. 拓展提升 課堂總結(jié)
學(xué)完本課,為鼓勵學(xué)生產(chǎn)生一些創(chuàng)意想法,筆者為學(xué)生提供了一份表格供學(xué)生參考(見表4),讓學(xué)生將自己的創(chuàng)意記錄下來。學(xué)生可以從界面設(shè)計或者功能設(shè)計兩個角度出發(fā)記錄創(chuàng)意。
最后,筆者對本節(jié)課進(jìn)行了總結(jié)(如圖2),并告訴學(xué)生App Inventor可以開發(fā)很多生動有趣的游戲,只要我們大膽想象,設(shè)計游戲是一件輕松愜意的事情。App Inventor課程不僅僅是讓大家掌握手機(jī)開發(fā)的知識和技術(shù),更希望大家在學(xué)習(xí)完課程后能夠開發(fā)出更有創(chuàng)意、有生活意義的作品。在體驗這一過程中提高自己的計算思維能力。
教學(xué)反思
本課的教學(xué)重點是“過程”的內(nèi)涵,抽象和模塊化、測試和調(diào)試計算實踐策略。從任務(wù)完成情況來看,全部學(xué)生完成了基礎(chǔ)任務(wù)。對于拓展任務(wù),許多學(xué)生利用課堂時間實現(xiàn)了創(chuàng)意想法。部分學(xué)生在游戲界面上進(jìn)行了想象,加入青蛙角色、游戲開始界面、游戲結(jié)束界面等;還有學(xué)生加入多重if判斷、背景音樂等,提高游戲難度及趣味性。整個教學(xué)過程生動有趣,學(xué)生在玩中學(xué)、學(xué)中玩,提高了計算思維能力、創(chuàng)新能力。
教學(xué)過程中,筆者先讓學(xué)生帶著問題玩游戲,并通過玩游戲初步歸納打地鼠所需要的元素;再讓學(xué)生角色扮演,激發(fā)學(xué)生主動參與學(xué)習(xí)活動的熱情,也實現(xiàn)了對游戲的抽象。通過任務(wù)一,學(xué)生自主發(fā)現(xiàn)“過程”這一計算概念,并修改原有設(shè)計,理解了代碼復(fù)用的思想和價值。通過任務(wù)二,學(xué)生在調(diào)試中優(yōu)化自己的方案設(shè)計,更好地表達(dá)自己的想法。最后通過體驗他人的打地鼠游戲應(yīng)用,學(xué)生感受游戲中一些有創(chuàng)意的、有趣的設(shè)計,進(jìn)一步拓寬知識視野。
轉(zhuǎn)載請注明來自:http://www.jinnzone.com/dianlilw/50485.html