[舊文重寫]電機系選課淺見

Jerry 何吉瑞
11 min readJun 4, 2020

--

馬祖西莒菜埔澳的海灘

覺得自己去年寫得實在很不怎麼樣,今年申請完想法也有點改變,趁當兵來補充一下好了,小改的部分會直接修改,一些特別補充的我會註明

動機

避免像我這種verilog修課難度倒過來的慘案發生,以及很多學弟妹會有「這門課對以後的幫助如何」那種不確定感,另外就是因為很多修課心得都是學霸(例如某興)在寫,以某吉的路人等級學習能力(就是那種我學得會大部分人應該也學得會的等級)

大一課程

因為課改的關係有挪動,一些固定課程像是微積分普物啥的就盡力吧,有時候外系會出一些神奇的考題就當成磨練智商,雖然說是基礎啦,但有時候學了一個觀念,在別門課看到可能是半年一年之後,除非是某融,不然大部分人大概也都忘了要重來,就不要卡關太嚴重就好,這邊特別寫三個比較獨立的課程

創意電資

這門課是我大三的時候第一次開,在萌神的帶領下開始當小助教,課程路線也還在根據學習成果調整中,但個人覺得今年(2019 Spring)的學習效果有很不錯的進步,比較重要的應該是可以學會硬體debug能力以及設計project的流程,前者其實是電機系前兩年很少碰到的(電電實驗就算了,我今天沒打算討論它),後者是在尋寶遊戲中考慮不同的方法來優化軟硬體,比較沒有固定的答案,我認為算是少數在前兩年比較活的課程

計算機程式 謝宏昀老師 (105–1)

即使現在python當道,只有謝教授是C++,還是建議讓C++成為第一個認真寫的語言吧…很多程式的基本觀念都是要寫C++才碰得到,基本上就跟PTT上說的一樣,深入淺出的好課,不過當年沒有安排好修課loading,導致很多作業沒有寫到很滿意,final project也只做了一個還算完整但不太吸引人的遊戲

計算機概論 于天立老師 (106–2)

這個也是大家很推的老師,對於CS領域很好的入門課程,稍微比較一下,計程可能是教會我們怎麼用程式語言作一些簡單的task(例如寫遊戲),計概是著重在怎麼用這些語言去實現一些CS上的概念(例如資料結構、組合語言),不過假設真的大一錯過了也不建議花時間補修啦,畢竟日後碰到其他課程,頂多也是多花一點點時間熟悉,像某吉沒修計概也是修了演算法XD,總之個人認為這門課雖然很有技術價值,但更有價值的是想辦法吸收老師的思考方式

必修(二三年級)

因為課程實在太多,而且連結到後續進階修課規劃,這邊就不列舉課程,概念性的講一下我的想法

  • 選老師其實是重要啦,但個人覺得不用執著說非X不投之類的,因為某些人氣老師其實我也吸收不良(另一個原因是不喜歡大教室),反倒是有些冷門的老師修課起來很對頻率,所以其實…跟著大腿(例如某興某萌某融)走比較重要
  • 好啦,還是推一下我修過覺得不錯的老師,但僅供參考,林宗賢老師(電子一、電子三)、李峻霣老師(電磁一)、Homer老師(信號與系統),前兩個是因為某吉在這領域的sense很慘,但是上完課可以基本理解它在幹嘛,應付考試也還行,所以很佩服老師融會貫通的能力,最後一個其實就看期中考後那個移入人口,尤其是某謙當了背骨仔坐第一排,就知道老師上課真的是非常清楚
  • 如果你還沒有家產或者任何link,你也不是某興某萌某融這種學霸,那快去搞一份吧,完全加快刷經驗條啊

ICS

這個真的是很搞笑的經驗了,基本上我把大學部的ICS課程由深入淺的修過來了,這也是想寫這篇文的動機之一QQ,為了方便閱讀我還是由淺入深寫吧,對了,B04很多人把這三門課在大三下直接串燒,我覺得也是不錯的選擇,至少整個學期腦袋都集中在一個領域上就沒有深淺的問題了XDDDD

積體電路設計 闕志達老師 (107–1)

不錯的ICS入門課程,品質穩定,不過有點像通識課,就是把我們在交電和電子一、電子三學過的東西稍微整合一下,加一點設計的概念在裡面,假設必修課學得還行應該是沒什麼負擔啦,比較好玩的是可以學寫verilog學看波形,行有餘力可以想怎麼切pipeline,日後進階課程比較好上手

數位系統設計 吳安宇老師 (106–2)

這門課原則上就是寫爆verilog,建議要先修樓上那門(或併修),不然這門課在HW3上難度爆衝,對於初心者來說很慘,前兩個作業就是寫很簡單的系統,HW3開始的code量會開始變成四位數,而且還要畫layout才稍微有概念要怎麼開始寫,但好處是從HW3到Final Project都是集中在一個主題(MIPS),所以學習上很有連貫性,基本上就是ICS一個更深層的概論,例如某吉在final開始前一知半解,姚大師丟了設計圖給我,邊問邊寫兩三千行後腦內就貌似有這個設計概念了,某吉當年就這麼靠大腿上天堂,培養碼農基礎超爽der

數位電路實驗

我混分我道歉,我到現在還是不會跟FPGA溝通,而且課程也在改了,就問其他修過的人吧,反正當年就是初心者被數電魔王打到生活無法自理,修這門課需要的基礎真的蠻多的,初心者不ok

AI

這邊我先提兩個打code為主的課,再來是理論為主的課,打code為主的課因應趨勢常常內容變動很大,所以就參考參考就好

機器學習 (ML) 李宏毅老師 (106–1)

非常熱門的課,但…你如果問我們這群會得到相對反推XD,老師教學非常好沒錯,不過因為ML門檻真的不高,很多基礎東西其實看老師的教學影片,花時間自己實做一下作業就好,修課每個作業都要衝leaderboard真的頗浪費時間,總之課很好、技術也很重要,修課與聽影片的差別就是磨個經驗 (8個作業,保重),但實際上ML怎麼做比較好是非常case by case的事情,每個作業都要拚數字很累,個人小小小建議是稍微把performance的比重調低,報告調高,給大家多一點時間討論(寫報告只有一天真的母湯)

真的要修的話,我個人還是建議大三就來吧,剩下的時間留下來跟進階課程單挑(if u want)。對了,由於人多必有XX,這門課有很多神奇的問題在等助教,也算是一大奇觀吧

深度學習於電腦視覺 (DLCV) 王鈺強老師 (106–2)

聽說現在熱門度不輸給ML了,我修的那年五個作業,前兩個是基礎CV,後面才要用DL,個人覺得是台大四年蠻值得的一門課,當年可以算是扎實偏硬,前兩個用OpenCV就輕鬆,後面就是需要好好花時間思考,Final Project也是很扎扎實實的燒了一次腦袋啊,當然DLCV能涵蓋的主題太廣了(遠望CVPR那個paper量),但老師挑了幾個經典的主題出來當作業,講解上也是沒話講,個人認為對於之後探討其他CV子領域幫助很大

二版補充:隔年難度開始爆走,當年某個DL作業(GAN)難度大升級,然後當年HW2是簡單的OpenCV,但是變成YOLO直接把一大批人搞到快殘了,我想一部分是呼應近年這個領域的快速飛起,不然以106年的修課內容,當年覺得很虐,現在大概是國民基本常識了

人工智慧與機器學習導論 (AIML) 于天立老師 (107–1)

需要打code的量很少,四個作業+final應該不到五百行,作業是經典的UCB小精靈,我當時的final (打磚塊) 其實不用任何ML技術就可以拿滿分XD,這邊主要是沿著傳統AI的角度,認識一些重要的概念 (VC dimension、MinMax Search…),前面兩門課比較強調發揮創意去改善AI,這邊是從一些更理論的角度來看AI在各種假設下怎麼運作,稍微理解一下AI它的可行性和理論極限是怎麼回事,另外蠻推的是教RL的部分,前兩門課比較不會討論這麼多的RL,值得好好學一下(MLDS會碰到RL,但這門課因為各種原因後來就沒修惹)

機器學習中的數學原理 (MPML) 王奕翔老師 (107–2)

可以理解成上面那門課的暴力版本,當然假設在AIML有心得的話會蠻有幫助的,這門課在國外比較被歸類在統計學那邊,就是真正在講述說數學上learning model的表現到底是怎麼被保證的,雖然說數學上基本設定一定都聽得懂,但是推導過程真的不是凡人可以輕易理解的,這行怎麼到下一行,想一小時兩小時都是常有的事,但被虐一個學期下來還是會學到東西的

四次作業都很燒腦,期末考48小時,Google打開理論上可以救到及格 (假設看得懂),final project是報告一個ML題目,比較建議報告靠理論層面的題目,我跟哲賢老闆是報告training performance如何在各種假設下被保證,然後要用英文,所以一定要rehearsal到一個程度,整體來說,這兩門課修完會對ML有不同的認識XD

二版補充:今年因為上了UCSD特別看了一下號稱該校很困難的Statistical Learning課程,感覺就類似於這門課的變種,我覺得MPML探討的比較深,而且大概一門課涵蓋SD兩到三門課的loading,詳細的比較可能要去修完才知道XD

其他研究所課程

這些是個人選修,我比較難歸類,很偷懶的把它們都放在這邊XD

演算法 陳和麟老師 (106–1)

因為課改的關係變成必修了,這也是我覺得台大四年很值得的一門課,老師上課最大的特點是不用打code,全部在理論層面操作,我們一致同意和麟老師完美詮釋了深入淺出,尤其十個人苦思一天沒有答案的問題,被老師一講完瞬間懷疑智商懷疑人生,整體來說不會有你在修一門課的壓力,可以找回解題目和思考的快樂感

電腦視覺 (CV) 簡韶逸老師 (107–1)

修的時候是第一次開課,大家(包括老師)都覺得內容還有改善空間,個人是覺得CNN那個作業可以拿掉,HW1和HW3也有點船過水無痕,是到HW4開始玩stereo matching之後才有修課的感覺出來,真的有在研究怎麼改善演算法,final project再度靠著某萌帶我們用傳統演算法挑戰ML也是很經典的故事,個人是覺得作業打code之外,可以稍微回來一些數學原理,會比較讓大家有學到東西的感覺 (不想再看到CNN了QQQ),如果這學期的作業可以都有接近HW4的深度,應該會是一堂值得試看看的課

二版補充:據實驗室同學表示,後來108-1的課沒什麼改,建議之後看到syllabus還是差不多的話可以考慮skip了

凸函數最佳化 蘇柏青老師 (107–2)

先說因為計分方式實在太友善,所以拿不到A+真的很困難,某吉已經把能炸的不能炸的都炸了還是順利過關,被某學弟稱為,教到像大學部難度的研究所課XD,前半學期沒什麼新意,就是一堆定義搞清楚,然後開書考所以還好,後半學期會討論到一些最佳化過程,就比較需要動腦了,然後那本教科書和講義看起來講得不深,但偶爾會莫名其妙跳步驟,有些概念也感覺沒頭沒尾,但整個脈絡上還算順暢

值得注意的是考古題再出現率很高,所以拿著考古題在期中期末照著謄上去是常有的事XD,總之這門課的概念在蠻多課都會出現加上不太需要煩惱成績,可以很放心的修,但是如果預期要有研究所課的收穫,可能會有一點點落差

其他複選必修&實驗課

除了個人興趣之外,畢竟本系還是有一些畢業規定,以下都是一些修來畢業用的課,基本上就是用硬不硬甜不甜來當考量了,這些課對各領域的具體幫助可能就要該組的同學或學長比較瞭解了

固態電子學 吳育任老師 (105–2)

一年級的材料科學導論還可以加簡用,當年考試開書不限時,loading上輕鬆所以修下去,但大多數真的要走奈電的還是會修胡振國老師的固態電子學,育任老師在後半學期的自由發揮有點小暴走導致有點跟不上,但老師人很好,還會發考古題幫大家複習(重複率不高),值得一提的是老師有來打過一次棒球,一棒就讓球消失在夜空了

電子設計自動化導論 江蕙如老師 (106–2)

我翹課我道歉*n,前半學期有演算法基礎就輕鬆,後半內容相對比較雜,單看講義不太好抓到重點,兩次考試都是靠作業來複習(掩面),不過基本上作業會寫考試就差不多,同樣你也知道某吉選的課基本考試都可以帶大抄,作業是兩個用C++處理演算法,修過資結很輕鬆,某吉無緣修過但就花多一點時間熟悉概念,final是一場差點失控的比賽,應該不會再出現這種情況所以就算了XD

電力電子實驗 (107–1)

去實驗室邊焊接邊講幹話,講到助教都三條線那樣,跟著進度走會蠻順利的一門課,然後layout一定要當成回家作業,不然就算TA人很好也救不了進度…偶爾還可以看到短路之後噴火,整體來說還是蠻歡樂的一門課,還可以學學硬體的debug

來總結一下

一般來說大二結束就會有個方向…個屁,其實那時候真的就很確定的人不多,大部分人只能從不排斥的幾個裡面先試看看,總之以這篇整理來說,比較不想去傳達什麼課超推或超不推這種評價,希望是具體的說這門課到底loading如何,需要什麼樣經驗或能力的人可以來修,修之前需要預設什麼事情之類的

--

--

Jerry 何吉瑞

台北出生長大22年後,目前在UC San Diego念不知到何時的PhD,小時候曾有夢想是當blogger,長大後發現還是言之無物,但希望能cover到一些比較少人討論到的地方,歡迎光臨(?