交大資工研究所修課心得

新學期也快開始了,兩年前入學有參考了諸多選課心得,在此拋磚引玉一下供學弟妹參考,順便為之後求職面試積陰德。 Medium好讀版:
=== Background 學測申請到復旦大學,主修金融&數據科學,畢業後考回交大資工碩。入學前只修過Python、線代跟ML,血統純正的跨考仔XD,不過求學階段數理成績一直都不錯,自認算蠻願意學新東西的。 === 基於深度學習之視覺辨識專論 IOC5008 Basic Info:2021 Fall / 資科工碩 / 林彥宇教授 / 英文授課 / A+ 評分方式:四次作業(4x18%)、final project(28%) 當初碩零在找教授面談時就很有印象,選課就有特別把時間排開。上課以投影片為主,涵蓋CV幾個常見的應用、SOTA模型、最新的研究方向等。適合稍微懂一點ML的人,更能體會模型設計上的一些巧思。四次作業分別訓練四個模型,方法不限,大家一起通靈(?,最後比排名算成績。自己試著摸了些CV常用的框架, e.g., Detectron2、MMDetection,算是一次有收穫的練習。期末project一樣組隊train model,有顆能用的GPU會比較方便。 === 數值軟體開發 IDS5008 Basic Info:2021 Fall / 數據所 / 陳永昱講師 / 英文授課 / A- 評分方式:6次作業、期中考、期末project 講師是來自業界的工程師,人很nice,常常分享工作上的經驗,鼓勵學生參與課堂討論。上課提及的內容蠻廣的,git、shell script、Makefile、rule of five、smart pointer etc.,都有整理在老師的Github Page。六次作業都跟pybind11相關,能學會怎麼用python call C/C++的function,需要花點時間設定環境&coding。期末自選主題作運算的優化並報告。其實現在回頭來看很多東西都蠻基本的,推薦原本沒什麼project經驗的人,能熟悉一些基本工具的使用。傳說中的週一早七,每個禮拜都在考慮上課前睡還是上完課再睡。 === 演算法 IOC5029 Basic Info:2021 Fall / 資科工碩 / 譚建民教授 / 中文授課 / A+ 評分方式:期中期末考(2x50%)、作業加分用 因為跨考不得不補修資工三科的學分(算法、計組、OS)。上課講了楓葉本的幾個章節:time complexity、DP、NP problem。兩次考試跟作業都來自上課勾的習題。 === 計算機架構 IOC5091 Basic Info:2021 Fall / 資科工碩 / 鍾崇斌教授 / 英文授課 / A 評分方式:期中、期末考、分組報告(3x33%) 參考書選用Computer Architecture: A Quantitative Approach,除了基本的計組內容外,有特別介紹out-of-order processor的設計&提高parallelism的方法。兩次考試都是開卷,出的有點難但有調分。原本期中考拿了6X想說乾考砸了,後來教授說全班只有一個人及格zz。期末三人一組任選paper介紹,需要花點時間準備,教授對報告有一定的要求。 === 積體電路設計實驗 IEE5712 Basic Info:2021 Spring / 電子碩 / 李鎮宜教授 / 英文授課 / A+ 評分方式:12次作業(12x5%)、期中考(8%)、期中project(10%)、上機考(6%)、期末考(8%)、期末project(10%)、Bonus作業(3%) 入學前就略有耳聞的一門課。當初共指問我:欸XX下學期要修什麼課,有興趣要不要來修我們系的ICLab啊?我想說對未來也有幫助,寒假看了一下Verilog語法就選了,結果一肝就肝到了學期末…。整門課從最基本的電路實現、寫測資,到後來跨時脈、低功耗設計、APR tool等等都有涉及,能對整個design flow有個基本的認識。比較大的痛點在於每週都有lab而且沒有間隔,如果有一次要補demo的話整個時間就會全擠在一起。我自己的經驗是大部分時間都會花在debug,所以熟悉怎麼看波型之後會變得比較有效率。看波形就有點像是在用gdb,然後一次print所有變量這樣,能越早找到bug的源頭就能省越多時間。期中期末考都是投影片的內容;上機考因為有時間限制所以比想像中困難,我修課的這屆全班都沒寫出來,大家一起補交。 === 機器學習晶片架構設計 CSIC30066 Basic Info:2022Fall / 資科工碩 / 葉宗泰教授 / 英文授課 / A+ 評分方式:Paper Summary(5x2%)、3次作業(40%)、期中考(20%)、final project(30%),學期末有似乎調整比例 其實上這門課之前自己有在清大參加過一個孔祥重教授開的AI加速器短期課程,兩門課的性質有點類似,都在介紹加速AI模型運算的一系列方法,從軟體的data locality、quantization,到硬體的dataflow、架構設計等等,說穿了就是在優化不同大小的矩陣乘法運算。整學期聽下來能學到很多,尤其是硬體層面的新技術,能知道一個pytorch forward函數背後到底做了多少事情。課程每三週看一篇指定的paper要寫summary;coding作業會從設計一個systolic array開始,最後放到FPGA上跑通執行矩陣運算;final project分組自選主題做報告。Loading比預想的還來得重,不過教授跟助教人都很好,有聽說之後作業會再調整。 === 平行程式設計 CSIC30045 Basic Info:2022 Fall / 資科工碩 / 游逸平教授 / 中文授課 / A+ 評分方式:6次作業(70%)、final project(30%) 能學到東西而且很實用的一門課。以投影片為主,介紹各種不同的平行化方法:SIMD、Pthreads、OpenMP、MPI、CUDA、OpenCL,剛好對應到六次作業,以及平行化需要注意的race condition問題等等。上課內容不會特別難,教授也都很樂意回答問題。作業部分如果之前沒用過相關的package的話,需要花點時間才能完成。Final project是三人一組選問題做平行化加速,除了coding、口頭報告外,對書面報告有比較嚴格的格式要求。 === 作業系統 CSIC30015 Basic Info:2022 Fall / 資科工碩 / 吳俊峯教授 / 英文授課 / A+ 評分方式:期中考(20%)、期末考(30%)、paper報告(20%)、3次作業(3x10%)、課堂出席發問(5x2%) 很推薦的一門課,選修當下似乎是教授來交大的第一個學期。上課以投影片為主,涵蓋process scheduling、memory management、filesystem三個主題。除了講義精美外,在linux實作上的細節也都解釋很清楚,每堂課課後都一堆人去問問題。三次作業分別是寫一個hello world的system call、一個簡單的thread scheduler,跟一個能顯示電腦spec的device driver,會花點時間但不至於做不出來。期中、期末考範圍在投影片都有;報告則是自選一篇OS相關的paper介紹,提早報告或用英文報告還能加分。 === 嵌入式系統設計 CSIC30043 Basic Info:2022 Fall / 網工所 / 許騰尹教授 / 中文授課 / B+ 評分方式:五次lab、final project 沒有教材,以實作為主。學期初會發一塊板子,兩人一組每週上課時間去實驗室demo,一個lab一個lab慢慢加新的功能進去。開發過程會遇到蠻多bug的,可以現場多問問助教。
愛心
跪
65
23
全部留言