「網路程式」課程 [⏫上傳素材、繳交練習] (Last update 6/25/2024 3:46 PM) (講稿與程式碼將陸續更新) |
||
📢 學期成績
|
||
第0單元 |
|
請同學把自己預備好、備妥所需的軟硬體 ❔ 適合修這門課?應有基礎的程式邏輯,半生不熟的程式能力恐難取得這門課的學分 |
第1單元 程式語言 |
🎯 Python基礎 ✓ 算數運算子、邏輯運算子 ✓ 輸入輸出:input()、print()、格式化顯示 ✓ 常用的資料型態:字串(string)與串列(list)尤為重點 ✓ 流程控制:if-else陳述、if-elif-else陳述、do-迴圈、while-迴圈 ✓ 檔案處理:open()、.seek()、.readline()、.close() ✓ 例外處理:try-except-else架構 ✓ 繪圖指令:pyplot函式庫、plot()、xlabel()、ylabel()、顯示中文字型、動畫 ✓ 自訂函數:一般函數、partial函數、lambda描述式 ✓ 類別與物件:語法架構、類別變數、物件變數、類別繼承 🎯多執行緒 ✓ 基本觀念、使用情境 ✓ 多執行緒結合繪圖應用
(v3、v4、v5版) ✓ 常用PyQt元件 ✓ 多執行緒 ✓ 信號(signal)與槽(slot)函數 |
🔎Python Matplotlib
Cheat Sheet |
第2單元 通訊協定 |
✓ 基本詞彙 ✓ 不同型態的網路特性:傳輸速度與細胞大小(cell size)的關係 ✓ 電路交換(circuit switching)網路,特性、優勢、限制 ✓ 分封交換(packet switching)網路,特性、優勢、限制 ✓ 管線效應(pipeline effect),封包標頭大小對於傳輸效益的影響 ✓ 最短路徑演算法:Dijkstra’s Algorithm,Bellman-Ford Algorithm,application ✓ Distance-Vector
Routing,群播(multicast) ✓ Why multi-layer
communication ✓ Layered concepts,
service primitives ✓ Basic operations
of TCP/IP ✓ Wireshark to observe
message flow ✓ Protocol
encapsulation, decapsulation ✓ Transport layer:
TCP vs UDP ✓ IP addressing,
tools to trace whereabouts of IP addresses ✓ Common protocol
headers ✓ Layering of the OSI model |
🔎Why doesn’t Dijkstra’s algorithm work for negative
weight edges? |
第3單元 Client-server架構 |
🎯 Socket程式架構 ✓ 複習第1-2單元第22—28頁 🎯微型伺服器硬體的安裝與設定 ✓ Jetson Nano Developer Kit (內有架設遠端視訊伺服器的操作指引) ✓ 樹莓派 |
🚀延伸作業二實作網路版的射飛靶遊戲,二位玩家競技誰先擊落飛靶 (skeetClient、skeetServer) 📖 Socket programming ü List of
TCP/UDP port numbers 🧭安裝Jetson Nano的完整流程
(借予同學的設備中的黑色插頭可供4A5V電力,記得令J48接腳跨接/短路;以micro-USB僅以2A供電,毋須令J48短路,但可能無法提供足夠電力啟動外接裝置(譬如攝像鏡頭)) |
第4單元 使用curl與相關API |
✓ 程式連結LINE Notify服務 ✓ 程式連結電子郵件伺服器 ✓ 實現LINE+email通知群組成員 ✓ 下載網頁內所有檔案以利離線瀏覽 ✓ 以urllib函式庫實現LINE傳訊 ✓ 以第三方開發之requests函式庫實現LINE傳訊 ✓ 連結簡訊服務 |
|
第5單元 Google服務 |
🎯 程式連結Google語音服務 ✓ 多執行緒工作模式 |
⛽本單元練習用程式碼 |
第6單元 物聯網 |
🎯 MQTT—Message Queuing Telemetry Transport ✓ 物聯網相關應用 |
🔎開放大眾使用的MQTT Broker broker.emqx.io |
第7單元 網路資料庫 |
✓ 網路資料圖像化 |
練習 |
第8單元 Node-RED |
🎯 Node-RED ✓ 環境建置、JavaScript語法、連結LINE Notify服務、語音介面、連結HTTP ✓ 網頁伺服器的替代方案 ✓ 連結TCP/UDP、儀表板(dashboard)、連結MQTT、連結MySQL ✓ 連結OpenData |
⛽練習:MQTT+MySQL整合應用 |
參考資源
TCP/IP Ports
and Sockets Explained
PyQt5 Tutorial 🤝 PyQt6 Tutorial 👍 Hosting Without The Need to Port Forward Using This Trick! 👍 Telebit 👍
Top 18 Most Useful Python
Modules
為什麼成為一名工程師這麼難?
(By Jewel)
搞笑談軟工:軟體開發與XX的關係
(By Teddy Chen)
科技如何綁架你的心智
(與課程無關,但藉此文讓同學反思是否已過度使用智慧型手機而不自知) |
有任何意見或建議,請隨時與老師聯絡;辦公室EL303;分機4245