[評價] 103-1 鄭卜壬 系統程式設計

作者: ittfie (kevin)   2015-01-28 10:03:21
※ 本文是否可提供臺大同學轉作其他非營利用途?(須保留原作者 ID)
(是/否/其他條件): 是
哪一學年度修課: 103-1
ψ 授課教師 (若為多人合授請寫開課教師,以方便收錄)
鄭卜壬
λ 開課系所與授課對象 (是否為必修或通識課 / 內容是否與某些背景相關)
資工系大二必修
δ 課程大概內容
按照老師教授的順序列出課本章節名
Ch1. UNIX System Overview
Ch3. File I/O
Ch14. Advanced I/O
Ch4. File and Directories
Ch8. Process Control (前半)
Ch5. Standard I/O Library
==========期中考==========
Ch7. Process Environment
Ch8. Process Control (後半)
Ch10. Signals
Ch11. Threads
Ch12. Thread Control
==========期末考==========
上第一堂課前,光看大綱幾乎不知道這課在教什麼,對於Unix, Linux 也可說
都沒接觸過。現在修完一學期如果要和沒修過的人解釋的話,我會說這堂課顧
名思義就是學習在 "Unix系統上寫程式" ,一開始我們學寫程式通常不會在意
作業系統扮演的角色,然而比如說像是把結果印到螢幕上、開啟或讀寫檔案,
都需要使用公用的資源,因此這時就要系統管理、分配各程式可拿的東西,並
把資源做有效的分配。而通常這些動作都會包成一個個函式供程式呼叫 (像是
printf(),fopen()等) ,所以這課很多時間是在介紹這些函式運作的方式,進
而對系統如何執行眾多程式有基本的了解 (算是作業系統的前導課程) 。
以內容來講,這門課可粗略分成兩大部分: file 和 process。file 包含像是
buffered & unbuffered I/O, file table, file system...等等,而 process
的部分有 fork, exec, thread, signal...等等。
Ω 私心推薦指數(以五分計) ★★★★★
★★★★★
先說我是外系的,可能是我以前對這塊一竅不通的關係,不怕死的(?) 來修後
,真的覺得學到很多,對寫程式、類Unix、作業系統的了解皆比以往多了不少
。所以如果你會一點點程式,但你還想知道作業系統和其執行程式間是怎麼溝
通、運作,或是你單純想了解多一點關於Linux 的知識的話,都很建議來修這
門課。
η 上課用書(影印講義或是指定教科書)
Advanced Programming in the UNIX Environment, Stevens Rago
一開始老師是說這本比較像字典,不見得要從頭第一個字開始慢慢看到尾,可
以直接查不會的函式來看就好。不過以我讀過的心得是,不懂某個函式怎麼用
,反而查網路比較快,因為這本書的索引太繁雜了,不容易找到想要的資訊,
倒是這本書寫得滿好讀的,觀念交代的也算清楚,投影片配合課本看應該滿有
加成的效果。
μ 上課方式(投影片、團體討論、老師教學風格)
主要用投影片上課,偶而會用白板配合講解。老師感覺在這一部分很有心得,
講觀念都講得很清楚,也有足夠時間讓同學思考。老師算滿風趣的,雖然有很
多哏都是關於本課程內容的XD,偶而也會講一點Google的事情(?
就授課順序來講,雖然內容大部份都是照課本,但老師有時候會一章講一半就
跳到另一章,或兩章一起講,聽課當下是不會有不連貫的感覺,但在複習的時
候會麻煩一點,不過這也要歸咎於這門課的內容滿多也滿雜的,各章的內容看
似獨立卻又都有關聯...。
σ 評分方式(給分甜嗎?是紮實分?)
期中考 30%
期末考 30%
作業 40%
應該滿紮實的,好像不太會調分的樣子,不過期末考滿分都會超過一百 (本學
期是120),若程式作業寫太差還有補救的機會。
ρ 考題型式、作業方式
考試題型滿多樣的,大部分是問答,也有複選或選填題,另外也會要求手寫程
式碼,不過老師會提供所有需要的 function prototype 。也有那種給你幾行
程式碼,要你指出其中可能會發生的問題,算是考滿活的。而考題基本上都沒
超過投影片的內容和老師講的,也沒有太偏或太刁的題目,只是一次考試的投
影片份量不少,要花一點時間讀熟才容易考好。
作業也占了成績很大的比例,除了三次手寫外,大半作業成績是由四次程式作
業決定,可能是一開始對很多函式要怎麼用都還不太熟的關係,前兩次都寫了
二、三十個小時有,而後兩次大概也是助教出比較簡單的緣故,分別十幾個小
小時就搞定了。不過似乎都是助教出題,所以應該每年會不一定。
ω 其它(是否注重出席率?如果為外系選修,需先有什麼基礎較好嗎?老師個性?
加簽習慣?嚴禁遲到等…)
不在乎出席,加簽好像也是滿容易的,基礎的話我覺得只要會一點 C/C++ ,程
度大概會寫、呼叫函式就差不多了。
Ψ 總結
很推這門課,也很推鄭教授 (剛好這學期兩班都是他教) 。對於以前只會拿來
呼叫的系統函式(printf(),fopen()那些),你會更了解它背後偷偷的做了什麼
事;對於新學到的函式,也提供你寫程式時新的選擇,或說可以寫出考量到更
多牽涉系統內部運作的程式,讓你的程式更安全、更有效率。
除了對寫程式的助益外,對 CS 的知識也會增加很多,尤其是作業系統的部分
,以前計概可能會學到 Semaphores, Race Condition, Deadlock 這些名詞,
但往往只是粗略的交代它的概念而已,這門課就會很實際的把 code 列出來,
告訴你怎麼樣就會發生這些事,該怎麼解決也會一併介紹。總之這是一門修完
可以有很多知識或概念內化於心的課,而不會只是考前背一背名詞,考後就都
都忘記學了什麼的那種。
作者: th1279sky (用百合淹沒世界)   2015-01-28 19:44:00
推pj!
作者: benny9072004 (Wombat)   2015-01-28 19:46:00
推pj ~ 可以下學期來修他的IR XD
作者: felgher (鄉民都跟我進來看熱鬧)   2015-01-28 20:50:00
強者我同學 必推XDD
作者: suhorng ( )   2015-01-28 22:37:00
真假XD 竟然不太會調分嗎?
作者: winston1907 (winston)   2015-01-28 23:44:00
推PJ認真教學XD 但分數應該調不少噢~ A-以上112/19XA+ 33 期中平均60附近 期末平均70附近

Links booklink

Contact Us: admin [ a t ] ucptt.com