第1894回-運算思維-MakeCode Arcade-11-青蛙抓蒼蠅-教學活動設計-1

 我在 第1992回-運算思維-MakeCode Arcade-10-凱斯彩屏遊戲擴展板 寫到,2021-11-11 收到凱斯電子科技寄來 KSB064  彩屏遊戲擴展板 借我玩玩看,只要插入 micro:bit V2 的主板,小比特就可以搖身一變,成為掌上型遊樂機。

那,怎麼在科技領域課程中,運用KSB064  彩屏遊戲擴展板 來達成教學目標呢?寫一個 arcade 遊戲跟我的教學目標要怎麼連接呢?

108課綱-科技領域課程的願景

我在2017-3-17 第1049回-運算思維是什麼-1-107課綱科技領域草案 中曾探討過,不過「十二年國民基本教育課程綱要」當年原本是從107學年開始實施,已經改為108學年開始實施,所以要再去找 108課綱中的科技領域的資料找來看:

  • 十二年國民基本教育科技領域之課程旨在培養學生的科技素養,透過運用科技工具、材料、資源,進而培養學生動手實作,以及設計與創造科技工具及資訊系統的知能,同時也涵育探索、創造性思考、邏輯與運算思維、批判性思考、問題解決等高層次思考的能力。
  • 科技領域課程理念是引導學生經由觀察與體驗日常生活中的需求或問題,進而設計適用的物品,並且能夠運用電腦科學的工具進而澄清理解、歸納分析或解決生活中的問題。
  • 課程發展與實踐是以學生的生活經驗、需求以及學習興趣為基礎,在問題解決與實作的過程中培養學生「設計思考」與「運算思維」的知能。
    • 「設計思考」在透過觀察並解決生活中的問題,強調「做、用、想」的能力,培養學生動手做的能力,使用科技產品的能力,以及設計與批判思考的能力。
    • 「運算思維」是透過電腦科學相關知能的學習,培養邏輯思考與系統化思考等。在科技專題製作及問題解決的歷程中,增進學生的運算思維與設計思考的知能,培養團隊合作及合宜的態度與習慣。
  • 綜上所述,科技領域課程透過資訊科技與生活科技兩門科目之實施,培養學生運算思維、設計思考以及理解與思辨科技議題。

課前:從「青蛙抓蒼蠅」來發想

我在 Microsoft MakeCode Arcade 首頁的「教程(Tutorial)」中,看到一個 Time Flies 的引導式教學課程,覺得不錯,自己先照著引導一步一步的設計一個小遊戲做做看。


做完引導式教學課程之後,我又添加了一些我想要的,可以完成一個小遊戲像這樣,我覺得還不錯,適合用來發展一個兩節課的教學活動,經過了三天的構思,其中有一天有長途開車去高雄研習的行程,在高速公路上想了一個多小時,回家後繼續發展成以下您看到的教學活動。

師生討論:青蛙真的會抓蒼蠅嗎?怎麼設計成小遊戲?

我想要先給學生看這個影片,青蛙老三吃蒼蠅 Frog eat fly 20110710 - YouTube,然後師生一起討論一下,如果要用設計一個「青蛙抓蒼蠅」的電玩小遊戲,可以怎麼做?大家先想一想遊戲裡面有什麼?遊戲要怎麼進行?

老師聽學生的發言,用文字摘要記錄下來,投放在大螢幕上
  1.  學生的發想
  2.  學生的發想
  3.  學生的發想

別人做好的遊戲:先玩、再分析

由於學生完全沒有使用MakeCode Arcade設計小遊戲的經驗,憑空想像是很難實現的,也很難討論出什麼來。因此我把我從教程完成並添加功能的青蛙抓蒼蠅 v1.0 給學生玩一下,玩過之後再來討論遊戲設計會更有可行性。
  1. 有一個池塘、有一隻青蛙、和一隻飛來飛去的蒼蠅
  2. 青蛙做一個動作,有抓到蒼蠅就得一分,沒抓到就損失體力一格
  3. 如果青蛙的體力全部用完了就遊戲結束
  4. 如果100秒的遊戲時間到了,遊戲也會結束
  5. 遊戲結束時會看到這一回德幾分,比比看誰的得分比較高

運算思維的四個基石


運算思維的四個基石,像是一個桌子的四隻腳,都很重要

The four cornerstones of computational thinking

  1. decomposition - breaking down a complex problem or system into smaller, more manageable parts
  2. pattern recognition – looking for similarities among and within problems
  3. abstraction – focusing on the important information only, ignoring irrelevant detail
  4. algorithms - developing a step-by-step solution to the problem, or the rules to follow to solve the problem
我用 DeepL翻譯 後再修改一下:
  1. 拆解 - 將一個複雜的問題或系統,細分成更小、更容易處理的幾個部分
  2. 模式識別 - 尋找問題之間和問題內部的相似性,是否有規律可循
  3. 抽象化 - 只關注重要的信息,忽略不相關的細節
  4. 演算法- 制定解決問題的步驟,或解決問題需要遵循的規則

用「運算思維」來分析「青蛙抓蒼蠅」小遊戲

老師先簡單講解一下運算思維的四個基石,然後再逐一用來分析「青蛙抓蒼蠅」小遊戲。

1.拆解

  • 遊戲可以分成:背景、角色、動作、事件,四個部分
  • 背景:池塘
  • 角色:青蛙、蒼蠅
  • 動作:青蛙可以用上下左右鍵控制移動,蒼蠅到處飛來飛去
  • 事件:青蛙抓到蒼蠅了嗎?

2. 模式辨別

  • 遊戲一開始,蒼蠅每次都是往右下方飛,碰到牆壁會反彈
  • 遊戲一開始,青蛙都是蹲在同一個地方
  • 當玩家按上下左右鍵時,青蛙能夠跳來跳去
  • 當玩家按A鍵時,程式會判斷青蛙有沒有抓到蒼蠅

3. 抽象化

  • 用青蛙和蒼蠅兩個角色重疊在一起,來表示青蛙抓到蒼蠅了
  • 池塘、青蛙、蒼蠅可以自己畫,也可以用別人分享的圖檔
  • 跳來跳去的效果還不會做,暫時用移動的方式

4. 演算法

  • 遊戲一開始時,要做哪些事?例如生命值設為多少、得分設為多少、遊戲倒數計時幾秒、蒼蠅飛來飛去的速度是多少,等等
  • 要怎麼讓蒼蠅碰到牆壁會反彈?
  • 當玩家按A鍵時,要去偵測青蛙和蒼蠅是否重疊在一起,如果有就播放音效,並且得分加一分。如果沒有重疊,生命值要扣一分。
  • 遊戲要怎樣結束?(1) 生命值 0   (2)時間100秒用完了

用 MakeCode Arcde 組裝積木程式

我打算給國小六年級學生試試看,他們沒有使用過 MakeCode Arcade,但有玩過 micro:bit,也玩過 Scratch。

我想要,給他們最少的協助,盡量讓他們用同儕協助的方式把程式組裝起來,我頂多給他們適度的提示。

上述用運算思維分析「青蛙抓蒼蠅」小遊戲的清單列表,可以列印出來給他們當作檢核表,讓學生自己監控自己的程式設計是否考慮周詳、沒有遺漏。

如果學生想要修改遊戲,建議先照上述的分析結果完成遊戲設計,假想全班是一個遊戲開發團隊,先照計畫藍圖完成小遊戲的程式設計,然後學生再各自修改自己喜歡的樣子。

關於 MakeCode Arcade 我曾經寫過:

關於「運算思維」理念的探討,我曾經寫過:


留言

這個網誌中的熱門文章

第1918回-師師有法寶-4-雄-筆順練習-南一-康軒-翰林-國小國語- QR Code 大合集

第1670回-自主學習-如何印出中英對照的 TED 演講逐字稿

第1804回- Google 文件如何一次看兩頁?