作者neoneon (紅茶を飲む程度の能力)
看板NCTU-Teacher
標題Fw: [心得] 王協源 - 網路程式設計概論
時間Tue Jul 12 03:08:15 2016
※ [本文轉錄自 neoneon 信箱]
作者:
[email protected] ("愛宕有機奈米負離子貓")
標題: [心得] 王協源 - 網路程式設計概論
時間: Sun Jul 10 11:46:48 2016
作者: gxlkhhc (XD) 看板: NCTU-Teacher
標題: [心得] 王協源 - 網路程式設計概論
時間: 2013/01/30 Wed 21:22:05
⊕課名⊕
網路程式設計概論
▲教授▲
王協源 教授
★修課年度★(請加註開課單位 如:大三通識、XX系選修、XX所)
101學年 大三上 3CD 5G(H) 資工系選修 網路組核心必修 工程四館027
£教了什麼£(課程大概內容。或是額外學會了什麼東西。)
一開始先複習了一下計算機網路概論的東西 不過很快帶過
另外5G其實教授都上的很High 常常會弄到H堂 或是教授常常3CD請假 5H補課
還有就是助教會來補充一些東西 像是剛開學有補充怎麼用
工作站、linux、gdb、tcpdump、VIM 等 (其實像工作站、vim等計概時就有教過了...)
之後進入本課程 用的是純 C ,當然你要用 C++ 沒人阻止你
從 socket 怎麼開跟寫,File descriptor,TCP等介紹
因為很多跟 OS 有關,所以教授花了不少時間在教 OS
教授都開玩笑說他根本就是在上作業系統...
之後教很重要的 select , socket options ,UDP,IP,IO等
後來教 Non-Blocking , Threads 整學期就結束了
教授的講義滿多的,但感覺沒有全部都教
課本是用 UNIX Network Programming 3rd Edition
不過可能我受修 SA 影響關係,我遇到不會的都習慣 Google ,所以課本幾乎沒翻過...
◆上課方式◆(投影片、團體討論、老師教學風格)
教授用投影片,不過裡面大部分都是課本的 code 、圖片
教授教得非常的細, code 幾乎一行一行講這行是幹麼 連 printf 啥的都不放過
因為我是教授的專題生,聽 lab 學長講說教授最大興趣就是 trace code 哈哈
不過期末學生反應裡面有跟教授反應說這個 trace code 非常無趣
對強者來說一行一行太細會很無聊,對弱者來說一直講 code 又太乏味
所以教授說以後會改進這個
主要教學風格就是 trace code 吧,藉由一行一行講解去告訴大家整個架構
每個函式用法等,當然會有一頁整個統整每個函式的功能
總之教得細到有點會覺得很慢無趣,但整體而言覺得教授很認真,還算不錯
前面講 OS 地方很多修 OS 甚至系統管理(SA)都沒教的東西 學到不少
(咦 這堂課不是 OS 吧XD)
另外就是教授常常會問問題 不過基本上都是前面兩三排的人在回答
▼考試作業▼
一次小作業,三個主作業,一個 Final Contest ,兩個上機考
上機考各 30% ,主作業各 9% ,小作業 3% , Final 10%
小作業非常簡單,因為教授說最近大三的程度太爛,連基本 IO 、字串處理都不會
(還是助教說的 忘記了) 總之小作業就是很簡單的字串處理
基本上有計概等級應該就會了吧 這個作業原本沒有的
是助教希望能給大家練習而增加的
三個主作業 第一個是聊天室,主要是讓大家練習教授最重視的 select 函式
第二個主作業是 UDP 傳 binary 檔案,主要是練習 UDP 的函式
(傳檔案用教授之前的研究生開發的 estinet 模擬器)
第三個主作業是練習 Non-Blocking 函式
小作業平均95 三個主作業平均差不多都是75
Demo 方式就是去 lab 跑給助教看,然後被助教問些問題,看看 code 架構等
Final Contest 是跟作業二一模一樣,但是要處理封包順序不同的問題
另外說是 Contest 是因為會記錄你花了多久的時間傳完 50MB 的檔案
並記錄你傳了多少 (因為會掉封包 要測試你重送會不會浪費)
算法有個公式,不詳細講,總之取決於全班最強那個人的成績與你的比例
不過由於 Final Contest的測資不公開(前面幾個作業都有公開)
所以我去 Demo 時發生自己測試時沒發生到的問題,結果傳失敗直接0分@@
好像也有一些人也是這樣結果被測資陰了ww (傳成功直接有60分)
由於班上有個大魔王,他傳的時間超短
因為公式是與最強者比,加上有些人傳失敗,最後 Contest 全班平均只有66
上機考雖然說考CDXE共四個小時,但基本上教授、助教人都很好,時間是無限
沒有網路,但是可以帶印出來的講義、code,或是帶課本
期中上機考考四題,有三題其實用課本範例稍微改一改就好了
所以前三題全班答對人數大概2/3以上 但最後一題變化比較大
答對人數就很少 最後平均59
不過我想有一部份原因應該是到了期中考時,連第一個主作業都還沒Dead line
很多人根本連練習都沒練習過就上戰場了...
期末上機考比起考古題、課本範例,真的變化超大的
雖然只有三題,但是很多人都只寫出第一題
第二題 Thread 因為根本沒派過作業 答對人數更少 被助教戲稱大魔王
最後平均46 整學期全班平均只有63
而且教授不調分 不補考 所以全班57個人被當了22個人 算是給分非常硬
另外就是因為作業、上機考給分幾乎就是0跟1 對跟錯 沒有什麼血汗分數
所以呈階梯狀分布 每個階梯間差很多分 會有很多的空洞 (例如88分下一個就剩82分)
¥其他¥(是否注重出席率or嚴禁遲到?需要的基礎?)
不點名 需要的基礎大概是會寫C吧 但是應該有計概程度就可以了
另外就是計算機網路概論 還有linux系統要稍微用過
¢最後想說的話¢
這屆助教被教授說是最好的一次 對大家都很好
常常會去系計中看有沒有人不會 (因為estinet 模擬器只有系計中有)
然後課程論壇上也會幫大家解答 人真的都很好
學期末教授有跟幾個期末考拿滿分的開個會 問說課程那些需要改進跟心得
統整一下大概就是認為課程功課太少 大家幾乎都沒怎麼練習就去考試
導致只會用課本範例去改 像期末上機考那樣跟課本完全不同架構的就完全不行
所以建議希望以後改為像計概、OOP那樣變成有個上機時間
每一兩周去上機直接在上機時間做完作業 「逼」大家練習
因為這堂課就像教授第一堂就講的 多練習熟悉函式就能高分
另外就是 因為這堂課的函式很多只能跑在 linux 上
所以這堂課都得用 linux 系統,很多人平常都用windows,用dev-cpp 按個F9就結束了
結果到linux系統會用得很痛苦 debug也沒法那麼順
還有就是遇到不會的要嘛算了 稍微認真點的去問助教或上論壇問
其實很多問 google 大神就有答案,畢竟這堂課的東西應該也用了20 30年了
什麼問題沒遇過 網路上應該都有解答
另外就是 man 其實很好用 像上機考沒網路時 其實可以用 man 去看一些函式怎麼用
總之這堂課就是多練習去熟悉函式吧
&誰適合修這門課&
教授說這堂課是網路組的核心 是網路組非常重要的一堂課
所以他要非常嚴格 因此才會不調分 不補考吧? (業界標準?)
--
※ Origin: 交大次世代(bs2.to)
◆ From: BlueSu.Dorm13.NCTU.edu.tw
推 darkgerm:推! m(_ _)m 01/30 21:26
→ gxlkhhc:樓上修研究所的 m(_ _)m 01/30 21:27
推 xatier:大大 m(_ _)m 01/31 08:53
推 yukuro:如果未來有作系統的或是架構的研究,gdb, linux等等都會碰到 01/31 21:50
→ yukuro:趁這個機會練習也是不錯的 01/31 21:51
說到系統 教授一直推薦他下學期與黃世昆、張立平教授合開的作業系統實作
說這是業界覺得交資畢業生程度越來越差所以希望交資能開的課
不過聽說會非常非常操就是了XDDD
然後就是說這堂課修完在業界會很搶手
一直推坑說希望大家來修 呵呵 (想修可惜撞堂)
作者從 BlueSu.Dorm13.NCTU.edu.tw 修改文章於 2013/02/02 Sat 22:54:24
推 j129008:原PO滿分神人<(_ _)> 02/04 17:39
→ gxlkhhc:no no 我Final Contest 爆炸惹QQ 02/04 20:58
推 yamamoto1637:推薦這篇文章 02/10 16:08
推 flyray:原PO 大神阿 都不看課本的S 02/18 14:40
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: neoneon (106.105.175.48), 07/12/2016 03:08:15