第二階段課程:Code Builders 🛠️

給美國國小三年級(Grade 3)的 14 週銜接課程。學生已完成 100 關、Bird、Turtle,已經會「讓機器人照指令走」;下一步要學會修程式、拆解問題、記住資料、回應事件,再一步步做出一個真正的產品,最後設計自己的作品。

1. 學生現在在哪裡?

✅ 100 關

順序、For 迴圈、巢狀迴圈、While、If/Else、左手貼牆演算法。

1B-AP-10

✅ Bird 飛鳥

條件判斷、角度與座標、邏輯運算。

1B-AP-10

✅ Turtle 烏龜

迴圈畫圖、角度、幾何圖形、創作。

1B-AP-10

➡️ 還缺什麼?

對照 CSTA 1B(Grades 3–5)標準,還沒系統練過:除錯、函式/拆解、變數、事件、專題開發流程。

2. 為什麼是這個順序?

🐞 先學除錯

學生已經寫過 100 關,最常卡住的是「不知道哪裡錯」。先教除錯流程,後面每個單元都用得到。

🧩 再學函式

程式變長之後,才會感受到「幫一段步驟取名字」的價值。函式也是拆解問題(decomposition)的工具。

🔢 接著學變數

用「計數器」數寶石、數步數、倒數電池。並且一次在多張地圖測試,學會「好程式每次都要對」。

🎬 最後是事件與創作

在 Story Lab 用「當點擊角色」做互動故事,把前面學的全部用在自己的作品上。

3. 14 週總覽

以每週 1–2 節、每節約 45 分鐘規劃。可依班級速度調整,關卡進度會自動存在每台 iPad 上。

週單元/活動主要內容CSTA
第 1 週🐞 Bug Hunt 1–5不插電暖身「錯誤的舞步」;除錯 5 步驟;轉錯彎、次數錯、順序錯、迴圈裡放錯方塊。1B-AP-15
第 2 週🐞 Bug Hunt 6–10停不下來的迴圈、左右判斷錯、少了 If、巢狀迴圈、兩個錯誤的魔王關。學生寫「抓蟲日誌」。1B-AP-15
第 3 週🧩 Function Factory 1–6 🟢不插電「舞蹈副歌」:重複的段落取名字;呼叫才會執行、一個函式用很多次、看名字選函式、為什麼要用函式(變短、好修)。1B-AP-11
第 4 週🧩 Function Factory 7–13 🟡自己寫函式內容、找出重複的部分、間距不規則時函式比迴圈好用、函式和迴圈互相放、兩個函式分工。1B-AP-11, 1B-AP-15
第 5 週🧩 Function Factory 14–20 🔴 + Music函式呼叫函式、拆解大問題、重複到終點、函式裡放判斷;在 Blockly Games Music 用函式寫歌曲的「副歌」。1B-AP-11, 1B-AP-12
第 6 週🔢 Counting Robots 1–10不插電「記分板」;數字盒、設為 vs 改變、從 0 開始;找出「迴圈裡重設」與「每步都加」兩種錯;數步數。1B-AP-09
第 7 週🔢 Counting Robots 11–20寶石積分(+2)、電池倒數(-1)、用計數器決定迴圈何時停、倒數發射、數轉角、會數數的函式、尋寶大冒險魔王關。1B-AP-09, 1B-AP-08
第 8 週🎬 Story Lab 挑戰 1–4「按下執行時」與「👆 當被點擊」兩種事件;等待讓角色輪流說話;用重複讓機器人跳舞。1B-AP-10
第 9 週🎬 Story Lab 挑戰 5–8換場景(開頭/中間/結尾)、讓小龍登場、📣 廣播訊息讓多個角色同時動作、⭐ 分數做「抓小龍」小遊戲。1B-AP-09, 1B-AP-10, 1B-AP-12
第 10 週🛠️ 產品工坊 v0.1–v0.4做「小龍寵物 App」:開始畫面、餵食按鈕、顯示心情、♾️ 會肚子餓。每一版接著上一版做。1B-AP-09, 1B-AP-10, 1B-AP-13
第 11 週🛠️ 產品工坊 v0.5–v1.0寵物規則(如果)、用廣播做玩耍按鈕、長大目標、請同學試用後加上說明與求助按鈕,正式上線。1B-AP-10, 1B-AP-13, 1B-AP-15
第 12 週🚀 期末專題:規劃選擇做產品或故事;寫「給誰用、解決什麼問題」、畫畫面、列出 v0.1 和之後要加的功能。1B-AP-11, 1B-AP-13
第 13 週🚀 期末專題:製作與測試(✨ 我的產品/✨ 我的故事)兩人一組(Driver/Navigator 每 5 分鐘交換);同學試玩並給「一個讚、一個建議」;修改。1B-AP-13, 1B-AP-15, 1B-AP-16
第 14 週🚀 發表會 Showcase用 Story Lab 的「🎦 發表」全螢幕播放作品,上台展示並說明:給誰用、用了哪些事件和規則、每一版加了什麼、遇到什麼 bug 怎麼修。1B-AP-17

4. 單元細節

🐞

單元 1:Bug Hunt 抓蟲大作戰(第 1–2 週,10 關)

每關一開始就有「有錯的程式」,學生要找出錯誤並修好。

開始 ➜

學習目標(給學生看)

  • I can find a bug by running my code and watching.
  • I can fix a bug by changing one thing at a time.
  • I can test again after every fix.

關鍵字 Vocabulary

bugdebugtesttraceinfinite loop

不插電暖身(10 分鐘)

老師照一張「有錯的舞步卡」跳舞,學生喊停並指出是第幾步錯了、要怎麼改。

常見迷思

  • 一次改很多地方 → 規定「一次只改一個方塊,再執行一次」。
  • 整段刪掉重寫 → 這一單元鼓勵「修」而不是「重寫」,用 ⭐⭐⭐ 的方塊數當提示。

出場小卡 Exit ticket

畫出一個你今天修好的 bug:原本怎樣?改成怎樣?

🧩

單元 2:Function Factory 函式工廠(第 3–5 週,20 關)

幫一組步驟取名字(定義),需要時「執行」它。每關只多一個新觀念,畫面上的「🎯」會告訴學生這關學什麼:1–6 🟢 簡單、7–13 🟡 中等、14–20 🔴 困難。所有名字都用下拉選單,不需要打字。

開始 ➜

學習目標

  • I can give a group of steps a name (define a function).
  • I can use (call) my function many times.
  • I can break a big problem into smaller parts.

關鍵字

functiondefinecalldecomposepattern

不插電暖身

唱一首有副歌的歌:歌詞只寫一次「Chorus」,唱到時說「Chorus!」大家就知道要唱什麼。這就是函式。

重點觀念

  • 第 1 關:只有定義、沒有呼叫,Robo 不會動。這是學生最常卡住的地方。
  • 第 5、6 關:為什麼要用函式?程式變短、修一個地方就全部修好。
  • 迴圈適合「連續重複」;函式適合「重複出現但中間夾著別的步驟」(第 10 關特別設計成迴圈做不到)。
  • 任何時候都可以只放一部分就按執行,看 Robo 做了什麼再修。

延伸

Blockly Games Music 用函式寫歌。

🔢

單元 3:Counting Robots 會數數的機器人(第 6–7 週,20 關)

變數入門:Robo 的「計數器」可以設定、加減、說出來。簡單→中等→困難,每關一個新觀念,多數關卡同時用 2–3 張地圖測試。

開始 ➜

學習目標

  • I can use a variable to remember a number.
  • I can set a variable to start at 0.
  • I can change a variable to count up or count down.
  • My code works on every map, not just one.

關鍵字

variablecountersetchangetest cases

不插電暖身

老師拍手不定次數,學生用白板「劃記」計數。問:開始前白板上要是幾?每拍一下要做什麼?

重點觀念

  • 直接「說 3」會在另一張地圖失敗 → 所以要用變數。
  • 第 3 關:「設為」是換掉,「改變」是加上去。
  • 第 7 關:設定放進迴圈裡,每圈都會被歸零。
  • 第 13–15 關:變數也可以用來決定迴圈何時停。
🎬

單元 4:Story Lab 事件與動畫(第 8–9 週,8 個挑戰)

6 個插畫場景、4 個角色(小龍一開始躲著)、23 種積木(事件、動作、外觀、聲音、控制、分數)。每個挑戰都有即時打勾的目標清單,完成會放彩帶。

開始 ➜

學習目標

  • I can start code with an event (when Run / when clicked).
  • I can use wait so characters take turns.
  • I can remix a story and explain what I changed.

8 個挑戰

  1. 舞台你好:第一個事件、改成自己的台詞
  2. 輪流說話:等待與順序
  3. 點我!:當被點擊+聲音
  4. 機器人跳舞:重複裡放動作
  5. 出發去旅行:換場景(頭/中/尾)
  6. 小龍登場:出現、心情
  7. 廣播訊息:一個事件觸發多個角色
  8. 抓小龍:分數變數做遊戲

關鍵字

eventwhen clickedwaitscenemessage / broadcastscoreremix

延伸(先做完的學生)

在第 8 關的遊戲加上倒數或「分數 = 10 時換場景」;或到「✨ 我的故事」提早開始專題。

🛠️

單元 5:產品工坊「小龍寵物 App」(第 10–11 週,8 個版本)

全班跟著做同一個產品,從 v0.1 做到 v1.0。每一版只加一個功能,打開下一版時會自動接著學生「自己上一版」的程式,像真的軟體一樣慢慢長大。每版上方的「💡」是這一版的產品心法。

開始 ➜

8 個版本

  1. v0.1 寵物孵化:開始畫面、心情分數 = 5
  2. v0.2 餵食按鈕:點小龍 +1,有聲音或動作回饋
  3. v0.3 顯示心情:開心表情、說出分數
  4. v0.4 肚子會餓:♾️ 每 3 秒 -1
  5. v0.5 寵物規則:如果分數 = 0 → 難過(放在迴圈裡)
  6. v0.6 玩耍按鈕:點機器人 📣 廣播,收到時 +2
  7. v0.7 長大了:如果分數 = 10 → 變大、換場景、慶祝
  8. v1.0 正式上線:開頭說明、點小狗的求助按鈕

學習目標

  • I can build a product one feature at a time.
  • I can use a score, a rule (if) and a forever loop together.
  • I can test with a friend and improve my product.

關鍵字

productuserfeatureversionfeedback

重點觀念

  • 前面學的都用上了:事件(按鈕)、變數(心情分數)、條件(規則)、迴圈(肚子餓)、廣播(功能互相連接)。
  • v0.5:規則要放在「一直重複」裡才會一直檢查。
  • v1.0:請同學試玩「不准解釋」,他卡住的地方就是要加說明的地方。
🚀

單元 6:期末專題「我的產品」或「我的故事」(第 12–14 週)

規劃 → 製作 → 同學試玩 → 修改 → 發表。「✨ 我的產品」檢查表:使用說明、分數起始值、2 個以上按鈕、規則、會自己動的東西、廣播。也可以選「✨ 我的故事」(開始事件、點擊、對話、等待、重複、2 個場景)。

開始 ➜

專題規劃單(學生填)

  1. My product is for… It helps them… (or: My story is about…)
  2. Beginning / Middle / End (draw 3 boxes)
  3. When Run, … happens.
  4. When you click the ___, it …
  5. I will use repeat for …

評量規準(每項 1–3 分)

  • 事件:有「開始」和至少一個「點擊」事件。
  • 順序與時間:角色輪流說話、故事有頭有尾。
  • 重複:至少一處用重複精簡程式。
  • 測試與說明:修過至少一個 bug,並能說出自己的設計。

合作方式

Driver 操作 iPad,Navigator 看計畫、提醒下一步;每 5 分鐘交換。試玩時用「一個讚 ⭐ + 一個建議 💡」回饋。

5. 每節課流程(45 分鐘)

5 分

暖身:上一節的一個 bug 或問題。

10 分

不插電活動或老師用投影示範一關(可按「💡 Answer」播放)。

20 分

學生闖關(兩人一組)。先做完的挑戰 ⭐⭐⭐ 最少方塊。

10 分

分享一個解法+出場小卡。

6. 教室海報:除錯 5 步驟

When your code doesn't work…
  1. Run it. 執行看看。
  2. Watch where it goes wrong. 看它在哪裡出錯。
  3. Find the block. 找到那個方塊。
  4. Change ONE thing. 只改一個地方。
  5. Test again! 再測試一次!

7. 給老師的小提醒

💡 Answer 按鈕

方便投影示範。上課時可先請學生不要按,卡關 3 分鐘以上再用「Need a hint?」。

⭐ 星星

通過得 ⭐⭐;用最少方塊得 ⭐⭐⭐。星星和程式都存在該台 iPad 的瀏覽器裡。

📱 iPad 操作

Quest Lab 與 Story Lab 一個畫面就能看到地圖和程式,不用上下捲動。上方彩色按鈕「點一下就接上」,不用拖曳;點畫布上的方塊可以改變接的位置(放進裡面/接在後面),「⤴ 跳出」離開迴圈,「🗑 刪除」移除方塊。

🌐 語言

Quest Lab 預設英文,右上角可切換中文,方便家長或需要支援的學生。

🧠 進階學生

完成全部任務後,可挑戰 Turtle 自由創作或 Movie(需要座標與乘法概念)。