◎系所教育目標: 為配合國家建設及產業發展之需要,本系以培育中高級資訊科技人才為目的。在教學理念上除了注重理論的探討之外並強調實際動手的能力,以期培育出具有深厚學識基礎並能實際應用的資訊科技人才。在專業必修中涵蓋基礎理論、電腦硬體、作業系統、資料結構及計算機網路等方面,並有畢業專題製作,使學生紮實基礎,同時課程包含四個專業學程,兼顧學術及實務之分流與訓練。分別為一:軟體工程及知識工程學程、二:互動多媒體學程、三:網路及資訊安全學程、四:資訊系統開發實務學程,以期作為日後升學就業的準備。 |
◎核心能力 | 關聯性 |
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 | 網程工具介紹:wireshark | 1 介紹網程工具介紹: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 每週看完影片,要實作完成作業 |