中原資工系四年修課總結

時間過得很快,為了一張紙,住在破爛中壢四年,認識很多人也有學到一些東西,趁現在還有記憶,這篇將對我在這間學校修的課做個 memory dump。

注意:以下內容完全是個人主觀感受,請勿參考,僅供娛樂。

大一

計算機概論

  • 難度:★☆☆☆☆
  • 這是每個剛進中原資工的新生會遇到的第一個「有挑戰」的課程,上下學期都有,你會使用到名為 CAL 的軟體,語言可能是 C/C++ 或 Java, 與其他學校不同,這門課教的不是什麼電腦歷史、電腦基本概念,而是基礎程式設計,而 CAL 就相當於 Online Judge,每週日晚上十點(不知道未來有沒有改時間)會給一些題目,請在禮拜五下午五點前 AC。 而如果你有在隔天週一的下午五點前完成全部題目的話,週一晚上的上機可以不用去。作為一名已經考過 APCS 且有打過一些競賽的人,我的上機記錄為零。這堂課給我唯一的樂趣是老師在台上講課,我聽得滿開心的。 老師會把程式的概念講得很詳細,而我偏偏就是對這些東西聽不膩,所以我不是那種全都會了就不來上課的人,頂多邊上課邊滑手機而已。這堂課的作業量對大部分人來說很多,但這就是訓練 Debug 能力的過程。

微積分、線性代數

  • 難度:★★☆☆☆
  • 沒什麼好說的,背考古的課

離散數學

  • 難度:★☆☆☆☆
  • 教圖論、組合、命題邏輯、邏輯運算之類的,雖然說是資工系必修,但我覺得教得太少了,數論這個重要章節直接跳過,導致這門課過於簡單。

普物

  • 難度:★★★★★
  • 老師整學期從古典物理學講到現代物理的量子力學,什麼馬克士威方程組、無限位能井、相對論。要你用 Python 模擬雙擺運動、期末考要你推導那些公式,上課一定要把筆記背到非常熟, 不然期末考會炸掉。然後我從修完這門課到畢業前都沒有碰到過任何物理相關的東西,完全不知道資工必修這門課要幹嘛…

普物實驗

  • 難度:★★☆☆☆
  • 讓你上手怎麼用示波器、怎麼做雙狹縫干涉之類的,最麻煩的是手寫實驗報告,跟普物一樣修完後我再也沒有在學習程式的路上碰到它

自然科學與人工智慧導論

  • 難度:★☆☆☆☆
  • 通識必修課,教 AI 的應用,然後實驗做 yolo,其他忘了,(因為我根本沒在聽課)

文學經典閱讀、語文與修辭

  • 難度:★★★★★
  • 就是國文通識課,我不是文組,所以給他拉完了,我不會去記上課教了什麼

嵌入式系統實驗

  • 難度:★☆☆☆☆
  • 會教怎麼使用樹莓派、ssh、GPIO、git、ROS,然後只要照著簡報做出成果來就可以下課了。我認為這堂課最有價值的是教怎麼灌系統、怎麼用 Linux、怎麼用 ssh、怎麼用 git,是資工必備技能。 只是這堂課看起來沒有讓大部分人體會到這些的重要性,至少我身邊的人幾乎是我直接推廣他們使用這些工具的…

運算思維與程式設計

  • 難度:★★★☆☆
  • 整學期都在教 Python,還有經典題目的作業。

英文、英文聽講

  • 難度:★★☆☆☆
  • 英文課,不予置評。

大二

資料結構、資料結構與演算法

  • 難度:★☆☆☆☆
  • 俗稱 DS,這是繼計概後的程式設計課,上課方式是遠距,但上機、機測要出現。每學期有五個作業,然後上機會做延伸題目,機測則是讓助教問你程式怎麼寫的,分數給助教評分。記得不要用 AI 用得太兇,也不要耍毒瘤(這我), 雖然我完全答得出來但難度太高助教聽不懂也是會有問題的。作業方式是分組,每組兩個人,而且還要拍影片解釋 workflow,算麻煩,所以我幾乎都把程式碼壓在死線前兩三天做完然後影片丟給組員做,並強迫組員使用 GitHub+CI, 反正我知道自己一定做得完,希望之前跟我一組的組員不會介意(?。By the way,如果在修這門課期間去考 CPE,會有額外加分。

組合語言與嵌入式系統、計算機組織

  • 難度:★★★★☆
  • 大刀課程,期中期末考的評分標準很謎,也不要參考考古題答案,講義上任何圖、文字請文封不動全部背下來,我有次考試用自己的話語作答,結果不給我分,***的。不是我自誇,我已經很明顯完全理解觀念了還不給分,很有病。 在作業上,組合語言寫的是 Arm,會有一個在 Qemu 裡的 Raspberry Pi Arm,要你在 Terminal 裡繪製 JuliaSet,如果已經熟悉 Linux、組語概念的話,其實算簡單的。而下學期的計組則是要你用 Verilog 寫一個 Mips CPU, 要考量 Hazard、5-stage pipeline 之類的,程式碼其實不難,最難的我覺得是要解釋模組要畫圖吧,那張圖內的東西多到非常難畫。

數位邏輯電路設計

  • 難度:★★★☆☆
  • 看起來像是要寫 Verilog,但其實一樣教的是邏輯運算、K-map,沒印象有什麼作業。

電路學、電子學

  • 難度:★★★☆☆
  • 電路的概念,想走硬體、半導體的話很重要,然後考古題幫助很大。

電子實驗

  • 難度:★★☆☆☆
  • 這堂課會是你第一次接觸 Verilog,然後會教你怎麼用 Quartus、ModelSim,然後做像是加法器、計數器之類的東西。

Python 這個語言以及其應用

  • 難度:★★☆☆☆
  • 我在大二就直接選修研究所的課,會教 Python 的一些深層概念,會理解到 Python 管理記憶體的方式、slice、OOP,而考試就是考程式為什麼會這樣輸出或者程式應該輸出什麼。有趣的是,我是當時唯一一個大二的學生,其他都是大四以上,但我的總成績卻是前幾高的。

資訊安全講座(選修)、資訊工業講座(必修)

  • 難度:★☆☆☆☆
  • 會請外部講師來學校演講,要寫筆記,最有印象的是有次上課講師帶我們的車輛安全的 CTF,很好玩。

物件導向程式設計

  • 難度:★☆☆☆☆
  • 就是那個 OOP,但我覺得更像是在教 Java 的語法,作業不難。

資料庫系統

  • 難度:★★★★☆
  • 會教資料庫的設計、正規化、E-R model、SQL,並且要在期末做一個專題報告,會常常感受到查詢語法這樣寫會漏掉哪些情況,還滿實用的一堂課。

大三

作業系統

  • 難度:★★★★☆
  • 老師講得滿認真的,作業也不難,但期中期末考試無法靠推導,請背熟。

計算機網路

  • 難度:★★★★★
  • 會講到 OSI Model 中從 Application Layer 到 Transport Layer,考試是最難的,會從課本裡出,但考古題答案不一定正確,可能去年是對的但今年照抄會沒分。有幾次實驗,一個是 ICMP Ping,一個是用 SMTP 寄信。

人工智慧

  • 難度:★★★★★
  • 給他這麼難是因為老師上課用的麥克風會讓你根本聽不懂,聲音超糊。期中期末考也完全不知道從哪裡開始讀。也有幾次作業是要用線上的 AI 工具做出哪些事情。 有次作業是讓 AI 生成歌曲然後老師「主觀」評分(????),我覺得這個給分標準很不合理、明確,因為我喜歡的音樂風格跟別人不一樣。

演算法分析

  • 難度:★★☆☆☆
  • 老師上課的筆記非常多,與工程數學不同,考試不可開書考。作業是請用 Python 做一些圖片處理或某些經典演算法實現,上機則是問「非負責該題程式碼的組員」該程式碼怎麼寫的。所以請理解你組員的程式碼。

程式語言

  • 難度:★☆☆☆☆
  • 俗稱 PL,這堂課會教你程式語言的歷史、設計理念,而主要作業是請你做出一個 Scheme-Like 或 C-Like 的直譯器。在目前 AI 程式盛行的情況下,這份作業的完成時間從一個月已經縮短到兩天(已由我擔任助教時實測過)。你只要寫完這份作業、理解專案內容,這堂課可以很輕鬆的過。PL 已從學長姐口中的守門員課程,變成涼課了。

邏輯設計實驗、VLSI 設計自動化實務

  • 難度:★★☆☆☆
  • 又是一門 Verilog 課,就不多說了

資訊安全實習

  • 難度:★☆☆☆☆
  • 一門只有實作內容版本的 #系統安全 課,請見下方。

大四

Linux 作業系統實務與應用

  • 難度:★☆☆☆☆
  • 教 Linux 的基本操作,還有一些 shell script,上課可以當作是在和老師聊天,專題作業是要你做一個 Linux 相關專案。當時老師有說能不能將 LLM 融入系統裡,於是我做了 LLM 自動分析 Linux 惡意軟體,直接是一個畢業專題等級的專案。

Linux/Unix 系統呼叫

  • 難度:★★☆☆☆
  • 這堂課就是高等 Unix 程式設計,會教你如何使用系統呼叫、如何使用 fork()、exec()、pipe()、signal() 等等,考試、作業都非常簡單。

行動網路安全

  • 難度:★★★★★
  • 名稱中帶安全,但安全部分只佔一兩週,其他都是行動網路的概念,老師上課都直接講論文,且報告也是給你一篇論文要你介紹,學完後感覺可以自己弄出一個 5G 網路了。

生成式人工智慧基礎與應用

  • 難度:★☆☆☆☆
  • 如題,教 LLM 的概念、架構、應用,讓你學會怎麼 Call API、串工具,報告則是做出一個 LLM 專案。

軟體測試與漏洞分析

  • 難度:★☆☆☆☆
  • 前半段教軟體測試的一些概念,後面則是 OWASP Top 10 的漏洞分析,報告是論文以及對你之前或現有專案寫測試。

資訊日文

  • 難度:★☆☆☆☆
  • 就是基礎日文課,從五十音講到助詞名詞的使用,偶爾帶一些資訊相關的日文單字。考試只要會寫五十音就沒什麼問題了,且沒有期末考,很涼。

Linux 系統管理

  • 難度:★★☆☆☆
  • 內容都是 RHSA、RHCE 相關,比 Linux 作業系統實務與應用有更多實務內容,像是設定防火牆、VM 管理、帳號管理。

系統安全

  • 難度:★★☆☆☆
  • 從數學模型到 MITRE ATT&CK、會有五個實驗,分別是 Nmap、MSF、DVWA。

軟體工程

  • 難度:★★★☆☆
  • 講述軟體開發流程、敏捷開發、專案管理之類的,期中期末考題目從課本出,但大部分你只要寫的出來就有分,老師給分很甜,不用擔心。