國立嘉義大學112學年度第2學期教學大綱

課程代碼11223470023上課學制大學部
課程名稱網路程式設計 Network Programming Design授課教師 (師資來源)王皓立(資工系)
教學型態部別日間部
課程類別專業選修課程部校定系定
授課學期數1開課系所資訊工程學系
開課班級數1新開設課程
國外學校合作遠距課程課程線上平台網址elearning.ncyu.edu.tw
預計總修課人數50教師信箱haoli@mail.ncyu.edu.tw
學分(時數)3.0 (3.0)上課班級資工系2年甲班
先修科目必選修別選修
上課地點圖書資訊大樓 A31-219 授課語言國語
證照關係可作網路相關証照考試的基礎晤談時間星期1第1節~第4節, 地點:理工大樓-618
永續發展目標[SDGs]之關聯性優質教育; 工業化、創新及基礎建設
課程大網網址https://web085004.adm.ncyu.edu.tw/Syllabus/Syllabus_Rpt.aspx?CrsCode=11223470023
備 註
本課程之教學主題、內容或活動是否與性別平等議題有相關之處:否本課是否使用原文教材或原文書進行教學:否

◎系所教育目標:
為配合國家建設及產業發展之需要,本系以培育中高級資訊科技人才為目的。在教學理念上除了注重理論的探討之外並強調實際動手的能力,以期培育出具有深厚學識基礎並能實際應用的資訊科技人才。在專業必修中涵蓋基礎理論、電腦硬體、作業系統、資料結構及計算機網路等方面,並有畢業專題製作,使學生紮實基礎,同時課程包含四個專業學程,兼顧學術及實務之分流與訓練。分別為一:軟體工程及知識工程學程、二:互動多媒體學程、三:網路及資訊安全學程、四:資訊系統開發實務學程,以期作為日後升學就業的準備。
◎核心能力關聯性
1.具備資訊軟體專業之能力3 關聯性中等
2.發掘、分析及解決問題之能力4 關聯性稍強
◎本學科內容概述:
本課程會介紹如何C/C++實作網路socket程式,會在windows與linux平台上實作。先介紹簡易的IP查詢程式,接著以TCP傳送的echo client/server程式及檔案傳送,再來是UDP,broadcast, mulitcast程式。之後,為了實現多個socket可同時處理,在windows下會介紹multi-thread, non-block模式,select()技術。而在linux下會介紹fork(),select()技術。
◎本學科教學內容大綱:
1 IP查詢程式 2 TCP echo client/server program 3 TCP simple web browser 4 UDP client/server program 5 File Transmission 6 Broadcast and Mulitcast 7 API select() 8 Multi-thread 9 Non-blocking Mode
◎本學科學習目標:
這門課的教育目標有二:
1 建立網路程式的基礎知識
2 建立網路程式的實作能力
◎教學進度:
週次主題教學內容教學方法
01
02/22
課程介紹1 介紹上課方式
2 介紹上課內容
3 介紹配分
4 介紹出席與請假規則
講授。
授課方式:面授
02
02/29
網程工具介紹:wireshark1 介紹網程工具介紹:wireshark
2 實作:進行實際網路實驗,抓取並分析封包
講授。
授課方式:面授、遠距(非同步)
03
03/07
網程初體驗(寫一個由IP查找網址的程式)1 介紹windows socket基本觀念
2 實作:寫一個由IP查找網址的網路程式
講授。
授課方式:面授、遠距(非同步)
04
03/14
寫一個簡易的client程式1 介紹windows的simple tcp/ip services
2 介紹telnet工具
3 實作:寫一個簡易的client程式
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
05
03/21
寫一個簡易的Server程式1 介紹server程式架構
2 實作:寫一個簡易的echo server程式
3 實作:寫一個simple tcp/ip services
操作/實作、講授。
授課方式:遠距(非同步)
06
03/28
Client/Server程式的延伸1 實作:寫一個Client可以連接2台Server
2 實作:寫一個中繼程式轉送程式(proxy)
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
07
04/04
校外研習活動(放假)校外研習活動(放假)操作/實作、講授。
08
04/11
寫一個簡易雙人聊天室1 實作:點對點連線聊天室
2 實作:client/server版聊天室
3 介紹netcat工具
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
09
04/18
期中考期中考期中依。
授課方式:面授
10
04/25
寫一個UDP網路程式1 介紹UDP網路程式觀念
2 實作:固定對象的udp程式
3 實作:不固定對象的udp程式
操作/實作、講授。
授課方式:遠距(非同步)
11
05/02
寫一個傳送接收檔案的程式1 介紹傳送接收檔案的觀念
2 實作:用TCP傳送檔案的程式
3 實作:用UDP傳送檔案的程式
操作/實作、講授。
授課方式:遠距(非同步)、遠距(同步)
12
05/09
server功能改進:非攔阻模式1 介紹非攔阻模式的觀念
2 實作:解除聊天室一人一句限制
3 實作:server可服務多個client
操作/實作、講授、討論。
授課方式:遠距(非同步)
13
05/16
server功能改進:用Select實現多工1 介紹Select實現多工的觀念
2 實作:服務多個client的echo server
3 實作:使用writefds來傳送
操作/實作、講授、討論。
授課方式:遠距(非同步)、遠距(同步)
14
05/23
server功能改進:多緒程式設計1 介紹多緒程式的觀念
2 實作:聊天室Server多工
3 實作:Client同時接收與打字
操作/實作、講授、討論。
授課方式:遠距(非同步)
15
05/30
寫一個廣播網路程式1 介紹廣播程式的觀念
2 實作:一對多的廣播系統
3 實作:多頻道的廣播系統
操作/實作、講授、討論。
授課方式:遠距(非同步)、遠距(同步)
16
06/06
寫一個群播網路程式1 介紹群播程式的觀念
2 實作:一對多的群播系統
3 實作:多頻道的群播系統
操作/實作、講授、討論。
授課方式:遠距(非同步)
17
06/13
期末專題成果展示期末專題成果展示操作/實作、講授、討論。
授課方式:遠距(同步)
18
06/20
Python GUI聊天室1 介紹tkinter
2 實作:Python GUI聊天室
期末考。
授課方式:遠距(非同步)
◎課程要求:
課程要求:
本課程須具備的C語言與python程式實作能力與對網路基本知識。
學生建議先修過資工系的計算機網路與程式設計,
本課程將以C\C++與python開發網路程式,會在windows平台上實作。

本課程看影片與寫程式作業將占據不少珍貴的睡眠時間,修習前請作好心理準備。
本課程採取遠距(非同步與同步)上課,第一週、期中考與期末考採用實體。
◎成績考核
課堂參與討論15%
期中考15%
期末考15%
作業/習題演練55%
◎參考書目與學習資源
Computer Networks, 4/e
by Andrew S. Tanenbaum ISBN : 0130384887 (有中譯本,東華)

Windows Sockets Network Programming
by Bob Quinn, Dave Shute ISBN : 0201633728
◎教材講義
請改以帳號登入校務系統選擇全校課程查詢方能查看教材講義
適合修習對象:本課程須要修過「計算機網路」及「程式設計」。
本課程須要c/c++與python程式設計能力。
本課程須要了解TCP,UDP,IP,HTTP,DNS協定。
教學方式: ■提供線上課程主要及補充教材 ■提供線上非同步教學 ■提供面授教學, 次數:4次, 總時數:12.0小時 ■提供線上同步教學, 次數:8次, 總時數:12小時 ■每週上課時數(遠距教學):1.33小時
學習管理系統: 1、提供給系統管理者進行學習管理系統資料庫管理 ■個人資料 ■課程資訊 2、提供教師(助教)、學生必要之學習管理系統功能 ■最新消息發佈及覽 ■教材內容設計、觀看及下載 ■成績系統管理及查詢 ■進行線上測驗及發佈 ■學習資訊 ■互動式學習設計(聊天室或討論區) ■各種教學活動之功能呈現
作業繳交方式: ■提供線上說明作業內容 ■線上即時作業填答 ■作業檔案上傳及下載 ■線上測驗 ■成績查詢
上課注意事項:
本課程採取遠距(非同步)與面授上課。
每週,同學先自行觀看教學影片並完成作業,上課時間則進行重點說明,作業檢討,回覆問題。
本課程每週會點名,每週會都會有程式作業。
本課程影片很長,作業很多,還要加上實體課,看影片與寫程式作業將占據不少珍貴的睡眠時間,適合對網路程式有熱情有好奇心的同學。

每週同學先自行觀看教學影片並完成作業,上課時間(採用MS teams)則進行重點說明,抽點,作業檢討,回覆問題。
若是對影片或作業有疑問,可在每週回饋區告訴老師,老師會在同步上課時解說。

本課程自學習指引:
1 自學時,建議依照進度逐週觀看教材
2 每週看完影片,要實作完成作業
1.請尊重智慧財產權、使用正版教科書並禁止非法影印。
2.請重視性別平等教育之重要性,在各項學生集會場合、輔導及教學過程中,隨時向學生宣導正確的性別平 等觀念及尊重多元性別,並關心班上學生感情及生活事項,隨時予以適當的輔導,建立學生正確的性別平等意識。