作者neoneon (紅茶を飲む程度の能力)
看板NCTU-Teacher
標題Fw: [心得] 吳毅成 網路程式設計
時間Tue Jul 12 03:52:31 2016
※ [本文轉錄自 neoneon 信箱]
作者:
[email protected] ("愛宕有機奈米負離子貓")
標題: [心得] 吳毅成 網路程式設計
時間: Sun Jul 10 12:31:04 2016
作者: hungys (hungys) 看板: NCTU-Teacher
標題: [心得] 吳毅成 網路程式設計
時間: 2014/02/09 Sun 01:25:20
(按Ctrl+v 預覽,稍微修一下版面,可讓你這篇文章更專業喔^^)
⊕課名⊕
網路程式設計
▲教授▲
吳毅成
★修課年度★(請加註開課單位 如:大三通識、XX系選修、XX所)
102上,網工所 (大學部可選)
£教了什麼£(課程大概內容。或是額外學會了什麼東西。)
如同課名主要就是教Socket Programming
不過不是用高階語言例如JAVA或C#等等
而是用C語言而且是以Unix為基礎的網路程式
所以能更深刻的瞭解到Socket的使用以及Server架構的設計
也能同時學習到Unix的程式設計
後半段也有一些case study的部分
例如基本的防火牆設計概念等等
以下是這學期大致的課綱
每年教材應該都差不多但可能多少進度會不一樣
* Unix Programming (Pipe, FIFO, Shared memory, Semaphore...)
* Berkeley Socket
* Socket Programming Paradigms
- Iterative Servers
- Concurrent Servers
- Single-Process Concurrent Servers
- Multi-services Servers
- Server issues
- Concurrent Clients
* Internet and Distributed Information Systems
- HTTP, CGI
- Winsock and AsyncSock
- Thread vs. Select
- FastCGI
* Case Studies
- Firewalls
- NAT and UDP Hole Punching
- Remote Procedure Call (RPC)
- Web Socket
◆上課方式◆(投影片、團體討論、老師教學風格)
老師都是用投影片講解
講義都會上傳到e3
影印室也都可以買到紙本的
基本上買不買課本其實無所謂
基本上講解還算清楚
尤其建議後面case study的部分上課要仔細聽
不然自己讀會比較累(暈)
前面Socket程式設計倒是還可以自己念得來
▼考試作業▼
這學期的分數比重:
Homework0 - 5%
Project1 - 21%
Project2 - 19%
Project3 - 23%
Project4 - 13%
Final Exam - 20%
很明顯就是這門課是作業loading很重的課
所以會有大量的時間在寫程式上
除了Homework0以外都是寫程式
更重要的是每個Project環環相扣
如果Project1沒寫出來後面可能就掰掰了
老師說要我們練習維護code的能力...
所以你很可能在寫Project3時還在小改前面的程式
* Project1 - Remote Access System
寫一個遠端的shell系統,可以讓user連線上去後下一些指令執行程式,
例如ls、cat或其他助教給的程式,而且要可以支援將output pipe到
同行指令或是N行之後,所以會接觸到一些Unix的System Programming。
* Project2 - Remote Working Ground
這個作業要包含Project1的所有功能,並加上多人聊天以及跨user pipe
指令的功能。而且要實作selec及fork兩種架構的server,等同兩份的量。
* Project3 - Remote Batch System
自己寫一個簡易的HTTP Server並要可以執行CGI程式,支援使用者透過
網頁介面下Batch指令到Project1&2的server。此外還要寫Winsock的版本,
這是這次作業最累的地方...
* Project4 - SOCKS server
教授說這是最簡單的作業,但我覺得反而是最難的作業= =
要跟據SOCKS4 protocol實作一個SOCKS server,然後也會用Project1~3來測。
其他spec或code可以參考GitHub,但我記得我某次作業的小錯誤還沒改。
https://github.com/hungys
這門課作業會用e3防抄襲檢查程式(老師說的),我也不清楚,還是認真自己寫吧!
¥其他¥(是否注重出席率or嚴禁遲到?需要的基礎?)
完全不重出席
整學期只有一次因為有演講所以點名
需要的基礎是C/C++
Unix Programming其實就是邊寫作業邊學...
修課人數: 97 (扣掉W)
平均: 79.06
90~: 41
80~89: 30
70~79: 14
60~69: 0
~60: 12
W: 38
完全沒有調分(除了及格邊緣)
但作業有寫出來分數就不會太難看
期末考幾乎都是萬年考古題很好準備
¢最後想說的話¢
要有花很多時間寫程式&debug的心理準備
然後這門課助教會很認真回答e3討論區的問題 大推
&誰適合修這門課&
只要對寫程式有熱情
即使跟小弟是大學部一樣可以來壯膽一下
這學期大學部有13個人修
也適合不喜歡考試or上機考的人修
以上
--
※ Origin: 交大次世代(bs2.to)
◆ From: 111-249-197-216.dynamic.hinet.net
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: neoneon (106.105.175.48), 07/12/2016 03:52:31