第四學期修課心得

Fourth semester

拖到了大四上快結束才寫,基本上是看著課表回憶一下大概而已。
這學期的成績看起來不是很好看。

桌球初級

可以說是蠻輕鬆的課,老師會從看起來真的很基本的握拍開始教起,然後發球、回球等等,最後面會用餵球的方式讓我們試著左推右攻。
老師讓全班的人每四個人分一組,每節課就是先集合起來講解動作之後,四個人回到同一桌輪流互相練習。我們這一桌有一個日本人,不過剛好也有一位日文系的同學,感覺有點形成他們兩位女生的小泡泡(?)

因為小學的時候就有打過一點點桌球(超級一點點),所以至少發球跟握拍還是會的。從考試成績看起來看似我在這組的實力還算不錯,但考的東西應該算是非常簡單,而且後面有一些課的練習是會讓贏家輪換到別桌去,也遇到很多很厲害的同學 (a.k.a. 他們在炸魚)。

A+ 率是 76.92%,非常高,我也拿了 A+。後半學期的考試我個人覺得隊友的餵球影響會很重,所以如果自己真的真的完全沒有基礎的話最好找厲害一點的隊友餵球。

語言的邏輯分析

因為之前上過探索語言覺得語言很有趣就想說來聽聽看,第一堂課就丟給我們語奧那種題目試著做(老師稱作「語言遊戲」)。因為是第一堂課所以難度非常簡單,我就修下去這門課了。

不過其實是上了賊船。每個禮拜都會有作業,形式一樣是語奧的題目,但是要順便交上合理的解題過程,而且感覺要好好引用上課教的一些語言 feature,這個作業寫到後面越來越不會寫,而且在講解的部份我也聽不太懂為什麼某些回答是合理的理由。總之就是太菜了。

但真正困難的其實是期末報告。期末我們要分組製作一個「語言遊戲」,但在分組的時候所有積極的人迅速的就找好組了,所以我就變成跟剩下來的人想辦法湊成一組。然後大家都不太知道能做什麼以及到報告前一週都沒什麼進度,想辦法用 chatgpt 生出一個題目來但報告也報得蠻爛的,醜到不能再醜了。最後竟然還可以拿 A-,比預期好了。

存活分析

跟著 zihongxiao 去修的一個數學系開的課。這門課的主軸是 survivor function,$S(t)$ 代表某個實體能「存活」到時間 $t$ 的機率。整門課程會用不同的方法去想辦法從 experimental results 去 inference 出原本真正的母體的 survivor function 等統計資料,並證明誤差在抽樣夠多時會趨近於 $0$ 或是用什麼速度趨近於 $0$,也就是在證明一些 estimator 的性質。

課程進行到途中會講到測度公理的機率論、stochastic process、martingale,但跟課中提的其他定理差不多,定義或是一些結論大概帶過去之後就會比較直覺的使用這些物件。例如在 martingale 的 filtration 那邊,雖然講了定義但我們超少用到,用到的時候感覺也是馬虎帶過去。

作業就是把玩定義跟直接開一些定理去證一些事情,最後面會讓我們完成上課沒有證明完的一些 lemma。老實說,我覺得這些統計的定理越到後半學期都越來越醜,但可能學問就得是這樣子吧。雖然我覺得我這門課有盡力,但拿這個 A+ 感覺還是有點不踏實。

數位系統與實驗

講的主題大概是布林代數,怎麼用簡單的 logic gate 去拼出一個 boolean expression,例如 minterm expansion、kmap 等,大多是用來手算的方法。後半學期會講 flip-flop,即正反器,以及類似 finite state machine 的應用。

有四次手寫作業跟兩次 lab 作業,lab 作業是讓我們寫一些 verilog 並計算一些能優化的 latency 之類的部份。期中考跟期末考印象中都可以帶大抄,分別考了 98 跟 90,最後是拿了 A+。

作業系統

系上的必修課程。大致上的主題如下:

  • multiprocess/multithread 跟 context switch
  • CPU scheduling
  • 記憶體的 stack 和 heap,以及 virtual memory、cache 等
  • file system、disk scheduling 等
  • 非同步程式的同步問題,關鍵字可能是 race condition、mutex、semaphore、critical section

對我來說,背誦的部份還是佔大多數,一大堆不能望文生義的專有名詞砸在臉上,然後例如介紹 cache 的時候每個數字或是步驟都非常具體,具體到我會覺得這應該要是某個特定的硬體或是作業系統才會精確的就是這個數字,但這些東西又必須不得不背下來,就像是生物科那樣觀察、發明、分類一些現象,我真的沒有辦法抓到課的本質。

作業看起來是把 xv6 這個迷你的作業系統挖空讓我們填一些程式碼,雖然 spec 裡面會告訴你要改哪些檔案,但你會需要看懂一些其他部份在寫什麼,要從給的一整坨作業系統的 code 裡面撈出關注的部份,抱團會比較輕鬆。小小抱怨一下我的第一次程式作業因為 wrong file structure 扣了 10 分,但他給的 zip 檔案裡面包了 __MACOSX 這種鬼東西。然後第二次程式作業被扣了 7 分,忘記是為什麼但大概是漏了一些 edge case,剩下的第三次跟第四次都沒有被扣分。

考試的部份,期中和期末我的分數和平均分別是 71/62 和 87/71,A+ 率是 10%,我最後拿了 A,算是有點小遺憾但不意外。

現代科學與心靈科學

內容完全不像是資工系的課。簡單來說有點像是老高說書講的內容,有些心理學、物理學上確實是真的內容,但又穿插一些感覺很玄的哲學理論。很玄的部份舉例來說就像是期中考題裡面的其中一題,題目和我的回答如下:

如果未來的科學研究發現halting problem對人類而言是undecidable,那這樣的科學證據是支持Penrose教授所提出量子力學的作用在意識的形成中扮演關鍵性角色的假說抑或是提供一個反例? 請簡述你/妳的推論邏輯。

If future scientific researches confirm that the halting problem is not undecidable for human beings, then do you agree with Prof. Penrose regarding his hypothesis that quantum mechanics plays an important role in the formation of our consciousness? Please briefly describe your reasoning.

您的答案:
在量子計算的領域中,引入量子效應並不會讓原本 undecidable 的問題變為 decidable。因此若 halting problem 對人類是 undecidable,我們仍然可以相信量子力學在意識的形成中扮演關鍵性角色。

然後這題有拿滿。我覺得上課有很多論證仔細想想我會認為是不嚴謹的。

期中的考試是 NTU cool 線上的方式,而期末是我們可以自己選擇要線上考試或是實體去考(我是選實體去),開放帶電腦進去查資料,所以考前我基本上就瀏覽過所有投影片,知道什麼關鍵字可以對到什麼段落,以及弄一個文字檔讓我可以 ctrl-f。期中和期末我的分數和平均分別是 95/93 和 85/88。

另外還有要做一個期末報告,形式是交一個簡報檔到 NTU cool。不知道是我的選題跟老師想要的不一樣,還是篇幅內容太少,只拿了 80 分,平均是 84 分。最終是拿了 A,現在來看好像也沒有修這門課的必要(?)

NASA 三階

跟以往的形式一樣,在三階的時候我們要做一個跟我們組有關的 project,但幾乎沒什麼限制。我們這組做了兩件事,一個是讓 LDAP 有一個 replication server 並且可以在主 server 下線時讓副 server 支援,另一個則是讓工作站組的一些統計資料傳到原本別組就有在用的一個 grafana 監控服務。我負責的部份是,把原本就有在統計的統計資料開一個新的 API endpoint 出來,傳指定的 json 格式給另一個人接,大致上就是改寫一點點的 C++(沒錯,用 C++ 寫的後端)。這樣的分工確實有點心虛,但我這時候幾乎還沒懂多少我們組內部機器(感覺最懂的是 peach 老大),這學期的其他課也很多事,只能被動的分到什麼就做什麼。報告的時候老師會來聽,被提問了好幾個有關 LDAP 的問題但感覺問到一半的時候,老師跟 peach 的頻道才對上。但老師看起來還是不太喜歡我們這學期的東西,結果還是拿了 A-,工作站組的宿命。

機器學習

軒田老師的 ML 課程,用英文上課。HW 0 簡單得可怕,簡直不像在勸退任何人。

其實在網路上都可以找得到課程影片了,我也不知道怎樣 summarize 這堂課比較好。總之就是教了很多機器學習的數學基礎。

作業的形式比較特別,是選擇題加上各題的證明,但證明每次只會抽出一部分批改(當然因為事前不知道抽出哪些所以基本上還是全部要寫證明)。
我在修的時候有一直聽到一些奇怪的批改標準,例如在最小平方法沒有算微分而是用配方法就被批改錯之類的。不過我個人自己並沒有遇到,只是會對助教的批改的信心不高。然後我就在作業翻車,想說助教是不是又看不懂我在寫什麼去找他吵架,結果我還真的有寫錯的地方,想挖個洞躲起來。因為只是某一行係數寫錯就要被扣一整題的 20 分,寄信給教授討到 15 分 QQ。

另外還有一次是 HW 1 的選擇題的觀念題選錯,被扣一整題的 20 分。這我想找的藉口是一開始好像有說不要把作業跟別人互相看,所以我沒有去跟其他人對選擇題的答案,但被爆扣一次之後還是乖乖加入對答案卷卷團了。後面的作業沒有再被扣分,至少選擇題的部份應該是和大家對答案的功勞,證明的部份,我在撰文時在 gradescope 翻不到後面幾次 HW 的 regrade request 的紀錄,應該是順利的都滿分吧?忘記當時到底是怎麼進行的了。

先附上成績的人權圖:

final project 形式是 kaggle 上要 fit 某個訓練資料,有 public data 跟 private data。然後 final project 我和 joy 以及 zck 一組,我們大概在咖啡廳之類的地方討論跟實做了兩三次,然後回家再想辦法改進一些東西。我們在 kaggle 上的名次應該是在中間,結果我們的 final project 成績只有 775 分,滿分 900 分。不知道是真的這樣的結果太爛還是我們的報告做不好,最終我只有 HW 1 跟 final project 有被扣分結果只有拿到 A 的等第。btw casper 他們那組的 final project 超強的,認識的人超強就有一種我們不想輸的感覺,但時間的關係加上我不知道怎麼 train 都沒辦法在死線前再改進,聽說我的總成績好像跟 A+ 線蠻接近的,覺得真的很可惜。

comments powered by Disqus