Skip to content
所有標籤

#stanford

226 篇文章

CS124 Week 1 Introduction and Setup:先把語言問題拆成可計算的元件

CS124 Winter 2026 第一週不是先教 Transformer,而是先畫出從斷詞、分類、檢索到語音與網路的十週路線,並用 PA0 建好後續九週共同使用的 Jupyter 環境。

CS124 Week 10 PageRank and Social Networks:從 anchor text、圖中心性到課程收束

Week 10 以 anchor text、PageRank 與 centrality 分析 Web graph;post-training、多語與 speech 只歸於檔名及內容標示 2025 的公開 final deck outline,不歸為 2026 現場內容。

CS124 Week 2 Words, Tokens, Edit Distance, and N-grams:LLM 之前先決定模型看見什麼

Week 2 把文字處理拆成三層:以 BPE 建立 token 詞彙、以動態規劃求最小編輯距離,再以 n-gram 近似序列機率;PA1 把正規表示式與 BPE 變成可執行作業。

CS124 Week 3 Logistic Regression and Text Classification:從特徵到機率與 loss

Week 3 用 logistic regression 串起文字特徵、sigmoid 機率、cross-entropy loss 與 gradient descent,讓分類不只輸出標籤,也能說明每個特徵如何推動預測。

CS124 Week 4 Information Retrieval:從倒排索引、tf-idf 到 RAG 的檢索底座

Week 4 從倒排索引建立候選集,以 tf-idf 與 cosine similarity 排序,再把檢索結果接到生成模型;PA3 要求實作的不是聊天介面,而是 RAG 前半段可檢查的搜尋核心。

CS124 Week 5 Embeddings and Social NLP:語境向量與公開材料的證據邊界

Week 5 的公開材料支持 distributional hypothesis、word embeddings 與 cosine similarity;同週 Social NLP 現場課未錄影且投影片受限,具體 audit 方法只作作者延伸。

CS124 Week 6 Neural Networks and LLMs:從神經元、反向傳播到 decoder-only 模型

Week 6 以公開 neural-network slides 建立 weighted sum、nonlinearity、loss 與 backpropagation,再用檔名標示 2025 的公開 LLM/Transformer deck 連到 decoder-only 架構,不視為 2026 現場逐字內容。

CS124 Week 7 Transformers and Speech Processing:causal attention、生成與未錄現場課的邊界

Week 7 的可公開主線是 PA6a:實作 causal self-attention、訓練 Shakespeare 小型 Transformer、取樣並計算 perplexity;同週 speech live lecture 未錄影,只能保留為明示缺口。

CS124 Week 8 Speech and PA7/Git Lab:把 TTS→STT pipeline 當成可稽核的資訊損失

Week 8 以 PA6b 把文字轉語音再轉回文字,要求分類錯誤、檢查格式遺失與口音偏差;同週 Lab 4 以 Git 與 PA7 協作把課程帶入團隊 agent 專案。

CS124 Week 9 Collaborative Filtering and LLM Agents:從電影相似度到搜尋與記憶工具

Week 9 以 item-item collaborative filtering 產生電影推薦,再把推薦、web search、database 與 memory 包成 LLM agent tools;PA7 同時把模型非決定性、API 預算與團隊協作變成交付條件。

CS224N 第 3 講:矩陣微積分與反向傳播

第 3 講把神經網路訓練拆成計算圖、局部導數與鏈鎖律:forward pass 算結果,backprop 由輸出往回累積梯度,讓每個參數知道自己該往哪裡移。

CS224N 第 11 講:Benchmark 與 LLM 評估為什麼會過期

第 11 講把評估拆成測什麼、怎麼量與何時不再可信:benchmark 會飽和、遭污染或被提示格式左右,LLM judge 也只是帶著自身偏差的模型。

CS224N 第 9 講:Prompting、LoRA 與參數高效微調

第 9 講比較 prompting、pruning、LoRA、prompt tuning 與 adapters:它們都在回答同一題——要讓一個大型預訓練模型適應新任務,究竟需要改多少參數與儲存多少任務狀態?

ai guide Stanford CS224N 導讀

CS224N 第 6 講:把期末專案收斂成可驗證的研究問題

第 6 講先補完 Transformer encoder、decoder 與 cross-attention,再把期末專案拆成題型、評分、研究題目與資料來源;好題目必須能用一個明確 baseline 和指標驗證。

CS224N 第 1 講:NLP 的四次典範轉移

Winter 2026 第 1 講用四個時代整理 NLP:早期探索、符號系統、統計機器學習、深度與自監督學習;重點不是背年表,而是看每個時代如何重新定義語言問題。

CS224N 第 15 講:沒有公開投影片時,如何讀 Agentic Interpretability

第 15 講由 Been Kim 客座談 interpretability,但 Winter 2026 官網沒有公開投影片或 agenda;本文不虛構講授內容,只用官方五篇閱讀建立概念發現、agentic investigation 與新詞彙三條閱讀路線。

CS224N 第 17 講:Multimodality 的官方閱讀地圖

第 17 講由 Luke Zettlemoyer 客座談 multimodality,但官網沒有公開投影片或 agenda;官方閱讀清單可確認三條主線:視覺推理介面、early-fusion token 模型、文字自回歸加影像 diffusion。

CS224N 第 19 講:小模型如何跨過 Scaling Law 的門檻

最後一講把 Open Questions in NLP 2026 收斂成 smart scaling:以 prolonged RL、Prismatic synthetic data、RL as pretraining 與開放協作,讓小模型不只靠增加參數追求推理能力。

CS224N 第 8 講:從 instruction tuning、RLHF 到 DPO

第 8 講解釋預訓練模型如何經 instruction tuning、偏好資料與 RLHF 變成助理,再以 DPO 直接從勝負配對學習;每一步都把人的判斷轉成訓練訊號,也把偏差帶進模型。

CS224N 第 7 講:預訓練、subword 與 in-context learning

第 7 講把預訓練拆成可擴張資料、subword tokenization、三種模型目標與 in-context learning;核心取捨是用通用的自監督目標換取可重用表示,再用下游訊號指定用途。

CS224N 第 10 講:RAG 與 Language Agents 的六個元件

第 10 講從問答與 RAG 進入 language agents,再拆成推理規劃、記憶、工具、資料與評估;agent 不是單一模型,而是模型與外部狀態之間可被逐步檢查的迴圈。

CS224N 第 12 講:Decoding、DeepSeek-R1 與推理訓練

第 12 講先證明輸出策略不是小細節:greedy、beam 與 sampling 會產生不同文字;再由 R1-Zero/R1 走進 PPO、GRPO、DAPO,最後追問長推理何時真的有用。

CS224N 第 13 講:Speculative Decoding 與 Test-Time Scaling

第 13 講從推論效率走到推論能力:speculative decoding 用小模型草擬、大模型驗證;on-policy distillation 處理資料漂移;長上下文與 test-time scaling 則用更多推論資源換取表現。

CS224N 第 4 講:語言模型、RNN 與消失梯度

第 4 講把語言模型定義成下一詞機率分布,再用 RNN 壓縮任意長前文;它同時揭露 recurrence 的核心代價:資訊與梯度都必須沿時間步逐步傳遞。

CS224N 第 16 講:Hallucination、創造力、工作與價值對齊

第 16 講把 NLP 的社會影響拆成四題:模型為何 hallucinate、AI 輔助創作的同質化悖論、工作如何重組,以及價值對齊為何不能化約成單一 reward。

CS224N 第 18 講:Tinker and LoRA Without Regret 材料缺口紀錄

第 18 講由 John Schulman 客座,官方只公布題名 Tinker and LoRA Without Regret、日期與講者,沒有投影片、agenda 或閱讀;因此本篇只保存可確認事實與不可確認清單。

CS224N 第 14 講:Tokenization 如何製造多語言成本差

第 14 講從 word、character/byte 與 subword 切分一路走到 BPE failure cases 和跨語言公平:tokenizer 決定序列長度、運算成本與模型看到的語言單位,因此不是中立前處理。

CS224N 第 5 講:從 recurrence 到 Transformer

第 5 講從 RNN 的長距離與循序瓶頸走到 self-attention,再組成 Transformer;它縮短位置間的資訊路徑並容許平行計算,但付出二次方 attention 成本與位置資訊必須另行注入的代價。

CS224N 第 2 講:word2vec 如何把語意變成向量

第 2 講從 word2vec 的預測任務、目標函數與梯度一路走到 count-based vectors 和評估,核心是:詞義不是查表得到的標籤,而是從上下文分布學出的高維座標。

Stanford CS224V 第 10 講:SPINACH Agent 如何逐步探索 Wikidata 並寫 SPARQL

SPINACH 不一次猜完整 SPARQL,而是搜尋 entity/property、查看 Wikidata entry 與 property examples、執行小查詢,再逐步組合完整查詢;action set 與停止規則是可靠性的核心。

Stanford CS224V 第 12 講:CHURRO 如何讓多語歷史文件變成可搜尋文字

CHURRO 以 HDML 表示整頁文字、版面與 metadata,整合跨世紀多語資料訓練 page-level VLM,再把輸出接到 HistoryGenie,讓檔案館材料能被檢索與對話。

Stanford CS224V 第 14 講:資料受限時,語言模型還能怎麼擴展

最後一講不是完整 LLM 訓練教學,而是資料效率研究:在 compute 充足、資料固定時重看 epochs、batch、ensemble 與 self-training,再研究 synthetic continued pretraining 的可擴展條件。

Stanford CS224V 第 5 講:WikiChat 的七階段 RAG 如何逐條攔下幻覺

WikiChat 不把檢索結果直接交給一次生成,而是形成查詢、檢索、過濾、生成、拆主張、再檢索查核與移除無根據內容,並把檢索與事實性分開評估。

Stanford CS224V 第 1 講:用計算思維把會幻覺的 LLM 變成可靠助理

Fall 2025 第一講把 CS224V 的主線定成計算思維:不要期待一次提示解決可靠性,而要把檢索、形式表示、查核與生成拆成可測試的演算法。

Stanford CS224V 第 2 講:STORM 與 Co-STORM 怎麼把搜尋變成知識策展

STORM 用觀點引導的提問、模擬訪談與大綱建立改善研究廣度;Co-STORM 再把人放進迴圈,讓探索未知問題與共同編修成為系統的一部分。

Stanford CS224V 第 8 講:SLIDERS 如何用自動 schema 分析一整組長文件

SLIDERS 不讓模型直接吞完所有長文件,而是從問題誘導 schema、做語意切塊與情境化擷取、協調重複列,再用 SUQL 查詢產生答案。

Stanford CS224V 第 13 講:ReactGenie 如何讓語音命令與原生 GUI 共用同一個狀態

ReactGenie 以 React 元件加 annotations 暴露資料、動作與視圖,將複合語音命令解析成 DSL,並在同一份 UI context 中產生原生圖形輸出。

Stanford CS224V 第 11 講:把臨床試驗條件翻成 SMT,而不是讓 LLM 直接判資格

這堂把病人紀錄與試驗條件各自轉成 SMT,先以較弱的命題邏輯投影做大規模候選檢索,再用 solver 檢查候選;推理可解釋,但 NL-to-SMT 仍是主要錯誤入口。

Stanford CS224V 第 9 講:自動質性編碼為什麼需要 codebook、型別與人工覆核

自動質性編碼先以 codebook 定義事件型別與 arguments,再把長文分類、結構化抽取和 entity linking 分開;受約束 JSON 能保格式,仍不能取代領域專家的覆核。

Stanford CS224V 第 6 講:資料庫 Agent 為什麼要先做語意剖析

結構化資料 agent 的可靠路線是把自然語言轉成可執行查詢、處理 schema 與列舉值,再把 query execution 和回答生成分開評估;混合資料則要先判斷該走資料庫還是文字檢索。

Stanford CS224V 第 7 講:SUQL 把 SQL 與自由文字檢索放進同一個查詢語言

SUQL 在 SQL 裡加入 answer 與 summary 兩種自由文字函式,semantic parser 產生一個混合查詢,再由 compiler 做 predicate pushdown、top-k 與 lazy evaluation。

Stanford CS224V 第 4 講:任務型 Agent 評估不能只看回答像不像人

CS224V 把任務型 agent 評估拆成狀態更新與完整互動:先測 semantic parser,再讓真人檢查任務完成、知識查詢與動作是否可靠。

Stanford CS224V 第 3 講:用 Genie Worksheets 建立不亂編動作的任務型 Agent

Genie Worksheets 把任務能力宣告成表單式規格,讓 contextual semantic parser 只更新形式對話狀態;查詢、動作與回應由 runtime 依規格執行。

CS336 Lecture 1:從位元組到 tokenizer,先決定什麼值得隨規模成長

CS336 第一講不把「從零打造語言模型」理解成重做所有舊技術,而是先區分 mechanics、mindset 與 intuitions,再用 BPE 示範如何把原始位元組轉成可訓練的 token。

CS221 Lecture 1:Overview:用資源限制定義智慧

Stanford CS221 Autumn 2025 第 1 講,從 Overview:用資源限制定義智慧建立可操作的 AI 問題表示與演算法直覺。

CS221 Lecture 2:Learning I:從計算圖到線性迴歸

Stanford CS221 Autumn 2025 第 2 講,從 Learning I:從計算圖到線性迴歸 建立可操作的 AI 問題表示與演算法直覺。

CS221 Lecture 3:Learning II:線性分類、特徵與交叉熵

Stanford CS221 Autumn 2025 第 3 講,從 Learning II:線性分類、特徵與交叉熵 建立可操作的 AI 問題表示與演算法直覺。

CS221 Lecture 4:Learning III:深度網路是可重複組合的計算圖

Stanford CS221 Autumn 2025 第 4 講,從 Learning III:深度網路是可重複組合的計算圖 建立可操作的 AI 問題表示與演算法直覺。

CS221 Lecture 5:Search I:先定義狀態,再談搜尋演算法

第 5 講把搜尋問題寫成 state、action、successor 與 cost,並用 acyclic dynamic programming 說明:狀態若遺漏未來所需資訊,再快的演算法也只會解錯問題。

CS221 Lecture 6:Search II:UCS 與 A* 的優先順序

Stanford CS221 Autumn 2025 第 6 講依官方材料拆解 Search II:UCS 與 A* 的優先順序,並標出方法成立的假設與限制。

CS221 Lecture 7:MDPs I:把隨機性放進狀態轉移

Stanford CS221 Autumn 2025 第 7 講依官方材料拆解 MDPs I:把隨機性放進狀態轉移,並標出方法成立的假設與限制。

CS221 Lecture 8:MDPs II:不知道轉移模型時如何學 Q 值

Stanford CS221 Autumn 2025 第 8 講依官方材料拆解 MDPs II:不知道轉移模型時如何學 Q 值,並標出方法成立的假設與限制。

CS221 Lecture 9:MDPs III:直接對 policy 的期望報酬求梯度

Stanford CS221 Autumn 2025 第 9 講從 tabular RL 走到 function approximation,再用 log-derivative identity 推出 REINFORCE,最後落到可執行的 PyTorch 更新。

CS221 Lecture 10:Games I:從 expectimax 到 minimax

第 10 講把單一 agent 搜尋擴成 adversarial game tree:expectimax 對 chance 求期望、minimax 對對手取最差結果,alpha-beta 則在不改答案下剪掉無關分支。

CS221 Lecture 11:Games II:TD learning、同時賽局與 Nash 均衡

第 11 講先用 temporal-difference updates 從遊戲經驗學 value,再從 sequential play 轉向 simultaneous games,以 mixed strategies、minimax guarantee 與 Nash equilibrium 描述穩定策略。

CS221 Lecture 12:Bayesian Networks I:從 joint distribution 到 factorization

第 12 講用 random variables 與 factors 建 joint distribution,再以 Bayesian-network factorization 表達 conditional independence,讓 conditioning 與 marginalization 成為可執行的 probabilistic inference。

CS221 Lecture 13:Bayesian Networks II:Gibbs sampling 與 Markov blanket

第 13 講在 exact inference 太昂貴時改用 Gibbs sampling:每次只重抽一個變數,僅依 Markov blanket 計算 conditional distribution,並以樣本頻率近似查詢機率。

CS221 Lecture 14:Bayesian Networks III:從計數、平滑到 EM

第 14 講從 complete data 的 maximum-likelihood counts 與 Laplace smoothing,走到 latent variables 下交替計算 posterior responsibilities 和更新參數的 EM。

CS221 Lecture 15:Logic I:模型、蘊涵與 SAT

第 15 講分開 propositional logic 的 syntax 與 semantics:model checking 用 satisfying assignments 定義 entailment,SAT solver 找見證,inference rules 則必須同時檢查 soundness 與 completeness。

CS221 Lecture 16:Logic II:量詞讓知識跨越單一命題

第 16 講用 predicates、quantifiers 與 functions 壓縮跨物件知識,再以 substitution、unification 與 definite-clause forward inference 推導結論,同時標出 termination 與 completeness 限制。

CS221 Lecture 17:Language Models:從 next-token prediction 到生成

第 17 講把 language model 定義為 sequence probability 的 chain-rule factorization,對照 n-gram 與 neural conditional models,並說明 sampling、temperature 與 evaluation 如何改變生成結果。

CS221 Lecture 18:AI & Society:效益、誤用、事故與制度

第 18 講用 benefits、misuse、accidents 與 structural harms 分類 AI 社會影響,再把 fairness audits、研究倫理、著作權與平台條款接回可追責的制度選擇。

CS221 Lecture 19:AI Supply Chains:模型背後的資源、勞動與市場

Lecture 19 用 Economics of AI deck 把 AI 的 compute、data、distribution 與組織互補品接到 GDP、勞動與 ideas 的成長路徑。

CS221 Lecture 20:Fireside Chat, Conclusion:把二十講收束成建模選擇

第 20 講是 Percy Liang 談職涯研究、CS221/Stanford 與 AI 未來的 fireside chat;每項歸因都連回官方影片,編者整理則與自動字幕的不確定性分開。

Stanford CS224W 第 1 講:Introduction:為什麼關係資料需要圖機器學習

依 Fall 2025 官方投影片逐段整理第 1 講,涵蓋 課程地圖與工具、圖資料的共同語言、傳統特徵與表示學習,並標出自學者拿不到的課堂材料。

Stanford CS224W 第 2 講:Node Embeddings:從隨機漫步到 node2vec

依 Fall 2025 官方投影片逐段整理第 2 講,涵蓋 編碼器—解碼器觀點、鄰近度與目標函數、隨機漫步,並標出自學者拿不到的課堂材料。

Stanford CS224W 第 3 講:Graph Neural Networks:message passing 的第一個完整模型

依 Fall 2025 官方投影片逐段整理第 3 講,涵蓋 從固定 embedding 到深度編碼器、message passing 框架、聚合與更新,並標出自學者拿不到的課堂材料。

Stanford CS224W 第 4 講:A General Perspective on GNNs:把模型拆成可設計的元件

依 Fall 2025 官方投影片逐段整理第 4 講,涵蓋 GNN 設計空間、訊息、聚合與更新、GraphSAGE,並標出自學者拿不到的課堂材料。

Stanford CS224W 第 5 講:GNN Augmentation and Training:資料、任務與模型怎麼一起設計

依 Fall 2025 官方投影片逐段整理第 5 講,涵蓋 圖資料 augmentation、特徵與結構 augmentation、supervision 與 loss,並標出自學者拿不到的課堂材料。

Stanford CS224W 第 6 講:Theory of GNNs:WL test、GIN 與表達能力的上限

依 Fall 2025 官方投影片整理第 6 講,涵蓋 什麼叫可區分、Weisfeiler–Lehman test、message passing 的上界,並標出無法公開取得的課堂材料。

Stanford CS224W 第 7 講:Designing Powerful Graph Encoders:結構辨識與位置辨識

依 Fall 2025 官方投影片整理第 7 講,涵蓋 完美 GNN 的思想實驗、標準 GNN 的三層失敗、identity-aware encoding,並標出無法公開取得的課堂材料。

Stanford CS224W 第 8 講:Graph Transformers:attention 如何接上圖結構

依 Fall 2025 官方投影片整理第 8 講,涵蓋 self-attention 與 message passing、圖上 attention 的範圍、位置與結構編碼,並標出無法公開取得的課堂材料。

Stanford CS224W 第 9 講:Heterogenous Graphs:讓節點與關係類型進入 message passing

依 Fall 2025 官方投影片整理第 9 講,涵蓋 異質圖 schema、relation-specific messages、R-GCN,並標出無法公開取得的課堂材料。

Stanford CS224W 第 10 講:Knowledge Graphs:TransE、ComplEx 與 RotatE 的關係建模

依 Fall 2025 官方投影片整理第 10 講,涵蓋 知識圖譜與 completion、三元組 scoring、TransE 與關係模式,並標出無法公開取得的課堂材料。

Stanford CS224W 第 11 講:GNNs for Recommender Systems:從協同過濾到 LightGCN

依 Fall 2025 官方投影片整理第 11 講,涵蓋 推薦系統的圖表示、matrix factorization baseline、NGCF 的訊息傳遞,並標明公開材料邊界。

Stanford CS224W 第 12 講:Relational Deep Learning:把資料庫直接變成預測圖

依 Fall 2025 官方投影片整理第 12 講,涵蓋 表格 pipeline 的限制、關聯式資料庫轉圖、temporal entity graph,並標明公開材料邊界。

Stanford CS224W 第 13 講:Advanced Architectures in RDL:RelGNN 與 Relational Graph Transformer

依 Fall 2025 官方投影片整理第 13 講,涵蓋 RDL 的多關係瓶頸、RelGNN composite message passing、relation-specific aggregation,並標明公開材料邊界。

Stanford CS224W 第 14 講:Advanced Topics in GNNs:圖上 in-context learning 與不確定性

依 Fall 2025 官方投影片整理第 14 講,涵蓋 relational foundation model 的目標、zero-shot relational transfer、PRODIGY 的 prompt graph,並標明公開材料邊界。

Stanford CS224W 第 15 講:Foundation Models for Knowledge Graphs:新實體、新關係與雙重等變性

依 Fall 2025 官方投影片整理第 15 講,涵蓋 transductive KG embedding 的邊界、entity-inductive link prediction、relation graph,並標明公開材料邊界。

Stanford CS224W 第 16 講:LLM + GNN:讓語言模型讀圖,也讓圖模型讀文字

依 Fall 2025 官方投影片整理第 16 講,涵蓋 LLM 與 GNN 的互補缺口、text-attributed graphs、LLM as predictor or encoder,並標明公開材料邊界。

Stanford CS224W 第 17 講:Agents + Graphs:讓 agent 在結構化世界中檢索、規劃與行動

依 Fall 2025 官方投影片整理第 17 講,涵蓋 從 graph QA 到 agent、STaRK 的多模態檢索、工具使用與 traversal,並標明公開材料邊界。

Stanford CS224W 第 18 講:Deep Generative Models for Graphs:GraphRNN 與目標導向分子生成

依 Fall 2025 官方投影片整理第 18 講,涵蓋 圖生成問題與資料表示、生成品質的評估、GraphRNN 的 autoregressive factorization,並標明公開材料邊界。

Stanford CS224W 第 19 講:315K 個 GNN designs 如何用 anchor models 排名

Fall 2025 Conclusion deck 在 32 個 tasks 上研究約 315K 個 GNN designs:先跑少量 anchor models,以 ranking 描述 task similarity,再從相似 task 轉移 best designs。

線性迴歸:從 LMS 到局部加權迴歸

線性迴歸不只是一條最佳直線;第一章用平方損失串起梯度下降、常態方程、最大概似估計與局部加權迴歸。

分類與邏輯斯迴歸:從決策邊界到 Newton 法

第二章從 sigmoid 機率模型推導邏輯斯損失,再比較感知器、多類別 softmax 與 Newton 法。

廣義線性模型:用指數族統一迴歸與分類

第三章用指數族、自然參數與連結函數,把最小平方法和邏輯斯迴歸放進同一套建模模板。

生成式學習演算法:GDA、Naive Bayes 與平滑

第四章改從 p(x|y) 與 p(y) 建模,用 GDA、Naive Bayes 和 Laplace 平滑展示生成式分類的力量與代價。

核方法:不顯式展開特徵的非線性學習

第五章把高維特徵的內積改寫成 kernel,讓依賴內積的線性演算法在不顯式建立特徵的情況下學非線性。

支援向量機:間隔、對偶與 SMO

第六章把分類信心形式化為幾何間隔,再用拉格朗日對偶、kernel 與 SMO 建出可實作的 SVM。

深度學習:模組、反向傳播與向量化

第七章把神經網路拆成可組合模組,並用反向傳播與向量化說明深度模型如何有效率地訓練。

Stanford CS107 Lecture 4:Bitwise operators、型別轉換與 bitmask

第四講先釐清 signed/unsigned 轉型不改 bits、混合比較可能改變數值意義,以及 sign extension、zero extension、truncation;再推導 AND、OR、NOT、XOR 與 bitmask 的讀取、設定、清除和集合操作。

Stanford CS107 Lecture 3:整數、位元組與 two's complement

第三講從 32/64-bit 位址空間出發,推導 unsigned 與 two's-complement signed integer 的範圍、反相加一與共用加法硬體,再分清 unsigned modulo 運算和 C signed overflow,最後用四組故障案例檢查模型。

Stanford CS107 Lecture 5:Bit shifts、bit tricks 與 GDB

第五講把 bitmask 推進到 left/right shift、power-of-two 與 popcount tricks,並用 absolute-value 範例揭示 signed intermediate 在 INT_MIN 會 overflow;後半建立 GDB 的 breakpoint、執行控制、格式化 print、memory examine 與 backtrace 工作流。

Stanford CS107 Lecture 2:第一支 C 程式,以及 binary 與 hexadecimal

第二講把 C 放回 Unix 的歷史與開發環境:拆解 header、main、printf、argc/argv,走過 ssh、emacs、make 與執行檔,再用位值系統推導 8 bits = 1 byte、byte 的 256 種 pattern,以及 binary/hexadecimal 的雙向換算。

Stanford CS107 Lecture 1:從課程地圖走進 Unix 命令列

Winter 2026 第一講先回答 CS107 為何要往抽象層底下挖:從位元組、記憶體、組合語言到 heap allocator,再交代作業 40%、lab 10%、期中 20%、期末 30% 的課程制度,最後用 Unix 命令列替後續 C 開發暖身。

Stanford CS103 Lecture 0:從集合語言走到 Cantor 對角線

從集合的元素、子集合與冪集開始,最後用 Cantor 對角線證明任何集合都不可能和自己的冪集一樣大。

Stanford CS103 Lecture 1:從 even/odd 定義寫出第一個直接證明

用偶數平方與兩奇數相加兩個例題,練習任取、假設、見證與 want-to-show 如何組成可逐行檢查的直接證明。

Stanford CS103 Lecture 2:否定、逆否證明與反證法

本講先精確刻畫蘊涵何時為假,再把量詞否定、逆否命題與反證法變成可檢查的證明工具。

Stanford CS103 Lecture 3:命題邏輯、真值表與等價式

命題邏輯把英文陳述抽象成真假變數,再用真值表檢查連接詞、翻譯方向與 De Morgan 等價式。

Stanford CS103 Lecture 4:一階邏輯的物件、量詞與型別

本講把命題邏輯擴充成能談論物件的一階邏輯:分清常數、predicate、function 與命題的型別,再用存在與全稱量詞表達 some 與 every。

Stanford CS103 Lecture 5:一階邏輯 II——巢狀量詞、否定與唯一性

把自然語言逐層翻成一階邏輯:辨認全稱與存在句型,再處理量詞順序、否定、限制量詞與唯一性。

Stanford CS103 Lecture 6:函數 I,從定義到單射與滿射證明

函數不只是一條公式:定義域、陪域、全域有定義與確定性缺一不可,而 involution、單射與滿射的量詞正好決定證明怎麼寫。

Stanford CS103 Lecture 7:函數 II——滿射、假設與函數合成

本講以滿射與鳥類證明釐清『假設』和『證明』的不同操作,再證明 involution 必為單射與滿射,並把同一套推理帶進函數合成。

Stanford CS103 Lecture 8:用雙射定義基數與 Cantor 對角論證

兩個集合等大,意思是它們之間存在雙射;Cantor 的對角集合則能對任意 S 到其冪集的函數造出一個漏接值。

Stanford CS103 Lecture 9:圖論 I

本講從圖與有向圖的形式定義,推進到獨立集、頂點覆蓋,以及兩者的補集關係。

Stanford CS103 Lecture 12:數學歸納法、假幣問題與不變量

數學歸納法不是把幾個案例排在一起,而是證明起點成立、任意一步能把真命題傳給下一步,再由歸納原理涵蓋所有自然數。

Stanford CS103 Lecture 13:數學歸納法 II

本講從「從上一講的標準歸納法出發」推進到「起點不必是零」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 14:有限自動機 I

本講從「為什麼先研究一台很弱的電腦」推進到「從裝置行為抽出狀態機」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 15:有限自動機 II

本講從「DFA 的形式定義把前半學期串起來」推進到「regular 語言 是「存在一台 DFA」」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 16:有限自動機 III

本講從「自動機階梯:能力要用語言區分」推進到「DFA transition table 是圖的精確轉寫」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 17:正規表示式

本講從「從 closure 性質 走向描述語言的語法」推進到「regex 是數學表示式,不等於某套程式庫」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 18:非正規語言

本講從「四種 regular 的說法已經等價」推進到「finite memory 的精確直覺」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 19:上下文無關語言

本講從「從有限狀態限制轉向遞迴結構」推進到「arithmetic grammar 的四組規則」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 20:圖靈機 I

本講從「為何 CFG 之後還要換模型」推進到「長加法揭示 local access 原則」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 21:圖靈機 II

本講從「sample TM:從最後一格回看第一格」推進到「TM 能做的工作遠超逐格配對」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 22:圖靈機 III

本講從「recognizer 與 decider 的快速量詞稽核」推進到「為何所有問題都能寫成 語言」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 23:不可解問題 I

本講從「從 R、RE 與 UTM 接回來」推進到「self-reference 回顧的三個程式」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 24:不可解問題 II

本講從「HALT 的定義與位置」推進到「為何 HALT 可辨識」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 25:不可解問題 III

本講從「Lava Diagram 的兩個辨識任務」推進到「Rice's Theorem 的 投影片 版判讀」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 Lecture 26:複雜度理論

本講從「decidable 不等於 feasible」推進到「efficiency 要先選 resource」,依官方例題重建定義、推導與易錯邊界。

Stanford CS103 全課總結:四條知識主線與下一門課

最後一講把證明、圖論、自動機與可計算性重新接起來,再對照會直接使用這些基礎的 Stanford 後續課程。

Stanford CS107 Lecture 15:看懂 x86-64 addressing modes,分清位址和值

CS107 第 15 講把 x86-64 的 mov 拆成 immediate、register、absolute、indirect、displacement、indexed 與 scaled indexed operands,並以 D + R[b] + R[i]×s 統一解讀 pointer dereference 和 array access。

Stanford CS107 Lecture 16:從 subregister 到 ALU,讀懂 x86-64 算術與位元運算

CS107 第 16 講把 b/w/l/q 資料寬度、subregister、movs/movz、lea、呼叫慣例、算術邏輯與 shift 串成一套規則:先確定操作寬度,再追蹤來源、目的與是否真的讀取記憶體。

Stanford CS107 Lecture 18:從 condition codes 到 loops,讀懂 x86-64 條件控制

CS107 第 18 講以 ZF/SF/CF/OF 串起 cmp、test、signed/unsigned conditional jumps,再拆解 if、loops、dynamic instruction count、setcc 與 cmovcc。

Stanford CS107 Lecture 17:從乘除法到 %rip,讀懂 x86-64 control flow

CS107 第 17 講先完成 x86-64 的 full-width multiplication 與 division,再沿著 instruction bytes 追蹤 %rip,最後以 direct/indirect jmp 說明程式如何離開預設的順序執行。

Stanford CS107 Lecture 19:從 call/ret 到 calling convention,讀懂 x86-64 函式呼叫

CS107 第 19 講追蹤 %rsp、push/pop、call/ret、parameters、return values、stack locals 與 caller/callee register discipline,建立可跨函式維持資料與控制流的 ABI 契約。

Stanford CS107 Lecture 14:從 C 到 x86-64,第一次讀懂反組譯輸出

CS107 第 14 講用 sum_array 的 10 條 x86-64 指令拆開反組譯輸出:左側是位址與機器碼,右側是 AT&T assembly;讀者的任務是由 opcode、operand、register 與控制流程還原 C,而不是手寫組合語言。

Stanford CS107 Lecture 7:從字串搜尋到 Buffer Overflow,輸入驗證不是容量檢查

CS107 第 7 講先用 strchr、strstr、strspn 建立指標式字串掃描,再指出只驗證內容仍擋不住 buffer overflow:安全邊界必須同時涵蓋輸入規則、目的地容量、終止字元與記憶體檢測。

Stanford CS107 Lecture 25:Caching、Memory Hierarchy 與 Locality

CS107 第 25 講用精簡投影片建立 cache 的核心模型:記憶體存取成本不均,較小且較快的層級保存可能再次使用的資料,而 temporal 與 spatial locality 決定程式能否受益。

Stanford CS107 Lecture 6:C 字串不是型別,而是一份記憶體契約

CS107 第 6 講把 C 字串拆回 char 陣列、終止空字元與位址:strlen、strcmp、strcpy、strncpy、strcat 的每一個便利,都以呼叫者維持容量與終止條件為代價。

Stanford CS107 Lecture 24:先用 Callgrind 找熱點,再讀懂 GCC 做了哪些最佳化

CS107 第 24 講用矩陣乘法與 Callgrind 建立量測流程,再拆解 GCC 的 constant folding、共同子運算式消除、dead-code elimination、strength reduction、code motion 與遞迴轉迴圈;最佳化從瓶頸證據開始。

Stanford CS107 Lecture 23:把 realloc 留在原地,必須守住哪些 allocator 不變量

CS107 第 23 講把 explicit free list 推進到原地 realloc:縮小時切出可用區塊,放大時吞併右側 free blocks,做不到才配置、複製、釋放;每一步都要同時維持實體 heap 與邏輯 free list。

Stanford CS107 Lecture 12:Function Pointer 讓 Generic C 注入比較規則

CS107 第 12 講先用 char * 完成 byte-wise generic swap 與 rotate,再以 function pointer 把 bubble sort 的走訪機制和比較規則拆開;void * 解決資料型別,callback 解決行為差異。

Stanford CS107 Lecture 13:從 Comparator 到完整 Generic Bubble Sort

CS107 第 13 講把 bool callback 升級成三向 comparator,再把 void *、element width 與 const void * callback 合併成完整 generic bubble sort,最後對照 qsort、bsearch、lfind 與 lsearch。

Stanford CS107 Lecture 11:void * 如何讓 C 擁有泛型,又不假裝型別還在

CS107 第 11 講先收完 calloc、strdup、free、realloc 的 heap 契約,再把 swap 從多份型別專用程式改造成 void * 加 byte count:C 的泛型不是保留未知型別,而是明確交接位址、寬度與解讀責任。

Stanford CS107 Lecture 21:Heap Allocator 的第一個設計,速度與空間為何互相拉扯

CS107 第 21 講從 allocator 的 alignment、throughput 與 utilization 目標出發,以 bump allocator 和 implicit free list 拆解 metadata、splitting、placement、內部與外部碎片,以及 free 後為何必須 coalesce。

Stanford CS107 Lecture 22:Explicit Free List 為何同時活在兩種順序裡

CS107 第 22 講把 implicit free list 改成 explicit free list:搜尋只拜訪可重用 blocks,但每塊 free memory 同時具有實體相鄰順序與邏輯鏈結順序,unlink、coalesce、reinsert 必須共同維持不變量。

Stanford CS107 Lecture 8:指標不是魔法,而是可被複製的位址

CS107 第 8 講從 & 取址與 * 解參照出發,說清楚 C 的 pointer parameter 為何仍是 pass-by-value,以及 int *、char *、char ** 如何分別修改 caller 擁有的 int、char 與 pointer。

Stanford CS107 Lecture 9:Array 不是 Pointer,但它們在運算式裡合作

CS107 第 9 講用 C strings 七條規則拆開 array object、pointer variable 與 string literal:array 常在運算式中退化成首元素指標,但儲存空間、可重新賦值性、可修改性與 sizeof 行為仍完全不同。

Stanford CS107 Lecture 20:Reverse Engineering 之後,先問 Privacy 與 Trust,再進 Heap Allocator

CS107 第 20 講把 reverse engineering 能力放回倫理脈絡:privacy 有個人與社會模型,trust 等於 reliance 加上 betrayal risk;接著複習 process memory,從 malloc client 轉成 heap allocator implementer。

Stanford CS107 Lecture 10:Stack 與 Heap 的差別不是速度,而是 Lifetime 與 Ownership

CS107 第 10 講從 sizeof 與 pointer arithmetic 走進 stack frame lifetime:回傳 local array 會留下 dangling pointer;malloc 讓資料跨越函式返回,但也把 NULL、容量計算、ownership、free 與 memory leak 交給程式設計者。

Stanford CS107 Lecture 26:Wrap-up,六個系統問題與下一站

CS107 第 26 講用六個大問題收束十週內容:representation、text、memory、generics、execution 與 allocation;它以 explicit allocator 檢查學習成果,並把後續路線指向 CS111 與其他 systems 課。

Stanford CS109 Lecture 1|What is Probability?:先把隨機問題列成結果集合,再談事件的機率。

先把隨機問題列成結果集合,再談事件的機率。

Stanford CS109 Lecture 2|Conditional Probability:條件不是裝飾,而是把樣本空間縮到已知資訊仍允許的部分。

條件不是裝飾,而是把樣本空間縮到已知資訊仍允許的部分。

Stanford CS109 Lecture 3|Bayes Theorem:Bayes 定理把容易建模的生成方向,翻成真正想問的推論方向。

Bayes 定理把容易建模的生成方向,翻成真正想問的推論方向。

Stanford CS109 Lecture 4|Counting and Combinatorics:先判斷順序是否重要、元素能否重複,公式才不會套錯。

先判斷順序是否重要、元素能否重複,公式才不會套錯。

Stanford CS109 Lecture 5|Random Variables and Expectation:隨機變數是把結果映成數字;期望值是加權平均,不保證會真的出現。

隨機變數是把結果映成數字;期望值是加權平均,不保證會真的出現。

Stanford CS109 Lecture 6|Moments:期望值、LOTUS 與線性性

期望值把分布壓成加權平均;LOTUS 處理變換後的值,linearity 則讓隨機變數的和即使不獨立也能直接計算。

Stanford CS109 Lecture 7|Variance 與 Poisson:從分散程度到稀有事件計數

先用 variance 描述隨機變數的分散程度,再用 Poisson 處理固定區間內的事件數,以及大 n、小 p 的二項近似。

Stanford CS109 Lecture 8|Continuous Random Variables:PDF、CDF、Uniform 與 Exponential

連續變數的單點機率為零,區間機率是 PDF 面積;CDF、Uniform 與 Exponential 則把面積、等待時間與 memorylessness 串起來。

Stanford CS109 Lecture 9|Normal Distribution:標準化、Φ 與 continuity correction

標準化把不同尺度的 Normal 變數轉成 Z;Φ、線性轉換與 continuity correction 再把區間與大型 binomial 變成可計算的機率。

Stanford CS109 Lecture 10|Probabilistic Models:joint、marginal、independence 與 Bayes

Joint distribution 保存多個變數的完整關係;marginal、conditional、independence 與 Bayes 都是從這份關係表取出不同問題的答案。

Stanford CS109 Lecture 11|Inference:prior × likelihood → normalize

Inference 把 hidden variable 的 prior 逐項乘上 observation likelihood,再正規化成 posterior;同一迴圈可處理多次觀察與離散化的連續 belief。

Stanford CS109 Lecture 12|General Inference:Bayesian networks、sampling 與 rare evidence

Bayesian network 用 conditional independence 分解巨大 joint;ancestral sampling 生成 joint samples,rejection sampling 再以 evidence 篩出 conditional。

Stanford CS109 Lecture 13|Multinomial:多類別計數、bag of words 與 log probability

Multinomial 把 binomial 的兩類計數推廣到多類;同一 PMF 也能把文件視為 word counts,配 Bayes 與 log-score 做 authorship inference。

Stanford CS109 Lecture 14|Beta:把未知 probability 變成可更新的 random variable

Beta distribution 表示對未知成功率的完整 belief;success/failure data 只需更新兩個參數,便能取得 posterior、平滑估計與 Thompson-sampling decision。

Stanford CS109 Lecture 15|Adding Random Variables 與 Central Limit Theorem

少數分布的 independent sums 有 closed form;一般 IID sums 則由 CLT 在大樣本下近似 Normal,離散 sums 還需 continuity correction。

Stanford CS109 Lecture 16|Bootstrapping:sampling statistics、error bars 與 p-values

Bootstrap 把 sample histogram 當作 population proxy,以 replacement 重抽並重算 statistic,近似 estimator 的 sampling distribution、error bar 與 null p-value。

Stanford CS109 Lecture 17|Algorithmic Analysis:conditional expectation、indicators 與 recursion

隨機程式的 expected cost 可依第一個 random choice 分情境;計數問題則拆成 indicators,兩者都靠 linearity,而不必硬求完整 distribution。

Stanford CS109 Lecture 18|Information Theory:surprise、entropy、information gain 與 KL

Surprise 把低機率事件轉成 bits;entropy 是 expected surprise,information gain 選擇最能降低 uncertainty 的問題,KL 則量化錯用 model distribution 的額外代價。

Stanford CS109 Lecture 19|Maximum Likelihood Estimation:固定資料,找最能解釋資料的參數

MLE 固定觀察資料、最佳化參數;log-likelihood 讓乘積變加總,但最大值也可能落在邊界。

Stanford CS109 Lecture 20|Logistic Regression:從 Bernoulli likelihood 推出 gradient

Logistic regression 用 sigmoid 把線性分數變成 Bernoulli 機率,而 gradient xⱼ(y-ŷ) 直接來自 log-likelihood 的 chain rule。

Stanford CS109 Lecture 21|Comparing Classifiers:accuracy 之外還要問 calibration、錯誤成本與 fairness

比較 classifier 不能只看 accuracy;還要用 held-out data、baseline、calibration、precision/recall 與明確的 fairness criterion。

Stanford CS109 Lecture 22|Deep Learning:用 chain rule 推出 backpropagation

Neural network 是堆疊的 logistic units;forward pass 算機率,backpropagation 重用 output error 來計算所有 gradients。

Stanford CS111 Lecture 1:作業系統的歷史、抽象化與三條課程主線

第 1 講沿 1940 年代共用 I/O 卡片、batch processing、multiprogramming 與個人電腦的演變,解釋 OS 的功能如何隨硬體成本與使用者需求逐層增加。

Stanford CS111 Lecture 2:行程與執行緒的執行抽象、狀態與切換

第 2 講先定義行程與執行緒的共享/私有狀態,再用 fork、execvp、waitpid 與 thread creation 說明核心如何建立執行單位。

Stanford CS111 Lecture 3:核心執行緒、使用者執行緒、context switch 與 dispatcher

第 3 講沿 running、blocked、ready 狀態轉移,拆解 PCB、context save/restore 與 dispatcher 如何完成一次 CPU 控制權交接。

Stanford CS111 Lecture 4:交錯執行、race condition、atomicity 與 critical section

第 4 講逐步拆解 Too Much Milk 的失敗排程,從具體 interleaving 推導 race condition、atomicity、critical section 與正確同步條件。

Stanford CS111 Lecture 5:mutex、condition variable 與 Mesa semantics

第 5 講用容量為 8 的環形 Pipe 證明:mutex 只提供互斥;condition variable 才能在 predicate 不成立時原子地釋放鎖並阻塞;Mesa semantics 下,wait 返回後必須用 while 重查條件。

Stanford CS111 Lecture 6:關中斷、原子指令、spinlock 與阻塞式 lock 的實作

第 6 講從單核心關中斷一路修到多核心 v5,追蹤 guard、lock 與 wait queue,說明 atomic exchange、spin、block 與 wakeup 如何避免 race 和 lost wakeup。

Stanford CS111 Lecture 7:Deadlock 的四個必要條件與全域鎖順序

第 7 講用 request/ownership graph 拆出 deadlock 的四個必要條件,再比較 detection、prevention 與 lock ranking;實務上最常破壞 circular wait,但代價是所有模組必須遵守同一個全域順序。

Stanford CS111 Lecture 8:FIFO、round robin、priority 與多核心排程

第 8 講從 FIFO、round robin 與不可實作的 SRPT,推到自適應 priority queues、BSD scheduler,再處理多核心 queue contention、core affinity 與 work-conserving 的衝突。

Stanford CS111 Lecture 9:object file、symbol、relocation、static 與 dynamic linking

第 9 講沿著 source→assembly→object→executable→process,拆解 linker 的三次掃描、symbol relocation,以及 dynamic loader 如何用 jump table 把 shared library 位址延後到啟動時解決。

Stanford CS111 Lecture 10:allocator 介面、free list、fragmentation 與 placement policy

第 10 講從 stack 的可預測 LIFO,推到 heap 的 free lists、first/best fit 與 slabs,再比較 reference counting 和 mark-and-sweep 如何在 dangling pointers、leaks、cycles、fragmentation 間取捨。

Stanford CS111 Lecture 11:Storage Reclamation、Reference Counting 與 GC

第 11 講的官方 PDF 與 Lecture 10 逐位元組相同;本文誠實保留此 artifact 缺口,聚焦後半的 reachability、dangling pointers、leaks、reference-count cycles 與 mark/compact GC。

Stanford CS111 Lecture 12:可信任的定義、隔離、驗證與從不信任建立信任

第 12 講把 trust 定義為自願承受 vulnerability,區分 over-trust 與 untrustworthiness,再用 assumption、inference、substitution 分析 Linux TCB、xz attack 與 AI code policy。

Stanford CS111 Lecture 13:位址空間、relocation、base-and-bound 與保護

第 13 講從 single-tasking 與 load-time relocation 的失敗出發,以 MMU 的 base/bound 建立 virtual/physical address spaces、透明隔離與 traps,再用 segmentation 解開單一連續區域的限制。

Stanford CS111 Lecture 14:segmentation、共享、稀疏位址空間與配置限制

Lecture 14 的官方 PDF 與 Lecture 13 逐位元組相同;本文明示此缺口,聚焦 segmentation 如何以多組 base/bound/protection 支援 growth、sharing、compaction,以及 fixed-count、fragmentation、rigid layout 限制。

Stanford CS111 Lecture 15:page、frame、page table、TLB 與多層頁表

第 15 講以固定大小 pages 消除跨 process external fragmentation,再拆解 x86-64 四層 page-table walk、sharing/aliasing 與 TLB,說明 translation speed、table sparsity、context switch 和 page size 的連動取捨。

Stanford CS111 Lecture 16:Page Fault、Demand Fetching 與 Prefetch

Demand paging 只在需要時載入頁面;present bit、精確例外與可重啟指令讓核心能從 executable、zero-fill 或 backing store 安全補頁。

Stanford CS111 Lecture 17:從 page fault 到 Clock,記憶體滿了該換掉誰?

第 17 講把 demand paging 分成 fetching 與 replacement:MIN 無法預知未來,精確 LRU 成本過高,Clock 只靠 reference/dirty bits 找夠舊的 page;active working sets 放不進 RAM 時,1% fault rate 就可能帶來約 1,000 倍 slowdown。

Stanford CS111 Lecture 18:磁碟幾何、Interrupt 與 DMA

磁碟把機械式 seek 與 rotation 隱藏成線性 block API;現代 I/O 再用 memory-mapped registers、DMA queues 與 interrupts,讓 CPU 只負責下命令和收完成通知。

Stanford CS111 Lecture 19:檔案抽象、配置策略與 FAT

檔案系統把耐久 byte collection 映射到磁碟 blocks;contiguous、linked 與 FAT 分別交換 locality、成長彈性、random access 與 metadata 成本。

Stanford CS111 Lecture 20:多層 Inode、Index Walk 與磁碟排程

4.3BSD inode 用 direct、single-indirect 與 double-indirect pointers 讓 lookup depth 隨檔案大小分級;FIFO、SPTF、SCAN 與 CSCAN 則交換 seek cost、公平性與等待時間。

Stanford CS111 Lecture 21:Block Cache、Free Bitmap 與 Delayed Allocation

Block cache 把熱索引留在 DRAM,bitmap 與保留空間維持配置選擇,fragments 和 delayed allocation 則用較晚、較完整的資訊換取 locality。

Stanford CS111 Lecture 22:Directory Lookup、Hard Link 與 Symbolic Link

Directory 把文字名稱映射到 file-system-local i-number;hard link 共享 inode 與 reference count,symbolic link 則保存 pathname,換得跨檔案系統能力但可能形成 loop 或 dangling link。

Stanford CS111 Lecture 23:從 fsck、Ordered Writes 到 Write-Ahead Logging

檔案系統一次操作會改動多個 block,崩潰卻可能發生在任兩次寫入之間;本講比較 fsck、ordered writes 與 write-ahead logging 如何交換復原時間、效能、耐久性與一致性。

Stanford CS111 Lecture 24:Journaling、Transaction 與 Checkpoint

第 24 講從 WAL 入口往下拆 transaction、idempotent replay 與 checkpoint,說明一致性不等於 durability,journal 也不能取代 fsync 與備份。

Stanford CS111 Lecture 25:Truth, Trust, and Technology——演算法、生成式 AI 與 deepfake 如何改寫信任

第 25 講把 trust 拆成假設、推論與替代三種建立方式,再檢視社群推薦、生成式 AI 與合成媒體如何放大過度信任;實務答案是保留來源、交叉驗證並協調責任。

Stanford CS111 Lecture 26:Flash Translation Layer、Garbage Collection 與 Wear Leveling

Flash 只能逐頁 program、整個 erase unit 清除;FTL 以 out-of-place mapping 隱藏不對稱,再用 garbage collection、temperature segregation、wear leveling 與 TRIM 管理放大成本。

Stanford CS111 Lecture 27:Trap-and-Emulate、Virtual I/O 與 Nested Page Tables

VM 把 process interface 擴成完整硬體介面;hypervisor 讓普通指令直接執行、攔截 privileged operations,並虛擬化 interrupts、I/O 與兩層位址轉譯。

Stanford CS111 Lecture 28:用四個觀念串起並行、記憶體與儲存

第 28 講把整學期收斂成並行、記憶體、儲存三條主線,再用 virtualization、atomicity、locality、layering 四個觀念解釋作業系統如何管理共享資源。

Stanford CS124 導讀:課號掛 100,先修寫死四門,而且下一學年整年不開

CS124 是 Stanford NLP 分支的第一門課,教科書是 Jurafsky 自己免費放在網路上的《Speech and Language Processing》,九個作業 repo 全部公開。但課程網站首頁掛著一行公告:2026–27 學年整年不開。而且那份課綱指定的章號,已經跟 2026 年 8 月版的教科書對不上了。

Stanford CS221 導讀:AI 入門課的先修欄位,寫的是 CS103、CS106B、CS109、CS161

CS221 把 AI 排成一條軸:反射式模型(也就是深度學習)在最低階那一格,往上是狀態、變數、邏輯。2025 年秋季 Percy Liang 接手後把講義換成可執行的 Python,並在第一堂的原始碼裡寫下『Cut constraint satisfaction problems :(』——但 ExploreCourses 與 Stanford Online 兩個官方頁面到現在還把約束滿足列為課程主題。專案已經從 2019 年的兩成成績掉到只剩加分。

Stanford CS224N 導讀:打開 2019 年那版課表,Transformer 還排在第 14 堂

CS224N 把 2000 年以來每一屆的課程網站都留在線上。2019 冬季那版,Transformer 是第 14 堂的客座講題;2026 冬季那版,它是第 5 堂,之後每一堂都預設你已經懂它。機器翻譯作業整個消失了,第三份作業改成自己刻一個 decoder-only Transformer,附 pytest 可以在筆電上跑。

Stanford CS224U 導讀:課程網站停在 2023 年春季,但整套教材可以 clone 下來跑

CS224U 的教材不是投影片,是一個 Apache-2.0 的 GitHub repo,講義、作業、評分文件全在裡面。但校內班從 2023 年春季之後連停三個學年,ExploreCourses 把它排回 2026-27 春季;官方課程描述至今仍列著 relation extraction 與 semantic parsing,2023 年的講次表一堂都沒有。第一份作業的資料載入 cell 在今天的新環境會卡在 Hugging Face 的相容性改動上。

Stanford CS224V 導讀:2026 年才改名叫 Agentic AI,教的卻是拿形式方法治幻覺

CS224V 的課名在 2026-2027 學年才從 Conversational Virtual Assistants 換成 Agentic AI,但底下的東西沒換:把自然語言翻成形式語意、用 SMT 與知識圖譜約束 agent,而不是拼框架。閱讀清單十一篇 Mandatory 裡,七篇出自授課者自己的實驗室。投影片全公開,課程網站卻明講它們是刻意殘缺的。

Stanford CS224W 導讀:作業全在 Colab 上,但最大一塊分數自學者拿不到

CS224W 的六份 Colab 現在全部可以直接下載開跑,第一份只用 NetworkX,連 PyG 都不用裝。但期末考佔 35%,是全課最大一塊,而它是閉書實體考。公開錄影停在 2021 年,涵蓋不到現在課表後半的 graph transformer、關聯式深度學習與 LLM+GNN。

Stanford CS228 導讀:先修只寫「基本機率與演算法」,但這門課已經停開兩年

CS228 的官方先修就一句『basic probability theory and algorithm design and analysis』,沒有指定任何前置課程。但 ExploreCourses 顯示它最後一次開課是 Winter 2024,下一次排在 2026-27 冬季、講師欄還空著。自學者真正拿得到的是那份公開講義 cs228-notes:16 章寫完,最後一次改動停在 2025 年 6 月。

Stanford CS229 導讀:講義每年重編,公開作業停在 2020,官方自測題是 2008 年的

CS229 的自學三件套不在同一個時鐘上:講義 278 頁、2026 年 8 月才重編過;公開拿得到的作業是 2020 年夏季那批;Stanford Online 叫你入學前先做的自測題,PDF 建立於 2008 年。2026 春季錄影公開 17 支,最後三支的標題跟內容對不上。

Stanford CS329Z 導讀:先用 litellm 手刻一遍 agent,再讓 DSPy 把它收走

CS329Z 是 Stanford 2026 年秋季新開的三學分 agent 工程課,第一份作業要求先用 litellm 從零刻出 RAG、工具呼叫與 ReAct 迴圈,再用 DSPy 把同一批元件重寫一次並交出對照。課程網站架在公開的 GitHub repo 上,commit 紀錄顯示 8 月中作業從三份砍成兩份,被砍掉的那份是「Data for Agents」。

Stanford CS336 導讀:講義是跑得起來的 Python,作業從第二份開始要自己付 GPU 的錢

CS336 的十七堂正課裡,只有九堂是可以執行的 Python 程式,另外八堂是 PDF 投影片——分界線剛好是兩位授課者。第一份作業的講義有八個「低資源提示」教你怎麼在筆電上做完,第二到第五份一個都沒有。課程頁自己列了 B200 的每小時單價,作業講義自己列了每題要幾個 B200 小時。

Stanford CS103 導讀:一門數學課,開學第一件事是裝 C++ 編譯器

CS103 前半教怎麼寫證明、後半教什麼證不出來,但外界最少提到的是它有 C++ 程式作業:PS0 就是裝 Qt Creator。它的真正資產是一整排自製的『Guide to X』講義與一份會拿來扣分的 Proofwriting Checklist,全部公開;解答與練習考題全部鎖在 Stanford 登入後面,而且鎖的理由寫在 Honor Code 裡。

Stanford CS107 導讀:同一門課的作業占比,在不同學期是 40% 對 20%

CS107 從 Unix 與 C 一路做到 x86-64 與自己寫 malloc,七份作業。但翻四個學期的封存 syllabus 會發現同一門課差很多:作業在三個學期占 40%,在 Summer 2026 只占 20%(多了 40% 的隨堂小考);重交政策只出現在 Cain 開的學期,Troccoli 那學期完全沒有。唯一不收遲交的是最後那份 heap allocator。而擋住自學者的不是評分器,是起始碼全在 AFS 上。

Stanford CS109 導讀:一門機率課把「怎麼用語言模型讀這一講」寫成了官方教材

CS109 在 2026 年夏季的每一講旁邊,掛了一份官方寫的 LLM Learning Guide——六個概念、每個概念一組 Learn 與 Test me 提示詞,逐週產出共 23 份 PDF。同一門課的榮譽守則第 4 條卻明文禁止拿 LLM 解作業,而成績有 65% 壓在現場考試。這兩件事是同一套設計的兩半。

Stanford CS111 導讀:九份作業拼成一部作業系統,但考試不考作業

CS111 的九份作業從 lambda 一路做到日誌式檔案系統的崩潰復原,但把官網逐頁讀完會看到三件課綱不寫的事:第三份作業是分水嶺,因為第四份會直接編譯你第三份的程式碼;期末考有一整塊在考倫理學名詞,公開的練習卷連解答都在;還有,把自己的程式碼貼給 AI 問問題,這門課白紙黑字寫成違反榮譽準則。

Stanford CS161 導讀:一門把「寫清楚」列為第三個學習目標的演算法課

CS161 第一堂投影片寫下的課程目標有三個:設計、分析、溝通。第三個才是作業不准手寫、要求寫得像給同事的備忘錄的原因。八份作業裡 HW2 是分水嶺,講義的 Python notebook 用來示範「量時間看不出誰比較快」,而暑期班是同課號、同課名、完全另寫一套的另一門課。

Stanford CS161 Lecture 1:為什麼分析演算法要從 Karatsuba 乘法開始

把兩個 n 位數各切成兩半,直覺分治仍要做 4 個子乘法,時間沒有離開 n²;Karatsuba 用 (a+b)(c+d)-ac-bd 算交叉項,把分支降到 3,得到約 n^1.585 的成長率。

Stanford CS161 Lecture 2:從 InsertionSort 證明到 MergeSort 的 n log n

第二講把「快」拆成可證明的最壞情況上界:InsertionSort 用迴圈不變量證正確、最壞為 n²;MergeSort 用遞迴不變量與每層 O(n) 的遞迴樹,得到 O(n log n)。

Stanford CS161 Lecture 3:Master Theorem 怎麼讀懂一棵遞迴樹

對 T(n)=aT(n/b)+O(n^d),真正的比較是分支成長 a 與單題工作縮小 b^d:a=b^d 時每層同重,a<b^d 時頂層主導,a>b^d 時葉層主導;不合模板就改用 substitution。

Stanford CS161 Lecture 4:Median of Medians 如何保證線性 Selection

Selection 不必先排序。Median of medians 每 5 個元素取中位數,再取這些中位數的中位數作 pivot,保證較大的遞迴側至多 7n/10+5;用 substitution 可證 worst-case O(n)。

Stanford CS161 Lecture 5:Randomized QuickSort 的期望時間怎麼證

Randomized QuickSort 對每個固定輸入都有 O(n log n) 期望時間,但最壞仍是 Θ(n²);正確證明不是把期望子問題大小代入 recurrence,而是計算每對元素被比較的機率。

Stanford CS161 Lecture 6:Sorting 下界與線性時間 Radix Sort

Ω(n log n) 只限制 comparison sorting。若整數 key 可直接索引 bucket,stable Counting Sort 可作為 Radix Sort 的內層;在 M≤n^c 等條件下能達 O(n)。

Stanford CS161 Lecture 7:二元搜尋樹、紅黑樹與最壞 O(log n) 的來源

一般 BST 的操作成本是 O(h),偏斜時會退化成 O(n);紅黑樹用五條顏色不變量把高度限制在 2 log₂(n+1),因此搜尋、插入與刪除都有最壞 O(log n) 保證。

Stanford CS161 Lecture 8:雜湊、碰撞與期望 O(1) 到底保證什麼

Universal hash family 只需讓任意兩個不同 key 的碰撞機率不超過 1/n,就能把某個 key 所在 bucket 的期望長度壓到 2 以下;這給的是 expected O(1),不是每次操作的最壞 O(1)。

Stanford CS161 Lecture 9:圖的表示、DFS、BFS 與兩種搜尋順序的證明

DFS 與 BFS 都在 adjacency list 上以 O(n+m) 掃完整張圖;DFS finish times 能為 DAG 產生拓撲順序,BFS layers 則精確等於無權圖的最短距離。

Stanford CS161 Lecture 10:兩次 DFS 為什麼能找出強連通分量

把每個 SCC 壓成一點後一定得到 DAG;第一趟 DFS 的 finish times 排出這些分量,第二趟在轉置圖按遞減順序搜尋,每棵 DFS tree 恰好是一個 SCC,總時間 O(n+m)。

Stanford CS161 Lecture 11:Dijkstra、Bellman–Ford 與鬆弛的兩種秩序

Dijkstra 每次確定最小 estimate,正確性依賴非負 edge weights;Bellman–Ford 不挑 vertex、反覆鬆弛所有 edges,以 O(nm) 換取負權支援並能偵測 source 可達的負環。

Stanford CS161 Lecture 12:用動態規劃重寫 Bellman–Ford 與 Floyd–Warshall

動態規劃先精確定義子問題,再用 optimal substructure 寫 recurrence,最後依相依順序填表;Bellman–Ford 以 edge 數分層,Floyd–Warshall 則以允許的中繼頂點分層。

Stanford CS161 Lecture 13:從 LCS、背包到樹上獨立集的動態規劃設計法

Lecture 13 把動態規劃整理成五步:選 state、寫 transition、填表、回復解、再優化實作。LCS 是 O(mn),兩種背包都是 O(nW) 的擬多項式時間,樹上最大權重獨立集則能在 O(|V|) 完成。

Stanford CS161 Lecture 14:貪婪演算法何時能從局部最佳走到全域最佳

貪婪演算法不是『每次挑看起來最好的』,而是每次只保留一個選擇,並用交換論證證明它不會排除最佳解。Lecture 14 以 activity selection、weighted completion time 與 Huffman coding 展示三種證明。

Stanford CS161 Lecture 15:用 cut property 證明 Prim 與 Kruskal

MST 的核心不是背兩支演算法,而是維持『目前選邊仍包含於某棵 MST』,再用 cut property 證明 Prim 與 Kruskal 每一步都安全。

Stanford CS161 Lecture 16:Ford–Fulkerson、殘餘網路與最大流最小割

Ford–Fulkerson 在殘餘網路沿 augmenting path 推流;找不到路時,可達集合形成與 flow 同值的 cut,同時證明最大流、最小割與兩者相等。

Stanford CS161 Lecture 17:Gale–Shapley、穩定配對與可撤銷的貪婪選擇

Deferred Acceptance 允許暫時接受後再反悔;proposal 的單調性證明它在 O(n²) 結束、產生 stable matching,且偏向 proposal 的一側。

Stanford CS161 Lecture 18:從演算法工具箱走向 LP、編碼與 ML

期末課以 slides 回顧 CS161 工具箱,再用 LP duality、Reed–Solomon 與 ML-assisted algorithms 指向後續方向;官方沒有提供 notes。

Stanford CS 課程導讀:按先修關係排一次,從 CS106A 到 CS336

Stanford CS 的骨架是 CS103、CS107、CS109、CS111、CS161;CS221 先修列出其中三門,另加 CS106B。本文依官方先修與編輯者建議順序排出主線,並標明公開教材與停開風險。