第三學期修課心得

Third semester

感覺時間過好快,雖然才第三個學期而已。


足球初級

修了個體育。
老師上課的方式是每個禮拜會先教一下子基本動作,然後就讓我們分組比賽。
分數來源除了考規則、考基本動作以外,還有在比賽中有好表現可以加分。
分組是期初分完就固定的,但依照我的社恐力和組員相處還是很吃力(?)

其實每個禮拜跑動一下,結束之後心情還是不錯的(但社交能量會喪失(?))
預設是在操場上課,有下雨的話會換到舊體。
因為是在下半年,所以即便是在操場上,大多數時間也不太會熱。

最後拿到 A,不知道在什麼地方加強有機會拿到 A+。

系統程式設計

簡稱 SP 的一門大二必修。
課程內容幾乎都在講 system call 跟 Unix-like 的系統會有的特性。
system call 從例如 open read writefcntlforkmmap 都有講一下怎麼用、怎麼用不好以及怎麼用比較好。
Unix-like 系統的特性則是比如說 process、thread、signal、file、pipe 好多好多。

這堂課有四次程式作業還有一些手寫作業,手寫作業在 ChatGPT 出來之後輕鬆很多(X
程式作業是我覺得很麻煩的地方。
程式作業的形式是助教會寫一份 spec 然後我們就照著上面的 implement,並且沒有什麼即時反饋的機制,比如說第一次作業是要我們擔任一個借書系統的後端部份(跟網路互動的部份有寫好部份的 code 了),用 open read write 以及一些 IO multiplexing 的 syscall 去同步處理多個 request。
很煩的部份是,常常在作業出來一陣子之後又更新一些檔案/spec 等等,尤其是 spec 不太清楚還要一直到 github 討論區問助教,第四次作業我覺得甚至你會需要把討論區給全部翻過一遍才能理解 spec 足夠的細節,總之就是很煩。
(Update: OS 比 SP 煩更多)
另外作業四次都有大腿抱,好幸運。有一些提早寫完的修課生就會寫一些 testing tool 來幫助其他人檢查他們有沒有寫錯(可能也是順便對自己的作業)。當然不可以抄襲所以常常都只能比對輸出,只是盡量考量各種 edge case 而已。
我覺得這樣有點考驗臉皮夠不夠厚或是有沒有認識到那些厲害的人,是一個蠻奇怪的現象。

段考考的題目感覺真的是有夠細,或者應該說我覺得上課教的東西就已經太細了。
比如說他會考 mmap 好多不同參數的用處,我覺得應該真的很少人會還記得什麼是 MAP_ANONYMOUSMAP_SHARED。或者他會間接考說 open 的所有可以填的 flag 有哪些,我相信這也不是一個大家都會有自信記得全部的東西(?)

期中考的時候我是真正的到處蹭,蹭考古題也蹭複習團。
然後期中就(感覺)考蠻好的。
期末的時候有點忙,只有在家裡讀(但也有私訊蹭考古題),考了 9X 分感覺不是考特別高,滿分是從 130 分開始算,不過似乎最終算總分的時候是除以 100。總之有 A+ 就沒有太在意了,進入懶惰模式。

程式結構與設計

ICPC 培訓班。
即使沒有修的學期也是一直在團練所以這算是個免費學分?!

自動機與形式語言

大三必修,本來沒有打算要早修的,但選課的時候選進來想說之後退掉就好了,結果錯過可以退選的時機。
跟承滿姐討論了最後沒有停修。

除了第一堂課以外就沒有去上課了 zzz
蹺課只有一次與無數次。

很好笑的是感覺很多內容都是暑假我們回去教學弟的時候,蕭梓宏負責教的內容。

成績計算總共只有期中期末各兩次的作業與段考。
老師的上課資料有投影片與筆記,其中筆記是比較嚴謹的版本的。教材蠻不錯的,作業寫起來也不算太難,段考我則是因為有點怕考出以前考過或者類似的難題,有找認識的人一起討論考古題,期中我們有試寫一份不過期末就只有在考前的週末討論跟複習了。期中考完的時候我想說很穩,結果拿回來改完的作業跟考卷都錯了基本題的分,搞得我寫期末作業跟段考有點害怕,不過最後還是幸運有拿到 A+。

從去國外的同學聽起來他們教的東西都要比較深一點,這門課感覺真的沒有教太多東西的感覺,也沒有聽到我期待的最小DFA(之前ICPC團練碰到)。

歐洲啟蒙運動中的政治與社會性

課名裡面都寫著歐洲啟蒙運動了,我原本以為會是有一點歷史課的元素在。
不過這門課感覺基本上都是在討論政治與社會。
一開始先講為什麼國家要存在,從亞里斯多德的觀點到 Thomas Hobbes 的觀點,接著再提一些我們現在認為的普世價值,用不同的社會學家的觀點去引導我們思考為什麼要有法律、為什麼要有政府、政府施政的合法性來源是什麼等等。
讓我想繼續修下去的原因是因為感覺像為什麼國家擁有權力或是為什麼要有國家這件事有種所有公民都該知道的感覺(但後面不認真上課 bad)

另外老師的英文很英國,而我英文聽力又很爛,所以常常沒跟好就整個不知道在講什麼了(?)像第一堂在講 Hobbes 這個人名我直到投影片放出來才意識到他在講這個。

成績來源是兩篇 essay,就是要針對他提供的問題清單去寫一份報告,期中期末總共選三個問題。我覺得我超爛,然後拿了 A- 不是很意外。
期中出了一個很白痴的包,就是我是用英文寫 essay 然後裡面有中文字,結果轉 PDF 的時候只剩下那串中文字我也沒發現,導致我上傳了一個只有「中國十四億人民的意志」的 PDF,幸好老師最後讓我補交。

複分析導論

感覺起來跟我高中旁聽的線性代數調性差不多,就是很細的把課本每個 theorem 的證明和舉例都解釋一遍,然後老師賣力的在黑板上面寫板書這樣子。
雖然都寫在課本上了但我還是有努力用 hackmd 抄筆記,雖然到最後還是沒有把每堂課筆記都做完qq
因為不是數學系榮譽學程(我也不敢修XD),所以作業和考試的難度沒有太高(學期後半有點變難,有一個比較抽象在講無限維的收斂的章節我有些題目沒有寫出,不過作業分數好像是十次作業取九次最好的之類的,所以我就沒有在意)

有趣的公式:Cauchy Integral Formula、Residue Theorem、Maximum Modulus Theorem、Hadamard Three Circle Theorem、Riemann Mapping Theorem

我曾經期待可以把這門課的東西用在計算幾何上但好像用不到XD
甚至有一次 ICPC 考了 Mobius transform 保交比但那是在上這門課之前遇到的

計算機安全

基本上就是一門 CTF 的課。

整個學期分成四個部份,這學年按照順序是上 crypto、reverse、pwn、web。
我覺得 reverse 和 pwn 比較難,尤其 reverse 比較不有趣,但也可能只是因為我學期中太忙了
分數是有四次要寫 writeup 的作業,一個 extra-CTF 還有一個期末考的 CTF(EOF 初賽)。

crypto 的課感覺有點貪心,想要在三堂課從無基礎講凱薩加密上到很多的 RSA、AES、橢圓曲線,講師看起來蠻趕的。

reverse 和 pwn 我就都沒去上課,reverse 就是一直打開 IDA 然後反編譯再 trace 醜醜 code,
而 pwn 就是要懂 linux 的 stack/heap 記憶體 allocation 還有一些 calling convention,例如 syscall 的參數會放在哪些 register 或記憶體,還有 glibc 在 malloc 跟 free 會有一些 bin 之類的,常常要一直看 gdb,不過還算是有趣。

web 是最後一個主題,我覺得算有趣(也可能是我比較多時間)
web 感覺就是有很多隱形的先備知識,因為網頁的框架和程式語言實在是太多了,如果題目不給提示實在是很難猜出背後的梗是什麼。

Final CTF 是 EOF quals,crypto 的梗幾乎都一樣所以就水掉了,進去決賽之後也去打了現場賽,第一次玩到 KoH 和 A&D,好難又好難。


下面不是有修的課但是我也想寫進來(?)

ADA 助教

第一次當助教,蠻可怕的,就是大家題目都出好難,如果我沒有好好看當週的題目或簡報很容易就在 TA hour 被問倒。
改考卷有夠難,我如果沒有事先看過全部人的作答很難事先訂出一個評分標準,另外要細看一些解釋也很麻煩,幸好我改的題目大部分都是一眼看出他有沒有在 chatgpt(aka 唬爛)。
然後 ADA 助教也是一個出題壓力,不過我也沒有在 ADA 出什麼厲害的題目所以好像也不值得說嘴。

會想要當助教主要是為了想要當作體驗一下當助教的感覺,現在感覺助教真的蠻辛苦的所以我現在在 ML 吵分都很有罪惡感(但題目出得不清楚還是繼續嘴)

大二下有 DSA 但因為我覺得大二下想要比大二上少一點 load 所以我沒有去接助教,結果好像還是一樣搞得自己很忙。

NPSC

隱形的出題壓力,而且裁判必須要保密身份,但我又是最不會狼人殺的人,其他裁判似乎都很享受假裝不是裁判XD

全國模擬賽系統組(?)

去年當過一次了,今年是再做一次一樣的事情順便傳承給學弟。
結果中途不小心忘記關機器放在那邊不用浪費幾千元XD 良心預算比賽承受不起,真的很感謝我用客服溝通後 AWS 他們就勾銷了這筆

NASA 二階

這個我好混,總之就是會選組然後介紹一些該組要做的事情以及丟一些作業。

end

這學期(第三學期)真的是不小心太貪心接太多東西+選太多課了導致很累。
另外雖然網站名稱叫做競程隨筆但好像第一頁都沒有競程了被人吐槽,該怎麼辦才好(
我甚至還想寫一個推薦 wezterm 的東西,so nerd

前面有許多內容都是大二下學期初寫的,寫到一半就開始很忙所以又擱置到現在(學期後半)才繼續寫。
至少努力繼續更新一篇才會有機會更新更多篇。

另外這學期有很多系統組類別的事情,我總感覺現在在維護這些東西的原則就是要不怕髒而且不要怕寫出垃圾 code,果然還是沒有勇氣去把陳年舊噁 code 翻新。

comments powered by Disqus