2017年11月12日 星期日

Lesson 07. Flashing Heart (閃亮的心)

概述:

第七個專案課程,是利用兩個 Micro:bit 無線相互傳遞訊息,並將訊息顯示在 LEDs上。

教學內容:

教學目標

  1. 可以利用 if 陳述式和簡單迴圈(loop)的演算法概念設計程式。 (AL)
  2. 使用邏輯推理來預測結果。 (AL)
  3. 發現和糾正錯誤,調整系統的規則。 (AL)
  4. 利用演算法創造實現給定的目標程式。 (AL)
  5. 能理解程式設計是解決問題方案和電腦之間的橋樑。 (AB)
  6. 理解網絡上數位計算器之間的資料傳輸,包括網絡,即IP地址和封包交換。 (AL) (AB)
Computational Thinking Concept:
AB=Abstraction; DE=Decomposition;AL=Algorithmic Thinking;EV=Evaluation;GE=Generalisation。

學生將具備的能力

  • 理解資料可以通過使用 “封包” 數據在 Micro:bit 之間傳輸。
  • 創建一個永久迴圈,將一組數據發送到第二個 Micro:bit。

課程挑戰目標

基於此專案延伸的任務挑戰目標。
  • 向第二個 micro:bit 傳送一個文字消息。
  • 允許使用者選擇圖片並將其發送到第二個 Micro:bit。
  • 允許使用第三個 Micro:bit 發送和接收數據。
案例:

Step by Step

Lesson 06. Magic 8 (神奇八號球)

概述:

第六個專案課程,是讓學習者利用 Micro:bit 創建一個神奇八號球。Micro:bit 將透過兩個程式積木組,一個要求玩家 “ask a question” ,另一個程式積木組將在搖動 Micro:bit 之後,隨機產生一組答案。
神奇八號球(Magic 8 ball),或譯魔力8球,是一個占卜類的小玩具,它的外型可能略大於或等同八號球,它有一面模仿8號球圖案,另一面為三角形窗口,而內部中空並注有液體。此玩具的玩法為:先將窗口朝下,同時向球問是非題,接著輕輕搖晃後再將窗口面轉上,之後在球內的二十面體中會有一道答案浮現在窗口。(維基百科)

教學內容:

教學目標

  1. 可以利用 if 陳述式和簡單迴圈(loop)的演算法概念設計程式。 (AL)
  2. 學會宣告和賦值變數。 (AB)
  3. 在迴圈中使用變數和關係運算子來控制終止。 (AL) (GE)
  4. 使用邏輯推理來預測結果。 (AL)
  5. 發現和糾正錯誤,調整系統的規則。 (AL)
  6. 利用演算法創造實現給定的目標程式。 (AL)
  7. 能理解程式設計是解決問題方案和電腦之間的橋樑。 (AB)
  8. 能使用單向、雙向、多向、巢狀判斷陳述式。(AL)
Computational Thinking Concept:
AB=Abstraction; DE=Decomposition;AL=Algorithmic Thinking;EV=Evaluation;GE=Generalisation。

學生將具備的能力

  • 使用手勢(動作)輸入指令控制 Micro:bit。
  • 建立隨機產生的變數。
  • 能使用if... then...else (如果...那麼...否則) 條件判斷式。
  • 在 LEDs 上顯示個別的圖案。

課程挑戰目標

基於此專案延伸的任務挑戰目標。
  • 學習添加額外的答案。
  • 學習添加一個可以隨手勢搖動的動畫。

Step by Step

這個 Program 將創造一個虛擬的 "Magic 8" 球,它將要求使用者提供一個問題,並且給予隨機的回覆。
第一步,將創建一組對玩家提出問題的程式積木組。程式編輯的作法是從程式積木區中的 "基本" 積木,選擇 "顯示 文字 Hello" 積木建立文字字串,來顯示題目在 LEDs 螢幕上。
將 "基本" 積木區中的 "顯示文字 Hello" 積木堆疊入"在開始時"的積木中,並變更文字內容為 "Ask a question"。
重複上一個步驟,並變更文字內容為 "8"。作為神奇八號球的Logo。
完成上述步驟,在 micro:bit 上會顯示 "Ask a question" 及 "8"。
接著,我們將利用 "搖動" 指令來作為,程式的輸入指令。首先,在程式積木區的 "輸入" 積木中,將 "當 搖動" 積木拖拉至程式編輯區。
遊戲開始,會清除LEDs螢幕,然後再顯示答案。所以先選擇 "基本" 積木中的 "清除 屏幕" 積木,堆疊在 "當 搖動" 的程式迴圈中。
從變數積木中選擇 "建立一個變數",並設定積木名稱為"Random"
將程式積木區中 "變數" 積木的 "變數 item 設為0" 的積木拖拉至程式編輯區。
變更積木中 "item" 的名稱為 "Random"。再將程式積木區中 "數學" 積木的 "Pick Random 0 to 4" 的積木拖拉至"變數 item 設為0" 的積木後方,取代積木 "0"。
將 "Pick Random 0 to 4" 積木中的 "4" 變更為 "2"。(如下圖)
接著,將程式積木區中 "邏輯" 積木的 "如果...那麼...否則 (if...then...else)" 積木拖拉至程式編輯區,堆疊在 上一個積木下方。
利用 if... then...else (如果...那麼...否則) 條件判斷式,設計一個多重的條件判斷 Program。
由於有種可能的選項,所以需要再添加1個 “ else...if” 語句。這包含第一個 “if” 語句,1個 “else...if” 語句和最後的 “else” 語句,總共包含3個選項。
最後,利用 if 陳列式作為判斷式。依序填入運算式,判斷當條件成立時,則顯示相應答案。(如下圖)
程式完成,可以下載並儲存至 Micro:bit 中,觀察實際執行結果。

Lesson 05. Truth or Dare (真心話大冒險)

概述:

課程的第五個專案,在教導學生利用 Micro:bit 使用多重編碼的方式透過程式積木 Coding 的方法。輸入後,程式的陳述式會隨機產生一個 truth or dare 顯示在螢幕上,並透過LEDs 選擇遊戲者。
真心話大冒險是一種遊戲,又稱誠實與大膽、Truth or Dare、True or Dare,可以由二人或多人參與。
若兩個遊戲者時,兩位遊戲者通過猜拳比試,或輪流擔任勝者和負者,負者必須二選一,選擇「真心話還是大冒險」。(維基百科)

教學內容:

教學目標

  1. 可以利用 if 陳述式和簡單迴圈(loop)的演算法概念設計程式。 (AL)
  2. 學會宣告和賦值變數。 (AB)
  3. 在迴圈中使用變數和關係運算子來控制終止。 (AL) (GE)
  4. 使用邏輯推理來預測結果。 (AL)
  5. 發現和糾正錯誤,調整系統的規則。 (AL)
  6. 利用演算法創造實現給定的目標程式。 (AL)
  7. 能理解程式設計是解決問題方案和電腦之間的橋樑。 (AB)
  8. 能使用單向、雙向、多向、巢狀判斷陳述式。(AL)
Computational Thinking Concept:
AB=Abstraction; DE=Decomposition;AL=Algorithmic Thinking;EV=Evaluation;GE=Generalisation。

學生將具備的能力

  • 同時運行兩個程式Blocks。
  • 建立隨機產生的變數。
  • 能使用if... then...else (如果...那麼...否則) 條件判斷式。
  • 在 LEDs 上顯示個別的圖案。

課程挑戰目標

基於此專案延伸的任務挑戰目標。
  • 在遊戲中添加玩家的數量並顯示誰在玩。
  • 添加不同方向的箭頭。
  • 添加一個箭頭旋轉的動畫。
  • 添加一個是否完成真心話大冒險的計分系統。

Step by Step

這個 Program 利用旋轉 Micro:bit 後,利用箭頭選擇玩家,玩家在按下 Micro:bit 的按鍵A後,進行真心話大冒險。
第一個步驟,即是創建箭頭。從 “程式積木區” 選單中的“基本” 積木中,選擇 “顯示 指示燈 (Show LEDs)” 積木。
將 “顯示 指示燈 (Show LEDs)” 積木拖拉到程式編輯工作區,然後按一下要點亮的框來繪製圖案。紅色指示燈亮著(本範例是箭頭;如下圖)。
為了確保LED始終恆亮,所以我們將 “顯示 指示燈 (Show LEDs)” 積木放置在一個 "重複無限次" 的迴圈中。(如下圖)
接下來,Program 的下一個階段,我們將設計一個當按下按鍵,進行真心話大冒險。
從 “程式積木區” 選單中的 “輸入” 積木中選擇 “ 當 A 鍵被按下” 積木並拖拉到程式編輯工作區。
從變數積木中選擇 "建立一個變數",並設定積木名稱為"Random"
將程式積木區中 "變數" 積木的 "變數 item 設為0" 的積木拖拉至程式編輯區。
變更積木中 "item" 的名稱為 "Random"。
再將程式積木區中 "數學" 積木的 "Pick Random 0 to 4" 的積木拖拉至"變數 item 設為0" 的積木後方,取代積木 "0"。
將 "Pick Random 0 to 4" 積木中的 "4" 變更為 "1"。(如下圖)
接著,將程式積木區中 "邏輯" 積木的 "如果...那麼...否則 (if...then...else)" 積木拖拉至程式編輯區,堆疊在 上一個積木下方。
同時將程式積木區中 "邏輯" 積木的運算式 "0=0" 積木拖拉堆疊至"如果...那麼...否則 (if...then...else)" 積木中,將變數積木 "Random" 取代第一個 "0" 。(如下圖)
最後,將程式積木區中 "基本" 積木的 "顯示 文字 Hello" 積木拖拉堆疊至"如果...那麼...否則 (if...then...else)" 積木中,第一個積木堆疊在 "那麼" 的區塊中,變更文字為 "Truth!"
重複上一個步驟,將積木堆疊至 "否則" 區塊中,變更文字為 "Dare!"。(如下圖)
程式完成,可以下載並儲存至 Micro:bit 中,觀察實際執行結果。

Lesson 04. Die Roll (電子骰子)

概述:

第四個專案課程,將為學生介紹如何利用 if... then...else 條件判斷式,進行個別 LEDs 控制。

教學內容:

教學目標

  1. 可以利用 if 陳述式和簡單迴圈(loop)的演算法概念設計程式。 (AL)
  2. 學會宣告和賦值變數。 (AB)
  3. 在迴圈中使用變數和關係運算子來控制終止。 (AL) (GE)
  4. 使用邏輯推理來預測結果。 (AL)
  5. 發現和糾正錯誤,調整系統的規則。 (AL)
  6. 利用演算法創造實現給定的目標程式。 (AL)
  7. 能理解程式設計是解決問題方案和電腦之間的橋樑。 (AB)
  8. 能使用單向、雙向、多向、巢狀判斷陳述式。(AL)
Computational Thinking Concept:
AB=Abstraction; DE=Decomposition;AL=Algorithmic Thinking;EV=Evaluation;GE=Generalisation。

學生將具備的能力

  • 使用手勢(動作)輸入指令控制 Micro:bit。
  • 建立隨機產生的變數。
  • 能使用if... then...else (如果...那麼...否則) 條件判斷式。
  • 在 LEDs 上顯示個別的圖案。

課程挑戰目標

基於此專案延伸的任務挑戰目標。
  • 在原有固定面的骰子上添加滾動動畫。
  • 允許使用者依據不同的情況,顯示不同的骰子,即6面,8面或12面。

Step by Step

這是一個允許使用者藉由搖動 Micro:bit 來決定骰子數目的程式。
在 JavaScript Blocks editor 「輸入」的程式積木區塊中,找到 "當搖動 ( On shake )" 的積木,並將它拖拉至「程式碼編譯介面」(程式編輯區)
在積木塊工作表上,“當...” 的下拉區塊可以被更改為一些手勢,例如:向左或向右傾斜。在這個項目中,我們選擇 "搖動" 做為選項。(如下圖)
現在你的 Program 會對跟隨輸入的動作做出反應,我們只需要對它做一個程式讓它執行。
將 "變數 item 設為 0" 重新命名為更合適的,如 “ROLL”。彈出框將允許您更改變數名稱。
現在,我們已經創建了一個名為 “ROLL” 的變數,我們需要在0到5之間選擇一個亂數,總共有6個不同的值。從程式積木區的選單中選擇 “數學” 的程式積木選項,然後選擇“Pick random 0 to 4” 積木。
拖拉 “Pick random 0 to 4” 積木到程式編輯區,並將積木連接到“變數 ROLL設為 0 ” 積木後方,替換“0”;並將“Pick random 0 to 4” 中的數值4 變更為 5。現在這個程式將在每次 Micro:bit 被搖動時選擇一個0到5之間的亂數。號碼存儲在變數 “ROLL”。
現在 Micro:bit 需要根據 “ROLL” 變數顯示不同的結果。這就是所謂的選擇。在這種情況下,我們將利用 if... then...else (如果...那麼...否則) 條件判斷式。 Micro:bit 可以在邏輯程式積木選項,增加這個積木。
利用 if... then...else (如果...那麼...否則) 條件判斷式,設計一個多重的條件判斷 Program。
由於有6種可能的選項,所以需要再添加4個 “ else...if” 語句。這包含第一個 “if” 語句,4個 “else...if” 語句和最後的 “else” 語句,總共包含6個選項。
接下來,我們需要為 if 語句創建一個邏輯語句以允許選擇。所以我們需要再次從“邏輯”程式積木中選擇 “等於” 的積木。
拖拉 "等於"邏輯積木至程式編輯區中,放置在 if... then...else (如果...那麼...否則) 的積木後方,取代 "true" 積木。(如下圖)
在程式積木區中的 "變數" 積木中,將變數 "ROLL" 積木拖拉至程式編輯區中,放在 if... then...else (如果...那麼...否則) 語句中,取代等於前的數值 0;並且複製 "等於" 積木至 其他四個 "else...if" 語句中。(如下圖)
這個 Program 最後要呈現的是表現出一個骰子要有六個面項。接下來,我們將在程式積木區的"基本"項目中,選擇 LEDs 積木做為顯示 骰子六個面數目點數的工具。
將 “顯示led” 積木拖拉到程式編輯區並中,並將它放置於第一個 “if” 語句之下。(如下圖)
在淺藍色的正方形的中間按一下,您可以創建所需的模具圖案。本例為 "1" ,如下即可完成骰子點數 1 。
依據上一個方式,依序在其他四個 "else...if" 語句及最後的 "if" 語句中放入 "顯示 LEDs" 積木。(如下圖)
程式完成,可以下載並儲存至 Micro:bit 中,觀察實際執行結果。
+

Related Posts Plugin for WordPress, Blogger...