課程簡介 | 學習菜單 | 課程預覽 | 延伸學習 | 課程諮詢 |
學習目標
✔清楚掌握C語言的基本及進階觀念,尤其是針對pointer、Struct與位元處理等主題
✔認識前處理器、指標、特殊宣告等嵌入式系統常用的技巧,了解程式架構的可維護性、模組化
✔能夠清楚掌握程式的重要觀念,了解"軟體程式=演算法+資料結構"熟悉不同的設計模式與何時
會應用。
✔藉由排序與搜尋演算法理解來討論Big-O演算法效能分析
✔了解Linux system call (如I/O, IPC, pthread等),而能運用這些system call實現Linux程式,
亦藉此了解 OS在嵌入式系統所扮演的角色
✔了解 server/client程式運作與 TCP/IP原理,並能夠以 C語言實作 TCP/UDP/Raw Socket
✔能夠以 ioctl/fcntl/setsockop去控制 Socket的行為
✔能夠實現 Linux Broadcast與Multicast
✔認識前處理器、指標、特殊宣告等嵌入式系統常用的技巧,了解程式架構的可維護性、模組化
✔能夠清楚掌握程式的重要觀念,了解"軟體程式=演算法+資料結構"熟悉不同的設計模式與何時
會應用。
✔藉由排序與搜尋演算法理解來討論Big-O演算法效能分析
✔了解Linux system call (如I/O, IPC, pthread等),而能運用這些system call實現Linux程式,
亦藉此了解 OS在嵌入式系統所扮演的角色
✔了解 server/client程式運作與 TCP/IP原理,並能夠以 C語言實作 TCP/UDP/Raw Socket
✔能夠以 ioctl/fcntl/setsockop去控制 Socket的行為
✔能夠實現 Linux Broadcast與Multicast
學習菜單
• 課程總時數 : 66小時
• 觀看天數: 105天
• 課程所附教材 : 精編講義、範例程式碼
★精通C語言(點選展開)
-
程式語言導論
-
C程式介紹
-
運算式
-
流程控制
-
函式與巨集
-
陣列與指標
-
字串處理
-
變數範圍
-
檔案管理
-
NEW data Type
★資料結構(點選展開)
-
資料結構導論
-
ADT 抽象資料型別設計方法
-
Set 集合 ADT設計
-
Stack堆疊
-
Queue 佇列
-
Linked List鏈結串列
-
Tree樹狀結構
-
Graph 圖形結構
-
Search資料搜尋
-
Sorting資料排序
★Linux系統程式設計(點選展開)
-
Low Level I/O Routine
-
File and Directory Manipulation
-
General Library Interface
-
Processes
-
Signals
-
POSIX Thread
-
InterProcess Communication
-
Shell programming
-
Linux Serial Programming
-
Linux Sokcet Programming
-
TCP/IP 網路簡介(1)
-
TCP/IP 網路簡介(2)
-
Wireshark 工具使用
-
TCP Socket程式與Socket API介紹
-
Socket多工處理
-
UDP Socket
-
Unix Domain Socket
-
Socket Option & Ioctl
講師實務經驗分享
Linux系統程式設計:
一般情況,通常整個嵌入式Linux系統的功能會有你自己寫的程式(可能也會去連結GPL或LGPL函式庫)並整合一些來自Open Source的程式。雖然Linux已存在很多的Open Source,但不可能永遠運氣這麼好都可以找到100%符合需求或規格的原始碼,所以你必須懂得如何修改成你要的功能。不論自己寫或移植Open Source,這些都是基於Linux核心,所以一定會用到Linux核心的能力,包含裝置I/O請求、多行程、同步處理、行程通訊等。若你的系統需要TCP/IP通訊,還得懂Socket網路程式設計。想自己寫並且能改得動Open Source的程式,其實要具備Linux系統程式設計的能力,你可以透過閱讀"Linux Programming Manual",但是篇幅之廣泛且多元,如果沒有對作業系統有一定的認知,不懂對系統呼叫(System call)所產生Linux背後的運作行為,很難了解真諦。因此若有經驗的人帶你看並且提供範例程式演練,對於學習會相當有幫助。
一般情況,通常整個嵌入式Linux系統的功能會有你自己寫的程式(可能也會去連結GPL或LGPL函式庫)並整合一些來自Open Source的程式。雖然Linux已存在很多的Open Source,但不可能永遠運氣這麼好都可以找到100%符合需求或規格的原始碼,所以你必須懂得如何修改成你要的功能。不論自己寫或移植Open Source,這些都是基於Linux核心,所以一定會用到Linux核心的能力,包含裝置I/O請求、多行程、同步處理、行程通訊等。若你的系統需要TCP/IP通訊,還得懂Socket網路程式設計。想自己寫並且能改得動Open Source的程式,其實要具備Linux系統程式設計的能力,你可以透過閱讀"Linux Programming Manual",但是篇幅之廣泛且多元,如果沒有對作業系統有一定的認知,不懂對系統呼叫(System call)所產生Linux背後的運作行為,很難了解真諦。因此若有經驗的人帶你看並且提供範例程式演練,對於學習會相當有幫助。
資料結構與演算法:
資料結構(Data Structures)是資訊學科中的核心課程之一,也是嵌入式軟體設計的基礎課程、軟韌體開發者的必修課程,這門課讓你思考程式的執行效能,設計有效率的演算法來解決問題。
資料結構(Data Structures)是資訊學科中的核心課程之一,也是嵌入式軟體設計的基礎課程、軟韌體開發者的必修課程,這門課讓你思考程式的執行效能,設計有效率的演算法來解決問題。
C語言:
許多初學者或其他領域者想要進入C語言世界,常常不得其要領。艾鍗C語言課程強調建立清楚觀念,並養成實作的能力。程式的寫法如何做到程式模組化而易於維護與Debug?如何寫出具有高度彈性擴展的程式架構?這些都是這門課能帶你搞懂的!
許多初學者或其他領域者想要進入C語言世界,常常不得其要領。艾鍗C語言課程強調建立清楚觀念,並養成實作的能力。程式的寫法如何做到程式模組化而易於維護與Debug?如何寫出具有高度彈性擴展的程式架構?這些都是這門課能帶你搞懂的!
課程預覽
Linux系統程式設計 | |
C語言 | 資料結構 |
更多延伸學習
★數位課程
★實體課程
全新數位學習平台