Course Reviews

Search and browse course reviews by school, semester, course, or professor.

顯示全部課程心得

2026 春季 (114-2)

臺灣大學

2026 年春季修課心得

電腦系統專題

  • 學分:3 學分
  • 授課教師:張原豪
  • 學期成績:A+
  • 上課內容:

      這門課的內容主要介紹研究方法與論文閱讀技巧,不過除了前幾週的課程之外,其餘大部分時間皆由同學輪流進行論文報告。由於時間因素,本學期每位同學只需上台報告三篇論文。學期成績的計算方式如下:

    • 出席(14%):本學期共有 14 週安排同學報告,因此需出席這 14 週並聆聽其他同學的報告。出席情況以投票紀錄為準,每缺席一次扣總成績 1%。

    • 口頭報告(30%):需進行三次論文報告,每次佔總成績 10%。原則上只要完成報告,通常不會額外扣分。

    • 閱讀心得(16%):需以投影片形式繳交八篇論文的閱讀心得,每篇佔總成績 2%。論文需選自近三年的頂級國際會議。

    • 期末書面報告(20%):將八篇閱讀心得加以整理與統整,並進一步探討可能的研究方向。

    值得一提的是,上述項目加總後僅占總成績的 80%,剩餘的 20% 並未特別說明,推測可能是作為彈性給分,或者單純是某種「送分」。

  • 心得:

      這門課的主要目的是培養新進研究生閱讀、整理與分析論文的能力。透過這門課,我也因此更加認真地閱讀論文,從中獲益良多。不僅讓我對研究領域有了更廣泛且更深入的認識,也為日後持續閱讀與進行研究奠定了良好的基礎。

自然語言處理(NLP)

  • 學分:3 學分
  • 授課教師:陳信希
  • 學期成績:A+
  • 上課內容:

      這門課主要介紹現代自然語言處理的基本概念與技術,內容涵蓋 tokenization、embedding、N-gram language model、neural language model、large language model、Transformer、post-training、masked language model,以及 multi-LLM agent 系統等主題。整體而言,課程內容相較於「深度學習之應用」來得較為基礎,但在 multi-LLM agent 系統的探討上則更加深入。這門課的評分標準主要包含以下幾個部分,不過各項成績所占的總比重似乎並未明確說明,最後也沒有公佈所有項目的成績。

    • 期中考與期末考:以問答題為主,考試範圍包含課堂內容;其中期末考除了授課內容之外,也涵蓋其他同學的論文報告內容。

    • 論文閱讀報告:以分組方式進行,需報告近兩年自然語言處理領域的頂級會議論文。此部分的成績又細分為三項:25% 為向助教進行演練報告的表現,50% 為正式上台報告的表現,其餘 25% 則為書面投影片的品質。

    • 期末專題報告:以分組方式針對一個公開的大方向進行探討。本學期的主題與情緒相關,專題內容包含一份提案以及兩次與助教的討論。評分方式分為兩部分,其中 45% 為與助教討論時的表現,剩餘 55% 則依據最終繳交的書面報告評分。

  • 心得:

      這學期的課程內容大多與「深度學習之應用」有所重疊,因此學習起來相對輕鬆。不過也因為許多內容與過去接觸過的知識相近,課堂本身帶來的新知相對有限。儘管如此,學期後半段著重介紹 LLM agent 的相關應用,讓我更了解當代大型語言模型的發展趨勢與實際應用方式。

      我認為這門課收穫較多的部分,主要來自期末的論文閱讀報告與期末專案。在論文閱讀報告中,我們選擇了一篇利用 LLM agent 進行 RAG reranking 的研究,透過閱讀與整理這篇論文,我更了解 LLM agents 在應用層面的多樣性。除此之外,在期末專案中,我們選擇驗證情緒對大型語言模型推理能力的影響,也讓我對 LLM 行為分析與實驗設計有更進一步的認識。此外,這次期末專案中有相當多程式碼是透過 LLM 輔助生成與修改完成的,因此這也可以視為我實際使用 LLM agent 協助研究與開發的一次嘗試。透過這個過程,我更具體地體會到 LLM 在程式撰寫、除錯與實驗流程建立上的實用性。

智慧型汽車導論

  • 學分:3 學分
  • 授課教師:林忠緯
  • 學期成績:A+
  • 上課內容:

      上課內容涵蓋智慧型車輛系統的各個組成面向,包括通訊、感測(sensing)、感知(perception)以及規劃(planning)等主題。學期初較著重於系統設計與時序分析(timing analysis),因為這些議題與系統安全性息息相關。而在後半學期,課程則介紹了 Intersection Management,探討如何進行路口通行的排程(scheduling),以及相關衝突檢測演算法的設計。本學期的評分方式如下:

    • 作業(10%):共有兩次作業,每次佔總成績 5%,內容主要讓學生熟悉課堂中介紹的演算法與方法。

    • 期末考(50%):於第 11 週舉行,題型包含排序問題、是非題以及分析與推導題。

    • 期末專題口頭報告(10%):需報告期末專題的目前進度,或提出研究構想與實驗規劃。

    • 期末專題書面報告(30%):為期末專題的最終成果報告,主題可從論文閱讀與調查(survey)、系統實作(implementation)以及研究探索(research)等方向切入,也可以結合多種形式進行。

  • 心得:

      這門課的內容與「系統專題研究——物聯網中介軟體設計」有一定程度的重疊。不過,兩門課的側重點仍有所不同:這門課較偏向數學理論與模型方法的介紹,而系統專題研究則涵蓋較多系統設計與實作細節。相較之下,我當時對系統專題研究中的具體內容掌握得並不算完整,因此這門課也讓我有機會重新整理相關概念。在期末報告中,我們選擇研究如何透過 Vision Language Model(VLM)進行交通安全理解。具體而言,我們需要訓練一個模型,使其能針對交通影片產生與交通安全情境相關的標題,藉此評估模型對影片中事件與風險的理解能力。此外,這次報告中的主要程式也大多是透過 LLM agent 輔助生成與修改完成的,因此這也是我實際使用 LLM agent 協助專案開發的一次經驗。

2025 秋季 (114-1)

臺灣大學

2025 年秋季修課心得

記憶體與儲存系統

  • 學分:3 學分
  • 授課教師:張原豪
  • 學期成績:A+
  • 上課內容:

      本學期課程主要介紹各種記憶體與儲存系統的管理與運作原理,內容涵蓋多種儲存技術,包括快閃記憶體(Flash Memory)、DRAM、Racetrack Memory,以及傳統硬碟(HDD)與固態硬碟(SSD),並延伸討論未來可能的儲存技術(Future Storage)。除了各類儲存系統的架構與管理方式外,課程也介紹了不同類型的資料庫系統,包含以樹狀結構為基礎的系統,以及採用雜湊(Hashing)機制的資料管理方法。

      本課程的評分方式主要包含以下三個部分:

    • 程式作業(40%):本學期共有四次作業,需要閱讀 SSD 模擬器 MQSim 的程式碼,部分作業可能需要修改程式碼,並透過調整模擬參數進行實驗,最後分析與討論實驗結果。

    • 期中考(25%)與期末考(25%):考試範圍為該次期考前的課程內容,題型為問答題,共 20 題,每題 5 分。

    • 課堂表現(10%):此部分的具體評分方式未特別說明,推測可能作為老師彈性調整分數的依據;而我在此項目中最終獲得約 11% 的成績。

  • 心得:

      印象中在學期初時,我是比較晚才決定要修這門課。修完之後才發現這門課能學到相當深入的知識,也能對這個領域建立不錯的整體理解。老師在上課時也會介紹並講解相關領域較成熟的研究論文,使得課程內容不僅限於教材,而能延伸到實際研究成果。整體而言,這門課讓我學到許多東西,而作業的份量也不算太多,負擔相對適中。

深度學習之應用(ADL)

  • 學分:3 學分
  • 授課教師:陳縕儂
  • 學期成績:A+
  • 上課內容:

      本課程主要介紹如何利用現代深度學習(Deep Learning)技術處理自然語言相關任務。內容從語言模型(language model, LM)的基礎發展談起,包括循環神經網路(RNN)、tokenizer 以及各種 Transformer 架構。接著探討多種提升模型表現的訓練方法,例如預訓練(pretraining)、後訓練(post-training)、提示調整(prompt tuning)、以及模型調適(adaptation,如 LoRA)等等,以及基於強化學習的方法(RL-based methods)。此外,課程也簡要介紹其他相關主題,例如利用外部資料庫提升模型正確性的檢索增強生成(RAG)、自然語言生成(NLG)、語言代理(language agent)、推理能力(reasoning)以及安全性(safety)等議題,使學生對這些方向有初步的認識。

      這門課的評分方式如下:

    • 三次程式作業(60%,各 20%):主要需要透過微調模型(fine-tuning)來完成指定任務。例如,作業一需要訓練兩個任務的模型,包含段落選擇(paragraph selection)與選擇題問答(multiple-choice QA);作業二則需使用量化(quantization)與 LoRA 方法進行指令微調(instruction tuning),讓模型學會特定指令,例如文言文翻譯;作業三則需要微調檢索模型(retriever)與重排序模型(reranker),以提升系統在檢索增強生成(retrieval-augmented generation, RAG)任務上的表現。每次作業除了需要繳交程式碼與訓練完成的模型,並達到一定的效能標準外,也需要撰寫實驗報告。此外,每次作業也設有 2% 的加分作業。

    • 課堂參與(5%):主要為參與課程安排的演講並撰寫心得。課程共安排兩次演講,只需完成其中一次即可獲得此部分的分數。

    • 期末報告(35%):期末需要完成一個大型專題報告,以分組方式進行,每組 4–6 人。專題題目為對對話式語言模型進行越獄攻擊(jailbreak)。具體而言,會提供大量具有惡意意圖的提示詞(prompt),我們需要設計一種自動化方法,將其轉換為新的提示詞,使得新的提示詞在防衛的模型(guard)看來是安全的,但仍能誘使對話式語言模型產生不當或不安全的回應。此部分的成績由 60% 的系統表現成績、40% 的報告與簡報,以及 10% 的問答及討論組成,最後再轉換為 100% 的分數。

  • 心得:

      這門課是我為了進一步了解當前熱門的大型語言模型(LLM)領域而選修的。透過這門課,我對 LLM 的內部架構,以及近 10 到 20 年語言模型(language modeling)如何從循環神經網路(RNN)發展到以 Transformer 為基礎的深度學習模型,有了基本且系統性的認識。課程後半也討論了 LLM 的一些重要議題,例如安全性(safety)、偏見(bias),以及較新的研究方向,如推理能力(reasoning)與語言代理(language agent)。由於此領域發展快速,老師在課堂上也介紹了許多發展過程中的重要論文與核心概念,使我們能理解整體的研究脈絡。除了理論內容扎實之外,作業的實作也具有挑戰性,常需要閱讀 Hugging Face 的文件或範例程式碼,並在此基礎上進行修改與改良。

      在這門課中,最讓我有成就感的是期末報告。我提出了一個有趣的半監督方法(semi-supervised),使模型在沒有額外標註資料的情況下,仍能提升越獄攻擊的能力。雖然這距離真正完成一項研究仍有一段距離,但這次的經驗也讓我感受到,自己在這幾年的學習過程中,逐漸培養出運用所學知識來設計方法並解決問題的能力。

編譯程式設計

  • 學分:3 學分
  • 授課教師:洪鼎詠
  • 學期成績:A+
  • 上課內容:

      本課程主要介紹基礎編譯器的建構原理,其核心功能包含掃描器(scanner)、語法分析器(parser)、語意分析器(semantic analyzer)以及最終的程式碼生成器(code generator)。課程重點在於說明這些模組所使用的演算法與實作方式,並介紹現有的工具與技術。在學習完編譯器的建構方法後,課程進一步探討各種編譯器優化策略,以提升程式碼在執行時的效能。

      本課程的成績計算方式如下:

    • 複習作業(5%):期中考與期末考前一週會布置手寫複習作業,內容涵蓋該次考試範圍的課程內容,且作業題目與考試密切相關。

    • 期中考(25%)與期末考(25%):考試內容為該次上課所學,考試時允許使用任何參考資料,包括網路資源與語言模型。

    • 程式作業(45%):課程共有四次作業,分別要求實作掃描器(scanner)、語法分析器(parser)、語意分析器(semantic analyzer)以及程式碼生成器(code generator)。作業可使用不同的既成工具,如 flex 以及 bison 等。四次作業的分數並非平均計算,而是依序佔 5%、5%、10% 與 15%。

  • 心得:

      這門課是我為了讓自己對系統相關領域有更完整的認識而選修的。我希望了解編譯器是如何被設計與實作的,因為若未來從事較偏硬體或接近底層的系統工作,往往需要具備一定程度的編譯器知識。這門課同時兼顧理論與實作,不僅介紹編譯器相關演算法的運作原理,也讓學生學習如何運用現有工具來協助生成編譯器的各個模組。

      此外,課程的程式作業也具有一定的挑戰性。不過作業可以與同學合作完成,透過分工通常能較有效率地完成任務。另外,每次作業都可以以前一次作業的標準答案為基礎繼續進行,因此不會出現錯誤在多次作業中累積的問題。總體而言,我從這門課中學到了不少新的知識,評分也相對寬鬆,而在實作過程中也確實有所收穫。

電工實驗(嵌入式系統)

  • 學分:2 學分
  • 授課教師:王勝德
  • 學期成績:A
  • 上課內容:

      本課程的內容主要圍繞每週安排的實驗進行。每個實驗都需要撰寫程式,並在 STM32 開發板上依照要求正確執行,最後再向助教展示成果。課堂講授的內容則多為完成實驗所需的背景知識。整體實驗大致涵蓋以下七個主題:

    1. RTOS 與相關 API:了解 FreeRTOS 與 CMSIS 等函式庫提供的 API,並學習如何透過這些工具實現執行緒間通訊(inter-thread communication),以及基本的同步(synchronization)機制。

    2. Serial 通訊:學習如何使用開發板上的 Serial port 與相關函式庫來實現序列通訊。

    3. Bluetooth:介紹 Bluetooth Low Energy(BLE) 的基本協定概念,例如 GATT,並實作相關功能於開發板上。

    4. Wi-Fi:透過 Wi-Fi 建立 TCP socket 或 HTTP 連線。

    5. PWM:介紹 PWM 的基本概念,並利用 logic analyzer 觀察與分析輸出的波形。

    6. DMA 與 Interrupt:了解嵌入式系統中如何透過 DMA 與中斷機制有效取得與處理資料。

    7. DSP:對接收到的訊號進行數位訊號處理(DSP)。課程也會介紹相關函式庫的使用,例如 fixed-point number 的運算,並利用平行化(parallelism)來加速 DSP 計算。

      本課程的成績計算方式如下:

    • 期末考(33%):考試範圍涵蓋整個學期的課程內容,但不涉及實作細節。

    • 期末報告(33%):各組需選擇一個題目,並於第 11 週左右向全班提案。之後每週輪流報告進度,最後展示最終成果。

    • 七次實驗(33%):共七次實驗,每次若僅完成基礎部分,最高可得 85 分;完成加分題則可再額外加 5 到 10 分。

    • 器材維護(1%):包括實驗器材的日常維護與管理。

  • 心得:

      這門課是我在選課時比較猶豫的一門,當初在考慮要選專題研究還是這門課時,最終選擇了後者,當時並不確定這是否是最好的決定。不過在課程過程中,我確實學到了許多實作相關的知識。然而,由於上課時時常分心,並沒有完全吸收課堂內容,這也影響了期末考的表現,使成績未達理想。

      這門課也是我這學期修課中最感到心浮氣躁的一門。主要原因是每週我都想完成實驗的加分題,但有幾週涉及 BLE 相關實作時,測試與調整花費了大量時間,導致我無法充分閱讀後續章節。整體而言,雖然課程內容對我很有收穫,但時間安排與實作挑戰讓學習過程充滿壓力。

總體經濟學上

  • 學分:3 學分
  • 授課教師:朱玉琦
  • 學期成績:A+
  • 上課內容:

      本課程主要介紹一些總體經濟學中的數學模型,核心目標是學習如何透過數學模型分析並預測經濟成長。因此課程會介紹幾個經典模型,包括:

    1. Solow 模型(Solow model):透過資本與勞動等生產要素來描述生產函數(production),並用以分析與預測長期經濟成長趨勢。此外,也會討論其延伸模型,例如加入技術進步(technological progress)與人口成長等因素後的情形。

    2. 消費—儲蓄模型(consumption–saving model):這是一個個體層級的經濟模型,討論個體如何在年輕時期與老年時期之間分配消費,以最大化兩個時期的效用(utility)。

    3. 世代交疊模型(Overlapping Generations model, OLG model):將消費—儲蓄模型與 Solow 模型結合,分析個體的消費與儲蓄決策如何影響整體經濟中的儲蓄率(saving rate)等參數,進而影響長期經濟成長。

      本課程的成績計算方式僅包含三次期考,分別佔 30%、30% 與 40%。每次考試的範圍皆為該次考試前新教授的內容。雖然學期初老師曾表示期末考可能包含前面的範圍,但最終實際考試仍僅涵蓋當次的新內容。

      最終的等第評定方式也與學校的一般標準略有不同,老師會在學期初即公布各等第對應的分數門檻,例如總成績 87 分以上即可獲得 A+。此外,若三次期考成績的加權中位數未達 70 分,老師會將全體成績統一加分,使中位數達到 70 分。整體而言,課程的設計目標是讓超過一半的學生能獲得 B+ 以上的成績(老師設定總成績 70 分即可獲得 B+)。

  • 心得:

      這門課在經濟系中似乎屬於中階課程,相較於「總體經濟學原理」,其目標是以更嚴謹的數學方法來解釋入門課程中介紹過的經濟模型。由於我本身已有一定的數學基礎,因此這門課對我而言反而有些像是一門原理課。透過課程內容,我可以了解早期經濟學家是如何利用數學模型來解釋經濟成長,也因此對這個領域的基本語言與思考方式有了初步的認識,讓未來若進一步接觸經濟相關研究時,能更容易理解其內容。

2025 春季 (113-2)

臺灣大學

2025 年春季修課心得

計算機網路實驗

  • 學分:2 學分
  • 授課教師:張傑帆
  • 學期成績:A+
  • 上課內容:

      這學期的課程內容主要著重於網路操作的實作訓練,因此課堂上多數時間是為了各項實驗進行相關的先備知識介紹。助教會在每次實驗前進行說明,協助我們理解實作步驟與目標。本學期共進行了三個主要實驗,其內容分別為:

    1. 利用 iptables 架設防火牆,並設定符合特定條件的封包過濾規則。

    2. 架設 RADIUS Server,實現使用者的流量管控與連線時間限制,同時學習無線基地台(AP)的設定。此外,也需設計一個網頁介面供管理員使用。

    3. 架設 MAG 與 LMA 伺服器,使連線裝置可透過 AP 獲得靜態 IPv6 位址,並在 ESS 覆蓋範圍內具備移動性支援功能。

      這些實驗操作相當繁瑣,往往需要數小時甚至十多小時的研究與測試,每個實驗除了完成指定任務外,還需撰寫結報,紀錄操作過程與問題分析。每次實驗的展示與結報分別佔學期成績的 10%。

      此外,學期末需完成一份期末專題報告,內容為實作一個與網路相關的系統或應用。舉例而言,可以是一個行動應用程式(App)、一款簡單的網路遊戲,或是在原有防火牆基礎上加入 LLM 模型進行智慧型封包判斷等進階應用。此期末專題需繳交書面報告並進行實作展示,成績占學期總成績的 40%。

  • 心得:

      這門課主要讓我們實作許多我原本已有基礎的網路知識與原理,例如 RADIUS Server 的設定與操作就讓我覺得相當有趣,也與實際的網路管理密切相關。不過,像是 IPv6 的移動性功能,則相對較少看到實際應用的場景,因此對我而言實作上的成就感稍低一些。

      這學期我收穫最多的部分,其實來自期末專題。我們實作了一個具備綜合行事曆與 When2meet 功能的應用程式,作為協作與行程協調的平台。過程中,我學習使用 Node.js 與 Express 架設後端服務,同時也使用 React 開發前端介面,並熟悉了多種 JavaScript 開發相關的函式庫與工具。這份專題讓我在實作中快速累積了許多 JavaScript 技術經驗,也提升了我整合前後端系統的能力。

高等計算機網路

  • 學分:3 學分
  • 授課教師:逄愛君
  • 學期成績:A
  • 上課內容:

      本學期的課程內容主要補足上學期《計算機網路》課本中未詳述的章節,涵蓋以下三個主題:

    1. 無線網路:包含行動通訊網路(Cellular Network)與無線區域網路(Wireless LAN, 即 Wi-Fi)等技術,介紹其架構、運作原理與相關標準。
    2. 網路安全(Network Security):探討如何確保訊息的機密性與完整性,包括加解密技術、訊息認證機制、虛擬私人網路(VPN)等的基本概念與實作方式。
    3. 多媒體網路(Multimedia Networking):分析語音與影像等即時傳輸資料的特性,討論在網路環境中如何透過特定的協定與技術,滿足延遲、頻寬與品質等需求。

      而成績評量部分則分為三個主要項目:

    • 期末考試佔 40%,評量學生對課程內容的整體理解與掌握程度。
    • 期末專題報告佔 30%,包含系統實作、書面報告與展示說明等。
    • 課堂出席佔 30%,其中 10% 為平時上課的出席情況,另外 20% 則來自期末報告展示當天的參與與表現。
  • 心得:

      當初選修這門課,是因為過去課程安排中包含許多實作性的網路練習,對我而言這樣的動手操作非常有吸引力。不過本學期的課程安排有所調整,將重點轉向閱讀網路相關論文,並以此作為期末報告的基礎,與我原本的預期有所落差。雖然少了實作練習讓我感到有些失望,但透過課堂內容與報告準備,我仍然學習到了許多網路相關的基本觀念與原理,對未來進一步理解與應用網路技術有很大的幫助。

進階網路管理與系統管理(ANASA, NASA 3階)

  • 學分:2 學分
  • 授課教師:蔡欣穆
  • 學期成績:A+
  • 上課內容:

      本學期並未採傳統授課方式,而是以實作為主,要求我們在系上提供的英業達機器上,建置一套內部的高效能運算(HPC)服務。每個小組需負責整個系統中某個子服務的建構與維運。例如,我所屬的儲存組負責在整個叢集(cluster)上部署分散式儲存系統,並將其透過 NFS 對其他節點進行分享,以供計算資源使用。至於使用何種作業系統與底層技術,則由各組根據需求與相容性自行評估與選擇。此外這門課除了蔡教授外,陳尚澤、黎士瑋、及黃上恩等老師共同授課。

      成績評量方式分為以下幾個項目:

    1. 期中展演與報告佔 25%,需要在報告前預錄一個 15 分鐘的影片,並且在實體展演時會有教授們的問題要回答。
    2. 期末展演與報告佔 25%,模式同期中報告。
    3. 最終 Repository 的文件及設定檔案可重現性 10%,需要寫一份報告來說明這學期做了什麼事,並且整理好操作的文件。
    4. NASA 週月會參與佔 10%。
    5. NASA 日常工作參與佔 20%。
    6. 回信機器人佔 10%。
  • 心得:

      本學期的課程目標是建置一套類似國家高速網路與計算中心(NCHC)所使用的高效能運算(HPC)系統,並以 Slurm 作為資源管理與作業排程的核心。我所屬的組別負責儲存系統,因此主要任務是研究並部署適合用於 HPC 環境的分散式儲存解決方案。

      HPC 系統中,儲存層通常需提供 Block-level 儲存,以供虛擬機(VM)掛載作為硬碟使用。同時,由於 Slurm 作業系統需要一個可共享的資料目錄供各節點存取,我們也必須將儲存系統透過 NFS 導出(export)成共享目錄。經過多方評估,我們最終選擇使用 Ceph 作為分散式儲存解決方案。

      在本學期中,我們完成了以下幾項工作:調查與比較可行的分散式儲存系統、部署與設定 Ceph 叢集服務、設計與實作 NFS 導出機制,以及進行系統效能評測與紀錄。整體來說,這是一門實作成分非常高、也十分有趣的課程,而課程的評分也相對寬鬆,讓我們有更多空間專注在學習與實驗的過程中。

分散式系統(DCS)

  • 學分:3 學分
  • 授課教師:薛智文
  • 學期成績:A
  • 上課內容:

      這門課的主要內容涵蓋了分散式系統的基本概念,包括設計分散式系統時需考量的要素與挑戰,如共識機制、同步問題,以及 CAP 理論等經典理論。然而實際課程進行中,教師較少針對這些核心主題進行系統性的講授,部分課堂時間常被與課程無關的話題所占用,影響了學習成效。整體而言,我認為這門課的收穫有限。

      課程評分方面,期末報告佔 90%,主要採用同儕互評的方式進行,另有 10% 為課堂參與分數。

  • 心得:

      這學期實際學到的內容不多,課程中涉及的理論主要包括 CAP 理論、共識機制以及同步相關的問題。除了這些基礎概念外,最主要的收穫還是期末報告的經驗。不過,我們小組的期末報告主題相對抽象,內容是設計一個「真相網」,希望透過某種將訊息上鍊的機制,使真相逐步浮現,並鼓勵人們說出真相。然而,這樣的構想在實務上難以真正解決具體問題,而且整體而言,我認為自己在這門課中並沒有學到實質的技術能力。

代數導論二

  • 學分:4 學分
  • 授課教師:
  • 學期成績:A+
  • 上課內容:

      本學期的課程內容主要圍繞兩大主題:體論(Field Theory)模論(Module Theory),並涵蓋部分基本的交換代數概念。

    1. Field Theory 與 Galois Theory 課程首先複習了基本的域論知識,並進一步進入 Galois 理論的探討。相較於我在修習「代數一」時從 normal extension 的定義切入 Galois 理論的方式,本學期的課程則是從 splitting field 的角度出發,並更著重於 splitting field 的性質分析與其在 Galois 理論中的角色。

    2. Module Theory 與基礎交換代數 模論的部分則是將向量空間(vector space)的概念推廣至交換環(commutative ring)上的模(module),進而探討模與向量空間在結構上的異同。其中,我們學習到許多在向量空間中成立的性質在模中並不一定成立,例如:「finitely generated 並不保證存在 basis」。課程最後也介紹了一些基本的交換代數內容,包括 Noetherian ring 與 Hilbert basis theorem 等重要定理。

  • 心得:

      雖然我過去對這些代數導論的內容掌握得不算扎實,但透過本學期的學習與練習,我對相關概念變得更加熟悉,也能更有信心地理解並應用這些基礎代數知識。

排球初級

  • 學分:1 學分
  • 授課教師:呂宛蓁
  • 學期成績:A+
  • 上課內容:

      這門課主要介紹排球的基本動作與規則,包含低手對空擊球、高手對空擊球、發球以及基本的扣球動作等技術練習。課程透過反覆練習與分組活動,培養學生對排球動作的正確認識與實作能力。而學期成績的評分方式如下:

    • 期中考
      • 高手對空擊球 50 顆,佔 10%。
      • 低手對空擊球 50 顆,佔 10%。
    • 期末考
      • 高手或低手發球各 11 球,佔 10%。
      • 雙人連續傳球(兩人合力完成 100 球)佔 10%。
    • 書面報告
      • 校內外排球練習或比賽紀錄:10%。
      • 學期心得與課程建議:5%。
      • 國內外排球賽觀賽心得:5%。
    • 出席率與學習態度佔 30%,並依據請假與缺席情況酌予扣分(詳細規則略)。

    • 其他項目佔 10%:
      • 包括參加校園馬拉松、全勤與服裝規定(例如穿著牛仔褲、涼鞋等視為服裝不合格)等加分項目,共計 4 分。
  • 心得:

      相較於羽球、桌球等在國高中體育課中較常接觸的球類運動,排球對我而言算是比較陌生的項目。雖然這門課的上課時間不算多,而且每次課堂中都會安排部分時間進行分組比賽,實際的練習時間相對有限,但在每次考試前仍有充裕的時間可以安排自主練習。

      課程中,我們通常會兩人一組進行練習。前半學期以輪流對空擊球為主,到了後半學期則進入雙人對傳的訓練。雖然幾次考試我都是在壓力中勉強拿到還不錯的分數,但整體而言,這門課讓我覺得非常有趣,不僅學會了排球的基本技巧,也透過不斷的練習提升了自己的運動協調與臨場反應能力。

2024 秋季 (113-1)

臺灣大學

2024 年秋季修課心得

計算機結構(CA)

  • 學分:3 學分
  • 授課教師:楊佳玲
  • 學期成績:A+
  • 上課內容:

      這門課的上課內容涵蓋以下主題:

    1. 簡介:學習如何評估不同 CPU 設計的效能,了解各種評測方法與指標。

    2. 指令集架構(Instruction Set Architecture):探討不同指令集的優缺點,例如複雜指令集與精簡指令集的差異。此外,課堂中將介紹一種特殊的指令集——RISC-V,並透過數次作業實作 RISC-V assembly 程式設計。

    3. 資料流與資料路徑(Data Path):學習如何設計一個單一週期 CPU,支援部分 RISC-V 指令的執行。

    4. Pipeline:利用 pipeline 技術優化單一週期 CPU,將指令拆解成多個步驟並行處理。同時,學習如何解決 pipeline 引發的危障(hazard),這些挑戰讓 CPU 設計更具複雜性。

    5. Linker 與 Loader:探討編譯器如何將高階程式碼轉譯為 assembly 指令,理解程式執行的底層過程。

    6. 快取(Cache):學習 CPU 快取的結構,了解快取如何提升記憶體存取效能。

    7. 階層式記憶體架構(Hierarchical Memory Architecture):分析快取與記憶體設計對 CPU 效能的影響,探索不同階層的記憶體如何協同運作。

    8. Roofline Model:探討算術強度(Arithmetic Intensity)與效能的關係,並學習如何應用此模型分析程式效能瓶頸。

      這門課的評分方式如下:

    1. 小考(10%)

      • 期中考前:小考在第二、三節課進行,採分組形式。小組共同討論並完成該週的題目(約五題),以組別成績計算分數。
      • 期中考後:第二節課為分組討論課,需完成兩至三題題目;第三節課則進行個人小考,題目與討論課內容相似。
    2. 作業(20%)

      課程包含五次程式作業:

      • 前兩次:以 RISC-V 程式設計為主,專注於基本指令的實作與練習。
      • 後三次:以 Verilog 程式設計為主,分三個階段逐步實作出一個具備 branch predictor 和 pipeline 架構的完整 CPU。
    3. 期中考(35%)與期末考(35%)

      兩次考試分別覆蓋前後半學期的內容,佔比最高。

    此外,本課程的等第線劃分方式可能與學校標準有所不同。

  • 心得:

      這門課的部分內容與我修過的計算機概論有所重疊。在計算機概論中,我們已經學習了一個非常簡單的 CPU 架構,而關於記憶體階層(Memory Hierarchy)的設計,部分概念也曾在作業系統(OS)課程中略有提及。因此,這門課對我而言,不僅是一次複習,更是在此基礎上深化了相關的知識與概念。

      雖然這門課的內容並非我的主要興趣所在,但它幫助我理解了早期學者如何設計電腦的過程,讓我對計算機結構的發展有了更全面的認識。

計算機網路(CN)

  • 學分:3 學分
  • 授課教師:周承復
  • 學期成績:A+
  • 上課內容:

      這門課主要帶領我們了解網路的運作原理,包括現代網路的分層架構,並由上而下深入學習應用層、傳輸層及網路層。具體內容如下:

    1. 應用層
      • 介紹常見的協定如 HTTP、SMTP、DNS 等。
      • 在後續的網路層部分會進一步討論 DHCP 的相關應用。
    2. 傳輸層
      • 探討 UDP 與 TCP 的運作方式,重點放在 TCP。
      • 初期學習如何設計可靠傳輸協定(Reliable Data Transfer Protocol),並學會使用有限狀態機(Finite State Machine, FSM)描述協定設計。
      • 討論 Go-Back-N 和 Selective Repeat 等協定。
      • 最後解析 TCP 的可靠傳輸機制與壅塞控制策略。
    3. 網路層
      • 了解 Router 的內部運作與封包轉發機制。
      • 深入學習 IP 協定及 NAT(Network Address Translation)。
      • 探討路由演算法(Routing Algorithm)的原理與實現。

    以下為這門課的評分方式

    1. 期中考(20%)與期末考(25%):題目多數來自課本習題與考古題。

    2. 作業(20%):共 4 次手寫作業,主要內容亦以課本習題為主。

    3. 期末專案(35%):使用 C++ 實作一個聊天室,學習並練習 socket programming 和部分系統程式設計的概念。

    4. 演講出席加分(5%):本學期安排兩場演講,參與者可獲得額外加分。

    此外,這門課的最終成績評定採用學校的等第標準。

  • 心得:

      在 2024 年的寒假,為了準備修習網路管理與系統管理(NASA)這門課,我曾經觀看清華大學黃能富教授的計算機網路概論課程的前幾章節。因此,對於網路的分層式架構,我在當時就已經有了一些基礎的認識。不過,黃教授的課程採用了從下而上的直觀教學方式,而這學期的計算機網路則採用了從上而下的學習順序,讓我得以補齊以前較不熟悉的概念,例如 TCP 的壅塞控制是如何運作等。

      這門課不僅幫助我複習了過去在 OCW 或 NASA 中學過的知識,還讓我在一些實作技巧上獲益良多。尤其是這學期最重要的收穫之一,就是學會了如何撰寫 socket 程式。在這門課的學習過程中,我終於掌握了 socket programming 的基本概念及其如何應用,我相信這對於未來相關課程與實務應用都有幫助。

專題研究

  • 學分:2 學分
  • 授課教師:施吉昇
  • 學期成績:A+
  • 上課內容:

      這門課的內容因不同實驗室而異。我所參加的實驗室並沒有硬性規定必須完成特定任務,主要是參加每週的會議,觀察學長姐的研究方向並尋求協助的機會,或學習他們正在研究的內容。此外,也可以主動詢問學長姐有什麼值得閱讀或學習的資源。每週的小組會議上需要報告自己的進度。

      這學期,我主要學習了以下內容:

    • 一個新的程式語言:Rust。
    • 瞭解 Zenoh(一個 NDN 的實作與產品)的一部分運作原理。

    在這學期中,我將把所學和所見整理成筆記,並在小組會議時進行簡要分享。

  • 心得:

      這學期的前半段主要是在摸索階段。除了學習新的程式語言 Rust 和一些新的概念外,我對於如何理解 Zenoh 這個應用程式感到困惑,更不清楚該如何快速進入狀況。

      到了學期中後期,我開始投入更多心力,對於 Zenoh 部份的功能和運作有了稍微的了解。然而,我仍覺得自己學到的東西不多。大部分時間都花在閱讀程式碼上,缺乏實際練習和研究的機會,這讓我覺得有些可惜。

系統專題研究 — 物聯網中介軟體設計(IOT)

  • 學分:3 學分
  • 授課教師:施吉昇
  • 學期成績:A+
  • 上課內容:

      這門課的核心在於探討現代自駕車技術的實現方式,重點在於理解自駕車的構成元件及其功能之間的協作過程。例如:

    • 運動控制元件:負責改變車輛的運動狀態。

    • 感知模組:蒐集車輛狀態與環境資料,進行精確定位。

    • 行為規劃模組:根據感知數據進行路徑規劃,並計算控制指令傳達給運動控制元件。

      課程主要聚焦於感知規劃這兩大主題,同時也探討各模組之間的通訊與協作過程,特別是自駕車內部的通訊問題。整體內容分為以下幾個大主題:

    1. 通訊技術:探討自駕車內部與外部的通訊機制,確保訊息傳輸的可靠性與即時性。

    2. 機率機器人學:涉及機器人決策與推論的數學基礎,學習機率如何應用於自駕車的導航與環境理解。

    3. 定位與地圖建構:使用 LiDAR(或其他 range finder)或影像數據進行精確定位,探討如何生成與更新周遭環境地圖,並學習 SLAM (Simultaneous Localization and Mapping) 等相關技術。

    4. 行為規劃:包括路線規劃、移動規劃、以及軌跡規劃等不同層級的規劃任務。

      課程內容深入講解機器人學與定位技術,結合理論與實作,幫助學生對自駕車的實現原理有初步的理解。而這門課的評分方式為:

    1. 作業(40%):透過實機操作或軟體模擬,讓學生親自體驗自駕車技術的應用與實現方式。

    2. 期中考(30%):在第 10 週進行,涵蓋通訊技術與機率機器人學的相關內容。

    3. 期末報告(30%):完成一個影像定位模組的實作,並設計自己的方法,以超越 OpenCV 分割方法的效能。

    此外,由於期中考成績普遍不佳,老師最後全體調分 10 分。課程的最終成績依照學校的等第標準評定。

  • 心得:

      這門課本來是我最期待的課程之一,特別是因為自駕車技術一直是我非常感興趣的領域。然而,不知道是因為上課的節奏較慢,還是前期花了較多時間在背景介紹,導致我後來上課時常常分心,做自己的事。但整體而言,這門課還是讓我學到不少關於自駕車的核心概念,尤其是感知、規劃與控制等方面,這些內容都非常有趣。

      在修課的過程中,我們組還發生了一個令人印象深刻的小意外。在一次關於車輛控制的作業中,由於我們的正常程式設計無法運作,為了測試是否能讓車子運行,我們嘗試直接設置一個固定的 PWM 值,結果導致車輛暴衝並撞壞了 LiDAR。這次意外讓我感到非常愧疚,但同時也學到了很多重要的經驗。

      首先,我深刻體會到開發與測試自駕車並不像課堂或作業看起來那麼簡單。測試階段應更加謹慎,尤其是在進行硬體測試之前,應多進行軟體模擬,並充分考慮各種可能的情境。此外,這次經驗也提醒我,面對技術挑戰時應該更具責任心,避免因一時的簡化而忽視潛在的風險。

      雖然這次經歷帶來了一些遺憾,但也讓我對自駕車開發的現實與挑戰有了更深的理解。我認為這是一次非常寶貴的學習經驗,也激勵我在未來的學習與實作中更加細心與負責。

平行程式設計(PP)

  • 學分:3 學分
  • 授課教師:李濬屹
  • 學期成績:A+
  • 上課內容:

      這門課程的主題涵蓋了平行程式設計的核心知識與實務操作,主要包括以下幾個部分:

    1. 平行化計算機結構:涵蓋 Superscalar、multi-core、SIMD 等主題,能夠學習計算機結構的相關知識,幫助全面理解平行程式設計的基礎。

    2. pthread 與 OpenMP:適用於多核心(multi-core)的平行程式設計,特別是透過 OpenMP 的 pragma 實作,編譯器可以將程式轉換成平行版本。

    3. MPI (Open MPI):適用於多節點(multi-node)的平行程式設計,藉由程式庫處理節點間的通訊問題,簡化程式開發。

    4. GPU 程式設計(CUDA 與 HIP):提供練習 CUDA/HIP 的機會,能更深入理解 GPU 平行計算的概念與實作方法。

    5. 效能評估:透過學習 Roofline 模型,了解算術強度與效能之間的關係,進行平行程式效能的分析與評估。

    而這門課的評分方式為:

    1. Lab(10%):Lab 主要用於環境配置與基本練習,題目相對簡單,便於熟悉平行程式設計的基礎操作。

    2. 作業(40%):包含五次實作作業,需將程式平行化,並撰寫報告回答相關問題。

    3. 期中考(15%)與期末考(15%):考試範圍包含期中或期末前的所有課程內容,期中考於第 7 週,期末考於第 15 週進行。

    4. 期末專案(20%):實作一個與平行程式設計相關的專案,分數會根據組員人數進行調整。

    5. NVIDIA Lab 加分(1%):NVIDIA 有提供兩個關於 CUDA C++ 與 Python 的線上課程,完成一個加 0.5 分學期成績。

    不清楚是否會依照學校的標準給等第。

  • 心得:

      這門課對我而言是這學期最具挑戰性的課程,但同時也讓我學到不少實作相關的知識。其中,我認為最值得的部分是GPU 程式設計,特別是關於 GPU 層級式的程式設計模型(例如 thread、warp、block、以及 grid 等概念)。這些內容不僅加深了我對 GPU 運作原理的理解,也讓我對未來可能的應用有了更清晰的認識。

      然而,課程中有些主題與其他課程的內容有所重疊,例如:

    • 計算機結構:課程中關於支援平行化程式的硬體結構設計(如 multi-core 和 SIMD)部分,在計算機結構課程中也曾花少部分時間提及。

    • pthread 與 OpenMP:這些內容在「系統程式設計(SP)」或「作業系統(OS)」課程中都有提到,學起來對我來說並不算陌生。

    • Open MPI:雖然這是我第一次接觸,但學習起來相對容易,並沒有太大的困難。

      對我來說,真正全新的部分就是 GPU programming,它不僅是這門課最有趣的部分,也是對未來最實用的技能之一。我很高興能在這門課程中接觸並學習到這項技術。

羽球初級

  • 學分:1 學分
  • 授課教師:李坤培
  • 學期成績:A+
  • 上課內容:

      這門課的內容主要包括學習以下幾項技巧:高遠球、發球、平抽球、網邊短球、挑球、切球、以及殺球等。而評分方式主要依據出席率、課堂態度、高遠球考試及發球考試等因素。不過,老師並未詳細說明給分細節。

  • 心得:

      這門羽球課的上課經驗,可能是因為隊友們比較隨興,與桌球課中那種認真專注的氛圍有所不同。這樣的環境讓我對這門課的興趣沒有那麼高,打羽球時也多是為了應付考試,而不是出於對運動的熱愛。相較於桌球,我並沒有感覺到那麼多運動的樂趣,整體而言,這門課對我來說比較像是一項必須完成的任務,而不是一場愉快的運動體驗。

2024 春季 (112-2)

臺灣大學

2024 年春季修課心得

作業系統(OS)

  • 學分:3 學分
  • 授課教師:施吉昇
  • 學期成績:A+
  • 上課內容:

      這門課的上課內容會讓我們了解,在不同裝置上的各種作業系統中是如何扮演資源分配的角色,並且怎麼提供使用者介面給程式設計師使用。舉例來說,資源分配的角度而言,作業系統會管理能使用的 CPU 以及記憶體資源,以避免資源耗竭;而抽象化資源並提供程式介面而言,作業系統會包裝底層的儲存裝置、網路裝置的操作,並提供 IO 及檔案系統的介面。

      這門課的計分方式如下:作業 44%,總共有 MP0 到 MP4 (MP 指 machine problem),MP0 佔 4% 而其他各佔 10%。此外,期中考以及期末考個各佔 28%。關於程式作業的部份,我們通常會需要根據助教的要求來改 xv6 這個作業系統的 kernel 或 user 程式碼,然而與「系統程式設計(SP)」不同的地方是,我們多數時候不能使用在 SP 學到的函式因為在 xv6 可能沒有提供。而期中與期末考的部份單雙班會使用一樣的考卷,並且一起考試,可以參考看看考古題。

  • 心得:

      這門課算是幫助我學到基本的作業系統知識,不過因為要介紹除了典型在個人電腦上的其他作業系統,所以內容稍嫌繁瑣,但也讓作業系統的知識跟認識更加全面。

機率

  • 學分:3 學分
  • 授課教師:林守德
  • 學期成績:A+
  • 上課內容:

      這門課的上課內容前面約 10 週,涵蓋了一些基本的機率知識,包含一些條件機率、貝氏推論,以及一些機率分佈。而期末考會有一些一般機率課程不會介紹到主題,像是熵(entropy)、相互資訊(mutual information)以及 n-gram 語言模型(language model)等等進階主題。

      這門課的算分方式為期中考、期末考以及期末報告各 33%,期中考與期末考主要都是考上課內容,而期末報告是在探討對於一些深度學習的模型,用統計檢定的方法來驗證改變資料的排序以及初始化權重的方法對於訓練迭代次數的影響。

  • 心得:

      這門課對於期末報告的評分標準非常奇怪,似乎老師不想給大家高分,我認為這並不合適,尤其是當期末報告這種大家都花很多心力的報告,有的人得到的分數卻不合努力。除此之外,我在這門課也學到蠻多知識的,包含熵、資訊理論及各種機率分佈,這些對於日後機器學習的知識以及研究有頗大的幫助。

人工智慧導論(FAI)

  • 學分:3 學分
  • 授課教師:陳縕儂
  • 學期成績:A+
  • 上課內容:

      這門課前半的內容由陳尚澤教授來上課,主要教的內容為古典的人工智慧(AI)方法,包含搜尋演算法(searching algorithm),賽局樹(game tree)以及貝氏推論等等,並且使用的投影片為 UC Berkeley 的 CS 188 課程投影片。而後半的內容主要是較現代的機器學習方法,包含一些線性的方法,到決策樹(decision tree)、隨機樹(random forest)、Adative Boost,最後在上到深度學習(deep learning)的方法以及強化學習(reinforcement learning)。

      算分方式為四次作業各佔 10%,一次期中考佔 30%,而期末報告佔 30%。作業會有手寫以及程式作業,四次的手寫作業多數會有一些手寫證明,也會手跑一些上課的演算法。前兩次程式作業主要會實作一些搜尋演算法及根據賽局樹做規劃等等,而後兩次程式作業,要實作一些機器學習演算法,然而這些演算法卻沒有在上課講清楚實作細節,算是對有修過機器學習的人非常友善。期末專題則是要寫一個撲克 agent,並且要能對打兩人的撲克比賽。

  • 心得:

      這門課讓我學到一些古典的人工智慧方法並且補齊在機器學習沒學好的概念,像是後面的深度學習等等,而收穫最大的還是期末報告,我靠自己的查資料及學習能力,學會了反事實後悔值最小化(counterfactual regret minimization)這個演算法,雖然這個演算法不見得能在這個報告上表現得好,但是能收斂到長期來說的 Nash 均衡,在更長期的比賽會有穩定的表現,也算是不錯的學習。

網路管理與系統管理實驗(NASA)

  • 學分:1 學分
  • 授課教師:蔡欣穆
  • 學期成績:A+
  • 上課內容:

      這門課的主要內容為介紹系上一些基礎的資訊服務,涵蓋了從網路基礎到系統管理的多方面知識。我個人認為,這門課最具價值的部分是在 Lab 和作業,因為它們提供了豐富的實作練習機會。每次作業都需要投入相當多的時間,但也因此能夠扎實掌握相關技能。以下是所有 Lab 主題的整理與說明:

    1. Shell Script:學習如何使用終端機能讀懂的腳本語言,這對於自動化各類任務相當重要。
    2. 硬碟分割:學習硬碟分割的基本操作,對管理實體機器、資料備份以及磁碟容錯等至關重要,也能接觸到 Linux 開機流程的相關知識。
    3. Cisco Switch:瞭解如何設定交換機,並利用 Packet Tracer 進行模擬設定。
    4. 虛擬技術與容器:學會使用 libvirt 建立 QEMU 虛擬機,以及使用 Docker 和 Kubernetes 進行容器化管理,這對自動化部署、CI/CD、以及無縫部署極為實用。
    5. OPNSense:這是一款基於 OpenBSD 的防火牆軟體,具備 GUI 介面,方便進行防火牆規則設定。
    6. DNS:使用 PowerDNS 架設 DNS 伺服器,並透過 GUI 進行配置,深入了解 DNS 的運作。
    7. LDAP:探索樹狀資料庫伺服器的運作,主要用於系統內部的身份驗證服務,包含 mail alias 等功能。
    8. NFS:學習網路檔案系統的架設,作業中會安裝一台 NFS Server,並使用 Kerberos 協定完成身份驗證與授權。
    9. 無線網路:瞭解系館內無線網路的架構與基本運作。
    10. 網頁伺服器:學習 nginx 網頁伺服器的設定,包含反向代理 (reverse proxy) 與日誌 (logging) 的功能。
    11. 資訊安全:涵蓋基本的資安概念與技術,包括密碼暴力破解、NFS 漏洞與 Web Server 漏洞等,並且練習 OWASP 的相關內容。

      而這個學期的成績計算方式如下:

    1. 作業 (36%):總共 12 次作業,多數需要花費 10 小時以上完成,內容涵蓋上述提到的各大主題。
    2. Lab (14%):Lab 是每次作業的暖身練習,助教通常提供操作指引,幫助理解作業內容。
    3. 期中考 (20%):三人一組進行上機實作,範圍涵蓋期中考前的作業內容。允許開書與使用網路,但禁止通訊工具。
    4. 期末考 (23%):涵蓋期中考後的主題,容器化技術為重點。同樣規則禁止使用通訊工具,並新增了不能使用生成式 AI 的規定。
    5. 課堂測驗 (7%):測驗內容與當週課程相關,通常給予一週時間完成,與 Lab 或作業無直接關聯。

      最後,將根據所有學生的排名來決定最終等第。

  • 心得:

      這門課是這學期最具挑戰性,但同時也是最有趣的一門課。課程內容涵蓋了許多其他課程中較少提及的技術,例如容器化與 Kubernetes,這些技能在未來的實際工作中應該會相當實用。至於 Cisco 或 OPNSense,則更適合有志於 IT 相關行業的同學發展。然而,這門課的收穫遠不止於此,還包括了閱讀並理解各種伺服器設定檔文件的能力,以及實際操作與配置的經驗,這些都讓我在解決問題的能力上有了顯著的提升。

前瞻資訊科技

  • 學分:3 學分
  • 授課教師:蔡欣穆
  • 學期成績:A+
  • 上課內容:

      這門課旨在幫助同學了解系上各實驗室的研究方向。本學期涵蓋的實驗室主題包括電腦視覺、影像處理、多媒體、金融科技、資訊生物科技,以及網路等相關領域。

      課程評分方式由各次授課的教授自行決定,包括作業或考試,共計 7 次,滿分為 700 分。此外,課程實施點名制度,若未到課,每次將從總分中扣除 20 分。最終成績則以總分除以 7,按照學校的等第標準換算給分。

  • 心得:

      由於多數教授只有兩次課程時間分享各自實驗室的研究內容,因此大多數的講課都顯得較為表面,缺乏深入性,聽起來也略顯無聊。對我而言,本學期較吸引我的內容是李明穗教授關於數位影像處理的分享,以及李彥寰教授對機器學習理論框架的講解。

      可能因為這學期網路管理與系統管理(NASA)課程的作業量實在太多,導致我在上課時難以專心聽講,這也讓我對課程的整體感受稍顯枯燥。或許是因為來授課的教授未能引起我足夠的興趣,因此這堂課並沒有幫助我明確了解自己想加入哪個實驗室。

生活中的科技原理

  • 學分:3 學分
  • 授課教師:饒梓明
  • 學期成績:A
  • 上課內容:

      這門課每週會介紹 3 至 4 項現代科技背後的原理,內容豐富且有趣。課程使用 Zuvio 進行點名,如果遲到,也可以向助教補點名。每週課程結束後,每個組別需要派出兩位成員上台分享,內容包括對其中一項科技產品的想法、觀點及心得。此外,課後還會安排一個小測驗,測驗內容與當週上課主題相關。而這門課的算分方式為:

    1. 出席率(15%):每週透過 Zuvio 點名計算出席率,遲到者可向助教補點名。
    2. 課堂表現(15%):包括每週課程結束後的組別分享,評估內容深度與表現。
    3. 課後測驗(30%):每週進行與當週上課內容相關的小測驗,測驗成績納入總分。
    4. 期末報告(40%):每組需完成期末報告,針對指定科技主題進行深入分析與呈現,佔比最高。
  • 心得:

      這門通識課程整體來說是一門相對輕鬆的課程,作業負擔不重,小組報告的分工也很順利。不過,關於科技原理的部分,我覺得自己並沒有學到太多,可能是因為上課時間我常常忙於完成網路管理與系統管理(NASA)的作業,無法全心投入課程內容。

桌球初級

  • 學分:1 學分
  • 授課教師:王翊澤
  • 學期成績:A+
  • 上課內容:

      課程一開始的要求是,前三週要能對牆擊球 50 下,否則無法獲得 A+。課程涵蓋以下主題:正手擊球、發球技巧、反手推帶、雙打跑位。而評分方式為:出席率 30%、體能訓練 10 %、正手擊球考試 20 % 、反手推帶考試 20 %、雙打跑位考試 20%。這門課的考試方式很有趣。在開始考試後,每週可以與夥伴進行最多三次考試,並選擇取最佳成績。如果選擇放棄某次成績,該次成績將不會被登記,並且可以重新考試。若選擇不放棄某次成績,則該項目將不再可重考。此外,三次考試中的對手不能重複,且不能是與自己同系的同學。

  • 心得:

      這門課的給分方式只要在課堂上認真練習,基本上都能拿到滿分。我認為這門課是一門具有系統性教學與練習的體育課,過程中不僅能確實地運動到,還能學到桌球基礎的技巧與策略。

2023 秋季 (112-1)

臺灣大學

2023 年秋季修課心得

演算法設計與分析(ADA)

  • 學分:3 學分
  • 授課教師:蕭旭君
  • 學期成績:A+
  • 上課內容:

      這門課的上課內容相當豐富,前半學期主要介紹了一系列經典的演算法典範,包括分治法(divide and conquer)、動態規劃(dynamic programming)以及貪婪演算法(greedy)。進入後半學期,課程圍繞著三個主要主題展開:圖論演算法、均攤分析(amortized analysis)以及 NP 完備性(NP-completeness)。

      評分方式包括作業佔 35%、期中考佔 20%、期末考佔 25%,還有迷你手寫作業佔 10% 以及迷你程式作業佔 10%。作業共有四次,其中包含 12 題的程式題,使用 C++ 語言進行撰寫。值得一提的是,作業和期中考期望水準相當高,多數題目都來自競程選手的範疇,因此充滿了挑戰性。教授雖然宣稱最終成績會根據學校的標準來切等第線,實際上常常會因為整體表現不理想而對原始成績進行調分,再以學校的標準來確定等第線。

  • 心得:

      在這學期中,我第一次深入學習了許多演算法的基本概念,這對我來說算是新的知識領域。雖然無法像雙號班的同學能在上課了解一些資訊史或是現在的純演算法實驗室在做什麼研究,但我在這門課中建立了堅實的基礎演算法能力。這樣的學習經驗讓我對工程師所需的基本演算法技能有了更深刻的認識。

系統程式設計(SP)

  • 學分:3 學分
  • 授課教師:鄭卜壬
  • 學期成績:A+
  • 上課內容:

      這門課主要探討 UNIX 系統上程式的運作、kernel 與程式之間的互動,以及作業系統在資源分配方面的角色。舉例來說,期初內容聚焦在 UNIX 系統上檔案讀寫(File I/O)的機制,例如 write() 這個 system call 的執行流程,從 file descriptor table、open file table、i-node table 一直到 kernel buffer cache,最終檢查緩衝區快取(buffer cache)是否存放所需資料,若無則可能進入 event queue 等待硬碟讀寫(disk I/O)的機會。在這個例子中,我們會學到系統維護了什麼資料結構,kernel 又會在什麼時候接管 CPU 等等。而後面的授課內容則會詳細的討論以下幾個章節:檔案讀寫(file I/O)、檔案系統(files and directories)、行程間通訊(inter-process communication)、行程控制(process control)、訊號(signal)以及執行緒(thread model)。在課堂中,特別強調程式設計師需要充分考慮的議題,如 race condition 和死結(deadlock)等。

      此課程的評分標準為程式作業佔 32%、手寫作業佔 8%、期中考和期末考各佔 30%。由於通常期中平均分較低,教授會在期末考中提高滿分為 130 分,最終成績不會進行調整,以學校的標準作為期末等第的評定基準。

  • 心得:

      這門課的程式作業為我提供了豐富的學習機會,每個作業都深入涉及當前學習內容的核心概念,同時也要求製作簡單的報告。以下列舉各個作業涵蓋的主題:

    1. 第一次作業:學習了 file lock 及 I/O multiplexing 的重要性,並且認識到在 socket I/O 中可能會出現封包切割的問題 —— 儘管這個問題不該出現在 SP 這門課中──然而,我認為作為一個未來的程式設計師,尤其是系統相關的問題,這樣的問題更應該被程式設計師注意到。
    2. 第二次作業:練習了 fork()exec() 相關函式的實作,並學會了兩種常見的行程間溝通(IPC)技巧,如 pipe()mkfifo() 等,以解決 race condition 相關的問題。
    3. 第三次作業:探討了與訊號(signal)和 nonlocal jump 相關的 syscall,特別需要注意避免 deadlock 相關的問題。
    4. 第四次作業:練習了 multi-threading (pthread, POSIX-thread)相關的 user-level thread操作,進一步豐富了多執行緒操作的經驗。

      雖然在作業中相對較少涉及檔案系統相關的問題,但期考中對檔案系統(file system)、檔案與目錄權限等方面的題目也佔了不小的比重。整個學期的內容呈現了相互關聯性,特別是在深入探討 exec()fork()syscall 與 set-UID bit 的關係後,前後各章節的內容相互呼應。

      課程中最大的收穫來自於作業,至少熟悉了各種 syscall 的使用。同時,學到了一項實用的技能,即在使用不熟悉的函式或 syscall 時先查閱相關的說明網頁(manual page),這給出了這些函式的使用方法清晰且全面的指引。這樣的學習過程不僅培養了對系統程式的深入理解,也培養了查找資源並解決問題的獨立能力。

自動機與形式語言

  • 學分:3 學分
  • 授課教師:林智仁
  • 學期成績:A+
  • 上課內容:

      這門課的課程內容皆在於建立電腦科學中對於「演算法」形式定義以及時間複雜度等等的定義。我們會考慮一些自動機並且找到可被這些自動機所辨識的語言,其中此處說的語言並不是指人類的自然語言,而是指一些字串所形成的集合,有時會被稱做形式語言。學期的前三分之二大概會探討的自動機有:

    1. 確定有限狀態自動機(deterministic finite automata, DFA),可被此自動機辨識的語言為正規語言(regular language),此種自動機類似數位電路設計相關課程會提及的有限狀態自動機(finite state machine)。這種自動機沒有任何的記憶功能,即不會有額外紀錄資訊的空間。
    2. 非確定有限狀態自動機(nondeterministic finite automata, NFA),對於同一個符號(字元)可以有多種轉移的可能(包含沒有轉移),此種自動機與 DFA 等價。
    3. 下推自動機(pushdown automata, PDA),類似 NFA 是一種非確定性自動機,只是有一個堆疊(stack)作為記憶體使用,可辨識上下文無關文法(context-free grammar, CFG)所生成的語言。
    4. 確定下推自動機(deterministic pushdown automata, DPDA),類似 PDA 只是轉移函數變成確定轉移函數,即對於每一個讀入字元,都有一個可行的轉移狀態。然而 DPDA 與 PDA 不辨識同樣的語言。
    5. 圖靈機(Turine machine, TM),類似 DFA 但是具有無限長度記憶體的機器,由於其轉移函數的形式定義,可以被圖靈機辨識以及可以被圖靈機接受(或說判定)的語言不完全相同,因此後面會探討可判定性(decidability),而後面證明一個語言的不可判定性,則需仰賴一個在演算法設計與分析(ADA)也會學到的技巧──可歸約性(reducibility)──即把一個問題 P 歸約到另一個問題 Q,藉此來說 Q至少比 P「困難」,以此來說明一個語言的不可判定性。
    6. 非確定圖靈機(nondeterministic Turine machine, NTM),轉移函數為非確定性的圖靈機。

      此外還會介紹其他圖靈機在其記憶體(tape)上有所放寬或限制的圖靈機,像是多帶圖靈機(multitape Turine machine), 線性有界自動機(linear bounded automata)等等。學期的最後三分之一則會介紹一些關於複雜度理論的問題,舉例來說,我們會介紹電腦科學界最著名的未解問題,即 TM 可在多項式時間內判定的語言與 NTM 可在多項式時間內判定的語言是否一樣,目前學界普遍認為這是不同的。

      這門課的評分方式為:六次作業共佔學期成績 25%,三次期考各佔學期成績 25%。依原始成績排序後,分配各個等第的比例使單、雙班的比例一致。

  • 心得:

      我選擇在大二上修讀這門課,主要是因為我認為自己在系上修的課程相對較少,同時對於資訊領域的實力感到還不夠充實。面對這樣的情況,我傾向選擇了一門純理論且內容相對豐富的數學課程。課程的基本目標是建立對於「問題」、「演算法」以及「時間複雜度」等概念的嚴謹數學定義。我覺得這門課對我而言,提供了建立對演算法和電腦的抽象思考的機會。

      然而,我也要承認這門課的內容相對偏向純理論,對於不打算從事純演算法相關研究的人而言,可能並不是那麼直接有幫助。自動機理論等概念對大部分人來說,可能只需要了解一些基本概念就足夠應對實際問題。

機器學習(ML)

  • 學分:3 學分
  • 授課教師:林軒田
  • 學期成績:A+
  • 上課內容:

      這門課的課程內容基本上是按照約 10 年前或更早期的教學影片來教學。前半部份為《機器學習基石》,在這部份中會講解機器學習中最基礎的概念,像是為什麼機器學習可以做到只看一部分資料,卻可以在沒看過的資料也有不錯的表現,這就會牽涉到可一般化(generalization)的理論。而後面又會提到一些簡單的線性模型,如線性回歸(linear regression)以及邏輯迴歸(logistic regression)。前半學期的最後則是會提到如何對抗過度擬合(overfitting),這種狀況通常是因為使用太強的模型而導致我們忽略雜訊(noise)造成的影響,我們會學到驗證(validation)以及正則化(regularization)兩種方法來降低我們的模型複雜度。

      而學期後半的內容則是《機器學習技法》的課程內容,主要就是在探討更多不同的經典機器學習模型,如從原本的線性分類器(linear perceptron)推廣到後面的支持向量機(support vector machine, SVM),這比原本的線性分類器更強也更有韌性(robustness,指更不容易授雜訊干擾的模型)。此外也會提到利用混合(blending)以及裝袋(bagging)這兩個技巧,以及他們衍生出來的演算法,像是 adaBoost、decision tree 以及 random forest 等等著名的演算法。而學期的最後則會提到神經網路(neural network, NNet)類的演算法。

      這門課的成績是用六次作業以及期末報告來決定的。每次作業有 13 題(含加分題),共 260 分。而期末報告有兩份,一份是常規報告而一份是加分報告,兩份報告的原始分數皆為 600 分。如果一個組別選擇同時做常規及加分報告,則最後期末報告的總分為 [ 0.9\cdot\mathrm{Regular}+0.3\cdot\mathrm{Bonus}, ] 而若一個組別選擇不做加分報告,則期末報告的總分即為常規報告的分數。而學期成績則是用所有作業成績以及期末報告的成績來決定,但不會依照學校的標準給等第。

  • 心得:

      機器學習這門課讓我深入理解了機器學習中一些最基本且核心的概念,作業更是提供了豐富的數學推導練習,幫助我鞏固課堂學習。這門課成功地建立了我在機器學習理論方面的堅實基礎。

      然而,我也注意到每次作業中僅包含少量的程式實作,再加上前半學期介紹的模型過於簡單,導致實務應用方面的可用性相對有限。這使我對於課程在應用層面的教學效果感到一些不足。儘管如此,我認為對於完全沒有接觸過機器學習的新手來說,這門課仍然是一個很好的入門選擇。然而,對於已經具備一些機器學習基礎的人而言,課程的意義可能相對有限。

計算機概論

  • 學分:3 學分
  • 授課教師:莊永裕
  • 學期成績:A+
  • 上課內容:

      這門課的主要內容在讓我們了解一台電腦的架構以及如何讓電腦運作起來。一開始從底層的物理元件,逐漸地建構出一些元件如 CPU、記憶體,最後組成一台電腦。之後便會提到機器語言、組合語言,最後越來越高階,如虛擬機器(virtual machine)、高階語言、作業系統等等。基本上整門課使用 The Elements of Computing Systems: Building a Modern Computer from First Principles 作為參考書。

      這門課的評分方式為作業 50%、期中考 20%、期末報告 25%、課堂參與 5%。作業包含了五個程式作業以及一份手寫作業,其中程式作業有四次主要在寫參考書作者提供的硬體描述語言來模擬一些硬體的運作,另一份程式作業是要寫一些組合語言,而手寫作業則是在期中考前的複習考卷,期中考有一半會是與手寫作業類似的題目。期末報告教授提供了很多的選項,常見的選擇包含用 Python 或 C++ 撰寫一個組譯器(assembler)或是 VM translator,或是用課本提供的高階語言 Jack 來開發一個遊戲,然而報告內容不完全侷限在這些選擇裡,只要與課程內容相關即可。此外,期末報告是可以多人共同完成,最多可以到 5 人,但人數越多報告的內容就要更精緻,才能得到相應的分數。課堂參與則是教授的黑箱分數,並未公佈此項成績的算分方式。

  • 心得:

      修習《計算機概論》讓我回顧了前半學期與之前修過的《數位系統與實驗》的內容,有些部分有一定的重疊。而到了課程的後半段,特別是在期中考前後,我接觸到了一些對我來說新的內容。我深入了解了如何使用基礎的數位元件構建電腦的架構,並更深入了解了電腦的運作原理,例如資料路徑(data path)等方面。

      在整個學期中,我幾乎沒有參加課堂,因此對於虛擬機器(virtual machine)的部分沒有太多的了解。然而,其他的內容,如機器語言、組合語言、Jack language,以及 Jack OS 等,都是我在複習期中考或是期末報告中深入練習的內容。特別是 Jack language 是我第一次接觸基於物件的語言,儘管其功能不如真正的物件導向語言那麼豐富,我仍然從中學到了很多。

      最後,我要特別感謝期末願意和我一起合作做期末報告的同學陳璿修。謝謝他的協助,我才得以在期末過得較輕鬆一點。這門課也讓我更深刻地理解了程式設計師的一個原則:只要程式能正常運作,就不要輕易修改它──即使你對其內部運作方式並不了解。

大學國文:文學鑑賞與寫作(一)

  • 學分:3 學分
  • 授課教師:沈凡玉
  • 學期成績:A
  • 上課內容:

      這門國文課的上課內容分為兩個主要部分,前半學期探討漢樂府,後半學期則包含古詩以及魏晉詩歌。課程的評量方式包括兩份回家作業,以及學期末的應用書信文作業(課堂中完成)。此外,期中考以及期末考將佔據 25% 的學期成績。值得注意的是,課堂表現也佔 10% 的學期成績,其中包括出席率以及教授可能進行的黑箱分數調整。

      第一份回家作業要求學生在台大三週(或台大 $x$ 年)後,撰寫自己在校的體驗以及期望,這份作業佔學期成績的 10%。第二份作文要求學生從一部上課時看的電影選擇一個相關的題目,撰寫一篇論說文,這佔學期成績的 20%。最後的應用書信文作業涉及寫作實務,佔學期成績的 10%。此外期中期末考都是申論題,我們需要清楚且有根據的分析一些上課提到過的文本。

  • 心得:

      一開始修這門國文課,我對文學並沒有太大的興趣,特別是在沒有足夠社會歷練的情況下閱讀古詩,難以產生深刻的感觸。因此,我覺得我在這門課的學習收穫相對有限。一開始的幾堂課,我還嘗試聽一下教授在講些什麼,但學期過半後,我偶爾才會抬頭聽一下教授的講解,有點感到可惜。

代數一

  • 學分:5 學分
  • 授課教師:謝銘倫
  • 學期成績:A
  • 上課內容:

      這門課的主旨為使學生熟悉一些基本的代數工具,主要會涵蓋以下主題:群論(group theory)、群作用(group action)、群表現理論(group representation)、環論(ring theory)、模(module, especially module over PIDs)、體論(field theory)、Galois理論等等。而這門課的算分方式為作業 30%、期中考 35%、期末考 35%,最後的等第會有滿大幅度的調分。

  • 心得:

      《代數》這門課讓我深入學習了許多未來在純數學研究中將會非常有用的代數工具,尤其是學期後半段的核心內容 —— Galois 理論,這在數論中有著廣泛的應用。然而,代數的理論讓我開始感受到其抽象性和複雜性,這導致在學期的後半段,我感到學習的進度與課堂內容有點脫節,作業也變得非常具挑戰性。

      這學期的學習經驗讓我反思到,或許我需要更專注於在資訊領域的進步。我開始認識到,必須思考未來的發展方向,而不能再僅僅基於興趣而選擇修課。儘管這門課讓我學到很多,但我也感到了一些學習上的無力感,或許我對數學的熱愛並不如以前了。

健康體適能

  • 學分:1 學分
  • 授課教師:林威名
  • 學期成績:A+
  • 上課內容:

      這門課的設計與高中體育課的形式相似,每幾周會有一個特定主題,包括:課程介紹與認識環境、熱身動作與跑步動作、校園大猜謎、AED 與 CPR 急救訓練、河濱腳踏車、籃球,以及重量訓練等等主題。而課程評分方式為:出席 30%、上課參與度 20%,而期末報告佔 50%。

  • 心得:

      理論上,這門課應該是在大一時與同屆同學一起修習,但由於大一時我選擇修「分析」,所以沒有參加健康體適能課程。幸運的是,這學期成功加簽這門早八的課程。整體而言,這是一門相對輕鬆的課程(早八的時間除外),活動內容豐富,能在學習健康知識的同時參與不同類型的運動,感覺輕鬆又有趣。

2023 春季 (111-2)

臺灣大學

2023 年春季修課心得

資料結構與演算法(DSA)

  • 學分:3 學分
  • 授課教師:林軒田
  • 學期成績:A+
  • 上課內容:

      這門課的上課內容主要涵蓋了一些簡單的資料結構。前半學期由林軒田教授教授,主要包括陣列(array)、連結串列(linked list)、堆疊(stack)、佇列(queue)、堆積(heap)、樹(tree)和排序(基於比較的排序, comparison-based sorting)等主題,題目相對簡單。後半學期由蔡欣穆教授教授,內容包括字串匹配(string matching)、線性時間排序(linear-time sorting)、並查集(disjoint set)、雜湊(hashing)、紅黑樹(red-black tree)、B 樹(B-tree)等主題,相對於期中考的範圍來說稍微困難一些。有趣的是,蔡教授提倡翻轉教學,可能有幾週的課堂時間是以活動形式進行,因此需要提前觀看一些教學影片。

      這門課的成績配分為期中考和期末考各佔 20%,作業佔 40%,課堂活動(包括隨堂小考和蔡教授的課堂活動等)佔 20%。值得一提的是,作業共有五次,程式作業限定使用 C 語言撰寫,並且需要掌握基礎的 Git 指令以使用批改系統。第一次作業(Homework 0)只是簡單測試大家在修讀資料結構與演算法課程之前的程式基礎是否足夠。剩下的四份作業主要與當前教授的授課內容相關,但可能需要花費約 20 小時的時間來完成。而這門課最後給的等第(letter grade)並不是絕對的標準,而是相對的標準。然而,A+ 的門檻相對較高,因此這一點常受到批評。

  • 心得:

      這門課讓我學習到非常多有用的資料結構,對我的訓練非常紮實。手寫作業題的一大部分是設計時間複雜度較佳的演算法,並且進行相應的分析。這樣的要求對於未來修習算法設計與分析課程(ADA)來說是非常有幫助的。此外,在程式作業的過程中,很多時候需要使用在課堂上學到的資料結構,並且需要撰寫長達 200 至 300 行甚至 600 行的程式碼。這個過程中,我被迫學習了一些除錯工具,例如 gdb 等等。另外,非常幸運的是,班上有一些同學在作業二及作業三之後願意分享他們自己生成的測試資料,這對於我進行除錯起到了很大的幫助。

      然而,這門課還有許多可以改進的地方。例如,我認為這門課可以每個學期都開設,以滿足更多外系學生和重修生的學習需求,同時也能提高助教的效率,讓他們能更快地批改作業和期中考試。此外,降低課堂活動的配分可能也是一個可以考慮的方向。總體而言,除了這些改進的地方,我認為這門課在其他方面表現得非常出色。

線性代數二

  • 學分:4 學分
  • 授課教師:謝銘倫
  • 學期成績:A
  • 上課內容:

      這學期的前半段主要內容是從內積空間開始介紹,然後進一步探討了正交算子的譜理論(spectral theory for normal operator),並延伸到奇異值分解(singular value decomposition)和廣義逆矩陣(Moore-Penrose inverse, pseudo-inverse)等主題。後半段則著重於線性代數的一些應用,包括 Perron-Frobenius 定理、Google PageRank 演算法、多項式的共根性(雅可比-貝佐定理,Jacobi-Bezout Theorem)和雙線性形式(bilinear form)。

      課程的計分方式與上學期相同,作業佔 25%,期中考佔 35%,期末考佔 40%。同樣地,等第的分配也是相對的,因此我在期末考上並未特別花太多時間,因為要獲得 A+ 等第相對來說是相當困難的。

  • 心得:

      這門課中,由於教授表示內容進度與他在 2016 年的授課相似,因此我在暑假期間預先學習了全部的內容,並整理成筆記。這使得我在上課時幾乎沒有出席。作業方面,我感受到教授的善意,只有少數幾題相對較困難,需要花一些時間思考。至於期中考與期末考,基本上都有約 50 到 60 分的計算題,但證明題大多不算簡單,常常需要花一些心力解決。整體而言,我覺得教授的教學非常出色,並且可以學到許多有趣的內容。

數位系統與實驗

  • 學分:3 學分
  • 授課教師:林忠緯
  • 學期成績:A+
  • 上課內容:

      這門課的主要內容是學習數位系統,也就是僅區分為高(1)或低(0)電位的電路。在前半學期,我們主要學習組合電路(combinational circuit),即沒有記憶功能的電路。後半學期則是學習有記憶功能的時序電路(sequential circuit),包括鎖存器(latches)、正反器(flip-flop)、計數器(counter),以及後面的有限狀態機(finite-state machine)。

      課程的計分方式是作業佔 20%,期中考和期末考各佔 40%。需要提到的是,我們有四次作業,後兩次還會涉及使用 Verilog 進行實作的上機作業。然而,助教會提供大部分的程式框架,因此不會花太多時間。期中考和期末考的題目結構與考古題相似,後面的題目可能會有一些較為困難的部分,學生常常會被作業的難度誤導。期末考通常會比作業難度高許多,但只要好好準備,應該能取得不錯的成績。聽說可能會有輕微的成績調整。

  • 心得:

      這門課主要假設我們已經能夠建立一些邏輯閘(如 AND gate)的情況下,探討如何構建所需的電路或計數器(counter)等等,而如何建立邏輯閘不是課程的目標。總結來說,儘管這門課對於主修軟體方向的資訊工程學生來說可能幫助不大,但仍然能夠學習到許多數位電路的知識。這門課似乎與計算機概論的內容有一些重疊,相信在未來修習計算機概論時,能減少一些學習負擔。

      此外,林教授將幾年前的上課錄影上傳到 NTU COOL 平台,因此我選擇不去上課,按照自己的節奏進行複習。我認為林教授的錄影講解相當清晰,有需要時可以多次觀看複習。

日文一下

  • 學分:3 學分
  • 授課教師:許惠晴
  • 學期成績:A+
  • 上課內容:

      這學期的課程前半部分主要學習使用量詞,以及表達「います」和「あります」表示某地有什麼的句型,當然還包括其他句型。後半學期則著重於動詞的「て形」和「ない形」變化,以及相應的句型應用,例如使用「Vなければなりません」表示必須做某事,還有其他多種「て形」的句型。此課程的評分標準與上學期相同,期末考試佔 35%,平時成績(包括出席、小考等)佔 30%。

  • 心得:

      這學期開始學習日文對我來說相當具挑戰性,可能是因為我在背單字上偏向臨時抱佛腳的方式,所以期末考完後我就把大部分的單字都忘記了。但我相信未來複習時可以進步得更快。很幸運的是,這學期我能拿到 A+ 的成績,原本我以為可能只能達到A等級,但我的原始成績應該非常接近 A+ 的線。由於這學期的學習狀況不如預期,我在期末考試後決定在暑假期間好好學習日文,希望能夠實現這個目標!

分析二

  • 學分:5 學分
  • 授課教師:沈俊嚴
  • 學期成績:A+
  • 上課內容:

      這門課的前幾周主要是延續上學期講掉的 Lebesgue 測度理論,同時介紹了一些 Riemann-Stieltjes 積分,這部分所使用的參考書與上學期相同,是 Pugh 所著的《Real Mathematical Analysis》。接著開始講解 Fourier 級數、Fourier 轉換以及其應用,所使用的參考書是 Torchinsky 所著的《Real-Variable Methods in Harmonic Analysis》。學期的後半部分知識內容變得更加緊密,可能是為了後面講解 Roth’s 定理的初階版本而加快進度。

      這學期的評分方式與上學期有所不同,作業佔 45%,期中考佔 25%,期末報告佔 30%。這學期只有五次作業,相較於上學期感覺難度稍微降低了一些,但有些題目的解題過程相對複雜。此外,還有一些有趣的難題,常常需要花上幾天的時間來思考。這學期比較有趣的地方是沒有期末考試,而是需要完成一份期末報告。期末報告要求學生分組閱讀一篇深入的論文,並在期末考試周以小組為單位與大家分享自己的閱讀成果,需要製作投影片。此外,每個人還需要製作一份個人的期末報告(也可以組內分工完成),這份報告將作為期末報告的評分依據。據說,只要不出現明顯懈怠的情況,這個部分的分數就能獲得滿分。因此整體而言,相較於上學期,這學期的課業負擔較輕鬆。

  • 心得:

      這學期的課程讓我感到比上學期學到了更多的知識。相較於上學期,這學期有很多我之前未接觸過的內容,因此我需要更加專注地聆聽老師的講解。特別是在傅立葉分析方面,我打算將手寫筆記慢慢轉換成電子檔案,以便未來複習時能更方便閱讀。

      除了學習內容外,我也有一些有趣的學習經驗。其中,最有趣的是期末的分組報告。我們組中有一位來自法國的交換學生,為了更有效地學習報告的內容,我們組織了類似讀書會的活動,定期討論書上的內容。由於有法國學生的存在,我們需要用英文進行溝通,甚至在期末的分組報告中,我們也決定全程使用英文進行報告。這次的經驗讓我下定決心,在暑假除了專注於學習日文外,也要多讀一些英文。

      另外,在閱讀期末報告的過程中,我開始重新思考成為數學家是否真的是我想要的職業。面對各種符號和推論過程中的嚴謹性,我感到難以掌握整個過程,並且有些細節只能假裝理解,這讓我感到有些困擾。儘管我在兩個學期的分析榮譽(Honor)課程中取得了好成績,但內心並沒有太多的成就感。因此,我打算再給自己一年的時間,修讀代數榮譽課程後再決定是否要雙主修數學系。近來的探索學分制度實施更加強化了這個想法,或許我該好好利用這個機會,探索數學是否是我所喜歡的。

普通心理學

  • 學分:3 學分
  • 授課教師:鄧善娟
  • 學期成績:A+
  • 上課內容:

      這門課的內容涵蓋了心理學領域中一些被廣泛研究的主題。以下是所包含的主題列表:前半學期的內容主要包括心理學的方法、心理學發展史、行為的生物基礎、感覺與知覺、注意與意識。而後半學期的內容則包含學習、記憶、語言與心智表徵、思考與創造力、性格、智力、社會心理學以及發展心理學。課程所使用的參考書是由台大心理系多位教授合編的著作《心理學 —— 身體心靈與文化的整合》。

      在這個學期,成績的計算方式為將期中考與期末考中較高的成績佔 70%,較低的成績佔 30%,經過加權計算後得出學期成績。此外,還有最多 4 分的加分機會。你可以通過參與 NTU COOL 上的每週討論區或參與心理系的實驗來獲得這些加分機會。值得注意的是,期中考和期末考的滿分都稍高於 100,但在計算最終成績時,將採用原始分數。

  • 心得:

      我選修這門課是受到上個學期修課同學的推薦,他們說這門課相對輕鬆有趣且甜涼。而且,我本來也有意選擇一些通識課程,所以很幸運地選到了這門課。因為老師有提到會將上課錄影放在 NTU COOL 上,所以我並沒有去上課現場,而是按照自己的步調觀看線上影片進行學習。此外,我成功地向上學期修過這門課的同學索取了考古題,對我期中考和期末考有很大的幫助,最終我在這門課中取得了 A+ 的成績。

      可惜的是,我原本以為這門課會是我修過的通識課程中相對感興趣的一門,但最終發現對這門課並沒有太大的興趣,只是為了應付考試而讀書。然而,我也很慶幸能夠學到很多心理學的知識,對於人類行為有了更深入的了解,這讓我感到非常滿足。

社會學

  • 學分:3 學分
  • 授課教師:劉仲恩
  • 學期成績:A
  • 上課內容:

      這門課的內容非常廣泛,涵蓋了許多社會學中重要且經典的主題,例如種族、性別、階級、家庭與教育等。後半學期則更加抽象且巨觀,探討經濟、政治、科技、環境社會學等議題。此外,課程的前幾堂有一些討論課,並且邀請了一些知名學者分享他們專業研究領域的內容。而我印象最深刻的課堂活動是 Kahoot,有幾堂課老師在 Kahoot 上出了一些題目給大家玩,題目都是基於台灣民眾的調查,而很多題目的答案往往與我的想法不一致,讓我感到驚訝。

      這門課的成績計算方式包括三份作業(每份約 1200 字),佔總成績的 45%;出席成績佔 20%;期末考佔 35%。有趣的是,期末考的題型與我對社會學考試的想像有些不同。考試分為三個部分:第一部分是選擇題,共 15 題,總共 60 分;第二部分是名詞解釋,共五題,總共 20 分;第三部分是簡答題,共四題,總共 20 分。相比起全申論題型,這種題型讓寫起來更輕鬆一些。然而,社會學的寫作能力仍然可以透過寫作業來培養。我寫了三份作業,總字數約為 5000 字,我認為這些作業有助於我將課堂學到的相關概念連結起來。

  • 心得:

      我原本選修這門課只是因為想增加一些學分,對於課程本身並沒有太大的興趣。然而,在第一堂課講到社會學的想像力之後,我開始意識到許多事情我從未仔細思考過它們的發生原因以及背後的社會因素。階級、性別、種族、社會化過程等各種因素的交互作用可能導致不同結果的產生。在接下來的課程中,老師邀請了不同領域的專家來分享他們的研究成果。例如,在講探討種族和族群議題時,劉老師邀請了研究基因社會學的學者來探討基因與環境對個體行為的影響,他的研究通過分析基因和環境對個體的影響,解釋了目前還是存在性別不平等的現象,例如 STEM 領域女性研究人員較少的原因。此外,還有許多有趣的演講和課堂助教分享他們的研究成果,如魏揚等。

      儘管在第一堂課之後,我對社會學產生了一些興趣,並且教授講解得很好,但我常常會因為睡過頭而遲到 15 分鐘之類的事情發生。再加上我經常在上課時分心,這可能也是我覺得整個學期過去後,對於課程內容並不是非常深入了解的原因,給人一種空虛、泛泛而談的感覺。儘管最後僅取得了 A 的成績,對於我的 GPA 有一些影響,但我也認為我在這門課上付出的努力只值得A的評價。

現代生物學之應用

  • 學分:2 學分
  • 授課教師:合授
  • 學期成績:A+
  • 上課內容:

      這門課是由四位教授共同合授,每位教授約上 3 到 4 堂課,涵蓋現代生物科技等相關內容。課程內容包含了許多與癌症相關的議題,例如血管增生和免疫療法等技術。評分方式相當特殊,由多個項目組成:

    1. 出席(15%):根據教學回饋單作為出席紀錄。
    2. 閱讀心得(15%):每週需閱讀一篇助教提供的文章並撰寫 200 字心得,共需完成 10 篇。
    3. 小組討論(20%):每次課堂的第二節為小組討論課,根據助教或教授提出的題目進行討論。
    4. 期中個人報告(20%):可以選擇查證網路上的關於生物科技的假訊息,或是課程內容的延伸撰寫一份報告。
    5. 期末小組大會考(10%):以分組考試形式進行,試題在第 15 週公布,並在第 16 週從各組抽選一位同學進行上台回答。
    6. 期末辯論賽或小組報告(20%):每組可選擇參加辯論賽或撰寫小組報告。

    此外,期末還包括小組互評,作為額外的扣分標準。

  • 心得:

      對於這門課,我沒有太多具體的心得。上課時,我並未專心聆聽,而是忙著自己的事情。起初,我以為我可能能在這門課中獲得 A 的成績,也許是因為我在期中報告和期末報告中使用了 bibtex 來製作引用文獻,讓排版看起來更專業一些,才讓我有機會獲得 A+。

2022 秋季 (111-1)

臺灣大學

2022 年秋季修課心得

這學期是我來到台大的第一年,對於自己的資訊能力仍然缺乏自信,對許多程式設計的概念也還不熟悉。因此,在選課上,我選擇留在自己以往比較感興趣的領域 —— 數學。我在數學系修習了線性代數與分析這兩門課。為了平衡學業負擔並維持足夠的學分數,我還選修了不少通識課程。本篇文章將逐一分享我在各科目上的修課心得與感想。

計算機程式設計

  • 學分:3 學分
  • 授課教師:劉邦鋒
  • 學期成績:A+
  • 上課內容:

      這門課的主要內容是學習基礎的 C 語言語法。授課教師劉邦鋒教授在開學前會透過郵件發送一封信,提醒學生這門課過去有大約一半的學生被當或停修的情況,並希望學生們做好充分的預習。該課程使用 Judge Girl 作為線上批改系統,每三次上課會有一次小考,每次小考包含三個題目,總共三小時完成。這五次小考的平均分數即為學期成績,不會進行調分。在課程進行時,學生會被要求先預習上課內容,並且課堂主要以補充課程內容和解題為主(然而,由於我沒有實體上過這門課,所以無法確切得知)。

  • 心得:

      由於在開學前就聽說劉教授的教學風格非常嚴格,所以在暑假快結束之前,我就開始刷 Judge Girl 的題目,同時也觀看教授提供的教學影片。我記得我在開學不到一個月的時間內,就已經解決了 Judge Girl 上的 100 道題目,這讓我對基礎的C語法相對更加熟悉。我希望這對未來修習資料結構與演算法(DSA)和系統程式設計(SP)等課程有所幫助。

線性代數一

  • 學分:4 學分
  • 授課教師:謝銘倫
  • 學期成績:A
  • 上課內容:

      這學期的這門課主要探討有限維向量空間上的線性變換。在學期的前三分之一,我們學習了一些基礎向量空間的定義和線性變換等主題。而在接近期中考的時間,我們開始深入探討矩陣理論,如對角化、Jordan 形式(Jordan form)、有理形式(rational form)等等。這門課很有系統地討論了如何將向量空間分解為 T-cyclic 子空間的直和(direct sum)。學期成績的計算方法是作業佔 25%、期中考佔 35%、期末考佔 40%,而且成績會進行等第調整。

  • 心得:

      這學期我主要沒有參加課堂上課,因為老師表示他會按照他七年前教授線性代數的進度進行授課。因此,我會先觀看他 2015 年前錄製的影片作為預習或追趕進度。這學期的課程內容相對基礎,但我還是能夠學到很多東西,特別是在作業和考試的較難部分。

      這門課的工作量不算太大,我覺得平均每週花在作業上的時間大概是 4 到 5 個小時,或者略微超過這個範圍。相較於分析課,這門課的負擔要輕一些。此外,我非常喜歡謝明倫教授的板書和教學風格。等我數學能力再好一些的時候,我也想修修看他的其他課程。

數學之美

  • 學分:3 學分
  • 授課教師:呂學一
  • 學期成績:A+
  • 上課內容:

      這門課的內容主要是介紹一些有趣的數學知識和數學史等。在上課的過程中,感覺上課速度並不是很快,而且前半部分的課程相對來說比較有趣,而後半部分可能稍嫌無聊一些。在這門課中,我們總共有三次考試,分別是期中考和期末考,但具體的成績計算方式並沒有公開。我覺得教授在數學方面非常嚴謹,這讓我對他的教學印象深刻。

  • 心得:

      這學期能選到這門課確實有些幸運,因為一開始我並沒有在課表上看到這門課。但是出於機緣巧合,我決定去加簽這門課,而幸運的是幾乎所有的加簽申請都被接受了。而下個學期這門課變成非選修通識課,對於資工系的學生來說是一個幸運的轉變。

      關於這門課的內容,我覺得有點無聊且有些雜亂。在學期的後半部分,有些簡單地提到了黎曼猜想,這段時間讓我很想深入學習複分析,但可惜的是時間不夠。另外,這門課有一個有趣的規定,就是停修單只能在第一次期中考試之前簽,這意味著如果有同學沒有參加第一次期中考試,他們的成績就會很糟糕。我認為這個規定的正當性是值得討論的。

現代科學與心靈科學

  • 學分:3 學分
  • 授課教師:歐陽彥正
  • 學期成績:A
  • 上課內容:

      這門課的內容綜合了哲學、心理、宗教等多個元素,對於教授想要探討的主題我並不太清楚,但由於這門課的定位是通識課,我以輕鬆的心態上課。課程評量方式包括期中考(35%)、期末考(35%),以及一份期末報告(30%),且不點名。可能由於今年修課人數較多的關係,考試都採取線上形式。至於期末報告,則需要以2 到 3 人為一組,選定一個主題並製作一份簡報,然後上傳到 NTU COOL 平台。

  • 心得:

      當初選這門課時,我原本優先考慮通識課程,但很可惜星期五下午的通識課都沒有選到,所以才選了這門課。整體來說,這門課的氛圍相當輕鬆和愉快,但可惜我在線上的期中考表現不佳,再加上期末報告成績不如預期,所以最終只獲得了 A 的成績。

      聽說這門課與普通心理學有些內容上的重疊,但我相信這門課的探討應該沒有普通心理學講得那麼詳細。然而,課程內容對我來說有些空虛和乏味的感覺。

日文一上

  • 學分:3 學分
  • 授課教師:許惠晴
  • 學期成績:A+
  • 上課內容:

      日文一的課程內容涵蓋了《來學日本語》的前六課。在最初的二至三週,我們會學習平假名和片假名。課程內容包括簡單的名詞句、動詞句和形容詞句。前幾週的單字量可能較少,但後面每週約有40至50個單字,需要花一些時間來閱讀和學習。評分標準可能因班級而異,而我修習的課程中,老師將平時表現佔 30%、期中考和期末考各佔 35% 作為評分標準。平時成績包括出席、作業(幾乎沒有作業)和小考。整體而言,這門課程很實用且愉快。此外,我修習的班級幸運地有一位盡責的助教。

  • 心得:

      這學期學到的內容是非常基礎的,可能因為學期長度的縮短,我並沒有完全掌握課程範圍內的內容,只學到足夠應付考試的程度。下學期我打算花更多時間來學習日文,並提升我的能力。至於是否修習日文二則是我開始思考的問題,也許我會選擇在大三或大四的時候修習。儘管如此,我仍然覺得這門課對我來說是有所收穫的。

分析一

  • 學分:5 學分
  • 授課教師:沈俊嚴
  • 學期成績:A+
  • 上課內容:

      這門課是數學系大二的榮譽課程,涵蓋了許多重要的數學概念。在學期的前三分之一,我們學習了拓樸學和度量空間的概念,接著深入探討了積分並證明了 Riemann-Lebesgue Theorem。在期中之前,我們開始討論函數空間,並探討了經典的 Baire’s Theorem,證明了無處可維的連續函數在函數空間上形成一個密集的 $G_\delta$ 集合。之後,我們花了幾週時間學習 Banach 空間上的微積分(主要是作為對 $\mathbb{R}^n$ 上微積分的補充),例如我們學到了 Banach 空間上的 Inverse Function Theorem。學期末,我們主要專注於學習測度的理論以及 Lebesgue 積分的定義和操作等等。這門課的內容非常豐富且深入,對我們的數學知識和能力的提升有著重要的影響。

  • 心得:

      這門課絕對是我這學期最期待的一門課。在開學前,學長學姐們一致推薦沈教授的教學能力,這也是讓我對這門課充滿期待的原因。而這門課也是我在這學期中獲益最多的一門課。

      期中考前的內容大部分都是我之前已經學過的,所以相對輕鬆一些。但期末考後開始介紹的 Banach 空間上的微積分和 Lebesgue 理論則是我之前在高級微積分課程中完全沒有接觸過的新知識。我必須承認,後面的內容有時讓我感到有點跟不上進度。不過,幸運的是,期末考試與 Lebesgue 相關的題目主要需要熟悉和應用 Lebesgue 積分的定義,這讓我能夠應對這些題目。

      儘管在後半段的教學進度有些吃力,但這門課仍然帶給我非常豐富的收穫。沈教授的教學風格和深入的內容讓我更深入地理解了微積分和 Lebesgue 理論的重要性。我相信這些學習將為我未來的數學學習奠定堅實的基礎。

醫學與生活

  • 學分:2 學分
  • 授課教師:合授(楊榮森班)
  • 學期成績:A
  • 上課內容:

      這門課每周邀請專家演講,有些課能夠學到寶貴的知識,但也有一些課內容相對無聊。學期的作業相當簡單,只需要參訪醫學人文博物館並寫下1000 字的學習心得和博物館參訪心得。考試部分僅有一次期末考試,全部都是選擇題形式。整體而言,這門通識課相對輕鬆有趣,讓我有機會接觸不同領域的專業知識,同時也能擴大我的視野。我很喜歡這門課,因為它讓我能夠在輕鬆的氛圍下學習,同時獲得新的見解和體驗。

  • 心得:

      這門課是我在選課前精心挑選的一門通識課,結果非常甜涼。它並不會給我太大的負擔,正如前面所提到的。唯一的缺點是上課地點在城中,稍微有些不方便。不過,這門課給我留下了深刻的印象。其中一次演講是關於基本用藥知識的,讓我意識到我對健保和藥品使用的理解還有許多不足之處。另外,我最印象深刻的一堂課是由一位年輕的女講師講授的性學相關主題,這是一堂非常有趣的課程。

認識全球與在地國際化

  • 學分:2 學分
  • 授課教師:合授
  • 學期成績:Pass
  • 上課內容:

      這門通識課以每週邀請外交官和大使等嘉賓演講的方式進行。他們來自歐洲、南美洲等地,這也讓我有機會接觸到許多外國留學生或交換學生。這門課只有通過和不通過的評分,不會影響我的 GPA。作業部分需要每週撰寫一篇報告,篇幅約在 100 至 300 個英文字左右,並且有三次缺交的機會。此外,還有一個期中報告,需要以小組形式(每組約 8 人)探討某一國家或洲的議題並製作成海報。期末報告則是總結本學期所學,並以影片形式錄製(與期中報告相同的小組)。整體而言,這門課可能不像數學之美、醫學與生活等課那麼輕鬆,但由於不會影響 GPA ,所以可以算是一門相對較輕鬆愉快的課程。

  • 心得:

      這門課是我在學長的推薦下選修的。雖然上課時我通常在處理自己的事情,但如果對於國際事務感興趣,這門課其實能學到很多有趣的歷史和政治相關知識。

2022 春季 (110-2)

清華大學

2022 年春季修課心得

微積分A二

  • 學分:4 學分
  • 授課教師:黃明傑
  • 學期成績:A+
  • 上課內容:

      高三時因為參加科學班,我修習了微積分課程。這學期的課程延續了上學期的進度,繼續使用 Stewart 所寫的課本作為教材,主要內容包括:微分方程、參數方程、極座標、數列與級數、冪級數、偏微分、多重積分,以及向量微積分。課堂上主要以板書的方式整理課本中的概念與範例,幫助我們掌握重點。評量方式與上學期相同,僅有三次大型考試:前兩次期中考各佔 30%,期末考則佔 40%。

  • 心得:

      這學期的課程幫助我補齊了過去較少深入學習的概念,例如多重積分和向量微積分。然而,整體而言,我覺得自己在這門課上收穫的知識有限,因為大部分的內容其實可以自行透過課本理解。修這門課的過程中,我更多的是感覺自己只是為了拿學分而來上課,並未對學科本身產生特別深刻的興趣。

普通物理A二

  • 學分:4 學分
  • 授課教師:洪在明
  • 學期成績:A+
  • 上課內容:

      這學期課程延續上學期的 Halliday 課本內容,主要講授靜電學、電路學(如 RLC 電路)、靜磁學、電磁感應、馬克士威方程式與電磁波等主題。課程的原定評分方式包括三次期考,每次佔比 30%,以及作業佔比 10%。然而,因應疫情的影響,期末考最終取消,並為期中考表現較差的同學提供額外的加分機會。此外,在每次考試前,助教會從課本的習題中挑選部分題目供我們練習,這些練習題有一部份會出在期考作為期考的基本分。

  • 心得:

      這門課的內容其實很多在學校的物理課中也有學過。不過,由於對這些物理概念的興趣不大,不管是在高中還是在清大修課時,我都沒有投入太多精力,結果最後不得不依賴課本來補足學習的不足,應付考試。然而,儘管如此,這學期我仍然學到了不少有趣的電磁學知識,讓我對這個領域產生了新的理解。

高等微積分二

  • 學分:4 學分
  • 授課教師:邱鴻麟
  • 學期成績:A+
  • 上課內容:

      這門課的內容主要在延續上個學期的內容,教材一樣選自 W.Rudin 所寫的書,這學期我們從第七章開始,探討了函數空間的性質,花了幾週講 uniform convergence、Arzela-Ascoli Theorem、Stone-Weirestrass Theorem 等等重要定理。之後有帶到第八章跟第九章的內容,像是 Fourier series、Gamma函數、多變數函數微分的意義等等。學期末的時候,教授談了一點極值的問題,並提到變分法,算是對我來說很酷的東西。評量方式跟上個學期一樣。

  • 心得:

      這學期的高微算是我第一次接觸到 Arzela-Ascoli Theorem、Stone-Weirestrass Theorem這兩個定理,雖然都可以理解這些定理,並背誦出來,但可能因為 Rudin 的風格抽象嚴謹,對於初學者的啟發性好像沒那麼好,於是我當時其實不太懂 Arzela-Ascoli Theorem 所代表的意義。到後面第一次看到 Fourier series 以及變分法等等有趣的東西,讓我決定到台大要來繼續修分析提升自己的實力。

2021 秋季 (110-1)

清華大學

2021 年秋季修課心得

因為參與了科學班計畫,我在高三時有機會到清華大學修習一些基礎學科課程。這段經驗不僅讓我提前接觸大學的學術環境,也減輕了未來在大學修課時的壓力。本篇文章將簡單記錄我這學期在清華大學學到的內容與收穫。

微積分A一

  • 學分:4 學分
  • 授課教師:黃明傑
  • 學期成績:A+
  • 上課內容:

      這門課主要介紹了單變數函數的極限、微分和積分的概念,使用的教科書是 Stewart 的著作。由於這門課是針對計財系開設的,所以難度不算太高。課程並沒有作業,但有三次期中考試,考題大多相對基礎。

  • 心得:

      我沒有跟科學班的同學一起修微積分,因為原本的時間與高等微積分課程衝堂。這門微積分課的內容並不十分嚴謹,主要討論的是具有良好性質的函數,如連續函數和可微函數等等。相比於台大數學系的課程,難度和深度明顯較為簡化,可以說是相對輕鬆的一門課程。

普通物理A一

  • 學分:4 學分
  • 授課教師:洪在明
  • 學期成績:A+
  • 上課內容:

      這門課使用的參考書是由 Halliday 撰寫的教材。在這個學期中,我們學習了一些力學、運動學和狹義相對論等主題。老師的上課方式通常預設學生事先預習,並在課堂上提供一些有趣的補充內容。考試多半涵蓋課本習題,助教會勾選作業題目,但不負責批改。上課發言和參與演習課(助教課)都能獲得加分,期末考試也佔有相當大的比重。整體而言,這門課是一門紮實且有趣的選修課程。

  • 心得:

      這門課主要教授一些基礎的物理知識,對於我目前就讀資訊工程系的我來說可能沒有太多直接的應用價值,但它讓我體驗到了在大學修課的感覺。

高等微積分一

  • 學分:4 學分
  • 授課教師:邱鴻麟
  • 學期成績:A+
  • 上課內容:

      這學期我們使用了 W. Rudin 所著的 Principles of Mathematical Analysis,也被網路上稱為 “Baby Rudin”,作為參考書。這本書主要涵蓋了第一章到第六章的內容,包括實數構造、度量空間、連續性、微分和積分等概念,堪稱是一本相當扎實的訓練教材。學期成績的計算方式為三次期中考(各佔 20%)、期末考試(30%)以及約 15 次的作業(10%),並且似乎會有調分的情況。作業都是從參考書中選取的題目,例如我們在高等微積分的作業、期中考、以及分析學的作業和期考中都有涉及到相同的題目。

      雖然這門課與微積分的內容看起來相似,但在嚴謹度方面有著顯著的提升。舉例來說,我們在這門課中使用了 Darboux 積分的定義,而在 Stewart 所寫的教科書中,積分的定義主要適用於連續函數。(可參考 Pugh 所著 Real Mathematical Analysis 第三章的習題 27 題。)

  • 心得:

      這門課對我來說是一個很好的磨練,因為在選修之前我對是否要修讀數學系還有些猶豫。我擔心清華大學的微積分A課程無法抵免台灣大學數學系的微積分課程,而且我對高等微積分也抱有濃厚的興趣,所以最終選擇了修讀這門課。在修這門課之前的暑假,我花了些時間閱讀了 Rudin 參考書的前七章內容,所以在學習上相對輕鬆些,並且我能更深入地理解基礎概念。這門課給我帶來了不少收穫,讓我對這些基礎知識更加熟悉了一些。