課程大綱:
【模組A】嵌入式Linux系統管理與操作
1. ARM開發板簡介
2. 在Windows上燒錄映像檔
3. 啟動 ARM Linux 作業系統及環境設定
4. Linux檔案系統
5. 檔案管理指令
6. 編輯文字檔案
7. 目錄管理
  8. 了解檔案權限
9. 系統管理
10. 尋找及安裝軟體套件
11. Shell Script簡介
12. ARM 開發板 連上網路
13. Wi-Fi無線網路 
14. SSH簡介

【模組B】嵌入式 C 語言實戰
1. C&C++ Tools Introduction and Setup
2. C&C++程式架構、常數(Constants)、資料型態/Alignment 與運算式、Endian-ness 與 Byte Ordering、嵌入式C Bitwise運算子
3. C&C++基本輸入輸出(Input/Output)
4. 流程控制敘述(Flow Control & Loop)
5. C&C++ 編譯器前置處理器(Preprocessor Compiler Control): #include #define/#undef、#if/#else/#endif/#ifndef

6. 指標(Pointer)、陣列(Array)、字串:字元陣列與字元指標 (String:Character Array, Character Pointer)、stringify operator、Token Concatenation Operator、 Memory Alignment LAB
7. 指標陣列(Pointer and Array)進階用法:多重指標與多維陣列、指標陣列化(Pointer to Array)
  8. 陣列指標化(Array to Pointer)
9. C&C++函式(Function):函數的定義及呼叫、函數的原型宣告、參數的傳遞與預設初值、C++函數的Overload(同名異式、函數覆載)... unknown parameter的運用
10. Mixed C and Assembly( include Parameter passing )
11. static、volatile、const and typedef
12. 結構型態(Structure Types):struct、enum、union Type、檔案IO處理(File I/O) 、bitwise field structure
13. 指標進階應用( 函式指標(Function pointer)、結構型態與指標、void指標(void pointer)

【模組C】嵌入式 Linux 系統實作與程式設計實務
1. What is Needed Lib for Embedded System? ( System Calls & Library)
2. Embedded Linux File I/O:★【Lab】STDIO/STDOUT Programming
3. Embedded Linux Files and Directories:★【Lab】open/create/read/ write/lseek/fcntl/close
4. Embedded Linux Standard I/O Library:【Lab】Buffering I/O、Reading and Writing a Stream、Binary I/O、Formatted I/O
5. Embedded Linux System Data Files & Info:【Lab】Linux System Information Programming
6. Embedded Linux Termios:【Lab】RS232 Programming
7. Embedded Linux Process Control:【Lab】fork、vfork、exec
 

8. Embedded Linux Signals:【Lab】signal、kill and raise Functions、sigaction Function
9. Embedded Linux Inter-Process Communication:【Lab】Pipes、FIFOs、Message Queues、Semaphores、Shared Memory
10. Embedded Linux多執行緒程式設計:【Lab】pThread Programming、Mutux Programming

11. Embedded Linux Network Socket Programming:【Lab】TCP/UDP Programming Embedded Linux Shell 程式設計【Lab】Embedded Linux Shell Programming:Simple Shell Example、Shell Operators Example、Shell Logic Structures Example

【模組D】Python入門及物聯網硬體程式控制
1. 啟動Python
2. Python基礎
3. Python字串處理
4. Python控制敘述
5. 自定義函數
6. List串列
7. Dictionary字典
8. 格式化數值
9. 返回多個數值
10. 使用模組
11. 在Python中執行Linux指令
12. 寫入檔案
  13. 讀取檔案
14. 例外處理
15. 定義類別
16. 靜態方法、類別方法
17. 特性名稱空間
18. 特殊方法名稱
19. 建構、初始與消滅
20. 繼承
21. 抽象類別
22. 物件相等性
23. Python GPIO控制

【模組E】資料結構--使用Python
1. 資料結構及演算法導論
2. 演算法效能分析
3. 線性串列
4. 認識陣列
5. 矩陣
6. 鏈結串列
7. 堆疊
8. 算術運算式的表示法
9. 佇列
  10. 樹狀結構
11. 二元樹走訪
12. 最佳化二元搜尋樹
13. 圖形結構
14. 圖形最短路徑
15. 排序
16. 內部排序法
17. 搜尋
18. 雜湊搜尋法

【模組F】Python 機器學習應用
1. 監督學習
1.1. 廣義線性模型
1.2. 線性和二次判別分析
1.3. 內核嶺回歸
1.4. 支持向量機
1.5. 隨機梯度下降
1.6. 最近鄰
1.7. 高斯過程
1.8. 交叉分解
1.9. 樸素貝葉斯
1.10. 決策樹
1.11. 集成方法
1.12. 多類和多標籤演算法
1.13. 特徵選擇
1.14. 半監督學習
1.15. 等式回歸
1.16. 概率校準
1.17. 神經網路模型(有監督)
2. 無監督學習
2.1. 高斯混合模型
2.2. 流形學習
2.3. 聚類
2.4. 雙聚類
2.5. 分解成分中的信號(矩陣分解問題)
2.6. 協方差估計
2.7. 經驗協方差
2.8. 收斂協方差
2.9. 稀疏逆協方差
2.10. Robust 協方差估計
2.11. 新奇和異常值檢測
2.12. 密度估計
2.13. 神經網路模型(無監督)
  3. 模型選擇和評估
3.1. 交叉驗證:評估估算器的表現
3.2. 調整估計器的超參數
3.3. 模型評估: 量化預測的品質
3.4. 模型持久化
3.5. 驗證曲線: 繪製分數以評估模型
4. 資料集轉換
4.1. Pipeline(管道)和 FeatureUnion(特徵聯合): 合併的評估器
4.2. 特徵提取
4.3. 預處理數據
4.4. 無監督降維
4.5. 隨機投影
4.6. 內核近似
4.7. 成對的矩陣, 類別和核函數
4.8. 預測目標 (y) 的轉換

【模組G】OpenCV及影像辨識
1. OpenCV簡介
2. 安裝OpenCV
3. OpenCV基本操作
4. 色彩空間轉換
5. 影像平移
6. 影像旋轉
7. 影像放大縮小
  8. 仿射轉換
9. 投影轉換
10. 2D卷積
11. 模糊化
12. 邊緣偵測
13. 侵蝕和膨脹
14. 使用Haar cascades來檢測人臉辨識

【模組H】專案實作參考項目
1. 智慧家庭安全防護系統
2. 動作偵測
3. 循跡機器人
4. 人臉辨識
5. 圖像辨識
6. 物聯網溫度監視器
7. 安全監視系統
8. 擴增實境影像辨識系統
  9. 條碼掃描機
10. 智慧家庭遙控電器開關
11. 遙控無人汽車專案
12. 迷你無線路由器/口袋型無線基地台
13. ARM機器人
14. 語音辨識和控制
15. 多軸無人飛機