大二上修課心得(2024 Fall)

PixelCat31415
  • 共同必修
    • 〔3 學分〕 大學國文:文學鑑賞與寫作(一)by 汪詩珮
  • 系必修
    • 〔3 學分〕 自動機與形式語言 by 林忠緯
    • 〔3 學分〕 系統程式設計 by 鄭卜壬
    • 〔3 學分〕 線性代數 by 呂學一
  • 通識
    • 沒有通識 😭
  • 系選修
    • 〔3 學分〕 機器學習 by 林軒田
    • 〔3 學分〕 程式結構與設計 by 鄭卜壬
  • 一般選修
    • 〔3 學分〕 日文二上 by 張鈞竹
    • 〔停修〕 Web APP 開發 by 何承遠

總感覺每個學期修得要死要活,學期結束之後都只想放假不想管學期中發生什麼破事了,可能是真的累了,反正修完課就跟我沒關係了,那些破課過了幾年都會繼續是破課。不過當然還是有很喜歡的好課,再怎麼說都一定想記下來。

共同必修

〔3 學分〕 大學國文:文學鑑賞與寫作(一)by 汪詩珮

大概是這學期修得最滿意的課之一。一開始想說抽抽看不虧,反正國文遲早有一天要修,因為好像很難抽所以沒有特別打聽哪一班比較好,也不覺得會中,後來不小心抽中了。

這個教授主要研究的領域好像是戲曲一類的。前半學期講了幾篇三言,後面從白娘子永鎮雷峰塔開始花幾個禮拜重點講白蛇相關的作品和改編。上課教授基本上不管你在底下幹嘛,老實說我常常都在搞自己的事情所以真的有深刻記得的片段不多,但是教授講出來的話就是感覺特別有智慧。可能是因為第一次上國文課不需要考試,我覺得上課的氛圍輕鬆很多。老師常常會提問讓我們小組討論上去簡短的發表,老師從來沒有否定過任何一個答案,大家常常提出不同的思考點、對一個問題有不同的立場,老師都有辦法理清楚我們的思路跟我們討論;討論的題目並不刁鑽,可能是思考某一件事為什麼發生、象徵什麼,就算是我這種文學零基礎的也能加入討論。我一直不喜歡國高中國文課,但是我不覺得我討厭文學,這堂課終於算是滿足我對國文課的想像,證明我只是討厭國文考試。

計分上,期中期末各寫一篇作文,有一次小組報告,加上平時出席、討論、小考分數。

  • 期中書寫自訂題目,1500 字以上(沒有上限 🥵),要從上課讀的幾篇作品出發寫關於我的大學生活,一開始覺得寫不出來很痛苦,後來寫了兩天,慢慢咀嚼那幾篇作品和我自己的想法,有一種把心裡最深處的思考也翻出來、第一次真正在寫作的感覺。期末書寫跟期中書寫差不多,主題是白蛇改編和另外一個比較正常的主題二選一,我跟白蛇真的不熟,還好不是強制寫白蛇。
  • 小組報告是五個人一組,讀一篇小說之後講解、設計討論問題,雖然分組是隨便亂分,但是我根本抽到頂級組員,有一個人自願跳出來當組長、所有人按時做完進度、言之有物而且言之有理、沒有人亂砸生成式 AI,整個組最趕死線最不知道在說什麼的大概是我。一開始分給我的工作我甚至沒有做到,死線前一天上去看簡報才發現全部人的部份都做完了只剩我,看過去發現憑我愚蠢的思想根本加不進任何一句話。最後互評表我把自己打最低分,不知道實際上分數是怎麼給的。實在是只能感謝隊友們,抽到這種隊友真是運氣太好了。
  • 平時小考不難,四題三分鐘,如同教授保證的有看文本就不會考砸(不過有一次我忘記開始時間所以考砸了 💩),最後甚至歡樂大放送只選最高的幾次成績採計。出席和討論成績不知道怎麼給的,反正該我講話就講話,該我出席就出席。

最後我拿 A,是我大學以來到目前為止唯一一次沒有 A+,但是我沒有任何不滿。期中期末書寫各拿一個 A 我覺得都合情合理(甚至我覺得期末值得一個 A-?)。原本我就不覺得我國文/文學造詣有好到可以 beyond expectations,這堂課給我這麼好的修課體驗我已經覺得很幸福了。

國文課最感動我的一個瞬間,是發還期中書寫作品和評語的時候。一個學測國文情意題 9/25 分的人寫出來的文章,教授真的看完了,而且是認真的看完了,就算我寫出來的對他來說可能跟 💩 差不多,他還是願意留給我一段溫暖的評語。教授說,他不希望我們在寫考試作文,他希望看到的是我們的思考。在那個瞬間,我覺得好像心裡有什麼東西被接受了。

如果每一門國文課都像汪老師這門課一樣的話,從現在開始我支持大學國文必修。

系必修

〔3 學分〕 自動機與形式語言 by 林忠緯

因為大家都修而且聽說 loading 不大所以也跟著修一修,實際上 loading 確實不大,修課體驗良好。

自動機就是在教計算理論。三次期考,第一次教正規語言、有限狀態自動機;第二次教 Context-Free Grammar、Pushdown Automata、Turing Machine;第三次教 decidability、time complexity、reduction、NP completeness 之類越來越可怕的東西。不過後面的東西很多都點到為止,像 complexity class 那邊有數不清的邪道都沒有考,那些邪道只有七萬會自己去亂卷猛卷。

計分純靠三次期考,甚至第一堂課就說可以不用出席,因為基本上是遠距課程,有完整的投影片和錄影。期考主要靠細心和會寫證明,想法難度都算還好。考試可以帶大抄,做大抄真是一份相當令人愉悅的工作。雖然後來覺得我的大抄好像有點方向錯誤,沒有真的放到對考試來說最重要的部份,但是做出整齊好看的大抄依然令人賞心悅目。

自動機最值得稱讚的是改卷品質非常高(不知道是不是每題都忠緯親自改),regrade 之後老師也會好好跟你討論給你公正的判斷;因為 regrade 失敗三次之後會扣分,所以發 regrade request 之前也會稍微謹慎一點。真應該讓每一門課都像這樣改卷/regrade。

〔3 學分〕 系統程式設計 by 鄭卜壬

沒什麼特別的必修,體驗還不錯。上課內容基本上就是 system call 按類別拿出來一個一個教,一邊解釋背後的一些 UNIX 系統的概念,像是 file descriptor 和 inode 怎麼運作、檔案權限的那些 bit 是怎麼整的、process 和 threads 怎麼運作之類的。雖然內容不少,不過搞懂了原理就不容易再忘記。

鄭卜壬說他教 SP 教很久,自己覺得他的課確實相當有料,雖然是在講一個一個 system call 但是不會枯燥,他會仔細把後面 kernel 裡面的原理解釋給你,有時候還會閒聊暴言。cool 上面也會放上課錄影,早上起不來(我)的話還可以考前一個晚上開三倍速 speedrun 看影片補課(又是我,非常抱歉 😔)。課程影片有問題的話常常需要查查 man page、自己做個小實驗、跟別人討論一下,我覺得其實也挺不錯的。

計分應該是計期中考、期末考、程式作業、手寫作業。期中期末是手寫申論題,還要用手寫程式碼,不能帶大抄只有他給的 system call 列表(只有那些 system call 函數的 declaration),寫起來感覺比較著重考觀念而不是背 system call。程式作業一份大概需要個半天到一天左右,只要會查 man 就寫得出來,大多數時候 spec 給的都算清楚,因為我喜歡寫程式課所以寫起來相當愉快,也沒有很大的 loading。手寫作業不多,有寫有分。

整體來說 SP 修起來頗為舒服。聽說跟 OS 重疊很大,下學期修完 OS 再來評論。

〔3 學分〕 線性代數 by 呂學一

呂學一的線代,對我來說可以說是令人恐懼或令人痛苦。但是說到底他到底是爛課嗎?我覺得不是。

呂學一第一堂課掏出群和場我就覺得大事不妙了,他宣稱他要一個學期教完快四百頁的 linear algebra done right,結果他差點辦到了。據說這本教科書是數學系那種風格,抽象,很多定理,更多證明,我只能說我不僅不是數學的料,還對這種東西心存恐懼。有時候一頁證明不看個半小時都沒辦法懂他在說什麼,看一個小時才稍微跟上,兩小時後發現我一小時前的理解是錯的。

讀完那一本我一邊寫了快四十頁筆記,不過說是筆記更像是考前用的課本內容摘要。實在不知道怎麼摘要所有內容所以把筆記的章節標題列出來:

  • Group
  • Field
  • Vectors
  • Subspaces
  • Spans & Linear Independence & Bases
  • Linear Maps
  • Null Spaces & Ranges
  • Matrices
  • Product & Quotient Spaces
  • Duality
  • Polynomials
  • Eigenvalues and Eigenvectors
  • Minimal Polynomials
  • Upper-Triangular & Diagonal Matrices
  • Inner Product Spaces
  • Orthonormal Bases
  • Orthogonal Complements
  • Self-Adjoint and Normal Operators
  • Spectral Theorem
  • Positive Operators
  • Isometries, Unitary Operators, and Matrix Factorization
  • Singular Value Decomposition
  • Nilpotent Operators
  • Generalized Eigenvectors
  • Generalized Eigenspace Decomposition
  • Characteristic Polynomials
  • Jordan Basis
  • Trace
  • Bilinear Forms
  • Multilinear Forms
  • Determinants
  • Tensor Products

內容不少,呂學一的進度真的很快,再加上我時間管理失敗,後面兩次期考我要在期考周花整整半個禮拜 speedrun 讀 1/3 本課本,那幾天真的是讀到人生中只剩下線代。不過我覺得好像也不是完全沒有收穫,像是在學期最後行列式終於出現之前,他先定義 bilinear form,又定義 multilinear form,又開始講 permutation 什麼鬼的,就在不知道他在說什麼的時候,突然用奧妙的方式定義出以前熟悉的行列式,那一個瞬間開始從以前到現在學過的向量、矩陣,背後還有這麼長的故事,像是在沙漠裡步履維艱走了幾個月終於看到熟悉又陌生的家。

不過還是不影響我讀得很痛苦的事實,這點毋庸置疑。

呂學一的進度很快。平均一下我一週要讀個至少一整天的線代,但是他上課只有三小時,想當然他的課飛快,一份簡報常常上百頁,三小時要跟上他用嘴巴講至少我做不到。他的簡報又是不好讀的那種,排版跟書沒辦法比,還有各種呂學一自創名詞和 AI 圖。所以後來都直接硬讀課本,不上課不看簡報。

不得不說自創名詞還蠻好笑的,像是零空僅零(指 null space 只有零向量)、怒空(null space)、居易觀察(「同是天涯淪落人,相似必同行列式」,某個跟行列式有關的性質)。只是這些名詞實在是混淆視聽,線代都學不明白了怎麼記這些詭異的名詞。

三次期考決定成績。期考題目以一個線代初學者看起來蠻正常的,我覺得有點難,分數也不那麼好看,不過應該還是有讀有差。他最後當然不可能用原始成績算等第,等第給得還蠻甜的。

後來某次我偷看計圖期末考題,有一題要 LU 分解,我問什麼是 LU 分解,旁邊的人很震驚的看著我問我線代到底發生什麼事了,所以我的線代到底發生什麼事了?可能有人覺得 LU 分解應該要是常識,我只能說呂學一一定得先負一點責任。

第一次對呂學一線代有印象是去年 B11 學長很生氣的痛罵呂學一。修完之後我承認他不是爛課,但是我還是堅定的相信對資工系學生來說這種抽象的線代可能不是我們最需要的。有點無奈但是我能拿他怎麼辦,他開心就好。

通識

沒有通識 💤

哪天通識一定會變成我畢業的最大障礙。

系選修

〔3 學分〕 機器學習 by 林軒田

鼎鼎大名軒田 ML,三四百個人來修,人太多了名額不夠還一直加開。真不知道助教怎麼有辦法認真看完幾百份作業,所以事實證明,我不想用亂改一通這種決絕的詞,但是我們的作業真的沒有被很認真改。

課程內容是一些經典的機器學習算法,不是現在比較容易聯想到的專指神經網路那種機器學習(神經網路只是一小部份),是從 perceptron、linear regression 之類的經典算法開始的更早期的那些。對數學的理論基礎著墨不少,像是為什麼一個算法會收斂、為什麼可以用 test accuracy 估計模型真實的表現、如何對抗 overfitting 之類的主題,最後簡單提了一筆神經網路和反向傳播。其實我覺得收穫不少,大概是多了解很多神經網路以前大家都是怎麼讓機器能夠學習,尤其喜歡他教什麼都點一下理論基礎。

不過林軒田的投影片我就沒有特別喜歡。上課用的投影片應該跟 coursera 機器學習基石、技法是一樣的,投影片形式所以顏色很多字很少,有時候圖形化演示算法還不錯,數學推導的時候就覺得有點太簡略,遇到要推式子的時候都要自己慢慢想或是找其他資料。上課教室肯定坐不下三百個,有直播有錄影,但是是英文,自己覺得英文有點阻礙我理解,不如看投影片看不懂的時候再去 youtube 找之前機器學習基石、技法的中文錄影。

到這裡為止都是一門不錯的課,但是是到這裡為止。軒田 ML 不考試,有七次作業一個 final project,每次作業九題手寫三題程式,外加一題手寫加分題。除了後面幾次加分題以外,手寫題難度都還好,就是寫成文字還蠻花時間,我這種不會寫證明的可能一題至少半小時到一小時以上;程式題也是難度沒有很高,照著上課教的寫就好。問題在於助教給分標準有時候很抽象,聽說有助教自己不會數學看不懂就在亂扣一通;程式題說要叫你觀察實驗結果寫下你的 findings,有助教覺得這題要拿滿分要會自己額外做實驗做額外的推論;後來推出一個 clarity bonus 分數說是證明寫得好的可以加分,但是標準是什麼完全不知道,根本變成助教爽怎麼改就怎麼改。

final project 是給你棒球比賽的賽前統計數據要你預測誰贏誰輸,有人靠 data leak 做到 > 90% 真神人。在 public test 階段我們和其他人怎麼做就是停在略低於 70% 附近,基本上所有正常的手段、上課教過的作法,做出來就是這個數字。但是在 private test 我們在幾千筆資料上算出來的準確率莫名其妙低好幾個百分點,抽象。更抽象的是我們實在無法解釋到底每個作法差在哪裡,每種作法結果就都長那個樣子。report 就算了,至今無法理解 report 是怎麼打分數的。不是說 final project 沒有意義,只是至少我覺得做完 final project 沒有讓我比較會 ML 或是 data science,可能我還是做不夠認真。

整堂課讓人覺得最躁的是林軒田會一直宣稱他們要嚴格用最高標準要求大家,A+ 分數線切很緊,實際上作業批改就是不夠讓人信服,clarity bonus 讓人感覺在抽獎,findings 題意義不明。然後林軒田又會跟你宣傳他們多麼高標準、等第不是一切。有人反映 clarity bonus 標準不明,林軒田會把你放到臉書公審,然後繼續痛心疾首、語重心長地呼籲大家不要把等第視為一切。

對我來說 ML 最大的缺點應該是作業還蠻花時間、和有時候分數被骰骰子會有點不爽,除此之外其實內容還挺不錯的。

〔3 學分〕 程式結構與設計 by 鄭卜壬

ICPC 培訓班。老實說我真的越來越混了,除了團練以外基本上沒在寫程式,大一好像會一週一次團練,這學期也很少練了。我甚至沒有任何一次打個人 Codeforces/AtCoder 之類的加分到。校內賽打得宇宙無敵醜,桃園站打得差不多醜,表面上我可能沒有很關鍵的失誤,但是不夠會寫程式真的造成很多隱藏的、應該要做到但是沒做到、或讓隊伍多花很多時間的失誤。

分數拿得很心虛。我覺得我其實已經不算競程選手了。

一般選修

〔3 學分〕 日文二上 by 張鈞竹

存在感最低的課之一,說難聽一點的話就是我有點混水摸魚。張鈞竹的班挺涼的,要出席但是不用每週小考,一個學期兩次小考兩次期考,小考相當輕鬆,甚至覺得背了單字都有點沒用到,期考也差不多。他怎麼考就是那幾個文法,張鈞竹又把單字成份放很低,整體難度就還好,比較多靠細心。不過張鈞竹抓寫字的小地方真的抓很嚴,像是假名哪裡沒勾起來、漢字哪裡沒有凸出去,我漢字(跟繁體一樣的那種)寫快一點連筆也被抓。以前在池田晶子的班輕鬆寫,看起來是老師睜一隻眼閉一隻眼不想跟我計較,汗顏。

沒有特別的感想,可能是因為我沒有放很多力氣在日文,或是因為張鈞竹的上課節奏沒有跟我對上。下學期已經確定要滾回去找池田晶子,一個純粹的沒有根據的感覺覺得他的上課模式和風格還是比較適合我。

〔停修〕 Web APP 開發 by 何承遠

到目前為止修過最抽象的課。一開始是看別人去修,自己課表好像還有位子,所以就隨手填上去,一開始就想好可以退選或停修或探索,反正其他課沒有一個是有可能要停修的,就算是線代也不停,不然明年還要再線代一次。

這堂課前半學期教網頁設計,從 javascript 開始,還有 vue、next 之類的,這個老師上課差不多是 google 隨便一個 tutorial 打開照著念的感覺,可能還是好幾年前的東西,總之就是上課可以根本不用聽。每個禮拜的作業花個一個下午的時間左右差不多可以做完,跟上課基本上沒多少關係。期中考就是一個笑話,有一大堆申論題,每一題都是純 google 和生成式 AI 可以做的題目,一堆名詞解釋,沒有任何一題需要會寫程式,自己寫會寫到崩潰,但是以這堂課展現的素質我猜他根本會放你每一題都 chatGPT。後半學期分組做專案,反正都停修了就沒有關心專案主題是什麼。

「沒有任何一題需要會寫程式」有點好笑,但是想一想好像真的修這門課不需要動手寫任何一行程式碼,反正這堂課的所有作業和考試看起來都可以 chatGPT。

原本的計畫是蹭一組認識的人做 final project,不過因為種種原因沒有跟認識的那幾個一組。後來去外面找人,找到之後一直沒有回音,想說他是不是放生我了,結果停修單簽下去當天才看到他傳訊息來找我,蠻幽默的。

會選課的原因是 final project 能有認識的人一起做的話感覺可以嘗試做出個像樣的東西出來,還有我本來就摸過一點點網頁開發,所以前半學期的東西幾乎算是沒有 loading。後來期中發現 loading 有點可怕(線代是一個天大的意外),跟陌生人做 final project 是一個巨大的不確定因素,絕對不可以為了 web app 搞砸必修;再加上前半學期的課相當搞笑,看到期中考題直接讓我對這門課放棄所有期待,最後決定停修。如果硬撐下去,不小心變成要單扛 final project,害我明年要再線代一次的話我應該會想死。

後記

為什麼還是每個學期都搞得這麼狼狽 💩

課內的東西只能說左支右絀,每天都在趕不知道什麼的死線,每次都是死線前幾天才在趕緊處理,不知道什麼時候開始前面的死線推後面的死線,然後就掉進趕死線的循環。線代和自動機都是三次期考,等於一個月一次期考,ML 兩個禮拜一份作業,想一想節奏還是很快的,只是我從某個時間點開始一直慢了半拍。線代真的是一份相當超出預期的負擔,不管是時間上還是精神上的。

與此同時搞砸了 IOIC 系統組,差點拖死線拖到搞砸講義,還有其他 NASA 二階之類的基本上是啥也沒做到。

只能說,一事無成。什麼積極向上的雞湯,違心之論,就先不說了。