任健
● 教學內容分析
計算思維是指個體運用計算機科學領域的思想方法,在形成問題解決方案的過程中產生的一系列思維活動。要培養(yǎng)學生的計算思維,設計真實的問題情境是必不可少的,而游戲開發(fā)就是一個非常好的載體,它符合問題解決的一般流程,而且游戲本身是學生比較感興趣的項目,具有較強的實踐體驗。本課以App Inventor(以下簡稱AI)可視化編程軟件制作打地鼠游戲為例,介紹如何使用程序語言解決游戲開發(fā)中面臨的各類問題,體驗用程序解決問題的過程,在實踐中培養(yǎng)學生問題解決的意識與技能,提升學生的計算思維。
● 學情分析
本課是手機編程選修課中的一節(jié)內容,學生是來自高一各班對程序設計感興趣的學生,有部分學生已經(jīng)學習過C++、Pascal等程序語言。現(xiàn)代高中生是被稱為“數(shù)字土著”的零零后,信息技術對他們的認知、態(tài)度及行為習慣的塑造是空前的,他們習慣在互聯(lián)網(wǎng)上與同學、朋友交流分享信息,喜歡攜帶自己的移動設備進行學習和游戲。學生學習本課,無需動員便有很大的學習興趣,有的學生還為游戲設計了一些新點子,如增加難度、增加互動等,教學中可以預留問題空間,留些時間讓學生去發(fā)揮,有時會有出乎意料的效果。
● 教學策略
本課需要兩節(jié)課的時間完成。在此之前,學生已經(jīng)熟悉了AI的基本操作,學習了畫布組件的相關操作,通過手指拖動在畫布上畫線,調整線條顏色和粗細等。在本課的教學設計中,按照軟件開發(fā)的一般過程,通過問題需求分析、問題梳理、編程解決問題、分享展示等步驟展開教學。大部分學生玩過類似的游戲,他們很容易想到需要解決的一些問題,如如何隨機產生“地鼠”等,接著師生一起用AI程序塊去解決這些問題,通過運行、調試、運行不斷改進程序,如果冒出新想法則啟發(fā)他們進一步深入下去,對程序進行補充、修改,最后進行展示分享。在調試環(huán)節(jié),為每位學生配備了一臺安卓智能手機作為模擬器,程序可以在手機上立刻呈現(xiàn)效果。如果沒有手機,電腦上也可以通過安裝“AI伴侶”程序進行測試。
● 學科核心素養(yǎng)
①能夠根據(jù)問題的需要,主動、合理地尋求恰當?shù)姆绞将@取與處理信息。(信息意識)②能夠采用計算機科學領域的思想方法界定問題,抽象問題特征,建立結構模型,合理組織數(shù)據(jù)。(計算思維)③對信息技術創(chuàng)新所產生的新觀念和新事物,具有積極學習的態(tài)度。(信息社會責任)
● 課程標準要求
①了解常用移動終端的類型和功能,描述移動終端的特征與組成。②在具體的移動應用設計實踐中,了解移動應用的基本架構,理解基于圖形化開發(fā)工具進行移動應用設計與開發(fā)的基本方法,能利用模擬器測試移動應用程序(APP)。③掌握移動應用設計與開發(fā)的思想方法,根據(jù)需要設計恰當?shù)囊苿討茫瑒?chuàng)造性地解決日常學習和生活中的實際問題。
● 學業(yè)要求
①知道移動應用的特點,認識到信息社會中移動應用的價值。②能夠基于移動終端的特點,利用圖形化的設計開發(fā)工具,設計開發(fā)基于單臺設備的移動應用。③開發(fā)基于真實任務的簡單移動應用,設計基于移動應用的問題解決方案。
● 教學目標
①了解畫布、精靈組件的特點和基本使用方法。②在實際運用中了解隨機數(shù)的特點,并體會隨機數(shù)在游戲中的作用。③根據(jù)游戲設計中的問題,抽象問題特征,合理設計程序結構,掌握AI編程技巧。④繼續(xù)理解面向對象、事件驅動的編程原則,體會AI編程的一般流程。
● 教學重難點
教學重點:了解畫布、精靈組件的特點和基本使用方法;根據(jù)游戲設計中的問題,抽象問題特征,合理設計程序結構,掌握AI編程的技巧。
教學難點:繼續(xù)理解面向對象、事件驅動的編程原則,體會AI編程的一般流程。
● 教學過程設計
1.情境引課
師:前面學習了在畫布組件上通過手指繪制線條,與圖片組件只能用來顯示不同,它還可以接受輸入,允許手指、鼠標觸摸、拖動等外部輸入動作,是一種交互性很強的組件。今天,我們要利用這個組件制作一個“打地鼠”的游戲程序,同時還會用到一個新的交互式組件——精靈組件。
2.“打地鼠”游戲的制作
環(huán)節(jié)一:問題的提出(5分鐘)
師:“打地鼠”游戲想必同學們看到過,玩過,有的同學可能還玩過實物游戲機,需要拿著小榔頭敲擊不斷冒出來的“地鼠”。
學生們紛紛點頭表示玩過。有的學生說敲到“地鼠”的時候,游戲機還會發(fā)出聲音呢。有的學生說地鼠出來的位置都是固定的,不過從哪個洞里出來是隨機不確定的。有的學生還說,獲勝的關鍵要靠敏捷的反應力,“地鼠”出來又下去的速度很快啊……
設計意圖:引入學習課題,調動學習興趣,啟發(fā)學生思考“打地鼠”游戲該如何設計。
環(huán)節(jié)二:問題的梳理(5分鐘)
師:剛才同學們回答得很好,看來大家都是游戲玩家??!今天,我們就要來設計一款手機上運行的“打地鼠”游戲。你們提到的幾個問題,老師來梳理一下:①“地鼠”是怎么隨機出現(xiàn)的?②用什么可以調節(jié)“地鼠”出現(xiàn)的速度?③打“地鼠”的動作怎么模擬?④次數(shù)要不要統(tǒng)計?怎么統(tǒng)計?
根據(jù)學生的知識儲備,有的問題還不知道如何解決,但會有一些生活中的感性認識。第一問,有的學生知道要用隨機函數(shù);第二問,有學生反應出來可以用一個計時器組件;第三問中由于沒有學過精靈組件,暫時答不上來;而第四問,學生知道計分一般用標簽組件就可以了。
設計意圖:根據(jù)游戲創(chuàng)設問題情境,通過梳理問題,建立與程序間的聯(lián)系,幫助學生從具體問題轉換到抽象程序。
環(huán)節(jié)三:編寫程序解決問題(30分鐘)
師:下面我們一起來使用AI軟件開發(fā)這個游戲程序。大家在制作過程中如果有好點子、新想法可以提出來哦!AI程序開發(fā)主要分為界面設計和程序編寫兩大部分。在界面的設計中,剛才提到的畫布、計時器、標簽等組件都是需要用到的,同時還需要增加一個精靈組件,它代表了“地鼠”,我們只要用一張地鼠的圖片作為它的顯示圖片就可以了。有學生提到,打到“地鼠”的時候最好有聲音或者讓手機振動一下,那就可以增加一個音效播放器組件。