<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Joshua&apos;s Blog</title>
    <description>Joshua&apos;s Blog Page</description>
    <link>https://joshuachen0213.github.io/</link>
    <atom:link href="https://joshuachen0213.github.io/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Thu, 11 Jun 2026 08:03:58 +0000</pubDate>
    <lastBuildDate>Thu, 11 Jun 2026 08:03:58 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>2026 年春季修課心得</title>
        <description>&lt;h1 id=&quot;2026-年春季修課心得&quot;&gt;2026 年春季修課心得&lt;/h1&gt;

&lt;h3 id=&quot;電腦系統專題&quot;&gt;電腦系統專題&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：張原豪&lt;/li&gt;
  &lt;li&gt;學期成績：&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;出席（14%）&lt;/strong&gt;：本學期共有 14 週安排同學報告，因此需出席這 14 週並聆聽其他同學的報告。出席情況以投票紀錄為準，每缺席一次扣總成績 1%。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;口頭報告（30%）&lt;/strong&gt;：需進行三次論文報告，每次佔總成績 10%。原則上只要完成報告，通常不會額外扣分。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;閱讀心得（16%）&lt;/strong&gt;：需以投影片形式繳交八篇論文的閱讀心得，每篇佔總成績 2%。論文需選自近三年的頂級國際會議。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末書面報告（20%）&lt;/strong&gt;：將八篇閱讀心得加以整理與統整，並進一步探討可能的研究方向。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

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

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

&lt;h3 id=&quot;自然語言處理nlp&quot;&gt;自然語言處理(NLP)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：陳信希&lt;/li&gt;
  &lt;li&gt;學期成績：&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期中考與期末考&lt;/strong&gt;：以問答題為主，考試範圍包含課堂內容；其中期末考除了授課內容之外，也涵蓋其他同學的論文報告內容。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;論文閱讀報告&lt;/strong&gt;：以分組方式進行，需報告近兩年自然語言處理領域的頂級會議論文。此部分的成績又細分為三項：25% 為向助教進行演練報告的表現，50% 為正式上台報告的表現，其餘 25% 則為書面投影片的品質。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末專題報告&lt;/strong&gt;：以分組方式針對一個公開的大方向進行探討。本學期的主題與情緒相關，專題內容包含一份提案以及兩次與助教的討論。評分方式分為兩部分，其中 45% 為與助教討論時的表現，剩餘 55% 則依據最終繳交的書面報告評分。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

    &lt;p&gt;  &lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;智慧型汽車導論&quot;&gt;智慧型汽車導論&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：林忠緯&lt;/li&gt;
  &lt;li&gt;學期成績：&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;作業（10%）&lt;/strong&gt;：共有兩次作業，每次佔總成績 5%，內容主要讓學生熟悉課堂中介紹的演算法與方法。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末考（50%）&lt;/strong&gt;：於第 11 週舉行，題型包含排序問題、是非題以及分析與推導題。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末專題口頭報告（10%）&lt;/strong&gt;：需報告期末專題的目前進度，或提出研究構想與實驗規劃。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末專題書面報告（30%）&lt;/strong&gt;：為期末專題的最終成果報告，主題可從論文閱讀與調查（survey）、系統實作（implementation）以及研究探索（research）等方向切入，也可以結合多種形式進行。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

    &lt;p&gt;  &lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 30 Jun 2026 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2026/06/30/course-review/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2026/06/30/course-review/</guid>
        
        <category>Course Review</category>
        
        
      </item>
    
      <item>
        <title>2025 年秋季課程心得</title>
        <description>&lt;h1 id=&quot;2025-年秋季修課心得&quot;&gt;2025 年秋季修課心得&lt;/h1&gt;

&lt;h3 id=&quot;記憶體與儲存系統&quot;&gt;記憶體與儲存系統&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：張原豪&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  本課程的評分方式主要包含以下三個部分：&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;程式作業（40%）&lt;/strong&gt;：本學期共有四次作業，需要閱讀 SSD 模擬器 MQSim 的程式碼，部分作業可能需要修改程式碼，並透過調整模擬參數進行實驗，最後分析與討論實驗結果。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期中考（25%）與期末考（25%）&lt;/strong&gt;：考試範圍為該次期考前的課程內容，題型為問答題，共 20 題，每題 5 分。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;課堂表現（10%）&lt;/strong&gt;：此部分的具體評分方式未特別說明，推測可能作為老師彈性調整分數的依據；而我在此項目中最終獲得約 11% 的成績。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

&lt;h3 id=&quot;深度學習之應用adl&quot;&gt;深度學習之應用(ADL)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：陳縕儂&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  這門課的評分方式如下：&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;三次程式作業（60%，各 20%）&lt;/strong&gt;：主要需要透過微調模型（fine-tuning）來完成指定任務。例如，作業一需要訓練兩個任務的模型，包含段落選擇（paragraph selection）與選擇題問答（multiple-choice QA）；作業二則需使用量化（quantization）與 LoRA 方法進行指令微調（instruction tuning），讓模型學會特定指令，例如文言文翻譯；作業三則需要微調檢索模型（retriever）與重排序模型（reranker），以提升系統在檢索增強生成（retrieval-augmented generation, RAG）任務上的表現。每次作業除了需要繳交程式碼與訓練完成的模型，並達到一定的效能標準外，也需要撰寫實驗報告。此外，每次作業也設有 2% 的加分作業。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;課堂參與（5%）&lt;/strong&gt;：主要為參與課程安排的演講並撰寫心得。課程共安排兩次演講，只需完成其中一次即可獲得此部分的分數。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末報告（35%）&lt;/strong&gt;：期末需要完成一個大型專題報告，以分組方式進行，每組 4–6 人。專題題目為對對話式語言模型進行越獄攻擊（jailbreak）。具體而言，會提供大量具有惡意意圖的提示詞（prompt），我們需要設計一種自動化方法，將其轉換為新的提示詞，使得新的提示詞在防衛的模型（guard）看來是安全的，但仍能誘使對話式語言模型產生不當或不安全的回應。此部分的成績由 60% 的系統表現成績、40% 的報告與簡報，以及 10% 的問答及討論組成，最後再轉換為 100% 的分數。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

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

&lt;h3 id=&quot;編譯程式設計&quot;&gt;編譯程式設計&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：洪鼎詠&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  本課程的成績計算方式如下：&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;複習作業（5%）&lt;/strong&gt;：期中考與期末考前一週會布置手寫複習作業，內容涵蓋該次考試範圍的課程內容，且作業題目與考試密切相關。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期中考（25%）與期末考（25%）&lt;/strong&gt;：考試內容為該次上課所學，考試時允許使用任何參考資料，包括網路資源與語言模型。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;程式作業（45%）&lt;/strong&gt;：課程共有四次作業，分別要求實作掃描器（scanner）、語法分析器（parser）、語意分析器（semantic analyzer）以及程式碼生成器（code generator）。作業可使用不同的既成工具，如 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;flex&lt;/code&gt; 以及 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bison&lt;/code&gt; 等。四次作業的分數並非平均計算，而是依序佔 5%、5%、10% 與 15%。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

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

&lt;h3 id=&quot;電工實驗嵌入式系統&quot;&gt;電工實驗（嵌入式系統）&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：2 學分&lt;/li&gt;
  &lt;li&gt;授課教師：王勝德&lt;/li&gt;
  &lt;li&gt;學期成績：A&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;RTOS 與相關 API：了解 FreeRTOS 與 CMSIS 等函式庫提供的 API，並學習如何透過這些工具實現執行緒間通訊（inter-thread communication），以及基本的同步（synchronization）機制。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Serial 通訊：學習如何使用開發板上的 Serial port 與相關函式庫來實現序列通訊。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Bluetooth：介紹 Bluetooth Low Energy（BLE） 的基本協定概念，例如 GATT，並實作相關功能於開發板上。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;Wi-Fi：透過 Wi-Fi 建立 TCP socket 或 HTTP 連線。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;PWM：介紹 PWM 的基本概念，並利用 logic analyzer 觀察與分析輸出的波形。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;DMA 與 Interrupt：了解嵌入式系統中如何透過 DMA 與中斷機制有效取得與處理資料。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;DSP：對接收到的訊號進行數位訊號處理（DSP）。課程也會介紹相關函式庫的使用，例如 fixed-point number 的運算，並利用平行化（parallelism）來加速 DSP 計算。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;  本課程的成績計算方式如下：&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末考（33%）&lt;/strong&gt;：考試範圍涵蓋整個學期的課程內容，但不涉及實作細節。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末報告（33%）&lt;/strong&gt;：各組需選擇一個題目，並於第 11 週左右向全班提案。之後每週輪流報告進度，最後展示最終成果。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;七次實驗（33%）&lt;/strong&gt;：共七次實驗，每次若僅完成基礎部分，最高可得 85 分；完成加分題則可再額外加 5 到 10 分。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;器材維護（1%）&lt;/strong&gt;：包括實驗器材的日常維護與管理。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

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

&lt;h3 id=&quot;總體經濟學上&quot;&gt;總體經濟學上&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：朱玉琦&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Solow 模型（Solow model）&lt;/strong&gt;：透過資本與勞動等生產要素來描述生產函數（production），並用以分析與預測長期經濟成長趨勢。此外，也會討論其延伸模型，例如加入技術進步（technological progress）與人口成長等因素後的情形。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;消費—儲蓄模型（consumption–saving model）&lt;/strong&gt;：這是一個個體層級的經濟模型，討論個體如何在年輕時期與老年時期之間分配消費，以最大化兩個時期的效用（utility）。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;世代交疊模型（Overlapping Generations model, OLG model）&lt;/strong&gt;：將消費—儲蓄模型與 Solow 模型結合，分析個體的消費與儲蓄決策如何影響整體經濟中的儲蓄率（saving rate）等參數，進而影響長期經濟成長。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

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

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

    &lt;p&gt;  這門課在經濟系中似乎屬於中階課程，相較於「總體經濟學原理」，其目標是以更嚴謹的數學方法來解釋入門課程中介紹過的經濟模型。由於我本身已有一定的數學基礎，因此這門課對我而言反而有些像是一門原理課。透過課程內容，我可以了解早期經濟學家是如何利用數學模型來解釋經濟成長，也因此對這個領域的基本語言與思考方式有了初步的認識，讓未來若進一步接觸經濟相關研究時，能更容易理解其內容。&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2026/03/07/course-review/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2026/03/07/course-review/</guid>
        
        <category>Course Review</category>
        
        
      </item>
    
      <item>
        <title>2025 年春季課程心得</title>
        <description>&lt;h1 id=&quot;2025-年春季修課心得&quot;&gt;2025 年春季修課心得&lt;/h1&gt;

&lt;h3 id=&quot;計算機網路實驗&quot;&gt;計算機網路實驗&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：2 學分&lt;/li&gt;
  &lt;li&gt;授課教師：張傑帆&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;利用 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;iptables&lt;/code&gt; 架設防火牆，並設定符合特定條件的封包過濾規則。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;架設 RADIUS Server，實現使用者的流量管控與連線時間限制，同時學習無線基地台(AP)的設定。此外，也需設計一個網頁介面供管理員使用。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;架設 MAG 與 LMA 伺服器，使連線裝置可透過 AP 獲得靜態 IPv6 位址，並在 ESS 覆蓋範圍內具備移動性支援功能。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

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

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

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

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

&lt;h3 id=&quot;高等計算機網路&quot;&gt;高等計算機網路&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：逄愛君&lt;/li&gt;
  &lt;li&gt;學期成績：A&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

    &lt;p&gt;  本學期的課程內容主要補足上學期《計算機網路》課本中未詳述的章節，涵蓋以下三個主題：&lt;/p&gt;

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

    &lt;p&gt;  而&lt;strong&gt;成績評量部分&lt;/strong&gt;則分為三個主要項目：&lt;/p&gt;

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

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

&lt;h3 id=&quot;進階網路管理與系統管理anasa-nasa-3階&quot;&gt;進階網路管理與系統管理(ANASA, NASA 3階)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：2 學分&lt;/li&gt;
  &lt;li&gt;授課教師：蔡欣穆&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  &lt;strong&gt;成績評量方式&lt;/strong&gt;分為以下幾個項目：&lt;/p&gt;

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

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

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

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

&lt;h3 id=&quot;分散式系統dcs&quot;&gt;分散式系統(DCS)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：薛智文&lt;/li&gt;
  &lt;li&gt;學期成績：A&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  課程評分方面，期末報告佔 90%，主要採用同儕互評的方式進行，另有 10% 為課堂參與分數。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

&lt;h3 id=&quot;代數導論二&quot;&gt;代數導論二&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：4 學分&lt;/li&gt;
  &lt;li&gt;授課教師：&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

    &lt;p&gt;  本學期的課程內容主要圍繞兩大主題：&lt;strong&gt;體論(Field Theory)&lt;/strong&gt;與&lt;strong&gt;模論(Module Theory)&lt;/strong&gt;，並涵蓋部分基本的交換代數概念。&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Field Theory 與 Galois Theory&lt;/strong&gt;
課程首先複習了基本的域論知識，並進一步進入 Galois 理論的探討。相較於我在修習「代數一」時從 normal extension 的定義切入 Galois 理論的方式，本學期的課程則是從 &lt;em&gt;splitting field&lt;/em&gt; 的角度出發，並更著重於 &lt;em&gt;splitting field&lt;/em&gt; 的性質分析與其在 Galois 理論中的角色。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Module Theory 與基礎交換代數&lt;/strong&gt;
模論的部分則是將向量空間(vector space)的概念推廣至交換環(commutative ring)上的模(module)，進而探討模與向量空間在結構上的異同。其中，我們學習到許多在向量空間中成立的性質在模中並不一定成立，例如：「finitely generated 並不保證存在 basis」。課程最後也介紹了一些基本的交換代數內容，包括 Noetherian ring 與 Hilbert basis theorem 等重要定理。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

&lt;h3 id=&quot;排球初級&quot;&gt;排球初級&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：1 學分&lt;/li&gt;
  &lt;li&gt;授課教師：呂宛蓁&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;ul&gt;
      &lt;li&gt;&lt;strong&gt;期中考&lt;/strong&gt;：
        &lt;ul&gt;
          &lt;li&gt;高手對空擊球 50 顆，佔 10%。&lt;/li&gt;
          &lt;li&gt;低手對空擊球 50 顆，佔 10%。&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;期末考&lt;/strong&gt;：
        &lt;ul&gt;
          &lt;li&gt;高手或低手發球各 11 球，佔 10%。&lt;/li&gt;
          &lt;li&gt;雙人連續傳球（兩人合力完成 100 球）佔 10%。&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;書面報告&lt;/strong&gt;：
        &lt;ul&gt;
          &lt;li&gt;校內外排球練習或比賽紀錄：10%。&lt;/li&gt;
          &lt;li&gt;學期心得與課程建議：5%。&lt;/li&gt;
          &lt;li&gt;國內外排球賽觀賽心得：5%。&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;出席率與學習態度&lt;/strong&gt;佔 30%，並依據請假與缺席情況酌予扣分（詳細規則略）。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;strong&gt;其他項目&lt;/strong&gt;佔 10%：
        &lt;ul&gt;
          &lt;li&gt;包括參加校園馬拉松、全勤與服裝規定（例如穿著牛仔褲、涼鞋等視為服裝不合格）等加分項目，共計 4 分。&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

    &lt;p&gt;  課程中，我們通常會兩人一組進行練習。前半學期以輪流對空擊球為主，到了後半學期則進入雙人對傳的訓練。雖然幾次考試我都是在壓力中勉強拿到還不錯的分數，但整體而言，這門課讓我覺得非常有趣，不僅學會了排球的基本技巧，也透過不斷的練習提升了自己的運動協調與臨場反應能力。&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Sun, 27 Jul 2025 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2025/07/27/course-review/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2025/07/27/course-review/</guid>
        
        <category>Course Review</category>
        
        
      </item>
    
      <item>
        <title>2024 年秋季課程心得</title>
        <description>&lt;h1 id=&quot;2024-年秋季修課心得&quot;&gt;2024 年秋季修課心得&lt;/h1&gt;

&lt;h3 id=&quot;計算機結構ca&quot;&gt;計算機結構(CA)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：楊佳玲&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

    &lt;p&gt;  這門課的上課內容涵蓋以下主題：&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;簡介&lt;/strong&gt;：學習如何評估不同 CPU 設計的效能，了解各種評測方法與指標。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;指令集架構(Instruction Set Architecture)&lt;/strong&gt;：探討不同指令集的優缺點，例如複雜指令集與精簡指令集的差異。此外，課堂中將介紹一種特殊的指令集——RISC-V，並透過數次作業實作 RISC-V assembly 程式設計。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;資料流與資料路徑(Data Path)&lt;/strong&gt;：學習如何設計一個單一週期 CPU，支援部分 RISC-V 指令的執行。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Pipeline&lt;/strong&gt;：利用 pipeline 技術優化單一週期 CPU，將指令拆解成多個步驟並行處理。同時，學習如何解決 pipeline 引發的危障(hazard)，這些挑戰讓 CPU 設計更具複雜性。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Linker 與 Loader&lt;/strong&gt;：探討編譯器如何將高階程式碼轉譯為 assembly 指令，理解程式執行的底層過程。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;快取(Cache)&lt;/strong&gt;：學習 CPU 快取的結構，了解快取如何提升記憶體存取效能。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;階層式記憶體架構(Hierarchical Memory Architecture)&lt;/strong&gt;：分析快取與記憶體設計對 CPU 效能的影響，探索不同階層的記憶體如何協同運作。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Roofline Model&lt;/strong&gt;：探討算術強度(Arithmetic Intensity)與效能的關係，並學習如何應用此模型分析程式效能瓶頸。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;  這門課的評分方式如下：&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;小考(10%)&lt;/strong&gt;&lt;/p&gt;

        &lt;ul&gt;
          &lt;li&gt;&lt;strong&gt;期中考前&lt;/strong&gt;：小考在第二、三節課進行，採分組形式。小組共同討論並完成該週的題目（約五題），以組別成績計算分數。&lt;/li&gt;
          &lt;li&gt;&lt;strong&gt;期中考後&lt;/strong&gt;：第二節課為分組討論課，需完成兩至三題題目；第三節課則進行個人小考，題目與討論課內容相似。&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;作業(20%)&lt;/strong&gt;&lt;/p&gt;

        &lt;p&gt;課程包含五次程式作業：&lt;/p&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;strong&gt;前兩次&lt;/strong&gt;：以 RISC-V 程式設計為主，專注於基本指令的實作與練習。&lt;/li&gt;
          &lt;li&gt;&lt;strong&gt;後三次&lt;/strong&gt;：以 Verilog 程式設計為主，分三個階段逐步實作出一個具備 branch predictor 和 pipeline 架構的完整 CPU。&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期中考(35%)與期末考(35%)&lt;/strong&gt;&lt;/p&gt;

        &lt;p&gt;兩次考試分別覆蓋前後半學期的內容，佔比最高。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;此外，本課程的等第線劃分方式可能與學校標準有所不同。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

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

&lt;h3 id=&quot;計算機網路cn&quot;&gt;計算機網路(CN)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：周承復&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

    &lt;p&gt;以下為這門課的評分方式&lt;/p&gt;
    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期中考(20%)與期末考(25%)&lt;/strong&gt;：題目多數來自課本習題與考古題。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;作業(20%)&lt;/strong&gt;：共 4 次手寫作業，主要內容亦以課本習題為主。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末專案(35%)&lt;/strong&gt;：使用 C++ 實作一個聊天室，學習並練習 socket programming 和部分系統程式設計的概念。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;演講出席加分(5%)&lt;/strong&gt;：本學期安排兩場演講，參與者可獲得額外加分。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;此外，這門課的最終成績評定採用學校的等第標準。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

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

&lt;h3 id=&quot;專題研究&quot;&gt;專題研究&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：2 學分&lt;/li&gt;
  &lt;li&gt;授課教師：施吉昇&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  這學期，我主要學習了以下內容：&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;一個新的程式語言：Rust。&lt;/li&gt;
      &lt;li&gt;瞭解 Zenoh（一個 NDN 的實作與產品）的一部分運作原理。&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;在這學期中，我將把所學和所見整理成筆記，並在小組會議時進行簡要分享。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

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

&lt;h3 id=&quot;系統專題研究--物聯網中介軟體設計iot&quot;&gt;系統專題研究 — 物聯網中介軟體設計(IOT)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：施吉昇&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;運動控制元件&lt;/strong&gt;：負責改變車輛的運動狀態。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;感知模組&lt;/strong&gt;：蒐集車輛狀態與環境資料，進行精確定位。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;行為規劃模組&lt;/strong&gt;：根據感知數據進行路徑規劃，並計算控制指令傳達給運動控制元件。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

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

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;通訊技術&lt;/strong&gt;：探討自駕車內部與外部的通訊機制，確保訊息傳輸的可靠性與即時性。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;機率機器人學&lt;/strong&gt;：涉及機器人決策與推論的數學基礎，學習機率如何應用於自駕車的導航與環境理解。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;定位與地圖建構&lt;/strong&gt;：使用 LiDAR（或其他 range finder）或影像數據進行精確定位，探討如何生成與更新周遭環境地圖，並學習 SLAM (Simultaneous Localization and Mapping) 等相關技術。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;行為規劃&lt;/strong&gt;：包括路線規劃、移動規劃、以及軌跡規劃等不同層級的規劃任務。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

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

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;作業(40%)&lt;/strong&gt;：透過實機操作或軟體模擬，讓學生親自體驗自駕車技術的應用與實現方式。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期中考(30%)&lt;/strong&gt;：在第 10 週進行，涵蓋通訊技術與機率機器人學的相關內容。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末報告(30%)&lt;/strong&gt;：完成一個影像定位模組的實作，並設計自己的方法，以超越 OpenCV 分割方法的效能。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;此外，由於期中考成績普遍不佳，老師最後全體調分 10 分。課程的最終成績依照學校的等第標準評定。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

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

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

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

&lt;h3 id=&quot;平行程式設計pp&quot;&gt;平行程式設計(PP)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：李濬屹&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

    &lt;p&gt;  這門課程的主題涵蓋了平行程式設計的核心知識與實務操作，主要包括以下幾個部分：&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;平行化計算機結構&lt;/strong&gt;：涵蓋 Superscalar、multi-core、SIMD 等主題，能夠學習計算機結構的相關知識，幫助全面理解平行程式設計的基礎。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pthread&lt;/code&gt; 與 OpenMP&lt;/strong&gt;：適用於多核心(multi-core)的平行程式設計，特別是透過 OpenMP 的 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pragma&lt;/code&gt; 實作，編譯器可以將程式轉換成平行版本。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;MPI (Open MPI)&lt;/strong&gt;：適用於多節點(multi-node)的平行程式設計，藉由程式庫處理節點間的通訊問題，簡化程式開發。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;GPU 程式設計（CUDA 與 HIP）&lt;/strong&gt;：提供練習 CUDA/HIP 的機會，能更深入理解 GPU 平行計算的概念與實作方法。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;效能評估&lt;/strong&gt;：透過學習 Roofline 模型，了解算術強度與效能之間的關係，進行平行程式效能的分析與評估。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;而這門課的評分方式為：&lt;/p&gt;

    &lt;ol&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Lab(10%)&lt;/strong&gt;：Lab 主要用於環境配置與基本練習，題目相對簡單，便於熟悉平行程式設計的基礎操作。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;作業(40%)&lt;/strong&gt;：包含五次實作作業，需將程式平行化，並撰寫報告回答相關問題。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期中考(15%)與期末考(15%)&lt;/strong&gt;：考試範圍包含期中或期末前的所有課程內容，期中考於第 7 週，期末考於第 15 週進行。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;期末專案(20%)&lt;/strong&gt;：實作一個與平行程式設計相關的專案，分數會根據組員人數進行調整。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;NVIDIA Lab 加分(1%)&lt;/strong&gt;：NVIDIA 有提供兩個關於 CUDA C++ 與 Python 的線上課程，完成一個加 0.5 分學期成績。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ol&gt;

    &lt;p&gt;不清楚是否會依照學校的標準給等第。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

    &lt;p&gt;  然而，課程中有些主題與其他課程的內容有所重疊，例如：&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;計算機結構&lt;/strong&gt;：課程中關於支援平行化程式的硬體結構設計（如 multi-core 和 SIMD）部分，在計算機結構課程中也曾花少部分時間提及。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pthread&lt;/code&gt; 與 OpenMP&lt;/strong&gt;：這些內容在「系統程式設計(SP)」或「作業系統(OS)」課程中都有提到，學起來對我來說並不算陌生。&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;strong&gt;Open MPI&lt;/strong&gt;：雖然這是我第一次接觸，但學習起來相對容易，並沒有太大的困難。&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

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

&lt;h3 id=&quot;羽球初級&quot;&gt;羽球初級&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：1 學分&lt;/li&gt;
  &lt;li&gt;授課教師：李坤培&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  這門羽球課的上課經驗，可能是因為隊友們比較隨興，與桌球課中那種認真專注的氛圍有所不同。這樣的環境讓我對這門課的興趣沒有那麼高，打羽球時也多是為了應付考試，而不是出於對運動的熱愛。相較於桌球，我並沒有感覺到那麼多運動的樂趣，整體而言，這門課對我來說比較像是一項必須完成的任務，而不是一場愉快的運動體驗。&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2025/01/15/course-review/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2025/01/15/course-review/</guid>
        
        <category>Course Review</category>
        
        
      </item>
    
      <item>
        <title>函數方程筆記</title>
        <description>&lt;!-- Chinese Version --&gt;
&lt;div class=&quot;zh post-container&quot;&gt;
    
    &lt;h3 id=&quot;函數方程簡介&quot;&gt;函數方程簡介&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;  這份&lt;a href=&quot;/docs/fe.pdf&quot;&gt;筆記&lt;/a&gt;介紹了一種在數學奧林匹亞競賽中經常出現的有趣題型 —— &lt;strong&gt;函數方程&lt;/strong&gt;。函數方程是一種未知數為一個或多個函數的方程。例如，考慮以下方程： \[ xf(x + f(y)) + xf(y) = 2yf(x) + x^2.\] 我們的任務是找出所有滿足該方程的函數 $ f : \mathbb{R} \to \mathbb{R} $。&lt;/p&gt;

&lt;p&gt;  在這份筆記中，我將提供一些指導，幫助你熟悉解決函數方程的常用技巧。需要注意的是，這份筆記的內容是用中文書寫的。&lt;/p&gt;

&lt;/div&gt;

&lt;!-- English Version --&gt;
&lt;div class=&quot;en post-container&quot;&gt;
    
    &lt;h3 id=&quot;introduction-to-functional-equations&quot;&gt;Introduction to Functional Equations&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;  This &lt;a href=&quot;/docs/fe.pdf&quot;&gt;note&lt;/a&gt; introduces a type of problem frequently encountered in Mathematical Olympiads —— &lt;strong&gt;functional equations&lt;/strong&gt;. A functional equation is an equation where the unknowns are one or more functions. For example, consider the following: \[ xf(x + f(y)) + xf(y) = 2yf(x) + x^2. \]  Here, the task is to find all functions $ f : \mathbb{R} \to \mathbb{R} $ that satisfy the equation.&lt;/p&gt;

&lt;p&gt;  In this note, I provide a guide to help you become familiar with the common techniques for solving functional equations. Please note that the content is written in Mandarin Chinese.&lt;/p&gt;

&lt;/div&gt;
</description>
        <pubDate>Mon, 12 Aug 2024 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2024/08/12/note-fe/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2024/08/12/note-fe/</guid>
        
        <category>Note</category>
        
        <category>Mathematical Olympiad</category>
        
        
      </item>
    
      <item>
        <title>2024 年春季課程心得</title>
        <description>&lt;h1 id=&quot;2024-年春季修課心得&quot;&gt;2024 年春季修課心得&lt;/h1&gt;

&lt;h3 id=&quot;作業系統os&quot;&gt;作業系統(OS)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：施吉昇&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

&lt;h3 id=&quot;機率&quot;&gt;機率&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：林守德&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

&lt;h3 id=&quot;人工智慧導論fai&quot;&gt;人工智慧導論(FAI)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：陳縕儂&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

&lt;h3 id=&quot;網路管理與系統管理實驗nasa&quot;&gt;網路管理與系統管理實驗(NASA)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：1 學分&lt;/li&gt;
  &lt;li&gt;授課教師：蔡欣穆&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

    &lt;p&gt;  而這個學期的成績計算方式如下：&lt;/p&gt;

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

    &lt;p&gt;  最後，將根據所有學生的排名來決定最終等第。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

&lt;h3 id=&quot;前瞻資訊科技&quot;&gt;前瞻資訊科技&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：蔡欣穆&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

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

&lt;h3 id=&quot;生活中的科技原理&quot;&gt;生活中的科技原理&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：饒梓明&lt;/li&gt;
  &lt;li&gt;學期成績：A&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

&lt;h3 id=&quot;桌球初級&quot;&gt;桌球初級&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：1 學分&lt;/li&gt;
  &lt;li&gt;授課教師：王翊澤&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  這門課的給分方式只要在課堂上認真練習，基本上都能拿到滿分。我認為這門課是一門具有系統性教學與練習的體育課，過程中不僅能確實地運動到，還能學到桌球基礎的技巧與策略。&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Mon, 10 Jun 2024 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2024/06/10/course-review/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2024/06/10/course-review/</guid>
        
        <category>Course Review</category>
        
        
      </item>
    
      <item>
        <title>2023 年秋季課程心得</title>
        <description>&lt;h1 id=&quot;2023-年秋季修課心得&quot;&gt;2023 年秋季修課心得&lt;/h1&gt;

&lt;h3 id=&quot;演算法設計與分析ada&quot;&gt;演算法設計與分析(ADA)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：蕭旭君&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

&lt;h3 id=&quot;系統程式設計sp&quot;&gt;系統程式設計(SP)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：鄭卜壬&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

    &lt;p&gt;  這門課主要探討 UNIX 系統上程式的運作、kernel 與程式之間的互動，以及作業系統在資源分配方面的角色。舉例來說，期初內容聚焦在 UNIX 系統上檔案讀寫(File I/O)的機制，例如 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;write()&lt;/code&gt; 這個 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)等。&lt;/p&gt;

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

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

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

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

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

&lt;h3 id=&quot;自動機與形式語言&quot;&gt;自動機與形式語言&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：林智仁&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

    &lt;p&gt;  這門課的評分方式為：六次作業共佔學期成績 25%，三次期考各佔學期成績 25%。依原始成績排序後，分配各個等第的比例使單、雙班的比例一致。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

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

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

&lt;h3 id=&quot;機器學習ml&quot;&gt;機器學習(ML)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：林軒田&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

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

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

&lt;h3 id=&quot;計算機概論&quot;&gt;計算機概論&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：莊永裕&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

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

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

&lt;h3 id=&quot;大學國文文學鑑賞與寫作一&quot;&gt;大學國文：文學鑑賞與寫作（一）&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：沈凡玉&lt;/li&gt;
  &lt;li&gt;學期成績：A&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

&lt;h3 id=&quot;代數一&quot;&gt;代數一&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：5 學分&lt;/li&gt;
  &lt;li&gt;授課教師：謝銘倫&lt;/li&gt;
  &lt;li&gt;學期成績：A&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

&lt;h3 id=&quot;健康體適能&quot;&gt;健康體適能&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：1 學分&lt;/li&gt;
  &lt;li&gt;授課教師：林威名&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

    &lt;p&gt;  理論上，這門課應該是在大一時與同屆同學一起修習，但由於大一時我選擇修「分析」，所以沒有參加健康體適能課程。幸運的是，這學期成功加簽這門早八的課程。整體而言，這是一門相對輕鬆的課程（早八的時間除外），活動內容豐富，能在學習健康知識的同時參與不同類型的運動，感覺輕鬆又有趣。&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Mon, 25 Dec 2023 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2023/12/25/course-review/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2023/12/25/course-review/</guid>
        
        <category>Course Review</category>
        
        
      </item>
    
      <item>
        <title>自動機與形式語言筆記</title>
        <description>&lt;!-- Chinese Version --&gt;
&lt;div class=&quot;zh post-container&quot;&gt;
    
    &lt;h3 id=&quot;簡介&quot;&gt;簡介&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;  升大二的暑假，由於決定在大二多修一些系上的課程，但又擔心課業壓力過大，因此選擇從較多數學的理論課程開始準備。從 8 月開始預習，才逐漸完成這篇筆記，不過很多部份。目前&lt;a href=&quot;/docs/FLAT.pdf&quot;&gt;筆記&lt;/a&gt;中僅完成了正規語言的部份以及少部份上下文無關文法，後面的部份因為太過於複雜，因此就沒有繼續完成。&lt;/p&gt;

&lt;p&gt;  關於自動機與形式語言這門課主要在教什麼，可以參考我在&lt;a href=&quot;/2023/12/25/course-review/#自動機與形式語言&quot;&gt;修課心得&lt;/a&gt;中關於課程內容的簡介部份。&lt;/p&gt;

&lt;/div&gt;

&lt;!-- English Version --&gt;
&lt;div class=&quot;en post-container&quot;&gt;
    
    &lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;  During the summer before my second year of university, I decided to take on more courses from my department in the upcoming semester. However, I was concerned about the increased workload, so I started by focusing on theoretical courses with a stronger emphasis on mathematics. I began preparing in August and gradually worked on these notes, though many parts remain incomplete. Currently, the &lt;a href=&quot;/docs/FLAT.pdf&quot;&gt;note&lt;/a&gt; cover only the section on regular languages and a small portion of context-free grammar, as the later topics proved too complex for me to complete.&lt;/p&gt;

&lt;p&gt;  For an overview of what the course &lt;em&gt;Automata and Formal Languages&lt;/em&gt; covers, you can refer to the course description in my &lt;a href=&quot;/2023/12/25/course-review/#自動機與形式語言&quot;&gt;course review&lt;/a&gt;. Please note that the content is written in traditional Chinese.&lt;/p&gt;

&lt;/div&gt;
</description>
        <pubDate>Fri, 04 Aug 2023 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2023/08/04/note-FLAT/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2023/08/04/note-FLAT/</guid>
        
        <category>Note</category>
        
        <category>Computer Science</category>
        
        
      </item>
    
      <item>
        <title>分析（二）筆記</title>
        <description>&lt;!-- Chinese Version --&gt;
&lt;div class=&quot;zh post-container&quot;&gt;
    
    &lt;h3 id=&quot;分析二筆記&quot;&gt;分析（二）筆記&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;這篇&lt;a href=&quot;/docs/Analysis2.pdf&quot;&gt;筆記&lt;/a&gt;是我在 2023 年春季修分析時所作的筆記，部份內容未完成。&lt;/p&gt;

&lt;/div&gt;

&lt;!-- English Version --&gt;
&lt;div class=&quot;en post-container&quot;&gt;
    
    &lt;h3 id=&quot;analysis-ii-note&quot;&gt;Analysis (II) Note&lt;/h3&gt;
&lt;hr /&gt;

&lt;p&gt;This &lt;a href=&quot;/docs/Analysis2.pdf&quot;&gt;note&lt;/a&gt; was taken in the &lt;em&gt;Analysis&lt;/em&gt; course in Spring 2023. If you find any inaccuracies or areas that need improvement, please feel free to let me know.&lt;/p&gt;

&lt;/div&gt;
</description>
        <pubDate>Fri, 04 Aug 2023 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2023/08/04/note-Analysis/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2023/08/04/note-Analysis/</guid>
        
        <category>Note</category>
        
        <category>Mathematics</category>
        
        
      </item>
    
      <item>
        <title>2023 年春季課程心得</title>
        <description>&lt;h1 id=&quot;2023-年春季修課心得&quot;&gt;2023 年春季修課心得&lt;/h1&gt;

&lt;h3 id=&quot;資料結構與演算法dsa&quot;&gt;資料結構與演算法(DSA)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：林軒田&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

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

&lt;h3 id=&quot;線性代數二&quot;&gt;線性代數二&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：4 學分&lt;/li&gt;
  &lt;li&gt;授課教師：謝銘倫&lt;/li&gt;
  &lt;li&gt;學期成績：A&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

&lt;h3 id=&quot;數位系統與實驗&quot;&gt;數位系統與實驗&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：林忠緯&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

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

&lt;h3 id=&quot;日文一下&quot;&gt;日文一下&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：許惠晴&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

&lt;h3 id=&quot;分析二&quot;&gt;分析二&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：5 學分&lt;/li&gt;
  &lt;li&gt;授課教師：沈俊嚴&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

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

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

&lt;h3 id=&quot;普通心理學&quot;&gt;普通心理學&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：鄧善娟&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

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

&lt;h3 id=&quot;社會學&quot;&gt;社會學&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：3 學分&lt;/li&gt;
  &lt;li&gt;授課教師：劉仲恩&lt;/li&gt;
  &lt;li&gt;學期成績：A&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

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

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

&lt;h3 id=&quot;現代生物學之應用&quot;&gt;現代生物學之應用&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;學分：2 學分&lt;/li&gt;
  &lt;li&gt;授課教師：合授&lt;/li&gt;
  &lt;li&gt;學期成績：A+&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;上課內容：&lt;/p&gt;

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

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

    &lt;p&gt;此外，期末還包括小組互評，作為額外的扣分標準。&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;心得：&lt;/p&gt;

    &lt;p&gt;  對於這門課，我沒有太多具體的心得。上課時，我並未專心聆聽，而是忙著自己的事情。起初，我以為我可能能在這門課中獲得 A 的成績，也許是因為我在期中報告和期末報告中使用了 bibtex 來製作引用文獻，讓排版看起來更專業一些，才讓我有機會獲得 A+。&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Tue, 20 Jun 2023 00:00:00 +0000</pubDate>
        <link>https://joshuachen0213.github.io/2023/06/20/course-review/</link>
        <guid isPermaLink="true">https://joshuachen0213.github.io/2023/06/20/course-review/</guid>
        
        <category>Course Review</category>
        
        
      </item>
    
  </channel>
</rss>
