Skip to content

A Reading Guide to Stanford's CS Courses: Ordered by Prerequisites, from CS106A to CS336

Aug 20, 2026 1 min
TL;DR Stanford CS rests on CS103, CS107, CS109, CS111, and CS161; CS221 names three of those plus CS106B as preparation. This guide combines official prerequisites with an explicitly editorial reading order and marks public-material and offering risks.
Table of Contents
  1. First, kill one assumption: the number is not the difficulty
  2. Rung one: intro programming, two courses and two languages
  3. Rung two: the degree's skeleton is these five
  4. Rung three: three entry points, take at least two
  5. Rung four: the trunk, CS229 and CS230
  6. Rung five: five branches
    1. A. NLP / LLM / agents
    2. B. Vision
    3. C. Reinforcement learning and robotics
    4. D. Graphs and networks
    5. E. Systems and performance
  7. Rung six: research level
  8. Where self-study actually breaks down
  9. Check whether it runs before you check prerequisites
  10. Five routes โ€” pick one
  11. Appendix: numbers and how they were checked
  12. Changelog
  13. References

๐ŸŒ ไธญๆ–‡็‰ˆ

Stanford's computer science department runs more than three hundred courses a year, and a large batch of them put lectures, assignments, and even past exams at a public URL โ€” no registration, no login, no payment. That fact helps self-learners almost not at all: it doesn't tell you where to start, or which of those URLs open onto an empty shell.

This is that map. It's ordered by official prerequisites, from the first programming class to an LLM course you have to apply to take, and each rung marks what the course teaches and what its public materials actually contain. The second half handles two things course maps usually skip: where someone not enrolled for credit hits a wall, and the fact that several widely cited advanced courses haven't run in years.

Scope first: this only covers courses whose materials are public enough to learn from. On the global map's scale, A0 is a catalog entry, A1 adds a syllabus, A2 exposes substantive partial material, and A3 supports a continuous self-study course. Versions on the main route meet the A3 threshold; catalog-only, Canvas-only, dormant, and placeholder subjects are excluded or called out separately. This measures access, not teaching quality or difficulty.

First, kill one assumption: the number is not the difficulty

Plenty of people read CS106B as easier than CS103, or CS336 as harder than CS229, because of the digits. That inference doesn't hold at Stanford, and it's the university that says so. The academic advising handbook's page on the course catalog puts it flatly:

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

The same page offers a "common though not universal" convention (full ranges in the appendix); roughly, a bigger number means more assumed background. CS follows it loosely, so treat the number as a rough indicator of what a course assumes you know, not as a difficulty ranking.

Counterexamples are everywhere: CS221 sits at the 200 level but is the entry point to AI; CS124 sits at 100 yet wants CS109 and roughly CS107's level behind you; CS336 sits in the graduate range, and its barrier isn't the math, it's whether you can finish five assignments with almost no scaffolding.

So this guide uses a different test: what each course's ExploreCourses Prerequisites field actually says. That's the dependency graph the university wrote down, and it beats any impression.

Rung one: intro programming, two courses and two languages

CS106A: Programming Methodology teaches Python, starting with Karel, a robot that can only move forward, turn, and pick things up. The assignments run Karel, a Khan-Academy-style practice system, image manipulation, text generation, and finally writing a search engine. It assumes no programming background โ€” the only course in the department that genuinely starts from zero.

CS106B: Programming Abstractions switches to C++ and is where most people actually start learning computer science. Its lecture index reads like a standard data structures syllabus: stacks and queues, sets and maps, Big-O, recursion and backtracking, sorting, pointers and dynamic memory, linked lists, binary search trees, Huffman coding, hashing, graphs and Dijkstra. Finish it and you have the tools for most technical interview questions.

Wedged between them is CS106L: Standard C++ Programming โ€” one unit, seven very short assignments, no exams, satisfactory/no-credit. It fills in what CS106B deliberately skips to teach concepts: initialization, references, iterators, templates, lambdas, move semantics, RAII, smart pointers. If your goal is C++ that looks like C++ rather than Java with pointers, that unit pays well.

What to do: open the CS106B lecture index, find "Big O and Algorithmic Analysis," read the slides, then close them and write down every complexity class you remember with an example for each. The gaps are the parts you only thought you understood.

Rung two: the degree's skeleton is these five

This is the most important section here. Stanford's BS degree requirements pin the undergraduate skeleton to five courses, with one hard rule: CS103, CS107, CS109, CS111, and CS161 must be taken for five units. Not recommended โ€” the reduced-unit version isn't accepted.

What makes their status clearer is something else: CS221's prerequisite field names three of the five โ€” CS103, CS109, and CS161 โ€” plus CS106B, adding that the staff highly recommend comfort with these concepts first. People heading for AI often want to skip this rung, but the AI entry course disagrees.

NumberTitleThe intuition it replaces
CS103Mathematical Foundations of Computing"It runs, so it's correct" โ†’ prove it
CS107Computer Organization and Systems"A variable is a box" โ†’ it's bytes at an address
CS109Probability for Computer Scientists"The average is enough" โ†’ distributions, independence, Bayes
CS111Principles of Computer Systems"Programs run start to finish" โ†’ processes, scheduling, virtual memory
CS161Design and Analysis of Algorithms"Fast enough" โ†’ why, how fast, could it be faster

Things worth knowing:

CS111 substitutes for CS110; it is not a rename. The retired core requirements page did carry the note "Formerly known as CS110," and this post originally concluded from that the two are one course and CS110 self-study guides still apply. That conclusion misleads. CS111's current ExploreCourses description reads "Available as a substitute for CS110 that fulfills any requirement satisfied by CS110" โ€” substitutes for, not equals โ€” and the CS110 number is still live, with its supplemental lab CS110L listed for 2026-27.

The difference is substantive. CS110's assignments included a Stanford Shell, an HTTP proxy, and MapReduce, and its schedule ran three lectures on networking. Today's CS111 has no networking lecture at all; in its place are virtual memory, demand paging, page replacement, and crash recovery. Concurrency is the only stretch the two share. Follow a CS110 guide and you will build things that aren't in CS111 while missing half of what is. Both bodies of material are worth having โ€” they just aren't two editions of one course.

CS103's second half matters more than its first. The first half is discrete math and proof technique; the second goes into finite automata, regular expressions, context-free grammars, Turing machines, decidability, the halting problem, and closes on P versus NP. It's the course that settles what a computer can compute.

CS107 is the most painful and the most worthwhile. The assignments start at Unix and C and work up through C strings, the heap, generic operations with void *, function pointers, x86-64 assembly, and end with writing your own memory allocator. Even the lab handouts ship with solutions.

CS111's assignment list is an operating system. Lambdas, threads and processes; synchronization; a thread dispatcher; implementing locks and condition variables; memory-mapped encrypted files; page replacement with the clock algorithm; reading Unix v6 filesystems; a journaling filesystem.

CS109 is the one you can least afford to skip. Its 2026 edition also carries something new: next to the slides, each lecture's "outside class" column has an LLM Learning Guide. A probability course shipping official guidance on studying a lecture with a language model is a signal in itself.

Skipping CS109 doesn't cost you in the next course, it costs you in every course after: CS224W lists CS109 plus any introductory ML, CS234 wants basic probability, CS336 wants CS109-level probability and statistics.

CS161 used to have two official names; now it has one. The department's core requirements page once called it "Data Structures and Algorithms," while ExploreCourses, the summer session, and the course's own site all said "Design and Analysis of Algorithms." That contradiction is gone now โ€” not because the two sides converged, but because the page carrying the old name went offline entirely (see the changelog). Every live official source now says Design and Analysis of Algorithms; the old wording survives only in a Wayback snapshot. Search with the current name.

What to do: if you already program but have never taken a systems course, download the first CS107 assignment handout and finish Assign0. It will tell you quickly how much of your model of "what an integer looks like in memory" is guesswork.

Rung three: three entry points, take at least two

Past the base, the way into AI isn't one course โ€” it's three doors facing different directions.

CS221: Artificial Intelligence: Principles and Techniques is the standard one. It frames AI as making good decisions given incomplete information (hence probability) and limited computation (hence algorithms), covering search, constraint satisfaction, game playing, Markov decision processes, graphical models, machine learning, and logic. It's the only entry course that shows you the AI that isn't deep learning.

CS124: From Languages to Information is the language-and-information door and the formal start of the NLP line. The official description runs from regular expressions through logistic regression and gradient descent to transformers and large language models, with applications in chatbots, information retrieval, social computing, and recommender systems. Its prerequisites are stiffer than the number suggests: CS106B, Python at CS106A level, CS109, plus CS107-level UNIX and programming maturity.

CS238: Decision Making under Uncertainty (cross-listed as AA228) is the decision-and-uncertainty door โ€” the smoothest way in for reinforcement learning, planning, or autonomous systems.

Rung four: the trunk, CS229 and CS230

Past the entry courses comes the work of building modelling ability.

CS229 is the theory side, laying the statistical assumptions bare. It publishes a several-hundred-page set of notes as a single PDF, from linear regression through self-supervised learning and foundation models; Stanford Online's YouTube channel has long carried Andrew Ng's 2018 edition, and the spring 2026 edition is now up too. If you want notes, video, and assignments as a set, this one is most complete.

CS230 is the practice side, run as a flipped classroom: videos and programming assignments on the deeplearning.ai Coursera specialization, with only lectures and project meetings in the room. That cuts two ways โ€” the core material is unusually available to self-learners, because it was always on Coursera, but the differentiated part, the project feedback, is exactly what you can't get. This site's CS230 series unpacks those lectures one by one.

They aren't either/or; they're complementary.

CS228: Probabilistic Graphical Models fills in probabilistic reasoning: Bayesian and Markov networks, hidden Markov models, dynamic Bayesian networks, exact and approximate inference. Its stated prerequisites are only "basic probability theory and algorithm design and analysis" โ€” lower than most people assume.

What to do: if you can't decide between CS229 and CS230, read chapter one of CS229's public notes PDF. If it doesn't go down, start with CS230. That beats any self-assessment.

Rung five: five branches

A. NLP / LLM / agents

This branch has the most complete prerequisite chain of the five โ€” you can follow it end to end.

NumberTitleOfficial prerequisites
CS124From Languages to InformationCS106B, Python, CS109, CS107-level
CS224NNatural Language Processing with Deep Learningcalculus and linear algebra; CS124, CS221, or CS229
CS224UNatural Language UnderstandingCS224N or CS224S
CS224VAgentic AIone of LINGUIST 180/280, CS124, CS224N, CS224S, CS224U
CS329XHuman Centered NLPโ€”
CS329ASelf-Improving AI AgentsCS224N or CS229S
CS336Language Modeling from ScratchPython, PyTorch, systems concepts, calculus and linear algebra, CS109-level probability

CS224N's site does something unusual: it keeps every edition back to 2000. Open the 2019 version, see how the course taught the Transformer when it was new, and set it against today's โ€” same course, same people, and the difference in framing is right there.

CS224V is now called Agentic AI โ€” a 2026 name. It works directly on RAG and formal task descriptions, hybrid reasoning across databases and knowledge bases, AI-driven knowledge curation for scientific research, improving the accuracy and interpretability of decision-making agents through formal methods, and efficiency for long-horizon agents. If you want to build agents and would rather have a real course, this one is underrated.

CS329X: Human Centered NLP covers human-centered design, human-in-the-loop algorithms, fairness, and accessibility. Easy to write off as a soft elective, but it handles exactly the class of problems that blows up first when a model becomes a product.

B. Vision

CS231A: Computer Vision covers cameras and projection models, filtering and edge detection, segmentation and clustering, stereo reconstruction, and object and scene recognition. Its old number was CS223B, and the prerequisites are only linear algebra and basic probability and statistics.

CS231N: Deep Learning for Computer Vision is the deep learning side. Its notes site is where a lot of people first genuinely understood backpropagation, and the spring 2026 assignments reach diffusion models, CLIP, and DINO by the third one โ€” still named for computer vision, but that stopped being all of it a while ago. Note the title is no longer "Convolutional Neural Networks for Visual Recognition," which many course maps still use.

On ordering, having CS229 or CS230 before CS231N makes it much smoother; CS231A can run alongside or after.

C. Reinforcement learning and robotics

CS221 โ†’ CS238 โ†’ CS234 โ†’ CS223A โ†’ CS333.

CS234: Reinforcement Learning states its prerequisites plainly: proficiency in Python, CS229 or equivalent, linear algebra, basic probability. CS223A is the robotics foundation course, taught by Oussama Khatib. CS333 is a project-based graduate course pulling robotics, machine learning, and control theory into human-AI interaction; officially it only recommends an introductory AI course.

D. Graphs and networks

CS224W: Machine Learning with Graphs asks for CS109 plus any introductory machine learning course โ€” a low bar for this tier. It covers representation learning and graph neural networks, web algorithms, reasoning over knowledge graphs, influence maximization, and social network analysis. Next to it, CS246: Mining Massive Data Sets handles the case where the data doesn't fit on one machine.

E. Systems and performance

This branch doesn't grow out of AI, it grows out of CS107 โ€” but anyone doing AI engineering rather than only reading models will want it. Judged on how complete the public materials are, three stand out:

CS143: Compilers is the ceiling for self-study friendliness. Five programming assignments, four written assignments with solutions, the Cool language reference manual and runtime documentation, eighteen lecture decks, and the last three years of midterms and finals with solutions โ€” all on one page.

CS144: Introduction to Computer Networking is famous for its assignment design. Seven checkpoints take you from "build reliability out of unreliability" through implementing TCP, down the stack to the network interface, then an IP router, and finally a checkpoint called "making an Internet."

CS149: Parallel Computing covers multi-core CPUs, GPUs and CUDA, scheduling DNNs on GPUs, and hardware specialization. Its five programming assignments run from analyzing quad-core performance to "make the world's fastest CUDA kernels," with one targeting the Trainium2 accelerator.

Rung six: research level

What these have in common isn't teaching models again, it's demanding that you do research, build systems, or run a whole pipeline from zero.

CS336: Language Modeling from Scratch (Tatsunori Hashimoto, Percy Liang) is the only one flagged Application required. Across five assignments you implement a tokenizer, write a Transformer, write Triton kernels, do multi-machine parallelism, run scaling laws, build evaluation, handle data, and finish with SFT and RLVR post-training. The site is blunt about prerequisites:

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

Its lectures ship in an unusual form โ€” executable lectures. In the GitHub lectures repo, a lecture is a file like lecture_01.py; running it produces a full trace that renders to a web page. The repo has thousands of stars, and the assignment starter code and handouts are public.

CS312 takes a different line. It argues that knowledge and math ability alone aren't enough โ€” inventing the next generation of architectures takes running very many experiments โ€” so the course walks students through gaining mastery in computationally tractable domains via efficient experimentation and predicting experiment outcomes. It's taught by Hashimoto, who also co-teaches CS336.

CS329A: Self-Improving AI Agents is a graduate seminar covering constitutional AI, learned verifiers, scaling test-time compute, combining search with LLMs, tool use and retrieval, multimodal web interaction, multi-step reasoning and planning, and robust evaluation and orchestration frameworks. All nine lectures are public on Stanford Online's YouTube channel.

CS329Z: Engineering AI Agents teaches compound AI systems: students first build the core components โ€” RAG, tool use, agent loops โ€” from scratch, then learn how frameworks like DSPy abstract those patterns.

The safety and reliability group is the most notable shift in this tier, because it has stopped being peripheral. CS221M: Mechanistic Interpretability covers probing, steering, causal abstraction, and sparse autoencoders, with emphasis on causal methods and large language models. CS329H: Machine Learning from Human Preferences handles preference heterogeneity and aggregation, interpretation of human feedback, and privacy. CS329T runs from foundation models, prompting, and RAG through agent architectures and evaluation.

One more course sits off this line but is worth knowing separately: CS146S: The Modern Software Developer, a three-unit for-credit course that teaches not how to write code but how to direct a coding agent. The listed prerequisite is programming experience equivalent to CS111/CS161, with CS221 or CS229 recommended. This site has a week-by-week series on it.

Where self-study actually breaks down

Everything above is about what exists. This section is about what you can't get, and none of these four have anything to do with your ability.

One: starter code gets gated behind classroom process. CS106B's spring 2025 announcements say it plainly โ€” the fourth assignment's starter code unlocks after you complete the mid-quarter survey. Common in intro courses, because staff use it to track progress. The workaround is to go backwards: archived editions of past quarters are usually already unlocked.

Two: video is the least reliable piece. CS149's site states outright that it can't distribute this year's recordings publicly, then links the 2023 edition on Stanford's official YouTube channel. CS330 does the same: current recordings on Canvas, previous offerings public. So "this course has no video" is usually the wrong conclusion; the right question is which edition has video.

Three: some assignments require you to buy GPU time. CS336 is the clearest case โ€” the whole point is making models run fast across multiple GPUs. That's not a limit free Colab routes around, so price it before you start.

Four: nobody will grade your work. This one gets underestimated. Most autograders are wired to Gradescope, which self-learners can't reach. CS143 is the rare exception: it publishes exams and solutions, so you can at least check yourself.

What to do: Stanford course sites are archived at URLs shaped like web.stanford.edu/class/archive/cs/<number>/<number>.<term code>/. There's no browsable index (I tried; that directory returns a 404), so the practical route is the "Previous offerings" block on the current course site โ€” CS224N, CS224W, and CS246 all list past editions on the front page.

Those term codes follow a rule worth memorizing: the last digit 2, 4, 6, 8 means autumn, winter, spring, summer, and the preceding digits are the academic year. So 1262 is autumn 2025, 1264 winter 2026, 1266 spring 2026, 1268 summer 2026 โ€” while 1256 belongs to the previous academic year and is spring 2025, not autumn 2025. That off-by-one is easy to make; this post made it (see the changelog). When in doubt, don't compute it โ€” archived pages state it themselves at the top: "This page is not current. It is an archive from X Quarter YYYY."

Check whether it runs before you check prerequisites

There's one more obstacle, earlier than those four and the likeliest to void a whole plan: the course you scheduled may not have been offered in years.

Stanford AI course maps circulating online routinely list a batch of advanced courses as offered this year. Checked course by course against ExploreCourses, several look like this:

NumberTitleLast offered, per ExploreCourses
CS329SMachine Learning Systems DesignWinter 2022
CS324Advances in Foundation ModelsWinter 2023
CS329DMachine Learning Under Distributional ShiftsSpring 2023
CS229SSystems for Machine LearningAutumn 2024
CS329ASelf-Improving AI AgentsAutumn 2025
CS228Probabilistic Graphical ModelsWinter 2024
CS124From Languages to InformationWinter 2026
CS224UNatural Language UnderstandingSpring 2023

There's a small knot in there: CS329A lists CS224N or CS229S as prerequisites, and CS229S hasn't run in two years. For an enrolled student that just means "take the CS224N route," but for a self-learner building a plan off an online map, this kind of detail is where the plan quietly dies.

The last three rows were added later, and how they got added is the best illustration of this section โ€” the method this section originally taught does not find them. CS228 has a 2026-2027 winter entry with a class number, so it looks like it runs; but its meeting time is blank and its instructor field is empty, and only the 2024-2025 academic year tab shows the line "Last offered: Winter 2024." CS124 and CS224U are the same shape: the current-year view won't tell you how long they have been dormant.

Not offered doesn't mean not useful. CS324's course site and CS329A's nine recorded lectures are still up, and the content hasn't aged out. But "is this course still running" and "can I still learn from its materials" are two different questions, and merging them produces a plan made of courses you can't take.

What to do: search a course number on ExploreCourses and look at whether it shows "2026-2027 Autumn/Winter/Spring" or "Last offered: โ€ฆ". But doing only that misses a whole category โ€” courses that are scheduled but don't actually run, because on the current-year view a placeholder entry looks identical to a real one.

Two extra steps close the gap. First, check that entry's meeting time and instructor fields: a course that will really run has a time slot and a name; a placeholder has neither. Second, click the earlier academic year tabs (2024-2025, 2025-2026), where a dormant course reveals its "Last offered" line.

To check every year at once, ExploreCourses has a public XML interface that beats clicking through pages:

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

Swap academicYear and pull each year in turn, then look for a <term> element in that year's entry โ€” no <term> means it didn't run that year. This is more reliable than reading the web page, which is rendered by JavaScript and often yields nothing but "Loadingโ€ฆ" when fetched.

Five routes โ€” pick one

If you're switching into software engineering: CS106B โ†’ CS107 โ†’ CS161. Three courses. CS106B gives you data structures, CS107 gives you how a program actually runs on a machine, CS161 gives you the composure not to panic at an algorithms question. CS103 can wait; skipping it doesn't hurt the first three.

If you already program but feel a layer is missing: CS111 plus one of CS143 or CS144. Choose by what you spend your time debugging. If it's performance and memory, take CS143 and find out what the compiler has been doing to your code. If it's connections, timeouts, and retries, take CS144 โ€” those seven checkpoints move your understanding of TCP from "I know it exists" to "I wrote one."

If you're going for general AI research: the five base courses โ†’ CS221 โ†’ CS229 โ†’ CS230 โ†’ CS228 โ†’ one branch โ†’ CS312 or CS221M. The closest thing to full foundations before going research-directed.

If the goal is LLMs and agents: the five base courses โ†’ CS124/CS221/CS229 โ†’ CS224N โ†’ CS224U or CS224V โ†’ CS329X/CS329Z โ†’ CS336. This is an editorial self-study order based on capability gaps, not a claim that every arrow is an official prerequisite. CS224N to CS224U is explicit; CS336 accepts several forms of ML preparation and does not require CS329Z. Courses in the middle can be skipped when your background covers them, but CS336's Python, PyTorch, systems, mathematics, and probability expectations remain real.

If you're going for vision or robotics: vision is the five base courses โ†’ CS229 โ†’ CS230 โ†’ CS231A โ†’ CS231N; robotics is the five base courses โ†’ CS221 โ†’ CS238 โ†’ CS234 โ†’ CS223A โ†’ CS333.

All five routes share one condition: pick one and do its assignments. Downloading the notes for two dozen courses is the failure mode this map most easily produces.

One more warning: don't make CS329A, CS329Z, or CS336 your first stop. Read the prerequisite structure and these assume you already have machine learning, deep learning, NLP or LLM work, and systems and evaluation behind you. The five base courses look far from AI, but they're the only part with no shortcut.

Appendix: numbers and how they were checked

Course information comes from official course sites and Stanford ExploreCourses entries for the 2026-2027 academic year, read on 2026-08-20. Prerequisites and offering records follow what those pages display; secondary summaries were not taken on trust. These are the numbers held back from the body for readability:

  • Units: each of the five core courses is five units (and won't be accepted at fewer); CS106L is one; CS146S is three; CS221M, CS329H, CS329X, CS329T, CS329Z are three each; CS224V, CS224W, CS228, CS231A are 3โ€“4; CS312 and CS336 are 3โ€“5.
  • CS221's official prerequisites: CS103 (or CS103B/X), CS106B (or CS106X), CS109, CS161.
  • Paying for credit: in Stanford Online's remote-credit versions, CS107 is $8,110 and CS161 and CS336 are $7,875 each, all five units. Free materials, expensive credit โ€” that gap is the premise of this map.
  • CS231N grade breakdown: assignments 45%, midterm 20%, final project 35%.
  • CS336 lecture repo: roughly 3.6k stars and 757 forks on GitHub (read 2026-08-20).
  • Advanced courses with concrete 2026-27 offering details: CS224N (winter), CS224V (autumn), CS224W (autumn), CS223A (winter), CS231A (winter), CS329H (autumn), CS329T (spring), CS329X (autumn), CS329Z (autumn), CS312 (autumn), CS333 (winter), CS336 (spring, application required). CS221M, CS224U, and CS228 are excluded: CS221M's 2026-27 entry no longer lists any offering term โ€” its last was Spring 2026; CS224U and CS228 have entries but lack complete time or instructor details. The latest complete public CS224U edition is Spring 2023; an older-year view says CS228 was last offered in Winter 2024.
  • Numbering convention: 1โ€“99 introductory for all students, 100โ€“199 primarily for majors, 200โ€“299 for advanced undergraduates and beginning graduate students, 300 and above for graduate students. The university states explicitly that this is a common guideline, not a standard.
  • CS231A's old number: CS223B. CS111 and CS110: the current description says CS111 substitutes for CS110; it is not a rename or former-name relationship.

Three items could not be fully confirmed, and none for lack of searching. Stanford's course archive has no public index page, so there's no way to say how many courses keep past editions online. CS312's title did not render as a heading in ExploreCourses search results, though searching the exact phrase "Deep Learning Alchemy" returns that entry. CS238's own entry likewise failed to render; its existence and the AA228 cross-listing are inferred from CS239's prerequisite field, "AA 228/CS 238 or CS 221." The latter two don't affect the ordering conclusions.

Changelog

  • 2026-08-26: Backfilled internal links โ€” the per-course overview deep dives for the five core courses (CS103, CS107, CS109, CS111, CS161) plus CS221, CS124, CS229, CS228, CS224N, CS224U, CS224V, CS224W, CS329A, CS329Z, and CS336 are now live; the body text and the prerequisite table now link to them. Also re-checked ExploreCourses (2026-08-26): CS221M was removed from the appendix's "concrete 2026-27 offering details" list โ€” its 2026-27 entry no longer lists any term, with Spring 2026 as its last; the other seven dormant courses and twelve listed courses were re-verified unchanged.

  • 2026-08-22: Standardized the A0โ€“A3 access language and corrected the CS221 core-course count, the editorial LLM/agent route, the CS224U placeholder, and the CS111/CS110 relationship.

  • 2026-08-21: After expanding the main-line courses into individual deep dives, seven corrections came back to this post. (1) The five-unit rule cited www-cs.stanford.edu/bs-core-requirements, which is now offline (301, then 404); it now cites the live BS Degree Requirements page, with a Wayback snapshot for the retired one. (2) The CS106B archive was labelled Fall 2025 but is Spring 2025; the term-code rule is now spelled out. (3) CS161's "two official names" contradiction no longer holds โ€” the page carrying the old name vanished with the retirement above. (4) The dormant-courses table gained CS228 (Winter 2024), CS124 (Winter 2026), and CS224U (Spring 2023). (5) CS228 was removed from the "offered in 2026-27" list; its winter entry has neither a time slot nor an instructor. (6) The check taught in "Check whether it runs before you check prerequisites" missed placeholder entries, so it now covers the instructor/time fields, the earlier academic year tabs, and the ExploreCourses XML interface. (7) The post said "CS111 is the old CS110" and that CS110 self-study resources still apply; the live official description says "substitute for CS110" rather than a rename, and the two differ substantially in assignments and lectures (CS110 had a shell, an HTTP proxy, MapReduce, and three networking lectures; CS111 has none of these), so that passage was rewritten.

References