Skip to content

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

2026年8月20日 1 分鐘
TL;DR Stanford CS 的骨架是 CS103、CS107、CS109、CS111、CS161;CS221 先修列出其中三門,另加 CS106B。本文依官方先修與編輯者建議順序排出主線,並標明公開教材與停開風險。
目錄
  1. 先破一個誤會:課號不是難度
  2. 第一階:程式入門,兩門課換兩種語言
  3. 第二階:學位的骨架,是這五門
  4. 第三階:三個入口,建議至少走兩個
  5. 第四階:主幹,CS229 與 CS230
  6. 第五階:五條分支
    1. A. NLP / LLM / Agent
    2. B. 視覺
    3. C. 強化學習與機器人
    4. D. 圖與網路
    5. E. 系統與效能
  7. 第六階:研究級的那一層
  8. 自學真正會卡在哪裡
  9. 先查有沒有開,再查先修
  10. 五條路線,各挑一條走
  11. 附錄:數字與查證方式
  12. 更新紀錄
  13. 參考資料

🌏 English version

Stanford 電腦科學系一年開出的課超過三百門,其中一大批把講義、作業、甚至考古題整包放在公開網址上,不必註冊、不必登入、不必付錢。問題是這件事對自學者幾乎沒有幫助——你不知道從哪一門開始,也不知道哪些課只是掛著網址、點進去其實拿不到東西。

這篇是那份地圖。它按官方先修關係排,從第一門程式課排到需要申請才修得到的 LLM 課,每一階標出這門課在教什麼、公開教材實際拿得到什麼。文章後半處理兩件課表通常不講的事:不修學分的人會在哪裡碰壁,以及有些被廣泛引用的進階課,其實已經好幾年沒開了。

範圍先講清楚:這篇只收「教材公開到足以自學」的課。沿用全球入口的標準,A0 是 catalog,A1 是 syllabus,A2 是部分實質教材,A3 才是能排成連續自學課。本篇主路線納入的版本均以 A3 為門檻;只剩課表或 Canvas 內材料的課不列入路線,停開與佔位條目則另表揭露。這是教材公開度,不是教學品質或難度評分。

先破一個誤會:課號不是難度

很多人以為 CS106B 比 CS103 簡單、CS336 比 CS229 難,因為數字比較小或比較大。這個推論在 Stanford 不成立,而且不成立是官方講的。學術輔導處的課程目錄說明頁寫得很直接:

Stanford does not have a standardized course numbering system. This means that each department is free to number its courses in its own way.

同一頁給了一份「常見但非通用」的慣例(完整區間見文末附錄),大意是數字越大、預設你會的東西越多。CS 系大致照這個走,所以課號可以當成**「這門課預設你已經會什麼」的粗略指標**,但不能當成難度排序。

反例俯拾即是:CS221 掛在 200 系列卻是 AI 的入門課;CS124 掛在 100 系列,先修卻要求 CS109 加上接近 CS107 的程度;CS336 掛在研究生號段,門檻不在數學,在你敢不敢在沒有鷹架的情況下寫完五份作業。

所以這篇改用另一個判準:每門課 ExploreCourses 條目裡的 Prerequisites 欄位怎麼寫。 那是官方寫下來的依賴關係,比任何印象都可靠。

第一階:程式入門,兩門課換兩種語言

CS106A: Programming Methodology 教 Python,從 Karel 這隻只會前進、轉彎、撿東西的機器人開始。作業依序是 Karel、可汗學院風格的練習系統、影像處理、文字生成、最後一份寫搜尋引擎。這門課不預設任何程式背景,是整個系唯一一門真的從零開始的課。

CS106B: Programming Abstractions 換到 C++,也是大多數人真正「開始學電腦科學」的地方。它的講次表就是一份標準資料結構課綱:stack 與 queue、set 與 map、Big-O、遞迴與回溯、排序、指標與動態記憶體、linked list、二元搜尋樹、Huffman 編碼、雜湊、圖與 Dijkstra。修完這門,你手上就有寫得動大部分技術面試題的工具。

中間還夾了一門 CS106L: Standard C++ Programming,一學分、七份很短的作業、沒有考試、成績只有通過與不通過。它補的是 CS106B 為了教概念而刻意略過的東西:初始化、參考、迭代器、模板、lambda、move 語意、RAII 與智慧指標。如果你的目標是把 C++ 寫得像 C++ 而不是像有指標的 Java,這一學分的投報率很高。

怎麼做:打開 CS106B 的講次索引,找到「Big O and Algorithmic Analysis」那一講,把投影片讀完,然後闔上,拿張紙寫下你能想起來的每一個複雜度等級與對應的例子。寫不出來的地方就是你以為自己懂的地方。

第二階:學位的骨架,是這五門

這是整篇最重要的一節。Stanford CS 學位要求把大學部的骨架寫成五門課,而且附了一條硬規定:CS103、CS107、CS109、CS111、CS161 必須以五學分修習。不是「建議」,是不接受降學分的版本。

更能說明它們地位的是另一件事:CS221 的先修欄位列出核心五門中的三門——CS103、CS109、CS161——另加 CS106B,並強烈建議修課前熟悉這些概念。想走 AI 的人常常想跳過這一階,但 AI 的入門課自己不同意。

課號課名這門課換掉你哪個直覺
CS103Mathematical Foundations of Computing「程式寫得出來就是對的」→ 你得證明它對
CS107Computer Organization and Systems「變數是個盒子」→ 變數是一段有位址的位元組
CS109Probability for Computer Scientists「平均值就夠了」→ 分布、獨立性、貝氏
CS111Principles of Computer Systems「程式從頭跑到尾」→ 行程、排程、虛擬記憶體
CS161Design and Analysis of Algorithms「跑得動就好」→ 為什麼跑得動、多快、能不能更快

幾件值得知道的事:

CS111 跟 CS110 的關係是替代,不是改名。 已下線的核心要求頁確實標過「Formerly known as CS110」,本文原本據此說兩者是同一門課、CS110 的自學資源照樣可用。那句話會誤導人。 現行 ExploreCourses 上 CS111 的官方描述寫的是「Available as a substitute for CS110 that fulfills any requirement satisfied by CS110」——替代,不是等同;而 CS110 的課號至今還活著,2026-27 學年還掛著它的補充實驗課 CS110L。

差別是實質的:CS110 的作業有 Stanford Shell、HTTP 代理與 MapReduce,講次表裡有三堂網路;今天的 CS111 一堂網路都沒有,換成虛擬記憶體、按需分頁、頁面置換與崩潰復原。兩門共有的只剩並行那一段。所以跟著 CS110 自學指南走的人會做到一批不在 CS111 裡的東西,同時錯過今天 CS111 的一半。兩份材料都有價值,但它們不是同一門課的兩個版本。

CS103 的後半段比前半段重要。 前半是離散數學與證明技巧,後半直接進有限自動機、正規表達式、上下文無關文法、圖靈機、可判定性、停機問題,最後收在 P 對 NP。它是把「電腦能算什麼」這件事講清楚的那門課。

CS107 是最痛也最值得的一門。 作業從 Unix 與 C 入門,一路做到 C 字串、堆積、void * 泛型操作、函式指標、x86-64 組合語言,最後一份是自己寫一個記憶體配置器。它的實驗課講義連解答都公開。

CS111 的作業表就是一部作業系統。 從 lambda 與執行緒開始,做同步、執行緒排程器、自己實作 lock 與 condition variable、記憶體映射的加密檔案、時鐘演算法的分頁替換、讀 Unix v6 檔案系統、最後是日誌式檔案系統。

CS109 是這一階裡最不能跳的一門。 它的 2026 年版本還多了一個東西:每一講的「課外」欄位除了投影片,還掛著一份「LLM Learning Guide」。一門機率課把「怎麼用語言模型讀這一講」做成官方教材的一部分,這件事本身就是訊號。

跳過 CS109 的代價不會在下一門課出現,會在你之後修的每一門課出現:CS224W 的先修是 CS109 加任一門入門機器學習,CS234 要求基本機率,CS336 要求 CS109 等級的機率統計。

CS161 曾經有兩個官方課名,現在只剩一個。 系上的核心要求頁一度把它叫做「Data Structures and Algorithms」,而 ExploreCourses、暑期部與課程自己的網站都叫「Design and Analysis of Algorithms」。那個矛盾現在消失了——不是因為兩邊談攏,是因為掛著舊課名的那個頁面整個下線了(見下方更新紀錄)。現行的官方來源一律寫 Design and Analysis of Algorithms,舊說法只剩 Wayback 快照讀得到。找資料時用現行課名就對了。

怎麼做:如果你已經會寫程式但沒修過系統課,直接下載 CS107 的第一份作業講義,把 Assign0 做完。它會很快告訴你,你對「一個整數在記憶體裡長什麼樣」的理解有多少是猜的。

第三階:三個入口,建議至少走兩個

過了地基,AI 這條線的入口不是單一一門課,是三個方向不同的門。

CS221: Artificial Intelligence: Principles and Techniques 是最標準的那個。它把 AI 定義成「在資訊不完整(所以需要機率)與計算有限(所以需要演算法)的情況下做出好決策」,涵蓋搜尋、約束滿足、賽局、馬可夫決策過程、圖模型、機器學習與邏輯。這是唯一一門會讓你看見「深度學習以外的 AI」的入門課。

CS124: From Languages to Information 是語言與資訊的入口,也是 NLP 線的正式起點。官方描述已經把方法從正規表達式、邏輯迴歸、梯度下降一路寫到 transformer 與大型語言模型,應用涵蓋聊天機器人、資訊檢索、社群運算與推薦系統。它的先修比課號看起來嚴格得多:CS106B、CS106A 等級的 Python、CS109,外加 CS107 等級的 UNIX 與程式成熟度。

CS238: Decision Making under Uncertainty(與 AA228 合開)是決策與不確定性的入口,走強化學習、規劃、自主系統的人從這裡進去最順。

第四階:主幹,CS229 與 CS230

過了入口就是建立模型能力的主幹。

CS229 是理論那一側,把統計假設攤開來推。它有一份幾百頁的公開講義 PDF,從線性迴歸一路寫到自監督學習與基礎模型;Stanford Online 的 YouTube 頻道除了長年掛著 Andrew Ng 在 2018 年那版,2026 年春季那一版也已經整批上架。想要「有講義、有影片、有作業」三件套的人,這門最完整。

CS230 是實作那一側,走翻轉教室:影片與程式作業在 Coursera 的深度學習專項課程上,實體課堂只留下講座與專案討論。這代表兩件事——自學者能拿到的核心教材反而最齊全(因為本來就在 Coursera 上),但你拿不到那個真正的差異化部分,也就是課堂上的專案回饋。本站的 CS230 導讀系列逐講拆解了那些講座內容。

兩門的關係不是二選一,是互補。

CS228: Probabilistic Graphical Models 補的是機率推理那條線:貝氏網路、馬可夫網路、隱藏馬可夫模型、動態貝氏網路、精確與近似推論。它的先修只寫「基本機率理論與演算法設計分析」,比大多數人以為的低。

怎麼做:如果你不確定該從 CS229 還是 CS230 開始,去讀 CS229 的公開講義 PDF 第一章,讀不動就先修 CS230。這比任何自我評估都準。

第五階:五條分支

A. NLP / LLM / Agent

這條線的先修鏈是五條分支裡最完整的,可以一路串到底。

課號課名官方先修
CS124From Languages to InformationCS106B、Python、CS109、CS107 等級
CS224NNatural Language Processing with Deep Learning微積分與線性代數;CS124、CS221 或 CS229
CS224UNatural Language UnderstandingCS224N 或 CS224S
CS224VAgentic AILINGUIST 180/280、CS124、CS224N、CS224S、CS224U 擇一
CS329XHuman Centered NLP
CS329ASelf-Improving AI AgentsCS224N 或 CS229S
CS336Language Modeling from ScratchPython、PyTorch、系統概念、微積分與線性代數、CS109 等級機率

CS224N 的網站有個少見的價值:它把 2000 年以來每一屆的課程網站都留著。你可以打開 2019 年那版,看看 Transformer 剛出現時這門課怎麼教它,再對照現在的版本——同一門課、同一群人,教法差多少一目了然。

CS224V 現在叫 Agentic AI,這是 2026 年才有的名字。內容直接處理 RAG 與形式化任務描述、跨資料庫與知識庫的混合推理、AI 驅動的科學知識探索、用形式方法提升決策 agent 的準確度與可解釋性、以及長時程 agent 的效率。想做 agent 又想要有正課可上的人,這門的優先序被低估了。

CS329X: Human Centered NLP 談人本設計、human-in-the-loop、公平性與可及性。它容易被當成軟性選修跳過,但它處理的正是把模型變成產品時最先炸開的那一類問題。

B. 視覺

CS231A: Computer Vision 講相機與投影模型、濾波與邊緣偵測、分割與分群、立體重建、物體與場景辨識。它的舊課號是 CS223B,先修只要線性代數與基本機率統計。

CS231N: Deep Learning for Computer Vision 才是深度學習那一側。它的講義網站是很多人第一次真正看懂反向傳播的地方,2026 年春季的作業已經更新到第三份包含擴散模型與 CLIP、DINO——這門課的名字雖然還叫電腦視覺,內容早就不只電腦視覺了。順帶一提,它的課名已經不是很多整理裡寫的「Convolutional Neural Networks for Visual Recognition」,那是舊名字。

順序上,先有 CS229 或 CS230 的模型基礎再進 CS231N 會順很多,CS231A 則可以並行或之後補。

C. 強化學習與機器人

CS221 → CS238 → CS234 → CS223A → CS333

CS234: Reinforcement Learning 的先修寫得很直接:Python 熟練、CS229 或同等、線性代數、基本機率。CS223A 是機器人的基礎課,由 Oussama Khatib 授課。CS333 是專案導向的研究所課,把機器人、機器學習與控制理論拉到人機互動的場景,官方只寫「建議修過 AI 入門課」。

D. 圖與網路

CS224W: Machine Learning with Graphs 的先修是 CS109 加任一門入門機器學習,門檻在這一階裡算低的。內容涵蓋表示學習與圖神經網路、Web 演算法、知識圖譜推理、影響力最大化、社群網路分析。旁邊的 CS246: Mining Massive Data Sets 處理的是資料大到單機放不下的情況。

E. 系統與效能

這條分支不長在 AI 上,長在 CS107 上,但做 AI 工程而不只是讀模型的人會需要它。以公開教材完整度來說,這三門明顯突出:

CS143: Compilers 是自學友善度的天花板。五份程式作業、四份筆記型作業(附解答)、Cool 語言的參考手冊與執行期說明、十八講的投影片,連近三年的期中期末考題與解答都掛在同一頁上。

CS144: Introduction to Computer Networking 的作業設計是它出名的原因。七個檢查點,你會從「用不可靠的東西做出可靠傳輸」開始,一路實作 TCP、往下做網路介面、做一台 IP 路由器,最後一關叫「做一個網際網路」。

CS149: Parallel Computing 涵蓋多核 CPU、GPU 與 CUDA、DNN 在 GPU 上的排程、硬體特化。五份程式作業從四核心效能分析做到「寫出世界最快的 CUDA kernel」,其中一份跑在 Trainium2 加速器上。

第六階:研究級的那一層

這一層的共同點不是「再教一次模型」,是要求你能做研究、建系統,或從零把整條流程走完。

CS336: Language Modeling from Scratch(Tatsunori Hashimoto、Percy Liang)是唯一標注 Application required(需要申請)的一門。五份作業,你會自己實作 tokenizer、寫 Transformer、寫 Triton kernel、做多機平行、跑 scaling law、做評測、處理資料、最後做 SFT 與 RLVR 的後訓練。課程網站對先修條件講得毫不客氣:

The amount of code you will write will be at least an order of magnitude greater than for other classes.

它的講義用一種少見的形式發布——可執行的講義。GitHub 上的 lectures repo 裡,講次是 lecture_01.py 這樣的 Python 檔,跑一次會產生完整的追蹤紀錄再渲染成網頁。那個 repo 目前有數千顆星,作業的起始碼與說明也都公開。

CS312 走的是另一條路:它主張光有知識與數學能力不夠,發明下一代架構需要的是跑過非常多次實驗,所以整門課帶學生在可計算的領域裡練「高效實驗與預測實驗結果」的能力。授課的是 Hashimoto——也就是 CS336 的講師之一。

CS329A: Self-Improving AI Agents 是研究所研討課,主題涵蓋 constitutional AI、學習型驗證器、擴展測試時計算、把搜尋與 LLM 結合、工具使用與檢索、多模態網頁互動、多步推理與規劃,以及評估與編排框架。九講的錄影已經公開在 Stanford Online 的 YouTube 頻道上。

CS329Z: Engineering AI Agents 教複合式 AI 系統:學生先從零手刻 RAG、工具使用、agent loop 這些核心元件,再學 DSPy 這類框架怎麼把這些模式抽象掉。

安全與可靠性那一組是這一層裡最值得注意的變化,因為它們已經不是外圍:CS221M: Mechanistic Interpretability 講探測、steering、因果抽象與稀疏自編碼器,特別強調因果方法與大型語言模型;CS329H: Machine Learning from Human Preferences 處理偏好異質性、偏好聚合、人類回饋的詮釋與隱私;CS329T 則從基礎模型、prompting、RAG 講到 agent 架構與評估。

最後補一門不在這條線上、但值得單獨知道的課:CS146S: The Modern Software Developer 是三學分的正式學分課,教的不是寫程式,是怎麼指揮 coding agent 寫程式。先修寫的是 CS111/CS161 等同的程式經驗,建議修過 CS221 或 CS229。本站有逐週拆解的系列

自學真正會卡在哪裡

前面六階都在講「有什麼」。這一節講「拿不到什麼」,而這四個障礙沒有一個跟你的能力有關。

一、起始碼會被鎖在課堂流程後面。 CS106B 2025 年春季那版的公告寫得很清楚:第四份作業的起始碼要先填完期中問卷才會開放。這類設計在入門課特別常見,因為助教要靠它掌握進度。自學者的解法是往回找——舊學期的封存版通常已經解鎖。

二、影片是最不穩定的一項。 CS149 的課程網站直接寫了「今年無法對外散布課程錄影」,但同時附上 2023 年那版在 Stanford 官方 YouTube 頻道的連結。CS330 也是類似安排:當屆錄影在 Canvas 裡,往屆的公開。所以「這門課沒有影片」多半是錯的判斷,正確的問法是「哪一屆有影片」。

三、有些課的作業需要你買 GPU 時數。 CS336 是最明顯的例子,它整門課的重點就是讓模型在多張 GPU 上跑得快。這不是能靠免費 Colab 繞過去的限制,得先算清楚預算再決定要不要開始。

四、沒有人會改你的作業。 這是最容易被低估的一項。多數課的自動評分器綁在 Gradescope 上,自學者拿不到。CS143 是少數的例外——它把考題與解答都公開了,所以你至少可以自己對答案。

怎麼做:Stanford 的課程網站有封存機制,網址長成 web.stanford.edu/class/archive/cs/<課號>/<課號>.<學期代碼>/ 這樣。它沒有可以瀏覽的總索引頁(我試過,那層目錄直接回 404),所以最實際的方法是從現行課程網站找「Previous offerings」那一區的連結——CS224N、CS224W、CS246 都把歷屆網址整排列在首頁上。

那串學期代碼有規律,值得記:末碼 2、4、6、8 分別是秋、冬、春、夏,前面三碼是學年。所以 1262 是 2025 秋、1264 是 2026 冬、1266 是 2026 春、1268 是 2026 夏;而 1256 屬於上一個學年,是 2025 春,不是 2025 秋。這個差一格的誤讀很容易發生,本文自己就犯過(見更新紀錄)。不確定的時候別推算——封存頁自己會在最上面寫「This page is not current. It is an archive from X Quarter YYYY.」,打開看一眼最快。

先查有沒有開,再查先修

還有一個障礙比前面四個更早發生,而且最容易整份計畫報廢:你排進計畫的課,可能已經好幾年沒開了。

網路上流傳的 Stanford AI 修課地圖,常把一批進階課列成「本學年有開」。逐門對過 ExploreCourses 之後,其中幾門的最後一次開課紀錄是這樣:

課號課名ExploreCourses 上的最後一次開課
CS329SMachine Learning Systems Design2022 冬
CS324Advances in Foundation Models2023 冬
CS329DMachine Learning Under Distributional Shifts2023 春
CS229SSystems for Machine Learning2024 秋
CS329ASelf-Improving AI Agents2025 秋
CS228Probabilistic Graphical Models2024 冬
CS124From Languages to Information2026 冬
CS224UNatural Language Understanding2023 春

這裡面藏了一個小小的死結:CS329A 指定的先修是 CS224N 或 CS229S,而 CS229S 自己已經兩年沒開。 對校內學生來說這只是「走 CS224N 那條」,但對照著網路整理排計畫的自學者來說,這種細節就是計畫報廢的來源。

表格最後三列是後來補的,而且補的過程本身就是這一節的最好例子——它們用本節原本教的查法查不出來。CS228 在 2026-2027 冬季有一筆條目,掛著課號,看起來就是有開;但它的上課時間顯示為空、講師欄整個空白,而切到 2024-2025 學年的分頁才會看到那行「Last offered: Winter 2024」。CS124 與 CS224U 也是同一類:現行分頁不會告訴你它們停了多久。

停開不等於材料沒用。CS324 的課程網站與 CS329A 的九講錄影都還在,內容也還沒過時到不能讀。但**「這門課還開不開」和「這門課的材料還能不能學」是兩個問題,混在一起就會排出一份修不到的課表。**

怎麼做:在 ExploreCourses 搜課號,看它顯示「2026-2027 Autumn/Winter/Spring」還是「Last offered: ⋯⋯」。但只做這一步會漏掉一整類課——排了課卻沒有真的開的那類,因為現行學年的分頁上,一筆佔位條目跟一筆真的會開的課長得一模一樣。

補兩步就能補起來。第一步,看那筆條目的上課時間與講師欄:真的要開的課會有時段和人名,佔位的兩欄都是空的。第二步,點頁面頂端的舊學年分頁(2024-2025、2025-2026),停開的課會在那裡露出「Last offered」那行。

要一次查完,ExploreCourses 有個公開的 XML 介面比點頁面快得多:

https://explorecourses.stanford.edu/search?view=xml-20200810&academicYear=20252026&q=CS228&filter-departmentcode-CS=on

academicYear 換成各學年逐年拉一遍,看那一年的條目裡有沒有 <term> 元素——沒有 <term> 就是那學年沒開。這比讀網頁可靠,因為那頁是 JavaScript 算出來的,抓網頁原始碼常常只拿到「Loading…」。

五條路線,各挑一條走

如果你要轉職當軟體工程師:CS106B → CS107 → CS161。三門就好。CS106B 給你資料結構,CS107 給你「程式在機器上到底怎麼跑」,CS161 給你面試時被問到演算法不會慌的底氣。CS103 可以之後補,先跳過不影響前三門。

如果你已經在寫程式,但覺得自己少了一塊底:CS111 加上 CS143 或 CS144 選一門。判斷方式是看你平常在 debug 什麼——如果常常在追效能與記憶體,選 CS143 讓你看懂編譯器對你的程式做了什麼;如果常常在追連線、逾時、重試,選 CS144,那七個檢查點會讓你對 TCP 的理解從「知道有這個東西」變成「自己寫過一個」。

如果你要走通用 AI 研究:地基五門 → CS221 → CS229 → CS230 → CS228 → 挑一條分支 → CS312 或 CS221M。這條最像先打全科底再走研究導向。

如果你的目標是 LLM 與 agent:地基五門 → CS124/CS221/CS229 → CS224N → CS224U 或 CS224V → CS329X/CS329Z → CS336。這是本文依能力缺口排出的建議自學順序,不是每一個箭頭都代表官方 prerequisite;例如 CS224N → CS224U 是明列先修,但 CS336 接受多種 ML 背景,並不要求先修 CS329Z。中間課程可以依背景跳過,但 CS336 對 Python、PyTorch、系統、數學與機率的要求仍要老實面對。

如果你走視覺或機器人:視覺是地基五門 → CS229 → CS230 → CS231A → CS231N;機器人是地基五門 → CS221 → CS238 → CS234 → CS223A → CS333。

五條路線的共同前提只有一個:選一條,做完它的作業。 把二十幾門課的講義都下載下來,是這份地圖最容易導致的失敗方式。

還有一句提醒:不要把 CS329A、CS329Z、CS336 當第一站。 從先修結構看,這些課預設你已經有機器學習、深度學習、NLP 或 LLM、以及系統與評估的底子。地基那五門看起來離 AI 很遠,但它們是唯一沒有捷徑的部分。

附錄:數字與查證方式

本文的課程資訊來自 2026-08-20 當天實際抓取的官方課程網站與 Stanford ExploreCourses 2026-2027 學年條目,先修條件與開課紀錄以該頁面顯示的內容為準,不採信二手整理。以下是正文為了可讀性而收在這裡的數字:

  • 學分:核心五門各五學分(且不接受降學分);CS106L 一學分;CS146S 三學分;CS221M、CS329H、CS329X、CS329T、CS329Z 各三學分;CS224V、CS224W、CS228、CS231A 各 3–4;CS312、CS336 各 3–5。
  • CS221 官方先修:CS103(或 CS103B/X)、CS106B(或 CS106X)、CS109、CS161。
  • 付費修習的價格:Stanford Online 的遠距學分版本,CS107 學費 8,110 美元、CS161 與 CS336 各 7,875 美元,都是五學分。教材免費、學分很貴,這個落差是這份地圖的前提。
  • CS231N 評分比重:作業 45%、期中 20%、期末專案 35%。
  • CS336 講義 repo:GitHub 上約 3.6k 顆星、757 個 fork(2026-08-20 讀數)。
  • 2026-27 學年有明確開課資訊的進階課:CS224N(冬)、CS224V(秋)、CS224W(秋)、CS223A(冬)、CS231A(冬)、CS329H(秋)、CS329T(春)、CS329X(秋)、CS329Z(秋)、CS312(秋)、CS333(冬)、CS336(春,需申請)。CS221M、CS224U 與 CS228 不列入:CS221M 的 2026-27 條目已無任何開課學期,最後一筆為 2026 春;CS224U 與 CS228 雖有條目,但時間或講師資訊不完整,CS224U 最近完整公開版本為 2023 春,CS228 的舊學年頁則寫最後開於 2024 冬。
  • 課號慣例:1–99 全校入門、100–199 本系大學部、200–299 高年級與研究所新生、300 以上研究生。官方明講這不是標準,只是常見慣例。
  • CS231A 舊課號:CS223B。CS111 與 CS110:現行描述是 CS111 可替代 CS110,不是改名或前身關係。

有三項未能完全確認,都不是查得不夠,是結構性拿不到:Stanford 課程封存區沒有公開的索引頁,因此無法列出「總共有幾門課保留了歷屆網站」;CS312 的課程名稱在 ExploreCourses 的搜尋結果中沒有完整渲染出標題列,但以「Deep Learning Alchemy」為關鍵字搜尋會命中該條目;CS238 的獨立條目同樣沒有渲染成功,其存在與 AA228 的合開關係是從 CS239 的先修欄位「AA 228/CS 238 or CS 221」反推的。後兩項不影響階梯的排序結論。

更新紀錄

  • 2026-08-26:回補站內連結——核心五門(CS103、CS107、CS109、CS111、CS161)與 CS221、CS124、CS229、CS228、CS224N、CS224U、CS224V、CS224W、CS329A、CS329Z、CS336 的單課總覽導讀已陸續上線,正文與先修表補上對應站內連結。另重查 ExploreCourses(2026-08-26):附錄「2026-27 有明確開課資訊」清單移除 CS221M——其 2026-27 條目已無任何開課學期,最後一筆為 2026 春;停開表其餘七門與清單其餘十二門複核無變動。

  • 2026-08-22:統一 A0–A3 公開度說明,修正 CS221 核心課計數、LLM/agent 建議路線、CS224U 佔位狀態與 CS111/CS110 關係。

  • 2026-08-21:把主線課程逐門展開成獨立導讀之後,回頭修正本文七處。(一) 五學分規定原本引的 www-cs.stanford.edu/bs-core-requirements 已下線(301 轉址後 404),改引現行的 BS Degree Requirements 頁,舊頁補上 Wayback 快照。(二) CS106B 封存版誤標為 Fall 2025,實為 Spring 2025;同時補上學期代碼的解讀規律。(三) CS161「兩個官方課名」的矛盾已不成立——掛舊課名的頁面隨上述下線一併消失。(四) 停開表補上 CS228(2024 冬)、CS124(2026 冬)、CS224U(2023 春)。(五) CS228 自「2026-27 有開」清單移除,它那筆冬季條目沒有時段也沒有講師。(六) 「先查有沒有開」那節原本的查法會漏掉佔位條目,補上看時段與講師欄、切舊學年分頁、以及 ExploreCourses XML 介面三種做法。(七) 原本寫「CS111 就是以前的 CS110、CS110 自學資源照樣可用」,但現行官方描述寫的是「substitute for CS110」而非改名,且兩門課的作業與講次表差異很大(CS110 有 shell、HTTP 代理、MapReduce 與三堂網路,CS111 都沒有),該段已改寫。

參考資料