修課心得與推薦

以下不負責任分析,完全主觀立場,沒理由相信 >.0

線性代數 (A)

隨機客(aka顧定克)的線性代數,內容是Friedburg的1-6章不含星號章節加上一些代數基礎。 實在是個開啟數學胃口的課,如果只修工程版的線代不修數學版真的太可惜了!!!有很多仔細證明的觀念、技巧和很棒的代數思考都只有這樣才學得到,唯一殘念是課堂時間不太夠,後面4-6六章幾乎是3-4節課飆一章,回去要花許多時間重新順過一次,然後可以講出各個定理的脈絡。

強烈建議習題一定要寫完,網路上可以找到不詳的詳解,然後絕對不要覺得老師不會出什麼,基本上有寫習題跟只看懂證明考試出來會差30分以上(就不才我而言啦)。要讓課本上的定理跟技巧內化到自己的思考裡面才會真的知道要證什麼、該怎麼下手。可是我必須要說Friedburg實在讓人感受到數學家寫書的...機車之處,可以整理好的東西故意要弄成習題給讀者自己想,概念都跳來跳去,變成快速系統性學習有點困難(可能本身就不是設計給一學期的課),希望機客可以早日自己出課本XDDD

其實我後來覺得啦,這門課應該有更好的教法(可能明年會繼續進化吧),像是第一次期中只考第1章,第二次期中第2章還沒教完(然後我投影也學得很爛,加上耍廢沒寫題目),然後第三次就必須考3456章,真的崩潰,雖然老師說34小考考過不考,結果題目都出最後一堂課才飆完的第6章(也是極度混亂與精妙集大成者)。說不定先把所有定理跟性質怎麼操作demo過之後,再去學怎麼把他們證好會比較順一點,這樣學起來才不會有種深陷泥淖的感覺,這樣也比較有機會可以教到線代在其他領域用得最多的地方(剛好是第6章沒教的後半跟消失的第7章),當然這超難啦,其他系都是用兩門課或上下來教的(害我想修數學系的線代二...)。

演算法設計與分析 (Algorithm Design and Analysis, ADA)

機客經典課程,沒有程式作業的一門課,所以講了更多更多更多的演算法,像是最大流、幾何、近似等等,上課內容重視分析上界、下界的各種方法和觀念,所以實作部分幾乎不會講到(偶爾有些特殊的構造...),但是...考試的時候還是要想清楚(最好有些實作經驗),不然寫出來的演算法會有些落漆。

我有搭配ItoA(Introduction to Algorithms, 又稱CLRS)服用,不過ItoA的習題比較長,我覺得看個幾題領略一下在講什麼就好,考試如果當天精神特別好是可以發揮出來的。總而言之是一門對基礎演算法有很深入介紹跟領悟的一門課,也可以看到除了寫題目之外,做演算法研究的風貌。

建議每堂課結束都想辦法把聽不懂的地方問到懂,然後清楚知道每個演算法的環節、設計精髓跟分析方法,老師人很好,可以盡量問XD。(可能更多會出現在Concrete Mathematics裡面吧XD)

補充:對照ItoA章節

  • Asymptotic notation 3.1-3.2
  • Divide-and-Conquer 4.1-4.3, 4.5
  • Heapsort 6.1-6.4
  • Amortized Analysis 17.1-17.4
  • Lower bound for (Comparison Based) sorting 8.1
  • Divide & Conquere 4.1-4.3, 4.5, Selection in Linear Time 9.3
  • Hash functions 11.3
  • Dynamic Programming 15.2-15.4 (這邊加上Z-value,一種String Matching with DP)
  • Greedy 16.1-16.3
  • Depth First Search 22.3-22.5
  • Minimum Spanning Tree with Fibonacci Heap 23.2, 19.1-19.3
  • Single-Source Shortest Paths 24.1-24.3
  • All-Pairs Shortest Paths 25.2-25.3
  • Maximum Flow 26.2-26.3
  • Computational Geometry 33.1-3.4
  • NP-Completeness (這邊老師似乎推薦Garey&Johnson的Computers and Intractability)
  • Approximation Algorithms 35.1-35.4
  • Randomized Algorithms and Derandomization, Integer and Linear Programming (最後加入的內容)

國文 (A)

Scht的國文課,老師上課很認真,真的不知道要多強才能講起古文又順又鏗鏘有力,內容是左傳、國語、莊子、史記,個人覺得不甜涼,認真念分數還是不錯,可是對於國文只想快點pass、上課又會睡著、論述掰不出什麼富麗堂皇文字的人來說,莊子實在會看得很痛苦,史記又很長... Orz 如果想輕鬆過還是別選這班...

微積分甲上 (A+)

甲3雅如班,教學基本上,照著Stewart課本走,老師是很認真有趣的,其實也教得不快讓我可以恍神,期中考有幾題是非題是上課講過延伸的定理(加分題),挺有趣,但筆記記得要抄到XDDD 作業量並不少,有線上習題跟手寫習題,但好像手寫沒在管有沒有對,我個人覺得自己練題目可以再練多一點,小考的時候常常沒有把計算弄熟,有點囧。其他時候基本上不會太難,但微積分就是個自己必須match上的科目,如果題目做得不夠多會沒辦法跟好。

個人覺得第10章花了太多時間,導致第9章(DE)用了一堂課就講完了(好像也沒差XD),然後L'Hospital到期末還出現實在是頗囧囧,我一直以為期末討厭的題目會是什麼看起來不會積的odd function,結果是看起來不會積的divergent improper integral,猜錯了Orz

數位語音處理概論 (Digital Speech Processing, DSP) (A+)

尤達大師、IEEE Fellow、中研院院士、前電資院長的經典課程,內容從遠古時代的Speech Recognition系統架構、各種演算法開始講(我還是有些訊號的觀念沒有很懂Orz),有三個萬年作業,如果C++熟的話其實不難(可是我快忘光了),期中之後是教授的畢生所學傾巢而出,會感受到我不是在修IR/DM嗎?甚至有許多Deep Learning/Reinforcement Learning都出現了,還有一直出現的SVD(PCA、LSA都用到),還有一些CRF啦Matrix Factorization啦,甚至是Page Rank都有,真的很猛。

然而很多Recognition的東西都在幾年前Deep Learning重出江湖之後被取代了...囧...現在ASR已經算是個快被解決問題,可以達到人類的精確度...(然後我期末報告的Machine Translation也從phrase based到NMT...) 這門課經典地告訴我們EECS界的無常和現實 Orz

經濟學ㄧ (通識) (A+)

LeeSF上的,我只有小考會去,小考基本上一次只有兩題,助教給大家複習用,我覺得直接念Mankiw做上面的習題就夠了。經濟學原理就是把道理念懂,實作一兩題就ok的科目,不需要太難的計算,要注意的是,重點會在monopoly, monopolistic competition, oligopoly 和 indifference curve,所以不要前面覺得太開心後面來不及念 Orz

近代歐洲社會與閱讀文化 (通識) (A+)

重點:他是"閱讀歷史"課,內容在講書籍、印刷、流通等等的故事,如果沒興趣建議還是不要修,不然每個星期還要讀文本... 還有期中跟期末報告...

期末報告

A Survey on Advances in Neural Machine Translation

這是DSP的期末報告,介紹最近NMT,神經網路機器翻譯(?)的有趣發現,把我高三的時候很有興趣的paper都看了一看,還有最近Google的超強zero-shot translation,對於Deep Learning的應用面有更深的了解,也能用DSP學到的Domain Knowledge去看這些問題怎麼出現和被解掉

新媒體的創新與挑戰

這是近代歐洲社會與閱讀文化的期末報告,因為對Business Model比較有興趣所以才做這個,也是用了很多超級新的資料,特別是Medium... 居然寫到一半就裁員了OAOOO

後記

後來發現資工系的課都有一種特質,就是教授上課講理論或是課本內容,然後作業不會教你怎麼寫(演算法會是上課教的或是提到的東西,但是該怎麼用那些工具只會出現在spec裡面,通常要自己看助教只會帶過),有很多甚至是不限工具的,只有給演算法。這樣的問題是,會讓想要一邊學理論一邊學實作的人,有種不知所措的恐懼,或許是我太弱的關係,但是每次就會有種惡夢覺得這寫起來一定很麻煩,不過還是得自己從頭學起。

另一點是,有很多課是project/homework佔了很大一部分的分數,這樣通常面臨的是,期末爆炸,做project時間壓縮到準備期末的時間,或是平常有很多時間花在寫程式上,心情變得很糟(因為會一直想debug,一直改code,讓其他唸書的科被忽視)。對於資工系來說,這或許是很好的訓練,逼人要把整個skill set建起來,可是對於外系選修來說,很容易就排擠到自己的必修。所以真的要慎選啊,有大量程式作業的課實在不是一般人(可能我真的太廢吧)修得起的。

或許是大家都想到矽谷發財吧,或是elite覺得自己未來堪憂還什麼的,資工系變得爆滿,幾乎什麼課都簽不到(除了比較硬、冷門、雷或是人數上限超高的班),讓資工系同學怨聲載道Orz。台大選課的道理就是,盡量選愈多愈好,先卡人氣高的,再簽人氣低的,絕對不要客氣,第一周簽不到第二周一定要來,留到最後,email多寄幾封(這真的是...囚徒困境的dominant strategy)。好課初選幾乎是不會上的,所以...人生啊...