課程大綱 Syllabus |
學生學習目標 Learning Objectives |
單元學習活動 Learning Activities |
學習成效評量 Evaluation |
備註 Notes |
序 No. | 單元主題 Unit topic |
內容綱要 Content summary |
1 | 視覺化的程式語言 |
1. 介紹加州柏克萊大學Snap!視覺化的程式語言工具
2. 介紹Snap!建構方塊 |
1. 了解Snap!視覺化的程式語言工具
2. 了解Snap!建構方塊:命令建構方塊(Command)、回報建構方塊(Reporter)和判斷建構方塊(Predicate)
3. 培養使用程式積木的能力 |
|
|
HW1: 利用程式積木畫出正三邊形與正四邊形 |
2 | 資訊工程領域抽象化(Abstraction)概念 |
介紹抽象化的兩大重點:移除細節(Detail removal)以及一般化(Generalization)。
介紹如何建立自己的建構方塊,實現畫出正N邊形視覺化積木 |
1. 了解抽象化的移除細節概念
2. 了解抽象化的一般化概念
3. 建立自己的程式積木 |
|
|
HW2: 設計程式積木可以畫出任意長度的正N邊形 |
3 | Snap!的基本程式結構 |
介紹資料型別、常數與變數、運算子與運算元
介紹條件式與控制流程 |
了解資料型別、常數與變數、運算子與運算元、條件式與控制流程程式結構
培養使用程式結構的能力 |
|
|
HW3: 按上下左右鍵可以移動精靈,按AB下左右鍵可以改變精靈造型 |
4 | Snap!函式(function) |
介紹電腦函式的定義、參數與回傳值
介紹遞迴(recursion)概念
介紹應用程式介面(API) |
1.了解電腦函式的定義
2.了解遞迴函式概念
3.了解應用程式介面(API)概念
4.培養使用函式的能 |
|
|
HW4: 設計遞迴函式可以計算1.n階乘2.費氏數列 |
5 | Snap!的串列(list) |
介紹索引(index)、陣列(Array)與表格(table) 概念
介紹串列(list)的Key, value概念 |
1.了解索引(index)、陣列(Array)與表格(table)概念
2.了解串列的Key, value概念
3. 培養使用串列的能力 |
|
|
HW5:設計程式積木可以輸入一個數值串列,回傳一個將每個數值平方後的串列 |
6 | Snap!高階函式(High-Order Functions) |
介紹電腦高階函式的定義
介紹Snap!的三個高階函式: 對應(Map)、合併(Combine)、保留(Keep) |
1.了解電腦高階函式的定義
2.了解Snap!的高階函式
3. 培養使用高階函式 |
|
|
HW6:利用高階函式設計程式積木可以輸入一個數值串列,回傳一個將每個數值平方後的串列 |
7 | 演算法(Algorithm) |
介紹演算法定義
介紹線性搜尋演算法與二元搜尋演算法
介紹排序演算法 |
1.了解演算法定義
2.了解線性搜尋演算法與二元搜尋演算法
3.了解排序演算法
4. 培養使用演算法的能力 |
|
|
HW7:設計線性搜尋、二元搜尋與排序程式 |
8 | 程式編寫風格(Programming paradigm) |
介紹四種程式編寫風格:指令式編程(imperative programming)、函式編程(functional programming)、物件導向編程(object-oriented programming)與聲明式編程(declarative programming)。 |
了解並能應用四種程式編寫風格 |
|
|
HW8: 搜尋網路資料列出各種變成風格的特點與具代表性的程式語言 |
9 | 期中報告 |
物聯網應用期中報告(智慧校園物聯網、智慧社區物聯網、智慧教室物聯網) |
1. 學習團隊合作
2.討論與報告物聯網應用期中報告 |
|
|
|
10 | 嵌入式系統視覺化的程式語言(Snap!4NodeMCU) |
介紹嵌入式基本硬體架構與軟體架構
介紹嵌入式開發工具(Snap!4NodeMCU IDE) |
1. 了解嵌入式系統基本硬體架構與軟體架構
2. 了解嵌入式系統開發工具
3. 培養嵌入式系統設計與實作的能力 |
|
|
HW9: 嵌入式系統開發工具安裝與測試 |
11 | 嵌入式系統程式開發: 數位接腳(digital GPIO) 輸出與計時器(Timer)入門練習 |
介紹嵌入式系統數位接腳輸出與GPIO output APIs
介紹嵌入式系統計時器與timer APIs
利用內建的LED燈,實作閃爍的LED燈 |
1.了解嵌入式系統數位接腳輸出與GPIO output APIs
2.了解嵌入式系統計時器與timer APIs
3. 培養利用內建數位接腳 輸出與計時器的LED燈,實作閃爍的LED燈設計與實作的能力 |
|
|
HW10: 設計程式積木實作閃爍的LED燈 |
12 | 嵌入式系統程式開發: 數位與類比接腳輸入(digital and analog inputs)入門練習 |
介紹嵌入式系統數位接腳輸入與GPIO input APIs
介紹嵌入式系統類比接腳輸入與 Analog input APIs
利用數位與類比接腳,實作環境光的感測
利用光感測模組與LED燈,實作智慧燈光 |
1.了解嵌入式系統數位接腳輸入與GPIO input APIs
2.了解嵌入式系統類比接腳輸入與 Analog input APIs
3. 培養利用數位與類比接腳,實作環境光的感測的能力 |
|
|
HW11: 設計程式積木實作環境光的感測與智慧燈光 |
13 | 嵌入式系統程式開發:溫濕度感測器與土壤濕度感測模組 |
利用溫濕度感測器,實作環境溫度與濕度的感測
利用土壤濕度感測模組,實作土壤濕度感測
利用土壤濕度感測模組與蜂鳴器,實作土壤缺水的時候,發出警告提醒。 |
1.了解溫濕度感測器與土壤濕度感測模組。
2. 培養利用溫濕度感測器,實作環境溫度與濕度的感測的能力
3. 培養利用土壤濕度感測模組,實作土壤濕度感測的能力 |
|
|
HW12: 設計程式積木實作環境溫度與濕度的感測、土壤濕度感測與智慧植物工廠 |
14 | 嵌入式系統程式開發: 矩陣鍵盤感測器與蜂鳴器 |
利用矩陣鍵盤感測器,實作電子鎖密碼輸入面板
利用矩陣鍵盤感測器與蜂鳴器,實作電子鎖密碼輸入面板,按下鍵時會有喇叭聲提示,密碼正確時會有電子所開啟的聲響 |
1.了解矩陣鍵盤感測器與蜂鳴器
2. 培養利用矩陣鍵盤感測器,實作電子鎖密碼輸入面板的能力 |
|
|
HW13: 設計程式積木實作電子鎖密碼輸入面板與智慧電子鎖 |
15 | 物聯網技術入門嵌入式系統程式開發:繼電器與蜂鳴器 |
利用繼電器,實作Smart Plugs
利用繼電器、矩陣鍵盤感測器與蜂鳴器,實作微波爐 |
HW14: 設計程式積木實作微波爐 |
|
|
HW14: 設計程式積木實作微波 |
16 | 物聯網MQTT標準 |
介紹MQTT物聯網技術之相關知識以及其應用
傳授Snap!4NodeMCU MQTT APIs之相關知識以及其應用
學習使用NodeMCU平台,利用Eclipse foundation 的Broker實作智慧LED燈應用MQTT程式設計 |
1.了解MQTT物聯網技術之相關知識以及其應用
2.了解MQTT APIs之相關知識以及其應用
3.培養學習使用NodeMCU平台,利用Eclipse foundation 的Broker實作智慧LED燈應用MQTT程式設計的能力 |
|
|
|
17 | 物聯網Zumo機器車 |
傳授Snap!4NodeMCU Zumo APIs之相關知識以及其應用
利用手機App控制一台或多台Zumo機器車
利用其他感應器如煙霧偵測器、火焰偵測器實現火災偵測機器車 |
1.了解Zumo APIs之相關知識以及其應用
2. 培養利用手機App控制一台或多台Zumo機器車的能力
3. 培養利用其他感應器如煙霧偵測器、火焰偵測器實現火災偵測機器車的能力 |
|
|
|
18 | 期末報告與demo |
期末實作分組簡報與demo |
1. 學習團隊合作
2. 討論與報告物聯網應用期末報告
3. 培養物聯網實作展示的能力 |
|
|
|