0%

114-1 台大資工大二上修課心得

這學期修的課沒有到上學期那麼硬,但是各種小事加起來仍然很累。

雖然上學期的心得按照硬度作為各個課程的順序,但因為這學期並沒有一個課像是上學期的 DSA 或 NASA 每周固定上壓力,所以本文就沒有特別為各個課排序。

系定必修

線性代數

  • 授課老師:李明穗
  • 學分:3
  • 等第:A+
  • 原始分數:92.36
  • 每周課後花費時間:4 小時

「講個小故事好了」 – Amy

老師叫做 Amy,我們叫得太順口以至於我現在寫心得的時候忘記他的名字哈哈哈。

資訊系必修的線代有開兩班,據說所有人都認為這班是比較好的一班,但老師的上課方式我實在無法苟同。上課的方式是老師會投影他的平板,然後就開始抄筆記,所有人就要跟著他一起抄。抄筆記這個行為本來沒有什麼大問題,但是他抄的東西實在非常長,而且很多都是課本就有的文字等等,而且抄的時候完全不講話全部人就這麼靜靜的跟抄經文一樣。最要命的是他自己本身對要寫的東西本來就很熟,所以寫得很快,然而他寫完一段後完全不留時間就開始講解,導致很多時候為了抄筆記所以完全沒聽到他講課,如果聽他講課又會抄不到筆記因為他很快就會把平板滑去另外一個地方,筆記就看不到了。

也因為抄筆記佔去課堂時間的大半部分,所以出現了神奇的現象「講太快又講太慢」。講太快的部分是因為忙著抄筆記所以講解很少,所以講解的時間只能速速帶過,有些美麗的 insight 就會輕輕帶過 (這是跟 Gilbert Strang 的 MIT OCW 比較而來),例如 Gram-Schmidt Orthogonalization 的部分沒有提到為什麼是這樣做的等等。講太慢的部分也是因為大部分時間都在抄筆記,所以根本來不及講到線代後面的東西,例如 SVD Decomposition 是在最後一堂課最後十分鐘才簡略地講。

說到底抄筆記是這門課程最大弊端,所有缺點都是來自於抄筆記。我其實不是一個討厭抄筆記的人,高中數學老師周周的上課方式就是又快又要抄一堆東西,但我上的很開心。到了這門課抄筆記這麼惹人厭完全是因為節奏沒有把握好,加上筆記內容真的又臭又長。當然也許這一切都是老師用心良苦想要我們用抄寫的方式記住線代那些嚴謹的定義等等的。

雖然上課真的是很惱人,但是看考試就知道為什麼所有人都推 Amy 班。期考的內容基本上是有複習就可以拿到不錯的分數,跟大部分的資訊系必修完全不同。作業的部分也是每周要花一定的時間,但也不是太刁難。也因此雖然上課對我來說有點糟糕,但總體來說是相當不錯的。

Quote 的部分其實 Amy 很少講故事,講故事的時間是拿來給同學抄筆記的 (但就是很少講故事)。因為他 USC 跟 UCLA 都讀過,所以有時候會說這兩間學校互看不爽的故事,除此之外印象中沒什麼有趣的故事。總而言之上課真的很無聊又抄得很累,下課通常是精疲力盡。

系統程式設計

  • 授課老師:鄭卜壬
  • 學分:3
  • 等第:A+
  • 原始分數:93.14
  • 每周課後花費時間:4 小時 (極度不平均)

「葉黃素不用吃多,要持續吃」 – PJ

老師的英文名縮寫是 PJ,因此叫他 PJ。英文課名 Systems Programming,注意 Systems 後面有個 s,我開學後一個月才發現這件事。

SP 是大部分人認為 PJ 班比較好,原因似乎是隔壁 Thisway 班很多人覺得他講課很爛。但是 PJ 班這邊就是簡報真的很醜,是沿用了將近 20 年的簡報,藍底黃字真的看得眼睛很痛。這門課學的是 UNIX 系統程式設計,要學會各種 UNIX 系統的機制,並且學要寫 code 來用那些 system call 或是 Library function。

PJ 講課真的不錯,是那種會站在新手的角度著想的老師,不是溺水式教學這點給推。雖說是會站在新手角度,但他也說過他是用「洗腦」的方式迫使我們這些新手擁有系統的概念,具體來說就是同一件事情他會講好幾遍,所以如果有認真上課,到後面會越來越駕輕就熟。

PJ 上課語速很快且資訊量非常大,而且有許多概念是單看簡報看不懂的,因此我上課會做筆記。與上面 Amy 比較不同,上 PJ 的課完全不無聊,原因就是在「每秒資訊量」上 PJ 是穩贏 Amy 的。但是 PJ 常常不下課,通常是三小時下課一次,時間也是 「我們下課到長針指到六」但實際上只有 5 分鐘。這導致我們一群人抄筆記抄得很累,完全不知道為什麼在台上講的人好像不累。因為每堂課都有錄影,所以滿多人選擇不來上課看錄影。但我看錄影即使開兩倍速,為了抄筆記所以花的時間也是完整的三小時,加上我需要早上有個理由挖我起床出門,所以我還是偏好實體課。

這門課最累的地方就是 Programming Assignment 了。總共四次的作業每份 8 分。體感 HW2 > HW1 ≈ HW4 >> HW3。每份都有不同的主題,例如 HW1 是要實作一個類似 Web Server 的系統,助教則是會提供一開始的 template 讓所有人好下手。每份作業的特點:

  • HW1
    • 做一個 Web Server
    • Spec 真的很糟糕,一堆 case 講得不清不楚,Program flow 也是不清不楚的,輸入輸出格式也是不清不楚。
    • 一份 Spec 可以在同一段裡面自相矛盾,更扯的是同一個問題寄信問助教可以得到完全不同回覆,真的很爛。
    • 據其他助教所說,負責的人自己也沒想得太清楚。
    • 大約 600 行
  • HW2
    • 耗時最久的一次 Assignment,很累
    • 要實作很多 IPC,控制 Process 們的行為。Spec 有好一些。
    • 我沒有完整完成整個作業,最後交出去的時候有 race condition 但也就算了,最後拿到 5.15 分
    • 扣去助教寫好的部分大約 1,000 行,其他強者似乎可以 600 行。
  • HW3
    • 最水的一次,是真的水的那種
    • 實作一個 User-Space Thread Library。
    • 真的花很少時間,但因為有分很多檔案所以我體感大概寫了 300 行。
    • 我有同學在這次作業被文字敘述陰了,最後分數很慘。
  • HW4
    • 難度中等的作業
    • 所有人盛讚 Spec 寫的絕頂好,原因是負責助教是我們資芽 Py 班的講師,歡迎各位報考資訊之芽
    • 我寫了大約 600 行

吐槽一下他們的作業名稱真的很會取,有手寫作業跟程式作業,但是由於程式作業是兩班共通且隔壁班沒有手寫作業,導致了 Assignment 2 = Programming Assignment 1 這種情況。而且 Programming Assignment 1 的簡稱竟然是 HW1?為什麼一邊是 Assignment 一邊是 Homework 啦。雖說如此但實際上也沒有造成太大的困擾,單純很好笑而已。

期考的部分則是考古很重要,即使程式作業寫得嚇嚇叫,但期中考會考一堆 race condition 的情況,應該很少人可以在剛學完後短短時間看出一段 code 到底有什麼種族情況。雖然考古跟考試不會同樣題目,但 race condition 的原因卻是常常相同。期末考的部分 PJ 說不調分但是出了 125 分,加上前幾年考古爆炸簡單,所以理論上應該要救很多人,實際上體感卻是「總分變多了但分數不變」。內容大多是 deadlock,考古卻失靈了 QQ。

PJ 自己有說過這門課要抱團修這點我非常認同,常常是同學們在群組討論到底某個情況到底會什麼情況 (好好笑但系統真的是這樣)。總而言之是一門走出教室可以清楚感受到有學到東西的好課。

演算法設計與分析

  • 授課老師:呂學一
  • 學分:3
  • 等第:A+
  • 原始分數:157 / 310
  • 每周課後花費時間:3 小時

「把這個問題送進冰箱」 – 隨機客

呂學一的臉書叫做隨機客,也有另一個名稱叫做顧定客。據說叫做隨機客是因為很喜歡隨機演算法(?

本系最謎的一門課,原因是呂學一是絕頂神人,擁有賦予萬物獨特命名的能力。由於呂學一實在是太神了 (真的褒義沒在反諷),他的教學真的是我見過最頂的教授(與蔡國榮同等級),即使整門課很謎但我現在是個呂推。

這門課有很多很謎的地方:

  1. 成績 100% 期考。期考又爆炸難,根據我身邊的同學估算,三次平均可能是 30+、20+、20+。至於為什麼要估算呢?原因在第二點。
  2. 考試成績等第完全不透明,也不公布分數分布或任何統計數據,老師的理由是「鼓勵修了課就要修完」。最後等第也是他呂式調分隨意切,因此在公布成績前完全不知道自己會是什麼等地。最後他還是有當人,是這樣鼓勵修完課的學生嗎…?
  3. 上課禁止錄音錄影 & 不提前公布簡報,但其實上了課可以理解為什麼會有這樣個規定 (加上幾年前 vivian 的瓜)。不提前公布簡報的原因是為了怕上課破梗,但這就導致極難做筆記,所以我後來就放棄作筆記了。

雖然很謎,但他上課真的是頂中頂,可以排到跟蔡國榮同等的夯,恐怕是沒上過課無法體會。上課氛圍也很好,非常鼓勵隨時問問題,不計出席分數也沒有發言分數,但可以讓很多人來上課和發言是真的很厲害了 (可能也是因為沒有錄影啦)。

考試的部分就很嗨了,有些題目需要想很久才能寫出來,但也有很多題目是證明題。如果有充分準備,寫考卷的時候應該要像是抄書大賽一樣手完全沒辦法停下來。例如我第二次考試就背了一堆堆的證明(投影片上沒有的),然後還真的有考出來一些,所以三個小時我手完全沒停過,寫了 10 面的作答卷,十題作答了八題,最後拿到 62 分。

改考卷也是很謎但絕對沒有上一屆謎,稍微查一下就可以看到 2024 ADA 的情況多麼慘烈。但本屆助教人不錯,所以考卷沒有拖到太久,讚。

總而言之就是個謎課,雖然是個呂推但我絕對不會想要再上一次他的課。

專題研究

  • 授課老師:陳尚澤
  • 學分:2
  • 等第:A+
  • 每周課後花費時間:10 小時

「產學合作就會有很多類型的公司,最好的當然是給錢然後都不過問在做什麼,但我目前還沒遇過這種的」 – Boss

對,我大二上就加實驗室了。實際上是大一下就找陳尚澤,暑假主要都在看 paper,開學後就上工。大部分人是大三上或下才加入實驗室,我是因為本來就滿喜歡研究所以很快就開始。

一開始方向是做 Model Immunization,但是試了兩周後覺得這題目實在沒什麼前景,於是就接下了跟 Skymizer 產學合作的案子,目前是做 token pruning for LLM safety。

專題研究本身就是一個投入多少可以獲得多少的東西,我也投入了實在不少時間在上面,壓力大的時候可以超過 NASA 1! 的等級。老闆其實不會上壓力,通常就是你有東西就來討論沒進度也沒關係。但因為我這是產學合作案,所以壓力的來源就是公司方,每次跟他們 Meeting 真的壓力很大,他們也會提出很多很多的問題,但畢竟我都受過科展評審磨練了所以心態還扛的住(?

必須炫耀的就是我們實驗室 GPU 很多,列出來成本逼近 600 萬,而且老師會問「還要不要買」然後學長會說「我們電不夠用」。雖然我們實驗室真的很多人,所以有時候高峰期仍然沒卡用。但不用在 meow 工作站跟別人搶卡/共用卡真的爽很多。

系定選修

機器學習安全特論

  • 授課老師:陳尚澤
  • 學分:3
  • 等第:A+
  • 原始分數:91
  • 每周課後花費時間:5 小時

「記得把錄影傳給我」 – Boss

英文課名 Security and Privacy in Machine Learning (SPML),是一門跟實驗室研究主題高度相關的課,基本上就是老師開給實驗室的學生修的。內容涵蓋近幾年 AI Security 的議題,從最基本的 Adversarial attack,到 LLM 或是我們這組做的 Federated Learning Safety。

這門課沒有考試,主要要做的事有:

  • 每周要讀一篇指定 paper 並寫 Reading critique
  • 小組 Presentation 一個 AI Safety 中的領域
  • Final Project,其中包含
    • 期中的上台 Final Project Proposal
    • 期末 Final Project Presentation
    • 期末後繳交 Final Project Report
  • Participation,同學或老師在台上的時候問問題,要拿滿分必須發言十次

Reading critique 的部分算是每周訓練讀 paper 的能力,並且要敘述文章的摘要、優點、缺點、可改進的地方等等,把自己當作 reviewer 的身分來看 paper。雖然我高中和現在實驗室都會看 paper,但經過了這一學期還是沒辦法很熟練的快速看完 paper 並做出評論,實在還需要多練習。

小組 Presentation 會在學期初就選定一個主題,並且老師會列出三篇有關該領域的論文。通常來說老師希望我們可以完整的對一個主題進行教學,但是往往到最後很多組單純的報那三篇 paper。

Final Project 則是這門課的核心,佔了學期分數的 50%,研究的主題可以自己選擇,不過大多數組都是選學期中報告過主題。我們這組做的是 Federated Learning 的安全議題,由於老師給的 paper 其中有一篇是做 Data Poisoning Attack,而且攻擊的非常成功目前還沒有人可以有效防禦,因此我們就想要在這個老問題上面做出一個新的防禦。但由於能否成功做出一個很強的防禦是個未知數,我們還同時做了另一個主題:Federated Learning Instruction Tuning of LLM,並且想要嘗試去「攻擊」。因此我們實際上做了兩個 Project:一個防禦一個攻擊。最後的結果是我的隊友實在超扛,竟然真的幹出一個很強的防禦,而我主要負責的攻擊部分則是沒有很成功。

由於整堂課只有四個大二 (我跟其中兩個一組),學期末報告 Final Project 的時候本來想說全部都是大三大四研究生應該是神仙打架,結果其實還好,有些組再報了一次 paper,有些內容很少,有一組甚至只 reproduce 了 paper 的實驗 (甚至原 paper 就有附 code)。

上一段【專題研究】的部分有講到我曾經做過一點點 model immunization 的主題。因為這個領域非常新,所以我基本上把所有相關的 paper 都看過了。而這門課也有人要報告 model immunization,所以我自然就在他們組賺滿滿的發言分 XD。

讀者可能已經注意到我都沒有提到老師上課的部分,沒為什麼還真的就是因為沒上什麼課,基本上大多時間都是同學上台報告 (一組整個學期共上台三次),不過這點也還行畢竟我老闆本來就是個做研究很強的老師 (懂得就懂哈哈哈)。

學期間我們去參加一個論壇可以加一分學期成績,但實際成績出來我只有 91 分 (作業跟發言都拿滿),所以看來其實我老闆改報告也沒特別甜。總而言之就是系上中規中矩的選修課。

一般選修

日文一上

  • 授課老師:村上理奈
  • 學分:3
  • 等第:A+
  • 原始分數:期中 96、期末 95
  • 每周課後花費時間:0.5 小時

「今は、何日何曜日何時ですか?」 – 村上老師

村上老師很棒人真的超好。這班就如同其他日文課一樣,上課會左右兩邊互相練習對話,然後單字小考 etc.。但因為這門課實在是太好了反而沒什麼能寫,少數的缺點大概就是村上老師是日本人,所以文法的部分都講得不太清楚,但其實也不是什麼大問題畢竟日文一上很簡單。

個體經濟學原理與實習

  • 授課老師:林明仁
  • 學分:4
  • 等第:A+
  • 原始分數:93.35
  • 每周課後花費時間:2 小時

「我對你的愛沒有彈性」 – 林老師

學期初被同學推坑選林班個經原,原因是數學占比很高,加上「可能」輔經濟系的計畫,就選了。結果都開始上第一堂課我才點開看往年的 A+ 比例 10%,鐵鐵的教務處很愛的一門課。

學期初的加簽就很經濟學了,是經典的賽局遊戲 「猜平均的一半」,每個人在 1~100 間挑一個數字,而越接近所有人平均數的一半就贏了。理論上的納許均衡是 1,但因為實在太多原因,導致我們玩的結果是平均數 18 上下。其中一個原因是我同學們選了 100,真的很好笑哈哈哈哈。

上課內容就是個經原每班會上的東西,期中前的內容大多是國高中就學過的完全競爭市場,期中後則包含了如獨佔寡佔等市場模型,還有一章在講賽局。老師上課會用書商給的投影片,加以他自己寫的備忘稿和一些額外的投影片。

老師是個很幽默的人,時不時會講出一些名言,像是上面的 quote,使用時機是男女朋友質疑你是否愛他的時候作為回覆。BTW 老師的形象照真的很帥,他上課也都穿的很有型,超酷。

雖然在課表上佔了兩堂助教課,但實際上只有星期三中午會上課,由於會錄影而且卡到實驗室 group meeting 時間所以我沒去過。但實際上助教課才是認真講會考什麼的地方,老師上課就當作是一個經濟學家台上唬爛 (x)。這邊 shout out to TA 啟超哥,簡報跟講課真的很厲害又清楚,可惜他期中後就交棒給另一個助教,不然他真的很頂希望他繼續教下去。

仁哥很特別的地方是期中考考得好會送書,也就是挑一天把考得好的人叫上台,然後給經濟學的書。期中期末我體感是有認真上助教課、有寫作業、有寫一兩年考古就可以拿到不錯的分數。期中後我也很僥倖的考 93 分 (Max. 94),做為一個資工系在經濟系必修拿到書,被叫上台那刻其實滿爽的哈哈哈。

上這門個經原我學到最多的地方是如何用經濟學的角度思考,而且上仁哥的課是真的可以感受到一位經濟學家在台上上課,這點在資工系無法感受「一位電腦科學家在台上上課」。總而言之是個超好課,大推。

助教

微積分 1/2

  • 授課老師:陳子安
  • 學分:2/2
  • 每周花費時間:4 小時

因為我喜歡教人又缺錢 (x) 所以就報名了當助教。並且我被數學系辦分到經濟系班,加上我同時也在上經濟系的個經原,所以我其實跟這屆經濟系某些大一又是助教又是同學。

我們班的老師叫 Mario 是個香港人,今年剛到台大當專任。偷偷說很多學弟妹跟我都覺得他的頭像超級怪,像是一個怪大叔的自拍。不過他本人在韓國做過博士後,所以我其實覺得他有點像韓國人。

我負責的工作是 Grading,要改 170 份的考卷和作業。而 Mario 又會叫 TA 們出作業,所以工作量其實不少。作業的部分其實我大部分選課本題,然後再加上一題跟個體經濟學很相關的題目。很多人抱怨我們班作業太難了(其他助教也真的出很難)有一次我作業裡面有不少很像普物的題目,我有就看到一篇脆文在說這件事然後他很崩潰一堆物理,不過實際上一來我都把題目改編到完全不需要物理的知識,單純的積分題而已;二來期考真的難很多,如果我們作業出太簡單那也是我們的責任沒有讓學生練習到期考的大挑戰。

我覺得當助教其中一個收穫就是我現在很可以同理各種課上會發生的情況,特別是考卷或作業改很慢這件事。我改一次的作業考卷真的會改到吐血,而且我知道當學生的感受所以會要求自己一周內改完,變成我其實常常在個經原或 SPML 上課的時候改這些東西(下略 1000 字抱怨為什麼大家的作答可以這麼 messy 字醜又不會掃描檔案是不是沒有接受過義務教育)。所以現在哪個作業或考卷拖很久才出(對又是 ADA)我都很可以同理哈哈哈哈。

喔對我的微 3 微 4 助教 Luke 現在是我的同事,他現在仍然是個萬人迷,學弟妹超愛他上課的。

結語

讀者可能發現我怎麼都說「有寫作業有認真上課就可以考得不錯」,原因真的是我被資工系的課嚇怕了 (說的就是你 DSA 跟 NASA),所以這種有讀有回報的課就真的是相對上的好課了。我是個很喜歡上實體課的人,所以我也很在意台上老師的教學品質,這也是為什麼有些好課我評價不好 (如線代)、有些莫名其妙的課我卻很喜歡 (如 ADA)。總而言之這篇心得似乎參考價值不高,您參考參考就好

  • 學分:21
  • GPA:4.3/4.3
  • 排名:1/144