教學大綱表 (107學年度 第2學期)
請遵守智慧財產權,勿使用非法影印教科書,避免觸法。
課程名稱
Course Title
(中文) 基礎物聯網程式設計
(英文)
開課單位
Departments
資訊工程學系
課程代碼
Course No.
G4550
授課教師
Instructor
鄭福炯
學分數
Credit
2.0 必/選修
core required/optional
選修 開課年級
Level
大二
先修科目或先備能力(Course Pre-requisites):No
課程概述與目標(Course Overview and Goals): (一)能了解並敘述資料型別、常數與變數、運算子與運算元、條件式與控制流程等基本程式
結構。
(二)能運用基本程式結構,撰寫程式,解決問題。
(三)能了解並敘述物聯網感測器基本概念
(四)能了解並敘述嵌入式系統與物聯網基本概念
(五)能具備從事嵌入式與物聯網系統基本技能。
(六)養成對程式設計學習之興趣。
教科書(Textbook) 物聯網技術理論與實作(附實驗學習手冊),鄭福炯,全華 2016
參考教材(Reference)
課程大綱 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. 培養物聯網實作展示的能力
 


教學要點概述:
1.自編教材 Handout by Instructor:
□ 1-1.簡報 Slids
□ 1-2.影音教材 Videos
□ 1-3.教具 Teaching Aids
□ 1-4.教科書 Textbook
□ 1-5.其他 Other
□ 2.自編評量工具/量表 Educational Assessment
□ 3.教科書作者提供 Textbook

成績考核 Performance Evaluation: 實驗:40%   專題:20%   報告:30%   上機測驗:10%  

教學資源(Teaching Resources):
□ 教材電子檔(Soft Copy of the Handout or the Textbook)
□ 課程網站(Website)
課程網站(Website):elearn.ttu.edu.tw
扣考規定:https://curri.ttu.edu.tw/p/412-1033-1254.php