90年成大資工所狀元<br>90年中正資工所榜眼<br>90年台大資工所<br>90年交大資工所,周鴻祺 台大資工系肄,打通觀念經脈,直攻重點章節!,高點建國醫護網
高點醫護網
打通觀念經脈,直攻重點章節!
考取類科:90年成大資工所狀元
90年中正資工所榜眼
90年台大資工所
90年交大資工所

考取學員:周鴻祺 台大資工系肄
摘要感言
透徹數學觀念,靈活解題快狠準!
準備數學,沒有僥倖:定理、觀念的推導要確實弄懂,雖然數學不好準備,但是時間投資下去,卻能得到立竿見影的效果。大部份考得不錯的同學及學長,這一科都能得到8、90以上的高分。相較於資料結構與演算法,往往因為考題的變化幅度大而難以得分;數學可是投資報酬率相當高的科目!
離散數學的部份,各單元間關聯性不高,一個段落沒學好,不至於影響到下個單元的學習,可以各個擊破。但也正因為如此,準備時往往掛一漏萬,回頭複習時又發現忘了不少;有許多人因為準備考試不夠用功,最後隨便抓了一個單元就念,但離散的考題變化靈活度高,念懂與解題兩個層次差距頗大,急就章地準備往往佔不到任何便宜。
相較之下,線性代數則環環相扣,每一個觀念環節都要確實弄懂;如果以得過且過的心態學習,到後面會兵敗如山倒,而穩紮穩打來唸,則會讓人有「融會貫通」、原來如此的感受。不過,看第一遍時比較不會有這種感覺;必須讀過兩、三遍後,這種感覺才會慢慢出現,往後每多讀一遍也都會有不同的領悟。
應利用做題目的機會把課文中的觀念加以熟練;但一個觀念不需搭配太多的題目來練習;與其一題接著一題地做,不如在做完幾題後,先跳脫方才埋頭計算的情境,好好把過程中所用到的觀念、步驟,在腦海中回想、整理,找出更完整的解題方法,然後再想像自己是身處考場初見此題,重新再練習一次,直到完全滿意為止。
數學科的參考書目,離散數學以Grimaldi 《Discrete and Combinatorial Mathematics》與C.L. Liu (清大校長)《Elements of Discrete Mathematics》為主;線性代數則以 Friedberg 等著的 《Linear Algebra》 為主,本書幾乎是工學院的主要教科書,而考古題則有黃子嘉最近三年離散與線代的各校考古題詳解可供參考。

資料結構勤操作,基本分十拿九穩
軟體部份包含資料結構與演算法,這二部份範圍廣、變化大,不容易拿分,但卻是資工領域的核心科目,如果迴避這個部份,實在忝為資工人。
至於資料結構的參考用書,Horowitz的《Fundamentals of Data Structures (in C++)》有C/C++/Pascal等不同版本,其中C的版本錯誤較多,建議使用Pascal/C++版本。而演算法部份,雖然許多人建議Cormen的bible,我卻認為它不適合作為研究所考試的準備用書。個人較欣賞Manber的《Introduction to Algorithms - A Creative Approach》,是交大資工系的用書,本書相較之下較為簡單,篇幅亦短;處理各類問題時,由最簡單的方法,逐步改進分析,讓你不只是會用最佳的解法處理問題,也能欣賞前人當初面對這些問題時,是如何一步步改良。另外,R.C.T. Lee (李家同)等人 《Introduction to the Design and Analysis of Algorithms》與Sedgwick 《Algorithms》都是不錯的選擇。
而在準備考試時,個人建議以資料結構為基礎,先將基本分數拿到。Horowitz的書從第二章到最後一章,一定要讀好幾遍。而從第二遍開始,便應該跨越章節作整合。舉例來說,複習tree時要把所有關於tree的章節:第五章、第九章(heap)、第十章(search structures)相關的內容一起拿來看、前後對照比較其異同。看sparse matrix(稀疏矩陣)、polynomial(多項式)、expression(運算式)、equivalence class(等價類)表示法、stack、queue等時,也應將二至五章的相關內容在同一時間對照著看。另外,graph、sorting、hashing的部份則自成一個範圍。當然,面對考試,永遠沒有唸完的時候,在時間上要審慎的安排。
至於準備演算法時,也應以資料結構為主幹。比如說,資料結構的sorting讀完後,可以拿起演算法的書,看看還有哪些sorting、如何做出精確的效率分析;string search / heap / graph…等亦然。而時間複雜度T(n)的計算、NP-complete的問題,雖然較難,但卻是許多學校必考的題目,往往一考便是10分左右,因此務必熟練,正因為有很多人放棄,反而可以讓你勝出。
而NP-complete的部份,Manber的書講得不錯,務必將相關的名詞觀念(deterministic / P / NP / NP-hard / NP-complete…)弄懂,除了要能用自己的話來作答解釋之外,還要能舉幾個NP-complete的問題,並能證明其為NP-complete。一般人初讀時往往不易掌握證明的方向與需要說明的重點,因此不妨多花幾天的時間,把書中五個證明弄通,如果還能夠清楚的對別人講述這些觀念,那就準備的相當充足了。除此以外,應該利用空暇時,信手抽一段與前後無關的演算法來複習,比如 convex hull、knapsack 、data compression、polynomial multiplication等問題…,都是常見的考題。

考前精讀重點章節,臨考重溫基本觀念
硬體部份一般分為計算機組織、作業系統、邏輯設計與系統程式四科,各校的範圍不一,個人建議準備時以前兩科為主,但有心準備特定系所者,應及早弄清各校的考試範圍。計算機組織部份,準備時應以Hennessy&Patterson 的《Computer Organization and Design - The Hardware/Software Interface》(白算盤本)為主,約略以六、七、四、八、五、二章較重,這兩位作者另有一本《Quantitative Approach》,內容較深可資參考,但個人不建議以此為準備用書。而念過邏輯電路的同學,在準備白算盤本時,可直接由第四章切入,4.5節念完直接跳到第五章看到5.3,然後直攻六、七兩章,全盤細讀。在半路上視需要再回頭參考第三章的指令格式,以及第二章關於效率評估的觀念與相關的問題。第八章I/O的部份,以觀念與名詞解釋為主;4.6(硬體乘法)、4.7(浮點數表示法、計算)、5.4、5.5亦散見於一些學校的考試,但在重要性及閱讀的一氣呵成來說,屬於較次要的,可挑著念。一、八兩章的內容少考,倒是書後附錄的Glossary一章、各章尾的 "Fallacies and Pitfalls"、散見於各章的 "The Big Picture"、"Hardware Software Interface"專欄,很常被拿來考名詞解釋、是非觀念等。考前一定要再複習一次。
作業系統方面,Silberschatz的《Operating System Concepts》(即恐龍本,考試以第五或四版為宜) 為多數學校的用書,此書前幾章偏向敘述性的論述,所以建議可直接由第四章唸到第九章,這一段的觀念,是作業系統領域主要的課題,也是各校考試的重心所在。一般人較感困難的是第六章關於concurrency的內容,準備此章節,除了要清楚演算法設計、證明的要求條件;對於幾個著名的問題、演算法,也要耐得住性子,將不同process對應的程式碼改好列印出來,把各種可能發生的執行順序,照演算法trace過,直到能用自己的話跟別人解釋演算法各段的意義為止。而critical region、monitor的觀念與其實作程式碼,如果無法與其他人一同討論,那就只好耐心細讀,將程式碼展開反覆地trace、推敲模擬。至於其他的章節都不算難。麻煩在容易混淆(比如:把deadlock prevention的方法當成是avoidance的方法)、遺忘(比如:inverted page table、thrashing、LRU的近似作法),這是準備時必須特別注意的。
從考試的觀點來看,恐龍本中關於檔案系統、系統安全、分散式系統的篇幅佔了全書的一半,但投資報酬率並不成正比。反而是前三章較容易的基本觀念問答、名詞解釋常考,所以務必在考前回過頭來複習,不可失手。而關於記憶體的部份,paging/caching/LRU等,計組與作業系統書中的相關章節都可以拿來對照其中的異同。
至於邏輯設計方面,一般以Mano的《Computer Engineering - Hardware Design》較佳,若投考系所將之視為重頭戲,則可能需換成同一作者的《Digital Circuit and Computer Design》較好。系統程式部份以Beck《System Software - An Introduction to System Programming》為任何考試的唯一參考用書,可視所欲投考系所選讀。

按部就班勤考古,切勿躁進收反效!
一般來說,資工所考試總分180分已足以錄取所有學校,多數成功者的準備策略,都把目標訂在數學80、軟體40 (是故一定要緊抓「資構」部份的基本分)、 硬體60 。由此可以看出,上榜者較有把握的,通常就是數學,所以無論如何數學這一科絕對不能輸給別人,更不能畫地自限的放棄某些單元,否則極易成為致命傷,尤其在軟體部份考試題型與給分方式不易掌握的情況下,考生更要將數學的分數拉高,甚至於考個九十分以上,則其餘兩科可以安心一半。
我個人準備考試的時程安排,是配合補習班的開課分頭準備,先專注在數學上,暑假的時候則專注在資料結構與作業系統,後來才加進計組,並慢慢開始複習之前準備過的科目。
一年之內要準備過去四年的內容,進度十分緊湊。上課過後,一定要儘快弄懂,自己作重點整理,以方便將來複習,如此才不致於遺忘辛苦讀過的東西,前功盡棄。
另外,不要太早開始做原始考古題,先按部就班練習各章節習題相關的考古題即可。建議考生可在寒假過後,再開始大量地練習應考學校近三到五年內的考古題,(考古題可以在 高點 或各校圖書館的網頁裏找到)。練習時不用計時,可以慢慢推敲,也可以從書上找出正確完整的解答,把觀念不足、生疏的部份藉練習考古題的機會予以加強。練習時務必將考題列印在白紙上,體會一下面對真實考卷時的緊張感,有助於進考場前的心理建設。
個人建議由交大資工的考古題入手。該所的題目難度夠,數量、計算量、答題所需耗費的篇幅都不少,配分又不高,可謂「勞力密集」式的考題。我最欣賞交大考題之處,在於解題時不需要太天才的頭腦,而能測出學生用功的程度,就算你不會做,至少也能知道答案出自書中何處。該校命題方向極為穩定,許多必考的重點幾乎是年年必出,這可以從離散與軟體設計的題目明顯看出。有時許多重點你明明知道它必考,依舊不一定能解得出來;交大的出題老師總是在這些重點上跟你真槍實彈地硬碰硬,甚至還有連續兩年出現同一考題的情形!因此,如果能以交大的考古題作為修正讀書方向的指標,對於應考其他學校都不會有太大的偏差。


  • 1

  • 2

  • 3

  • 4

  • 5