以Micro:bit實作陣列與排序
設計者 廖文正, 教案對象 國中
設計單位 福和國中, 教案分級 初階
教案類別 程式設計,
檔案下載 (檔案須登入才能下載)
發布日期 2021-03-16 發布單位 新北市福和自造教育及科技中心 瀏覽次數 200
教材簡介

教案名稱:八年級-程式設計-Micro:bit實作陣列與排序   教學設計:廖文正

 

  • 核心素養的展現

總綱核心素養面向

總綱/核心素養項目

領綱核心素養具體內涵

主要教學內容

A

自主行動

A2

系統思考與解決問題

-J-A2

運用科技工具,理解與歸納問題,進而提出簡易的解決之道。

  1. 如何將陣列程式與Micro:bit開發板結合,呈現陣列功能。
  2. 如何利用Micro:bit開發板,執行Bubble Sort排序

B

溝通互動

B1

符號運用與溝通表達

-J-B1

具備運用科技符號與運算思維進行日常生活的表達與溝通。

  1. 如何使用Micro:bit開發板表達數字輸入
  2. 如何利用Micro:bit各程觸發程序,代表各種指令、處理的方式
  3. 先完成的同學協助有困難的同學

C

社會參與

 

 

 

 

  • 教案概述

科目/領域別

資訊科技/科技領域

專題名稱

陣列與排序

教學對象

國中八年級學生

教學時數

每週1節,共6

教學設備

電腦、Micro:bit開發板

專題摘要

Micro:bit實作陣列、及排序,讓學生接觸實體的開發板,將程式實作在開發板上,提高學生的學習興趣及意願,以利後續使用開發板做一些更進階及實用的發想及設計。

學習目標

  1. 了解陣列的涵意
  2. 能舉例說出一維陣列、二維陣列甚至三維陣列的運用
  3. 能在Micro:bit實作出一維陣列,並在Micro:bit LED燈顯示出陣列中的數列。
  4. 能在Micro:bit實作出一維陣列,由使用者輸入數字後,並使用泡沫排序(Bubble Sort),將數字由小而大排列並輸出至Micro:bit LED上。

先備知識

  1. 程式語言中變數概念
  2. Micro:bit基本操作

運算思維

  1. 陣列原理、概念學習,舉例說明陣列應用的時機。
  2. Micro:bit設計成A鍵輸入十位數、B鍵輸入個位數,下側偏低送出數字至陣列儲存;左側偏低則送出陣列中的數列至LED顯示;右側偏低則將陣列清空(陣列註標歸零)
  3. 先處理數字輸入至陣列的部分,理解變數、陣列。
  4. 再處理陣列讀取、輸出。
  5. 陣列實作成功後,利用Bubble Sort將陣列中的數列排序。
  6. 先以紙本練習實際數列的Buubble Sort
  7. 帶入外迴圈、內迴圈概念及迴圈不定次數的概念。
  8. 以虛擬碼執行排序動作
  9. Micro:bit設計成A鍵輸入十位數、B鍵輸入個位數,下側偏低送出數字至陣列儲存;左側偏低則送出陣列中的數列至LED顯示;右側偏低則將數列使用BubbleSort排序後由小而大輸出至LED;左右搖晃則將陣列清空(陣列註標歸零)
  10. 先處理數字輸入至陣列的部分。
  11. 再處理陣列讀取、輸出。
  12. 再處理Bubble Sort排序部分。

議題融入

學習主題

 

實質內涵

 

與課程綱要的對應

核心素養

-J-A2

運用科技工具,理解與歸納問題,進而提出簡易的解決之道。

-J-B1

具備運用科技符號與運算思維進行日常生活的表達與溝通。

學習表現

t-IV-4

能應用運算思維解析問題。

p-IV-1

能選用適當的資訊科技組織思維,並進行有效的表達。

p-IV-2

能利用資訊科技與他人進行有效的互動。

學習內容

A-IV-2

陣列資料結構的概念與應用

A-IV-3

基本演算法的介紹

P-IV-3

陣列程式設計實作

         

 

  • 評量方式

單元

以學習表現作為評量標準

對應之學習內容類別

具體評量方式

陣列概念

t-IV-4 能應用運算思維解析問題。

能適切的說出一維、二維、三維陣列的應用及各維度所代表的意涵。

A-IV-2陣列資料結構的概念與應用

一維陣列的概念與問題解決的關係

一維陣列的應用

 

能舉例說明各種維度陣列的應用例子。每位同學需將應用例子寫在筆記本上,並說明(老師回收筆記評分)。老師抽問同學回答,回答狀況好的加分登記。

陣列程式實作

p-IV-1 能選用適當的資訊科技組織思維,並進行有效的表達。

p-IV-2 能利用資訊科技與他人進行有效的互動。

能與同學討論、分享解決問題的方法。

能說明程式設計的各項原理應用。

A-IV-2陣列資料結構的概念與應用

一維陣列的應用

將Micro:bit設計成A鍵輸入十位數、B鍵輸入個位數,下側偏低送出數字至陣列儲存;左側偏低則送出陣列中的數列至LED顯示;右側偏低則將陣列清空(陣列註標歸零)。

二至三人一組,實作Micro:bit輸入數字進入一維陣列儲存。並能將陣列數字顯示出來。愈早做出的組別分數較高。老師會抽問該組一位同學,解釋程式模組所代表的意涵。

排序的方法

t-IV-4 能應用運算思維解析問題。

p-IV-1 能選用適當的資訊科技組織思維,並進行有效的表達。

能以紙本實際做出泡沫排序法的整個流程。

並能觀察泡沫排序法的內、外迴圈執行次數的規律性。

A-IV-3基本演算法的介紹泡沫排序法的練習

以筆記本將實際的數列,做泡沫排排序法的演練,收回筆記本打分數。

口頭問答:內外迴圈執行的次數、規律性為何?

看懂虛擬碼的執行,講解完後抽問程式碼的作用

排序的實作

t-IV-4 能應用運算思維解析問題。

p-IV-1 能選用適當的資訊科技組織思維,並進行有效的表達。

能以Micro:bit實作出具備排序能力的開發板

P-IV-3陣列程式設計實作

將Micro:bit設計成A鍵輸入十位數、B鍵輸入個位數,下側偏低送出數字至陣列儲存;左側偏低則送出陣列中的數列至LED顯示;右側偏低則將數列使用BubbleSort排序後由小而大輸出至LED;左右搖晃則將陣列清空(陣列註標歸零)。

每個人以之前陣列實作為基礎,再擴充至排序功能,先做出的人分數較高。分三至四時段給分,正確性及做出速度需兼顧。先做完的人,可以指導還沒完成(不會)的同學,指導者可再加分。

 

  • 課程設計架構圖

以Micro:bit實作陣列與排序

  • 教學活動

活動一

講解陣列概念(1節)

學習表現

運t-IV-4 能應用運算思維解析問題。

學習

能適切的說出一維、二維、三維陣列的應用及各維度所代表的意涵。

學習內容

資A-IV-2 陣列資料結構的概念與應用

一維陣列的概念與問題解決的關係

一維陣列的應用

教學活動

活動內容

教材

引起動機 5min

 

之前練習的程式-「加法測驗器」用到的變數,只有被加數、加數、標準答案、使用者答案四個。若換一種情境,若要一次出好題目10題、20題,又要留下題目、答案,那這時的變數,不就要變成40個、80個,而且使用起來非常不方便,無法有效率的簡化程式碼,那該怎麼辦呢?

http://163.20.173.51/Micro:bit.htm#陣列概念

陣列概念講解 25min

  1. 以網頁資料輔助,說明陣列的使用時機及其方便性。
  2. 重點說明如下:

(1)陣列就是變數,就是規律化後的變數。

(2)陣列透過註標(索引),方便存取這種「變數」。

(3)註標(索引)本身,又可以用一般的變數取代,讓陣列使用起來相當有效率及方便。

(4)陣列的存取常要透過迴圈,搭配迴圈的控制變數,變成陣列的註標,讓陣列使用起來更方便、有效率。

 

http://163.20.173.51/Micro:bit.htm#陣列概念

口頭問答及紙筆作答 15min

  1. 陣列概念講解完後,請同學舉例一維、二維、三維陣列應用的例子,寫在筆記本上。
  2. 請自願的同學上台發表各種陣列的例子

http://163.20.173.51/Micro:bit.htm#陣列概念

活動二

陣列實作練習-使用Micro:bit(2節)

學習表現

運t-IV-4 能應用運算思維解析問題。

運p-IV-2 能利用資訊科技與他人進行有效的互動。

學習

能運用Micro:bit實作出一個陣列數列儲存程式,由使用者自行輸入不定個數的數列,並能將儲存在陣列中的數列,輸出至LED顯示出來

學習內容

資A-IV-2 陣列資料結構的概念與應用

資P-IV-3 陣列程式設計實作

教學活動

活動內容

教材

分組活動 5min

  1. 每人就近找組員,二至三人一組。
  2. 討論程式如何完成。
  3. 組員之間需教會組內每一人,程式完成後,老師會隨機抽問組內任一人回答,指定部分程式碼,解釋程式碼的功用為何?

http://163.20.173.51/Micro:bit.htm#陣列實作

提示部分程式碼說明 10min

  1. 延伸之前練習的題目:變數練習-加法測驗器。使用相同的手法設計「將數字輸入Micro:bit方式」,按A鍵代表輸入十位數、按B鍵代表輸入個位數。
  2. 數字可以輸入後,便需要由陣列來接收輸入的數字,提示程式碼解說後,讓學生思考如何完成程式。將輸入完的數字經過運算後,指定給陣列array第i個位置,若 i=2,ten=3,digit=4,則表示:array(2)=34 (把34這個數字,放到陣列第2個位置)

以Micro:bit實作陣列與排序 以Micro:bit實作陣列與排序

 

 

 

 
  1. 提示部分程式碼,如何將陣列中的數字,顯示到LED燈上

以Micro:bit實作陣列與排序 以Micro:bit實作陣列與排序

 

 

 

 

 

將陣列內容依序顯示到LED燈上,      綠色積木為迴圈,index為迴圈的索引值(計數器)

  1. 教學網頁崁入老師做完的成品影片,讓同學理解實作完應該要有的功能及操作。

http://163.20.173.51/Micro:bit.htm#陣列實作

分組程式碼撰寫、測試 30min

(第一節結束)

  1. 由同學開始實作後,提醒學生,先做出來的組別,先舉手,解題時間也列入分數高低,愈早解出的組別分數愈高。
  2. 做出來的組別,若經由老師提問完畢後,可以協助未做出來的組別,協助的同學可以獲得加分(記得主動向老師提醒)
  3. 不管有沒有做完,程式都要儲存下來,存回雲端硬碟,下次及下個單元可再利用。

http://163.20.173.51/Micro:bit.htm#陣列實作

分組程式碼撰寫、測試、老師登記完成組別及提問 45min

  1. 再解釋一次提供的程式碼。
  2. 再多釋放一些會用到的程式碼,讓實作困難的組別可以完成任務。解釋程式碼的用途。

以Micro:bit實作陣列與排序

以Micro:bit實作陣列與排序

以Micro:bit實作陣列與排序

以Micro:bit實作陣列與排序

以Micro:bit實作陣列與排序

  1. 示範簡易陣列的程式,讓學生觀察:直接由程式產生數字存入陣列及透過LED燈顯示所存的數列。
  2. 完成的組別,老師抽問任一組員會回程式碼所代表的功能、意義。

http://163.20.173.51/Micro:bit.htm#陣列實作

活動三

排序觀念、方法講解(1節)

學習表現

運t-IV-4 能應用運算思維解析問題。

運p-IV-1 能選用適當的資訊科技組織思維,並進行有效的表達。

學習

  1. 能理解排序原理
  2. 能模擬出電腦排序(BubbleSort)時的步驟
  3. 能理解不定次數雙迴圈的作用
  4. 能理解虛擬碼涵意

學習內容

資A-IV-2 陣列資料結構的概念與應用

資A-IV-3 基本演算法的介紹

教學活動

活動內容

教材

BubbleSort排序方法講解15min

  1. 以一張圖表(六組數字的陣列),使用Bubble Sort的執行流程,一步一步的呈現出來,並讓學生觀察、老師解釋內外迴圈的執行次數的變化。

 

http://163.20.173.51/Micro:bit.htm#排序的方法

六組數字執行BubbleSort在筆記本上模擬出電腦執行的步驟 15min

  1. 解釋完BubbleSort的方法後,立即出六組數字,請學生依樣畫葫蘆,仿照老師教學網頁中的執行流程,將練習的數字,寫在筆記本上,模擬Bubble Sort的整個排序流程。
  2. 十分鐘後,看有沒有志願者二位,到台上將排序流程寫在白板上,或由老師點二位同學上來寫。

http://163.20.173.51/Micro:bit.htm#排序的方法

虛擬碼及不定次數雙重迴圈說明 15min

  1. 由虛擬碼呈現,程式如何撰寫的概念。對映圖表中真實的數字,轉化為虛擬碼。對照圖表的執行步驟和虛擬碼之間的關係。
  2. 雙重迴圈的概念需再強調及說明

http://163.20.173.51/Micro:bit.htm#排序的方法

活動四

排序程式實作-使用Micro:bit(2節)

學習表現

運t-IV-4 能應用運算思維解析問題。

學習

能運用Micro:bit實作出排序功能的程式,將數列儲存至Micro:bit中,再經過排序後,由小至大輸出至LED呈現出來

學習內容

資A-IV-2 陣列資料結構的概念與應用

資P-IV-3 陣列程式設計實作

教學活動

活動內容

教材

雙迴圈概念加強 15min

  1. 利用三組範例,請學生將迴圈的執行結果寫在筆記本上。

以Micro:bit實作陣列與排序

以Micro:bit實作陣列與排序 以Micro:bit實作陣列與排序 以Micro:bit實作陣列與排序

 

 

 

 

 

 

 

 

 

 

 

 

 
  1. 請同學上來白板寫出三組迴圈的答案。先以志願者,若沒有再點同學上來寫答案。

http://163.20.173.51/Micro:bit.htm#BubbleSort

 

提示部分程式碼說明 10min

  1. 提供完成作品的影片讓同學參考-成品達成的狀態。
  2. 提供部分程式碼,讓學生有線索思考如何完成作業。
  3. 此部分程式碼已屬之前練習的延伸,陣列輸入數字的方法已經經過二次練習:變數練習、陣列程式練習。

http://163.20.173.51/Micro:bit.htm#BubbleSort

程式撰寫、測試 20min

(第一節結束)

  1. 留空白時間,給學生思考、撰寫程式。老師移動到各學生座位,觀察學生程式撰寫狀況,有需要指導時,提醒一下學生。
  2. 程度好的同學可以在此節課完成任務,檢核完成的正確性,依序記錄完成的座號,完成的先後順序,可以做為分數高低的標準。
  3. 多數同學可能在這節課無法完成任務。
  4. 先完成的同學,可以指導無法完成的同學,並幫指導的同學加分。

http://163.20.173.51/Micro:bit.htm#BubbleSort

提示部分程式碼說明 10min

  1. 此節課需完成所有人的程式撰寫,在課程一開始時,再說明一次提示的程式碼。整個程式的流程如何運作等。
  2. 完成程式的同學,可以讓同學試試,如何保留未排序前的資料,可思考如何讓Micro:bit左傾是原數列(未排序),Micro:bit右傾是排序後的數列,做出來可加分

http://163.20.173.51/Micro:bit.htm#BubbleSort

 

程式撰寫、測試、老師檢查結果 35min

  1. 先完成的同學,可以指導無法完成的同學,並幫指導的同學加分。
  2. 做完的同學,老師檢查程式完整性、正確性,輸入三組測試數字, 驗證程式的正確性。
  3. 依序記錄完成的座號,完成的先後順序,可以做為分數高低的標準。

http://163.20.173.51/Micro:bit.htm#BubbleSort

             

 

  • 教學回饋、參考資料

教學成果與回饋

  1. 學生完成此階段學習,在程式設計方面有進一步的理解,對於變數、迴圈、邏輯判斷的運用更熟悉,對於程式的排序方法有初步的理解。
  2. 雖然透過重複不斷的練習,從加法測驗器,理解變數,練習Micro:bit輸入數字的方法,一直延用到陣列練習、BubbleSort等,全採用同一方法輸入數字,讓學生不停的接觸同一設計手法,期望能降低學生的學習障礙,但經過實際執行完的課程,學生對陣列、排序還是有一些理解的門檻無法達到,也就是說學生很多是透過同學的協助才能完成程式,對於程式應該不是完全的理解。
  3. 因此陣列、排序的程式設計,對於國中八年級學生似乎存在一定的難度,在舊課綱時其實我們是不敢讓學生進行這一類的議題,透過新課綱的規定,試上陣列、排序的課程,對於教學的成果,我持保留的態度。若要進行此議題課程,可能需將時間再拉長,練習需更多,才能讓國中八年級的學生真正理解陣列、排序的程式設計。

 

參考資料

  1. 新北市江翠國中呂天齡老師網站http://ms2.ctjh.ntpc.edu.tw/~luti/108it-class.html
  2. 阿玉Micro:bit研究區https://sites.google.com/site/wenyumaker2/
  3. 維基百科泡沫排序https://zh.wikipedia.org/wiki/冒泡排序

 

  • 附錄

文字方塊: ▲老師教學網站 http://163.20.173.51以Micro:bit實作陣列與排序1.學習單及評量表單

以Micro:bit實作陣列與排序

               
   

學習單與筆記結合

 
   

學生筆記以Micro:bit實作陣列與排序

 
 

在筆記本上練習泡沫排序流程

 

在筆記本上練習泡沫排序流程

 

 

 

 

 

 

 

 

 

以Micro:bit實作陣列與排序以Micro:bit實作陣列與排序

以Micro:bit實作陣列與排序 以Micro:bit實作陣列與排序以Micro:bit實作陣列與排序

 

 

 

 

 

 

 

 

 

       
 

在筆記本上練習泡沫排序流程

 

在筆記本上練習泡沫排序流程

 

以Micro:bit實作陣列與排序 以Micro:bit實作陣列與排序2.教學活動剪影與學生作品

以Micro:bit實作陣列與排序 以Micro:bit實作陣列與排序

雙迴圈概念加強練習

以Micro:bit實作陣列與排序 以Micro:bit實作陣列與排序

▲BubbleSort流程練習

▲Micro:bit 程式撰寫

以Micro:bit實作陣列與排序

▲Micro:bit程式撰寫

以Micro:bit實作陣列與排序

 

                     
    以Micro:bit實作陣列與排序
    以Micro:bit實作陣列與排序
 
     

▲Micro:bit程式作品

 
     

雙迴圈概念加強練習

 
 
    以Micro:bit實作陣列與排序
  以Micro:bit實作陣列與排序

 

 

 

 

 

 

 

 

 

:::
教育部國民及學前教育署
國立高雄師範大學
國立臺灣師範大學
國立彰化師範大學
國立科學工藝博物館