2025 年秋季課程心得

Posted by Joshua on March 7, 2026

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+)。

  • 心得:

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