台大資工大二上修課心得
前言
這學期開始處理數學雙主修的學分,因此有一半的必修是數學系,一半是資工系。 這學期一共修8堂課,其中有6堂是必修,另外2堂是選修(偏微分方程一, 機器學習)。
說實話我自己都覺得有點瘋,在資工系都是追求GPA 4.3的風氣之下這種行爲近乎自殺。我會去選這些課的理由如下:(理由 1)
- 我大一的時候有寫一個想要修的課的list,其中就包含:數學系線性代數, 抽象代數, 自動機 (被RZ蠱惑), 機器學習, PDE
- 這學期開始的時候受到一些不可抗力:
- 機器學習明年會不開,我被飢餓行銷到了,而且大二還不會機器學習感覺很遜
- 計網我今年有機會修單班(周承複),如果明年我就會必帶雙班,會比較難
- 今年PDE(研究所)是由陳俊全開授,我上學期分導二拿A+,所以我一定要到。而且他上學期幹話講太多了,很難看出他的專業項目
- 必帶學分我不想退,也沒有道理(?)要退
- 系統程式設計我大一下要選OS的時候就看得差不多了,暑假也看了課本做複習
- 我暑假的時候就在看Dummit & Foote (大概到chap 4.4)
修課清單
- 資工系必修
- 系統程式設計 System programming
- 演算法設計與分析 Algorithm Design and Analysis
- 自動機與形式語言 Automata and Regular language
- 計算機網路 Computer Networking
- 數學系必修
- 線性代數一 Linear Algebra (I)
- 代數導論一 Introduction to Algebra (I)
- 資工系選修
- 機器學習 Machine learning
- 數學系選修
- 偏微分方程一 Partial Differiential Equations(I)
小結
說實話我原本沒有打算機器學習跟計網的,但誠如 (理由 1)-2,我權衡之下決定要8堂課一共26學分都修。其實現在仔細想想很多課的真實學分可能都超過26學分
,理論上開學後的一邊上課+課後複習準備考試等等的時間一定會超支,但因爲我實際上不需要花太多時間學習SP, 線代, 代導,所以真正的loading其實只有寫作業
,然後剩下的我就想 “頂着幹,做中學”,期末真的頂不住再退選。剛開始這個策略真的有work,然後剛暑假完精力充沛每一堂課去都沒差,但有幾個致命的問題:(理由 2)
- 代數導論教授 (李庭諭教授) 不按正常的代數課的了教學進度 (或者我孤漏寡聞),導致我理想上的loading不會work
- 前期SP還沒開始程式作業,程式作業基本上就是這堂課的loading,所以真正壓低的是期考準備的loading
- 正常一個禮拜沒辦法平均分攤給所有的課,如果有任何作業是做到超時的話就會延後到後面的所有東西 (Queuing theory 哈)
- 很多課都不均攤他的作業,越接近期末才出作業或考試才定下來
所以到第6週之後就跟地獄一樣,每天行事曆都是滿的,然後到第8週就開始瘋狂趕死線,16週連考4週,17週狂趕Final project。
以下課程會以3個指標作爲依據:
- 甜度
- 涼度
- 會不會再修
資工系必修
系統程式設計
- 授課教授 : 黎士瑋 (真實授課導師 : 鄭卜壬)
- 學分 : 3
- 甜度:6/10 (每次都有custom test的情況)
- 涼度 : 2/10
- 會不會再修 : 狗都不修
- 課本 : Advanced Programming in the Unix Environment (APUE), by W. Richard Stevens and Steven A. Rago
- 評分方式:
- Programming assignments (4份,每份都有要上傳到github repo的程式+手寫的report): 各 8 %
- Handwritten assignments (4份): 各 2%
- 期中考: 30 %
- 期末考: 30 %
- 修課心得 :
關於 Thisway 課堂教學的部分我無法給評價,我除了期中跟期末會出席之外沒來過一次。我大一下就是看鄭卜壬 (a.k.a PJ) 的 2021 的網課,我覺得 PJ 很好笑又有趣,他會用很多荒謬的比喻讓你記起來,例如:政府會在你家開個房間然後放你的資料然後把門給鎖了,這種毫無道理的比喻,我挺喜歡的。
而且從第一堂課的 OS Concept 就可以感受到 PJ 對課本內容的獨特理解,他對 OS、計概、Data Structure、計結的理解會綜合到枯燥的課程裡面。基本上自學課本就會覺得這本書就是一個百科大全(man page, API 書),所以很需要對 OS 的理解才有辦法學好。不同於很多人對這堂課的評價是一個背科,PJ 想傳達的就是這是一個理解的科目,需要真實的理解才有辦法在自己寫 code 的情況下自己 identify 哪裡出現了 deadlock 或 race condition。因為我這學期同時修計網並做 socket programming project,更能理解為啥需要這樣理解 SP。
課程規劃
大致涵蓋:
- OS Concept
- Buffer and Unbuffer I/O
- File System
- Process Concept/Control
- Signal
- Threading
- Process Environment
由於今年兩次颱風 + 一次國慶,所以基本上今年必修都只上了 11 週的課(有點可悲),所以 Compile 的部分就沒有多琢磨與考。根據 NTU COOL 上的內容,Thisway 班的後半才有錄影。
作業與考核
畢竟叫 System Programming,所以重點還是要寫 programming,一般來講 code 會給一些寫好的骨架,會需要把對應的功能實作好(跟往年一樣)。大一太早退計程的話或對 C programming 不太熟的應該會蠻地獄的,基本上都要寫 200 多行 + 助教寫的大概會到 400 行左右。4 次 programming 作業如下,內容參考以下連結:
難度排序:IPC > Socket Programming > Threading > Signal Stimulate Threading。
因為三次放假,所以 Threading 放在第 17 週,內容也較少,但結果是我最後一次大意,沒有閃 memory leak,也被狂扣分。我到寫 CN Socket Programming Phase 2 才發現我寫法會有 thread 殺不乾淨的情況,但那時候已經截止,所以作業沒拿滿。
個人經歷
- IPC:喜歡 Ina 的助教出的,挺容易因為方式不好導致 TLE。我被 TA Hour 助教講的話搞到,他說他的 code 只寫了 100 多行,我卻把功能寫在一起變得可讀性很差。
- Socket Programming:初見殺,因為兩邊老師都有限度地教 Socket API,可能對 TCP/IP 不熟的同學會有點困難。寫了 4 個晚上才完成。
- 建議:提早寫完開始做 QA 比較容易寫出正確的 code。趕 Deadline 時,新管會塞滿人,\tmp2 也會超時,I/O 錯誤頻發,最好修課時找隊友或自己成為大腿。
考試心得
如果拿得到考古就會發現 Thisway 跟 PJ 的考試方向十分不同。PJ 注重觀念的正確,考的多是 race condition、deadlock 的情景題,某種程度上說 PJ 考得比較難。我考的是 Thisway 的卷子,考多選和問答,基本背誦型題目,可以帶一張 A4 雙面大抄(抄考古可能只會中 Everything is a file 那題)。
但我覺得 Thisway 的考卷出的不是很好,英文詞不答其意的選項很多,愛用開放式問答卻限定寫到某種程度(如題目 Grade Criteria)。期中壓軸題甚至用 fcntl
實作 pwrite
,依舊有 race condition,應該重新 open 檔案更合適。類似問題讓他們的 credibility 降低。
我只能說:
1 | 這是一個不公平的考試啊 |
期末17週公佈的時候聽說還有人去大吵特吵分數,不過最後給分挺甜的聽說84的還有A。
演算法設計與分析
- 授課老師:呂學一
- 學分 : 3
- 甜度:8/10
- 涼度 : 7/10
- 會不會再修 : 沒有更好的選擇所以會
- 課本 : Introduction to Algorithms, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
- 投影片:呂學一不準外流的簡報 (詳細的beef)
- 評分方式:
- 第一次定期考: 33.3 %
- 第二次定期考: 33.3 %
- 第三次定期考: 33.3 %
- 修課心得:
課程概述
這堂課是資工系二年級的必修課,是繼「資料結構與演算法」後的第二門演算法課。今年這堂課分為兩個班:單班由黃尚恩教授授課,雙班由呂學一教授授課。
以前這門課通常由非演算法專業的老師來教,但黃尚恩教授是新進教員,本身專攻演算法,所以未來大概率會由這兩位具有演算法專業背景的老師來授課。
授課風格
呂學一:
- 教學幾乎完全遵循他製作的投影片內容,且投影片中包含了許多 AI 生成的圖。
- 上課風格接近演講,前期教授喜歡遞麥克風與同學互動問答,氣氛輕鬆。
- 後半學期因 3 次停課影響,進度加快,教授一個人在趕課。
- 投影片特色:
- 投影片全由教授自製,具有許多個人風格,但也存在不少錯誤。
- 包含許多自創名詞,如「老大問題」、「左右護法」等,增加趣味性但可能加大自學難度。
- 上課不錄影,導致學生若僅靠投影片,理解起來可能會有困難。
- 較偏向通識課程的風格,涵蓋演算法界人物、歷史及前沿研究的簡介。
黃尚恩:
- 更接近數學系授課方式,課程內容注重嚴謹性。
- 作業包含證明題與程式題,難度較高。
課程與考試
這門課是一門理論課,偏向於演算法證明而非程式設計。
課堂重點:
- 講授演算法的證明。
- 所有程式題目需以 pseudo code 表達,並附上時間複雜度與正確性的 formal 證明(資工系風格的 formal,並非數學系的嚴謹證明)。
- 部分程式題接近 Leetcode Medium 難度。
考試挑戰:
- 題量大,需要快速奮筆作答,大多數題目要求寫證明,增加了難度。
- 時間壓力大,考試時間通常不夠用。
- 第一份考古題僅一份,且教授規定不準外流。
- 考試內容基於投影片,但因為錯誤較多,學生可能會感到混亂。
助教問題
今年助教管理不善:
- 學期中教授發現聯絡不到助教,緊急招募新助教負責批改。
- 停修截止前,僅釋出第一次定期考的成績。
- 助教批改速度緩慢,且申訴(regrade)難度較大。
個人觀點
課程定位的問題:
- 雖然是一門演算法課,但對於實際求職面試中的解題能力幫助有限。
- 理論部分又不夠嚴謹完整,整體偏向「學了一個寂寞」。
班級選擇建議:
- 呂班:適合有一定基礎(如高中競程經驗)且不追求特別扎實學習的學生。
- 黃班:雖然作業難度高,但適合追求扎實學習且對理論感興趣的同學。
計算機網路
- 授課老師:周承復
- 學分 : 3
- 甜度 : 9.8/10
- 涼度 : 5/10
- 會不會再修 : 下輩子一定再修
- 課本 : Computer Networking a top-down approach, 8th edition
- 投影片:課本作者投影片加一點點自己的改動
- 評分方式 :
- 作業(Homework *4, paper reading * 1):20 %
- Socket programming Project phase 1 & 2: 35 % ((40+65)/100 with bonus 25)
- Midterm : 20 %
- Final : 25 %
- Class participation : 5 %
- 修課心得 :
課程概述
我個人感覺單班計網是大甜課,周承復教授看起來就像公園很有精神的阿北。上課基本上 follow 課本作者 Jim Kurose 的簡報,因此教學上可能稍顯無聊。教授說話經常重複某些固定句子,所以聽起來會吃力一些。
考量到本學期的課業負擔,我後半學期選擇直接觀看 Jim Kurose 的網課。這位教授不僅有名,還曾在 Wired 教小朋友,非常有趣。
除了課本內容,周教授還補充了 Banyan Networking 和 TCP Throughput Formula。只要有做考古,基本上都能應付考試。但因為課程壓縮到 16 週,Link layer基本上教不到。以下是本學期的進度規劃:
課程進度
週數 | 內容 | 作業 |
---|---|---|
1-5 周 | Chapter 1 + Paper Reading | - |
6-7 周 | Chapter 2 | HW1 |
第 8 周 | Midterm | - |
9-11 周 | Chapter 3 | HW2 |
12-13 周 | Chapter 4 | HW3 |
第 14 周 | Chapter 5 + Guest Lecture | HW4 |
第 15 周 | Guest Lecture | - |
後半學期進度明顯加快,有些許「飆車」的感覺。Paper Reading 的文章為簡介 Internet 的發展,內容雖然有些概念對初學者陌生,但對課程有很好的貫穿效果,且完成作業基本都能拿到分數。
課程亮點
計網會與CS領域其他相關概念的結合
- Chapter 1:講解原理時會提到 Queuing Theory,像 Haliday 的普通物理題目。
- Chapter 2:會引用 SP 的 atomic 概念和 pipelining。
- Chapter 3:介紹設計 Protocol 時會用 FSM,並以 Sliding Window 實現 Go-Back-N。
- Chapter 4:Switching Fabric 講解 data bus/memory/crossbar,涉及平行化概念。
- Chapter 5:介紹 Routing Algorithm,如 Dijkstra 和 Bellman-Ford。
有這些先備知識讓人更能理解網路運作,並連結到系統設計課中的概念。
作業與專案
- 作業:一共 4 次,內容多取自課本,基本上有寫就有分,批改標準不嚴苛。
- 專案:
- Phase 1:設計一個 Chat Room,實現登錄登出功能。可以參考《APUE》的進階方法,加入 Congestion Control(算法?),完成後需上傳 Demo 至 YouTube。
- Phase 2:在期末完成,需實現:
- Multithreading Server
- Real-time Chat Room
- File Transfer
- Audio/Video Transfer
專案與系統設計課內容高度重疊,尤其是 Thread Pool。
專案批改只需功能與說明清楚即可,不設自動 Judge 系統,難度適中,基本三天可完成。
期中期末考
- 考試前會公佈近年考古,並有大量重複題。課本習題較多且分散,需自行取捨是否投入時間。
- 考古題以外的內容多來自課本,偶爾有有趣的理論題。若準備充分,A+ 並不難拿。
個人感受
- 計網是一門讓人驚喜連連的課程,尤其對曾學過系統設計課程的學生非常友好。
- 助教非常親切,作業延期也較為彈性,讓學生在課業壓力中稍感輕鬆。
- 由於課程甜度高,導致加簽難度極高,今年只抽中三個大二生。
自動機與形式語言
- 授課老師:林忠瑋
- 學分 : 3
- 甜度:7.5/10
- 涼度 : 9/10
- 會不會再修 : 不會
- 課本 : Introduction to the Theory of Computation by Michael Sipser
- 投影片:自製投影片+錄影(沒有剪輯且全英文)
- 評分方式:
- 第一次定期考: 30 %
- 第二次定期考: 30 %
- 第三次定期考: 40 %
- 修課心得:
修課動機與背景
我會修這門課,除了被蠱惑之外,還因為上學期修了林忠緯的 DSDL(非常好的課程),被 Finite State Machine (FSM) 深深吸引,所以選擇了他的班。
林忠緯的教學在資工系被認為是 S-tier,加上 DSDL 有影片剪輯與完全不用到課堂的設計,整體又甜又香。
然而,自動機課程不同於 DSDL,是 會切等第 的課程。這是林忠緯第二次教授這門課,因此不像 DSDL 一樣有很多考古題可以參考。此外,林忠緯的考題經常出現一些讓人抓狂的細節題目(例如:1 不能是一個 set,Alphabet 必須是 finite 等),所以對學生來說不算特別友善。
教學風格
- 專業背景:林忠緯不是自動機專業,因此在課堂上無法提供太多計算理論的深入概念,也不會考很酷的數學題。
- 授課語言:全英文授課,雖然教授曾在 Berkeley 擔任過 TA,但他的英語表達略顯不流利。不過,這是第二次教學,能感受到他的進步。
- 課程重點:課程中教授的考卷設計,前半部分基本是基礎題(但基礎不等於簡單),後兩題則是較難的防破台題。
- 學生學習方式:大多數修課同學選擇觀看錄好的影片,效率較高,加上這門課停修成本低,適合對時間有限的學生。
課程優缺點
優點:
- 對 FSM 感興趣的學生來說,自動機以數學的方式呈現理論,讓人感到有趣。
- 本課程可以學到 Turing Machine 的 Undecidability 停機問題,可以用來解釋 哥德爾不完備定理。
缺點:
- 教授較少解釋數學物件的意義,可能讓人感到缺乏深入理解。
- 表面上使用了正式的數學符號,但證明過程並不嚴謹 ,例如你會Construct一個Machine但不會證明正確性。
- 由於課程壓縮成 16 週,有許多章節未涵蓋,無法提供完整的學習體驗。
- 第一堂課教授坦言,這門課在校友票選中屬於「最無用的課程」之一,對軟體工程師來說更多是刷 GPA 的工具。
比較與建議
與其他班級比較:
- 如果重新選擇,我可能會選擇 林智仁班,雖然難度略高,但內容更加經典且考古題充裕,考試更為可預測。
個人經歷:
- 前兩次期考,我因 State Minimization 的問題耗時過多,導致最後一刻才完成。
- 減少 state 時需要避免設計出錯的 Turing Machine 或 Finite State Machine,但教授未給具體的指導(例如告訴你有幾個state),考試中容易陷入對答案的懷疑。
- 林忠緯班的題目整體而言不算特別難,甚至前幾題偏簡單,但想拿 A+ 的挑戰較高。
資工系選修
機器學習
- 授課老師:林軒田
- 學分 : 3
- 甜度:6.5/10
- 涼度 : 7/10
- 會不會再修 : 不修
- 課本 : Learning from Data: A Short Course by Yaser Abu-Mostafa
- 投影片:自製投影片+直播錄影(沒有剪輯且全英文,coursara上有中文剪輯版)
- 評分方式:
Homework Score:
1.5 * best homework[1-7] + 0.5 * worst homework[1-7] + other homework[1-7] + hw0
Final Score:
kaggle score + report score
Raw Score:
ceiling(hw score + final score)
Raw score is translated to a [0-100] translated score by the following table:
Threshold | Translated |
---|---|
>= 2200 | 95 |
>= 2015 | 87 |
>= 1940 | 82 |
>= 1840 | 78 |
>= 1650 | 75 |
>= 1575 | 70 |
>= 1490 | 68 |
>= 1420 | 65 |
>= 1320 | 60 |
>= 0 | 50 |
- 修課心得:
當初選擇這門課,主要是因為林軒田教授在臉書提到,明年可能不再開設機器學習課程,這讓我決定儘早修習。其實我原本計劃大三再修,等當時的課業負擔減輕些,但因擔心大四修這門課會顯得奇怪,便提前下決心加簽。
選課過程
加簽的過程相當痛苦,直到最後一輪才成功,那個機率實在低得難以置信。不過幸運的是,最終得以參加這堂課(簽到了臺大分配的 400 個名額之一)。分組方面,一開始與學長們組隊,但由於一位學長因課業負擔過重退課,導致小組解散。最後,我與鄭又齊及 WhiteFox 成為組員,他們超級carry在我需要在那週交出3個final project的情況下順利完成。
課程內容
在課程開始前的暑假,我就先修了一些 Coursera 上的《機器學習基石》和《機器學習技法》。剛開始學時覺得內容新鮮有趣,但學期進行到中後段,因為忙於各種作業與死線,很難靜下心來享受學習,甚至無暇閱讀補充資料。我基本上沒有實際參與實體課堂,而是觀看錄影學習,我認爲這樣更有效率。
課程在設計上偏重數學推導,但我認為關鍵性說明不足。例如,對 VC dimension 的介紹,花了很多時間解釋概念,但當需要應用時,卻提到「不一定每個人都需要學這些詳細數學」。這種設計讓我覺得,作為資工系選修課,這門課的技術深度不足,偏introductory。我理解這門課的受眾是來自不同背景的 600 多名學生,因此設計上可能需要取捨,但在數學內容上,或許不需要這麼深,反而應加強模型的應用和實作細節。關鍵的問題是那些數學並沒有獲得妥善的應用,如果只是爲了說明一個道理或哲學其實不需要那樣的數學。
作業與評分標準
作業分為兩部分:
- 前半部分多為微積分與機率的綜合題,難度不高,最後幾題是程式題,也不算困難,使用 ChatGPT 即可完成。不過,有些作業需要提早動手,否則臨近死線可能會導致程式執行不完。
- Coding report 的評分相比去年更嚴格,尤其在 findings 部分,如果內容被認為不夠深入,會被評為 trivial findings。此外,有些助教會對 minor mistake 非常較真。
課程後期加入了 clarity bonus(額外 2 分),但助教將滿分設為 22 分而非 20 分,導致成績顯示上看起來滿江紅,基本上這樣的方式就是鼓勵內卷。整體評分標準與林軒田教授課程的一貫風格相符:95 分以上才會拿到 A+,所以完成每次的bouns是必要的。
Final Project
Final project需要針對過去的 MLB 比賽數據,訓練一個能預測 2024 賽季的模型。打 Kaggle 時,有隊伍達到了 90% 以上的正確率。我們小組最終report採用了 HistGradient Boost、SVM、Logistic Regression、Ensemble Learning 四種模型,並進行了資料工程。
然而,棒球作為一項隨機性高的運動,機器學習通常難以達到 60% 以上的準確率。有隊伍在資料處理上,利用勝率變化直接推測結果,這雖然有效,但並不符合機器學習的哲學。這種方法暴露了題目設計的漏洞,卻因為某些助教的評分標準被鼓勵,導致我們的期末分數不理想。
總結
這門課沒有考試,但作業中包含大量爲了出題而出題的微積分內容。整體學習過程並未如預期般扎實,或許需要額外投入每週 30 小時以上,才能深入掌握。我希望未來選修這類專案課時,能適當減少其他課程的負擔,為專案投入更多時間。如果從來一次估計是不會再修了
數學系必修
線性代數
- 授課老師:楊一帆
- 學分 : 4
- 甜度 : 7.5/10
- 涼度 : 9.8/10
- 會不會再修 : 會
- 課本 : Linear Algebra, 4th Edition by Stephen H. Friedberg, Arnold J. Insel, Lawrence E. Spence
- 寫板書
- 評分方式:
- Homework(14次取最好的10次,各2 %): 20 %
- Quiz (2次) : 20 %
- Midterm : 30 %
- Final : 30 %
- 修課心得:
修課背景與動機
由於大一時旁聽了 蔡國榮教授的線性代數導論,在其優質教學下打下了堅實的基礎,加上高一時已完整看完 Gilbert Strang 的線性代數,以及高二、高三選修的兩次課程,我已具備相當的工程線代基礎。因此,這學期修這門課主要是為了補學分。
基於以上原因,這門課對我的 loading 主要集中在作業與期考準備上。此外,這次的課程也幫助我填補了過去忽略的一些細節,特別是在代數相關主題的理解上更為深入,例如:
- Quotient Space
- 用 Symmetric Group 解釋的 Determinant
- Rational Jordan Form
教學內容與課程特色
教材與教學方式:
- 教授使用 Friedberg 的教材,並採用傳統數學系課程的板書教學方式。
- 整體進度比線性代數導論的進度稍慢,但內容更注重細節與理論推導。
作業安排:
- 作業每週五公佈,隔週三繳交,主要來自 Friedberg 的習題。
- 難度適中,能補充或推廣一些有用的定理,概念覆蓋全面,沒有太偏的題目。
- 每次作業都包含 Bonus 題,內容多為較偏代數或高難度的挑戰題,能學到更多延伸知識。
- 助教批改非常嚴謹,會糾正 LaTeX 語法並附上有趣的評論,但給分寬鬆,對 minor mistake 只扣少量分數。最終成績取最好的 10 次作業。
助教陣容:
- 助教包括 吳尚昱 和 許哲瑋 等數學系大佬,問問題能學到很多。
- 雖然週五的 TA Hours 我因為早起困難常錯過,但下學期會嘗試多參加與助教討論。
考試分析
- 小考:
- 小考題目難度不高,基本來自作業和定理的基礎題目。我甚至覺得線性代數導論的小考更具挑戰性。
考試類型 | 平均分數 | 標準差 | 第一四分位數 | 中位數 | 第三四分位數 | 我的分數 |
---|---|---|---|---|---|---|
期中考 | 49.32 | 28.05 | 25 | 46 | 73 | 98/100 |
期末考 | 80.60 | 24.41 | 65 | 84 | 100.5 | 100/120 |
期考
- 期中考題目以基礎理論與應用為主,對於具備扎實基礎的學生相對友善。我感覺題目設計合理且難度適中。
- 期末考題目相比期中有所簡化,更偏向基礎內容。我體感覺難度適中且未出現過於刁鑽的題目。
學期成績:
- 學期成績採用比例切分,不以 NTU COOL 顯示的成績直接計算等級,需特別注意。
個人感受
學習收穫:
- 這次課程幫助我加深了對線代某些細節的理解,特別是在代數相關主題上有了更深入的認識。
- 每次作業的 Bonus 題設計得非常有趣,讓我學到了許多超出教材範圍的知識。
助教表現:
- 助教在批改時會附上細緻的評論,對學習有很大幫助。
- 雖然我因為時間問題沒能充分參與 TA Hours,但下學期希望能多花時間與助教互動。
課程挑戰:
- 由於基礎紮實,這門課對我來說相對輕鬆,但對需要更多先備知識的同學可能會稍有挑戰。
線性代數這門課程對於已具備基礎的學生來說是一門「甜課」,特別是作業設計合理、期考題目偏向基本題,整體難度適中。同時,通過助教與作業設計也能學到不少延伸知識,對數學愛好者或想打好基礎的學生來說非常值得修習。
代數導論
- 授課老師 : 李庭諭
- 學分 : 4
- 甜度 : 8/10
- 涼度 : 5/10
- 會不會再修 : 會
- 課本 :
- Joseph H. Silverman, Abstract algebra
- Dummit and Foote, Abstract algebra
- 寫板書
- 評分方式 :
真 Final := Final + 同樂會加分
MAX( 真 Final, 真 Final * 0.5 + Midterm * 0.5, 真 Final * 0.5 + Midterm * 0.3 + 作業總成績 )
- 修課心得:
雖然這是一門數學系的必修課,但外系學生的比例相當高,其中不少來自資工系(這學期還揪了科學班)。數學系中較優秀的同學大多選擇榮譽學程的代數,而我考量到這學期的課業負擔以及拿到較高分數的機會,最終選擇了代數導論。
課本與教學內容
課本採用:
本課程使用了一本新的教科書 Silverman。這本書的難度大致符合大學部水準,但也存在以下問題:- 簡陋:
很多重要概念被直接丟進習題中,缺乏詳細講解。例如 Group Isomorphism Theorems 應該要在課堂上熟練證明,但教授並未講解,需讀者自行修習。 - 編排跳躍:
Group、Ring 和 Field 被分成三階段講解,但對初學者來說,還沒掌握 Group 的定理就直接進入 Ring,會感到主題轉換過於頻繁。 - 炫技式證明:
像 Sylow Theorem 的後兩部分使用了 Double Coset,缺乏 Motivation,且證明方式不 reusable 或 general。
課本對 An 是 Simple 的證明耗費了近 5 頁計算,過於繁瑣。 - 後期轉換教材:
課程後期逐漸以 Dummit & Foote 為主基調,這本書的例題與應用更為全面,但也要求學生具備更高的自學能力。
- 簡陋:
教授教學:
教授基本遵循 Silverman 的章節進行教學,前半學期會挑選課本習題並分類,後半學期的習題設計顯得隨意。基礎內容熟練度還未達標時,就開始挑戰進階題目(多為 Dummit & Foote 的題目)。
課堂與助教
助教課:
- 助教陣容非常豪華,前半學期邀請學生上台講解習題,後半學期由助教直接授課。
- 每次課程會有 Bonus 題,但很多 Bonus 題需要使用範圍外的定理,對大多數同學而言挑戰較大。
同樂會:
- 校慶當天舉辦了同樂會,讓同學組隊挑戰題目,但為了實力平均,我和期中考前六名的同學被要求拆分到不同組別。由於整學期忙於課業(如 SP 作業),幾乎沒時間認識新朋友,最終無法參與完全樂會,損失了 10 分加分。
考試與助教表現
考試內容:
考題設計並不算難(有鑑於是導論課),多為基礎性內容。然而,由於教學上的缺失,考試中容易出現「初見殺」的情況。助教批改:
助教對考卷批改相對寬鬆,例如期中考我預估只有 70/120,但最終得分為 98/120。助教非常幽默,不僅在考卷上緊跟時事,連 NTU COOL 公告也常讓人會心一笑。
不過,助教對作業批改較為嚴格,並附留言指出學生的問題。
個人學習經歷
開學後,我在這門課上花的時間並不算多,主要精力都放在完成作業。隨著作業量的增加和疲乏感的累積,我從全題完成變成只選六題來寫,明顯未達到課後預期的學習時間。但儘管如此,我的兩次期考成績都不差,這應該歸功於之前紮實的基礎。
整體感受與展望
代數導論的教學安排對於初學者並不友好,但考試設計相對基礎,算是GPA友善。然而,由於課後學習的需求較大,如果沒有足夠的時間投入,可能會導致新進度學習的效果不佳。
這門課是我本學期loading炸裂的主因之一。期末時我曾考慮下學期是否繼續修,但同時段沒有更好的選擇,所以應該還是會繼續修習。下學期希望能花更多時間在代數導論上,以彌補這學期的不足。
數學系選修
偏微分方程一
- 授課老師:陳俊全
- 學分 : 3
- 甜度 : 9/10
- 涼度 : 7.5/10
- 會不會再修 : 下輩子一定再修
- 課本 :
- L. Evans, Partial Differential Equations, 1998 AMS.
- F. John, Partial Differential Equations, 1982 Springer-Verlag New York Inc.
- D. Gilbarg and N. Trudinger, Elliptic Partial Differential Equations of Second Order, 2001 Springer-Verlag.
- 寫板書
- 評分方式 :
- Homework 25 %
- Midterm 35 %
- Final 40 %
- 修課心得 :
教授與教學風格
之前我修過俊全老師的分析導論,非常認同他「寧可進度慢也不願意漏東西」的教學理念。雖然很多學生覺得他的教學進度緩慢,且「俊全式幹話」特別多,但我認為這樣的教學頻率非常適合我這個爆 loading 的學期。如果他以後再開課,時間不衝突的話,我一定還會選修。
教學進度
本學期的課程進度如下:
週數 | 教學內容 |
---|---|
1 Week | Introduction to PDE |
2 Week | Important PDE |
3-9 Week | Laplace Equations |
8 Week | Midterm |
10-14 Week | Heat Equations |
15 Week | Wave Equations |
16 Week | Final |
課程並未如預期進入 Non-linear PDE,但教授教學紮實,把每一個定理都講到位。
課程特色
課程定位:
作為研究所課程,假設學生具備實分析的基礎。不同於大學部的 ODE/PDE 專注於解方程,本課程更接近分析的範疇,這正是我的興趣所在。參考教材:
教授主要依據 Evans 進行教學,但會使用自己的理解方式來教授證明。基礎要求:
雖然不需要非常深入的分析知識,但對以下概念需要熟練掌握:- 基本拓樸
- Uniform Convergence
- Lebesgue Dominated Convergence Theorem
- ε-δ 證明方法
上課內容:
教授會用他的理解方式來詮釋定理,不僅僅是直觀證明,還會講解背後的數學邏輯,例如:- Heat Equation 的 Maximum Principle 為什麼不是整個 Parabolic Cylinder。
- A’lambert Equation 為什麼會出現某些特定的term。
- Green’s Function 的設計原理。
作業與考試
作業:
- 助教會從三本書中選題,對大學部學生來說偏難,但對研究生則相對簡單。
- 大約每兩週有一次習題檢討。
- 作業批改寬鬆,只要有交幾乎都能拿 100 分,助教會在 COOL 的留言區註解證明錯誤。
考試:
- 考題友善,內容主要來自於上課定理和作業題目。
- 考試可以自選題目,不需要全答,靈活性高。
- 助教批改邏輯正確就不扣分,對Minor mistake非常寬容。
個人感受
學習體驗:
- 我高中時期讀過 Walter Strassen 的 PDE,平時也喜歡讀分析,所以修課相對輕鬆。
- 上課中提到一些 Functional Analysis 和實分析的概念時,教授會直接說明,對基礎較好的學生非常友好。
學到的知識:
- 每次上課都能學到很多有趣且酷炫的內容,例如:
- Heat Equation 的 Mean Value Property。
- A’lambert Equation 的解釋。
- Green’s Function 的應用。
- 每次上課都能學到很多有趣且酷炫的內容,例如:
適合的學生:
- 如果是程度中等、先備知識不多的學生,這門課能提供豐富的學習體驗。
- 如果是研究生,對課程期待是 Research Level 的內容,可能會覺得不夠深入。
這是我本學期最喜歡的課程之一。教授的教學紮實且富有個人特色,每次上課都能感受到他對數學的深入理解。對於分析有興趣的話,這是一門值得修習的課程。