資工所無補習考研心得

YungHao Li
Mar 8, 2021

--

一、前言

這篇比較偏心路歷程分享跟時間規劃,不一定適用於每個人,僅供參考。那時候在準備的時候常常覺得很焦慮、茫然,不知道到底要怎麼準備,所以希望寫這篇文讓大家能有東西可以參考,自己遇到的問題別人可能也會有,會比較不會那麼焦慮。我不補習的原因單純是因為我不喜歡照著老師的進度走也不喜歡看影片上課,可是我自己覺得如果對看影片上課不反感、經濟也沒有壓力可以考慮補習,老師講解可能會讓你理解得比較快。

二、成績

三、時間規劃

7月- 8月: 念線代跟離散(數學投資報酬率蠻高的),線代念第一次的時候會把每小節習題順便寫完,過幾天後把後面的T/F寫過一次,可以確認自己的觀念有沒有錯。離散的部份下冊考比較少,我只有稍微翻過,沒有很熟。

9月:把計組跟OS唸完然後做筆記,這兩科東西真的蠻多蠻雜的,建議要把重要的表格跟性質整理起來(thread vs process, cache, page table等),以後要回來複習比較方便。

10月: 念資結跟演算法,演算法的東西要多花點時間想,把步驟、時間複雜度怎麼算弄懂,考試出現的東西有可能是概念延伸,且台大可能會考申論題,所以要會表達、敘述想法。

11月: 搭配之前做的筆記把各科都再念過一遍,檢查有沒有漏掉甚麼,然後把大碩講義後面的題目都稍微寫完(除了計組跟OS,計組太多、OS我覺得講義裡的題目有點偏)

12月 ~ 1月: 開始寫考古題,寫完檢討+翻不熟的地方,推薦大家找朋友一起寫,寫完才可以互相討論比較有效率,有些題目可能會沒有答案,可能要自己上網查相關的東西,我自己寫的狀況是放重心在寫台大交大的考古題,清大跟電機丙比較找不太到答案我就寫比較少。

四、各科建議

線性代數

我覺得線代是觀念很連貫的一科,所以前面的基礎知識務必要弄熟(如行列式的性質、基本矩陣運算的性質、可逆、consistent system等),遇到證明都可以自己證明看看,會比較能理解這些定理,尤其線代的證明都是比較能用數學式推導出來的。

比較重點的章節是向量空間、線性映射、投影

  • 向量空間:十大公設、向量空間、子空間的必要&充要條件偶爾會考,可以花一點時間理解一下,線性獨立的題型應該只有Wronskian跟零向量比較需要注意,直和的觀念後面會用到。
  • 線性映射:這章比起前面會抽象一點,建議畫圖方便理解,我自己是理解成維度(座標)間的轉換。座標化跟矩陣表示法的概念蠻重要的,動手算過幾次會比較清楚他在幹嘛。sylvester定理跟後面的Rank非常重要,應該是必考的題目,需要花時間想懂(我念第二次才覺得我搞懂他)。
  • 投影:我自己是沒有硬背公式(可是還是要記),比較偏用觀念跟畫圖去理解,(如若要將一個向量投影到一個空間,可以想成分別找出那個空間的正交基底去投影在合成起來,不一定要找出行獨立的向量在帶入公式,有時候這樣計算量反而會很大),分清楚極小解跟最小平方解跟極小最小平方解是三個不同的東西。這章的計算比較複雜、多,算的時候一定要細心一點,如果都會算可是計算錯會很嘔…,建議多花時間在這章,定理跟證明比較多。

關於第六章的Jordan form聽說交大不考然後台大一兩年考一次,不過會dot diagram跟能算出來就夠了,其他的概念我那時候也是放掉(因為我真的看不太懂),Cayley-Hamilton 跟極小多項式要會,有些題型用這個算會比較快。

第八章的話我是抱著會一題算一題的心態去唸,比較少考可是有時候可能就會多賺到幾分,我那時候只有大概記一下那些算子的性質跟會算SVD, 虛反矩陣。

離散數學

離散的各章節比較沒什麼關聯,可以分開念,前兩章的東西比較雜,不過題型變化比較小。必會的章節是排組、生成函數、遞迴,排組需要注意的應該就是禁位問題跟城堡多項式。遞迴跟生成函數可能會比較陌生,我剛唸的時候也是完全沒頭緒這是什麼,所以如果剛看到完全不會也不要被嚇到。這三章應該是必考的章節,建議考前可以偶爾拿題目來算,練練手感。

後半部圖論跟樹論蠻多東西要看的,圖論有時候會考出一題證明(電機丙很愛考圖論的證明)或是平面圖、HC/HP的性質,樹論有些東西的定義跟資結定義的不太一樣,不要搞混了。其他的我就只稍微翻過沒有很熟,代數系統跟絡有時候會考(今年台大就有考一題證明),心有餘力可以稍微會,可能會賺到一些分數。

計算機組織

前兩章是計組的基本知識,如果是本科生可能會比較熟悉,這裡會出現蠻多專有名詞,我自己有拿一本筆記本稍微紀錄一下,如果不熟定義的話有時候會沒辦法完全理解。硬體這兩科蠻適合多做筆記、畫表格,因為東西真的蠻多的,重點章節是Single cycle/Pipeline、Memory這兩章,台大好像蠻喜歡考cache coherence。

  • Single cycle/Pipeline: Trace 不同指令在Datapath中怎麼走, 算latency才不會看不懂。Hazards的發生原因跟解決方法(軟硬),題目可能會給你一串Code sequence問你clock cycle,要想清楚在什麼樣的前提下stalled cycles會有什麼不同,後面Multiple issue那裡每個方法要稍微知道。
  • Memory:這整章都很重要,基本的address 切成 tag index offset一定要會算,cache miss/ page fault的機制、Virtual Memory+TLB的機制都要熟讀。

作業系統

私心覺得是這六科裡面最難的一科,東西很多又可以考得很深,我的策略是基本的都要會,其他的能抓多少就抓多少。CPU Scheduling、Interrupt、Process/Thread、Deadlock、Memory這些應該都是必考的東西,如果有些機制真的沒有看的很懂建議直接查或是去翻恐龍本,這科我那時候也找很多資料,有蠻多坑要填。交大有時候會考一些Security的東西,我也是去恐龍本裡面讀的。

資料結構

我覺得跟演算法比起來資料結構算是投資報酬率比較高的一科也比較偏計算,重點章節是Time complexity、Sorting, Advanced Tree, Graph(跟演算法比較重疊,資料結構比較注重定義),其他須注意的可能就是hash table、stack、array的一些性質。

  • Time complexity: Asymptotic Notation定義要搞懂,很重要。大部分算upper bound的題目都能用Extended Master theorem解決,如果不行的話再用展開帶入法或是Substitution method算,Amortized method偶爾會出現一題,建議還是會一下比較好。
  • Sorting:建議可以trace code去理解每一種Sorting運作的方式,如果知道他怎麼做之後也會比較好記他的時間複雜度跟他是不是Stable sorting,Avg/Best/Worst case 的複雜度跟會發生的原因也要知道,建議可以畫一張大表格整理起來他們的時間複雜度。考試有時候會丟一串code給你要你去求最後的output,平常的時候就可以多trace看看,遇到會比較熟練。
  • Advanced Tree: 這章節非常重要,要分清楚每顆樹的性質(Balanced, complete等)、各種操作的時間複雜度,insert、delete的操作建議可以動手畫過,考試會丟一串操作要你求最後樹長怎樣,網路上也有視覺化的資源可以參考(e.g. 紅黑樹),Binomial Heap、Fibonacci Heap楓葉本裡面有詳細介紹。

演算法

這科遇到比較難的題目有時候就要靠你的想像力或是通靈能力了,有時候會丟給你一個情境題要你設計一個algorithm去解、分析自己設計的時間複雜度、或是出一題NP要你做reduction。重點章節是Graph, DP, NPC

  • Graph: 在資料結構就有稍微提到,然後也是要注意每個演算法的步驟跟時間複雜度,也是建議Trace Code去理解他的原理跟時間複雜度怎麼算出來的,最短路跟MST的演算法一定要會。Flow network的限制跟轉換問題要多注意。
  • DP: 蠻需要思考的一個章節,經典的題型要會算(Matrix multiplication, KMP, 0/1 knapsack),須注意一定要有optimal substructure才能DP。
  • NPC: 四個Class的定義要搞懂,然後要知道Reduce的意思跟Reduction的方向代表什麼意思,大部分題目會叫你證明一個問題是不是NPC,多練習幾個Case就會比較有靈感(例如有些圖的reduction常常就是從加點或加邊下手)。

如果有遇到講義寫的不清楚、有不同說法、找不到答案的地方,我一律都是去翻原文書,資演的翻楓葉本、OS翻恐龍本、計組翻白算盤(沒買書的可以上網找看看有沒有電子檔),如果考試答案有疑義到時候可以按照上面說的去爭取。

五、考古題

我寫考古題都是比照考試時間寫100分鐘,如果提早寫完會提早改,只是不會寫超過時間。盡量當天寫完當天檢討,一定要檢討,不檢討真的就白寫了,我自己有整理一份筆記專門給錯過的題目或觀念,可以抓每間學校的重點考題,也會知道自己哪方面比較不足,有空檔的時間就可以把洞補一補,考前有安排模擬考,按照考試的時辰下去寫一份考古熟悉一下感覺。

  1. 交大 (109–99): 寫的時候要注意時間,都是選擇題,可能會多到寫不完。寫硬體的收穫很多,如果想要加強硬體的觀念把交大的考題搞熟會進步很多。軟體的題組型考法有點麻煩,如果寫錯一小題可能就會沒分數,所以如果遇到真的不太會寫就果斷跳過吧,到時候再回來寫。數學的話我自己覺得蠻平均的。分數的話可以抓個180,每年的最低正取分數大概都落在這個地方。
  2. 台大資工(109–100):我沒有寫硬體,因為我覺得每年考得都跟我想像的不太一樣而且還不一定有答案,寫了也沒有什麼收穫就果斷放棄了。數學的話出的蠻靈活的,如果知道怎麼算會算很快,不知道怎麼算會算很久還是不知道答案,建議可以花點時間觀察題目再下手。軟體通常都是考申論(今年不知道為什麼全部變選擇),也是偏靈活,想清楚再好好闡述自己的想法。
  3. 台大電機丙(109–100):我也是一樣沒有寫硬體,因為我找不太到答案。數學(只考離散)寫起來感覺數學每年的考型都蠻固定的,一題排組、一題圖論證明、一題遞迴等等,應該是四所裡面最考古取向的,想考這間的可以多看考古。資料結構考得蠻硬實力的,就看你對這科夠不夠熟,自己覺得他蠻愛考Advanced Tree,然後有時候會跑出沒看過的樹,要再去查一下。
  4. 清大(109–104):沒有寫太多清大的考題,寫起來感覺跟其他兩間蠻不一樣的,唯一的印象就是選擇跟申論各半,然後只有兩科寫起來比較舒服。

六、結語

如果念到覺得煩躁可以去做自己喜歡的事放鬆心情,有效的唸書時間比較重要,不要因為怕書念不完就一直死坐書桌前,沒唸進去也是徒勞。我覺得最重要的應該時間規劃跟了解自己現在的狀況,按照自己喜歡的節奏去念就好,不一定要跟著別人的進度念,建議都維持一致的步調去念,才會撐的比較久,不會衝刺到最後沒力然後翻車。各位考生加油!

--

--