🔒

Protected Curriculum

Please enter the password to access CS, compressed.

Self-directed curriculum · ordered · v1

The CS major,
with the fluff removed.

Eight phases, reordered so each one is used shortly after it's learned. The bar below is drawn to scale — each segment's width is its real share of the work, so you can see at a glance that algorithms is not a footnote and calculus is.

Total: hours. At 10 hrs/week that's about nine months; at 20, four and a half. Phase 00 is the one exception — everything after it is paced by spacing rather than effort.

Time to scaleTap segment to jump
0 hrs hrs

What you're deliberately not doing

Every one of these is in the JHU catalog. Each is cut for a reason, and each has a known cost you can pay later if you need to.

Basic sciences, 8 credits

Two lab sciences. Zero relevance to the capability you're building.

Calc II and III in full

You need integration for probability and partials for gradients — one week of it, in Phase 06. Nothing else earns its hours.

Mathematical statistics

Estimator theory and hypothesis-testing ritual. Come back only if you go deep on ML or research.

Theory of computation

Skim decidability and halting for the ideas. A full course is philosophy, not leverage.

Compilers and full OS

Phase 04 gives you the working model. The full courses are specialization, not core.

The team course

Replaced by contributing to a real open-source codebase — reading 100k lines you didn't write is the actual skill.

Phase 00 · 12 days · Aug 5–16 · ~50 hours

Sprint to being useful
on day one.

Twelve days, Aug 5 through 16, with the 17th as the deadline rather than a work day. Weekdays run 3.5 hours; the two weekends run 5.5, which is where the lost day gets paid back without raising the weekly average above 25.

The order matters more than the hours: a crude version of the whole pipeline runs by Day 4, and everything after that is improvement rather than assembly. Nothing of yours deploys on the 17th — the point of building it end to end is that you'll be reading and changing someone else's version of the same thing.

Added on review — five things that were missing

Async. CS50P never covers it, and both halves of this sprint assume it: the harness runs on an async runtime and kopf handlers are async def. Now an hour on Day 3.

Logging. A container has no console. Logs are the whole debugging surface on the cluster, and retrofitting them on Day 9 is miserable. Now Day 2.

In-code runaway controls. The one genuinely agent-specific risk. Step limits, tool timeouts, retry caps with backoff, a circuit breaker, a token budget checked in state. Day 4, before the first surprise rather than after it.

LangGraph underneath the harness. Deep Agents is a wrapper. If the team writes LangGraph directly, knowing only the wrapper is the gap that surfaces fastest. Ninety minutes on Day 11 building one graph by hand.

Provider swap and reproducibility. Point the harness at a different model — hosted or local — to find where that seam is, and make sure the repo runs from a clean clone. Both are Day 12, both are cheap now and annoying later.

Which CS50P modules, and when

Ten lectures, nine problem sets, one final project — and under a deadline you're not doing all of it. Six modules block the build and get days assigned; four wait until after the 17th.

ModuleWhat it gives you for the targetWhen
The move that matters

Your Deep Agents build is the CS50P final project. Submit it as such if you want the certificate later. It's the only part of the course with no starter file, no given signature, and no spec — which is exactly why it's the real work rather than an assignment.

The daily rhythm

Twelve days, longer on weekends. At this pace the shape matters more than the hours — these are what keep a sprint from becoming a blur.

  • daily
  • daily
  • daily
  • daily
  • daily

Resource index

CS50P

Ten modules, nine psets, final project. Your current spine.

cs50.harvard.edu/python
Exercism — Python track

146 exercises across 17 concepts, free human mentoring. Not for this sprint — there aren't spare windows. This is what you move to after the 17th, in place of Mimo.

exercism.org/tracks/python
Deep Agents docs

The harness. Overview, quickstart, then tools, subagents, backends, permissions, skills, memory, streaming.

docs.langchain.com · deepagents
deepagents source

Read it, don't just import it. The best architecture lesson available to you right now.

github.com/langchain-ai/deepagents
Kubernetes Python client

List pods, stream logs, apply manifests, watch events. pip install kubernetes

github.com/kubernetes-client/python
Kopf

Operator framework. A full operator in two files: a Dockerfile and a Python module. Stable, v1, well documented.

kopf.dev

Phase 01 · six weeks · Aug 18 – Sep 28 · 70 hours

Data structures.
The highest-leverage phase.

Straight on from the sprint: still Python, still building things that run, no new mathematical machinery and no prerequisites you don't have. Six weeks at roughly twelve hours — a different pace from Phase 00 on purpose, because this one doesn't compress the same way.

One rule governs the whole phase. Build the structure from scratch before you solve a single problem with it.

The task lists below specify about 55 of the 70 hours. The rest is unallocated on purpose — your own implementations will have bugs, and debugging code you wrote is the learning rather than an interruption to it. If a week runs clean, spend the slack on drilling.

The rule, and why it's the rule

The standard failure mode is going straight to problem sites. You get fast at recognizing which structure a problem wants and never learn what the structure costs — so you can pick a hash table but can't tell me why it degrades, or why a poor key choice quietly turns your O(1) into O(n).

Writing your own is what makes the costs real. Every week here is implement first, drill second, and the drilling is much faster afterward because you're recognizing machinery you've already built.

Why not MIT 6.006 as the spine

It was the original recommendation here and it was wrong for this point in the plan.

Right course, wrong moment

6.006 is an MIT sophomore course that lists discrete mathematics as a prerequisite, and lecture one opens with models of computation and proving solutions correct. Coming off CS50P you'd burn your energy fighting the framing rather than learning the structures — and the framing isn't what you're here for yet.

The Runestone book is built for exactly this gap. Its own preface says it assumes you may still be struggling with basics from a first course and are ready to go further anyway. It's Python, it's free, and the code runs in the browser, which suits how you learn better than a lecture hall recording does.

6.006 isn't discarded — it moves to week six, as a sharper second pass over material you've already built. Read that way it lands as tightening rather than teaching. And the proofs it does are the ones you'll be equipped for after Phase 02.

The build list

Everything you write from nothing, and the few things you only read about. Each of these lands in one repo with tests, and by week six it's the artifact that proves the phase.

StructureWhat building it teachesVerdict

Done when

Exit criterion

Handed an unfamiliar problem, your first instinct is to ask what structure it wants — and you're usually right.

The concrete test: twenty problem statements you haven't seen, and for each one you name the structure and justify the choice in a sentence, without solving any of them. If you're above sixteen, you're done. Below twelve, you skipped the implementing.

Resource index

Problem Solving with Algorithms and Data Structures using Python

The spine. Free, interactive, code runs in the browser. Chapters 2 through 7 are the whole phase: analysis, basic structures, recursion, sorting and searching, trees, graphs.

runestone.academy · pythonds3
MIT 6.006 — Spring 2020

Week six only, as a second pass. Free lectures, notes, and problem sets, taught in Python. Come back to it properly after Phase 02.

ocw.mit.edu · 6.006 Spring 2020
NeetCode roadmap

Problems organized into a deliberate sequence rather than a pile. Start it only after you've built the structure a problem uses.

neetcode.io/roadmap
CLRS

Reference, not reading. Look things up in it; don't work through it. 6.006 uses it as an optional companion for exactly this reason.

mitpress.mit.edu · CLRS
CPython source — listobject.c, dictobject.c

After you've built your own dynamic array and hash table, read how the real ones work. The comments are unusually good.

github.com/python/cpython · Objects

Phase 02 · six weeks · Sep 29 – Nov 9 · 45 hours · +1 optional

Proof. The one
you're dreading.

So the whole phase is built around that. Week one contains no proofs at all. The first proofs you write are about data structures you built yourself in Phase 01. And every technique here has a fixed shape you can look up — proofs are far more formulaic than their reputation suggests.

Six weeks at about seven and a half hours. Slower than anything else on the plan, deliberately. A seventh week on automata and computability sits at the bottom as an optional extension — take it and Phase 03 starts a week later.

Read this first

This isn't hard math in the sense that decayed on you. There's almost no computation in it. It's careful argument — stating exactly what you're claiming, then showing it holds in every case rather than the cases you happened to test. That's structurally much closer to building an appellate argument than to integration by parts, and you already do the hard version of that professionally. What's unfamiliar is the notation, not the reasoning.

Two things are true about the difficulty. It genuinely feels foreign at first — expect roughly two weeks. And almost nobody quits after that point. The risk window is narrow and it's at the very start, which is why the first fortnight here is deliberately gentle.

Two data points from Stanford

Their proof course, CS103, states plainly that there are no math prerequisites — high-school algebra is enough. What it does require is the programming course before it, and it leans on recursion from that course throughout. That's the same ordering you're running: structures and recursion first, proof second, and no calculus anywhere near it.

They also run an entire optional companion course, CS103A, purely for extra proof practice and problem-solving strategy, described as existing because math is a skill that takes practice to develop. A university with Stanford's admissions bar staffs a support course specifically for this transition. The wall you're anticipating is real, institutionally acknowledged, and routinely got over.

The proof shapes

The single most anxiety-reducing fact about proofs: each type has a fixed skeleton. You're not inventing an argument from nothing — you're picking a form and filling it in. Keep this table open for the first month.

TypeReach for it whenThe skeleton
How to use it

When you're stuck on a proof, the question is almost never "what's the clever idea." It's "which shape is this." Work down the table: can I go direct? Is the contrapositive easier? Is there a smallest counterexample to rule out? Is there a recursive structure to induct on?

Nine times in ten, choosing the right shape does most of the work, and the rest is bookkeeping.

Two rules for the whole phase

Write by hand

Not typed. Handwriting is slower, and the slowness is the mechanism — you can't autocomplete your way past a step you don't understand. This is also the one phase where the assistant does the most damage. Struggling with a proof is how the skill forms; watching someone else's finished proof is how you learn to recognize proofs without being able to write one.

Attempt, then check

Hammack develops proofs the way you'd actually think them through rather than presenting them finished, and there are fully written-out solutions in the back. That combination is the whole reason it's the right book here — but only if you write your attempt before you look. Reading a worked proof feels like learning and isn't.

Done when

Exit criterion

Given a recursive function, you can write a correctness proof by induction without a template in front of you.

The concrete test: take a recursive function you wrote in Phase 01 that you haven't proved anything about — the BST search, or the recursive flatten. State precisely what it returns, then prove it. Base case, inductive hypothesis, inductive step, no reference material. If you can do that in twenty minutes, Phase 03 will work.

Resource index

Discrete Mathematics: An Open Introduction, 4th ed.

The spine. Free, and the Runestone version has interactive exercises with instant feedback. The 4th edition reorganized to start with logic and proofs, then practise those proofs on graph theory — which is exactly the order you want.

runestone.academy · dmoi-4
Book of Proof — Richard Hammack

The proof-technique companion. Free PDF. Assumes very little, develops proofs as a thought process rather than a finished artifact, and has fully worked solutions in the back.

richardhammack.github.io/BookOfProof
Your own structures/ repo

Phase 01's output, and the source of nearly every proof you write in weeks 2 through 4. Proving things about code you wrote beats proving things about arbitrary objects.

Local
MIT 6.042J — Mathematics for Computer Science

Optional. Free lectures and a well-regarded textbook, considerably more rigorous. Dip into a lecture when you want a second explanation; don't adopt it as the spine.

ocw.mit.edu · 6.042J

Phase 03 · nine weeks · Nov 10 – Jan 18 · 90 hours

Algorithms.
The largest block,
and the one to protect.

Twice the size of anything else here. This is where you stop being someone who can code and start being someone who can say whether a plan is feasible before anyone builds it — and where the two phases before it finally pay off at once.

Nine weeks at about ten hours, including one deliberately fallow week over the holidays. One algorithmic idea per week, each closed out by a small implementation — the structure Stanford's algorithmic toolbox course uses, and it works because a week's idea sticks better when it ends in something that runs.

The task lists specify roughly 77 of the 90 hours. The remaining thirteen are slack for the weeks that overrun — and in this phase that will be weeks 4 and 5, because dynamic programming always takes longer than the estimate says.

Why the reordering was worth it

Erickson's Algorithms — the spine for this phase — states its own prerequisites plainly: discrete mathematics including predicate logic, sets, functions, recursive definitions, trees and graphs as abstract objects; and proof techniques including direct, indirect, contradiction, exhaustive case analysis, and induction, especially strong and structural induction.

That is Phase 02's syllabus, almost line for line. You'll arrive holding exactly the tools this book assumes, which is the difference between reading it and fighting it. Its author also notes it isn't suitable as a first course in data structures and algorithms — which is why Phase 01 came first.

Which paradigm

The counterpart to Phase 02's proof shapes card, and the harder of the two. Most algorithm problems are not hard because the technique is hard — they're hard because you picked the wrong technique and spent an hour before noticing. Work down this table before writing anything.

ParadigmThe tellWhat you must verify
Close every week with something that runs

Each week's twenty-minute task is the minimum; the better version is a small implementation that uses the week's idea on data you care about. Karatsuba on big integers. Dijkstra on your own dependency graph. Edit distance on two versions of a file you wrote. It takes an hour and it's the difference between having read about an idea and having used one.

The order matters

Go down the list, not to your favourite. The single most common failure is reaching for dynamic programming when a greedy choice is provably safe, or reaching for greedy when it isn't — and the second one produces code that passes your tests and is wrong.

When you can't tell, write the brute-force recursion first. It's always correct, it makes the subproblem structure visible, and if the subproblems overlap you've just discovered you're in dynamic programming territory. That path is the whole design of weeks 3 through 5.

Done when

Exit criterion

You can look at a proposed system and give a defensible answer on whether it scales — before it's built.

The concrete test, in three parts. Given an unfamiliar problem: name the paradigm and justify the choice. Write the recurrence and solve it for a bound. And when the honest answer is that no efficient algorithm exists, recognise that and propose an approximation instead of searching for one that isn't there. The third part is the one that separates this from interview preparation.

Resource index

Algorithms — Jeff Erickson

The spine. Free, Creative Commons, grew out of years of lecture notes at Illinois. Chapters 0 through 8 and 12 are this phase; the flow chapters are the deliberate skip. Appendix II on solving recurrences is worth reading in week 1.

jeffe.cs.illinois.edu · algorithms
MIT 6.006 — Spring 2020

Now genuinely appropriate. You met it as a second pass in Phase 01; here it works as a full parallel track when you want a lecture instead of a page.

ocw.mit.edu · 6.006
NeetCode roadmap

Volume, especially for the dynamic programming section in weeks 4 and 5. Use it after Erickson's treatment, never instead of it.

neetcode.io/roadmap
CLRS

Reference only. Look things up; don't work through it. Useful when you want a second statement of a proof.

mitpress.mit.edu · CLRS

Phase 04 · six weeks · Jan 19 – Mar 1 · 55 hours

Systems.
Build the machine,
then debug the real one.

The phase that answers "why is it slow" and "why did it crash" — questions nothing at the language level will ever explain. Six weeks at about nine hours, and structurally the most enjoyable stretch on the plan.

Nand2Tetris is the spine and it's built for how you learn: you construct a working 16-bit computer from NAND gates upward, with automated tests at every layer.

The task lists specify about 45 of the 55 hours. The rest is slack, and in this phase it goes to weeks 2 and 3 — a chip that fails its test script can eat an evening, and that debugging is the learning rather than an interruption to it.

The most movable phase — and where it earns its slot

Nothing depends on this and it has no prerequisites, so it's the one to pull forward if the math phases start to grind. But it also compounds harder than anything else with the work you'll have been doing since August: you borrowed ten hours of it back in Phase 00 to make containers legible, and this is where the layer underneath that arrives.

The through-line is the abstraction stack at the bottom of this page. Every layer hides the one below it until something breaks, and then the layer you don't understand is the one you're stuck in. By March there shouldn't be one.

The abstraction stack

The organising idea of the phase, and the third of these tables after Phase 02's proof shapes and Phase 03's paradigms. Each layer exists to let you ignore the one below it. That works until it doesn't — and when something breaks, the question is which layer you're actually in.

LayerWhat it lets you ignoreWhat leaks when it breaks
How to use it

When something is slow or wrong, walk down rather than sideways. Most debugging failure is staying at the language level — rereading your code — when the symptom is actually a cache miss, a page fault, a linker mismatch, or a cgroup limit. The symptom tells you the layer if you know what each one sounds like.

That's the whole reason this phase exists, and it's why the two layers you already met in Phase 00 sit near the top of the table rather than at the bottom.

Done when

Exit criterion

You can profile something slow and form a real hypothesis about why, rather than guessing at the code.

The concrete test: take a program that's underperforming and, before changing anything, name the layer you think is responsible and say what evidence would confirm it. Then go get the evidence. Being right isn't the bar — having a falsifiable hypothesis instead of a hunch is.

Resource index

Nand2Tetris — projects 1 to 6

The spine. Build the gates, the ALU, the registers and RAM, the CPU, and the assembler. Automated tests at every step, and there's a browser IDE so there's nothing to install.

nand2tetris.org/course
Nand2Tetris web IDE

The hardware simulator, in the browser. Load your HDL, run the supplied test script, get told immediately whether the chip is right.

nand2tetris.github.io/web-ide
Computer Systems: A Programmer's Perspective

Targeted chapters only — data representation, the memory hierarchy, linking, and concurrency. Reference for weeks 4 through 6, not a book to read cover to cover.

CSAPP, 3rd edition

Your own container and cluster work

Phase 00's output, and the thing this phase explains. Every week has something in it you can point at running.

Local

Phase 05 · four weeks · Mar 2–29 · 30 hours

Linear algebra.
The language of
everything you work on.

The shortest substantial phase on the plan, and the one with the most immediate payoff for the work you'll have been doing since August. Embeddings, similarity, attention, retrieval — all of it is this, and none of it makes sense without it.

Four weeks at about seven and a half hours. No calculus needed, which is why it comes before the calculus refresher rather than after.

The one decision that makes this phase work

Learn it geometrically, then implement it. Do not learn it as arithmetic. Most linear algebra courses teach you to row-reduce matrices by hand, which is the one skill you will never use and the one that makes people believe they hate the subject.

Every concept here has a picture attached — a matrix is a transformation of space, a determinant is how much it stretches area, an eigenvector is a direction the transformation doesn't rotate. Get the picture, then write the code, then let NumPy do the arithmetic forever after.

The translation table

The fourth of these reference cards, after proof shapes, paradigms, and the abstraction stack. Every row is one object, its picture, and where you've already met it without knowing its name.

ObjectThe pictureWhere you meet it
Why this framing

The exit criterion for this phase is reading the linear algebra in an ML paper as description rather than as noise. That's a translation skill: the notation is dense, but it's describing operations on shapes, and the shapes are what you're building intuition for.

When you hit an unfamiliar expression, ask what it does to the space rather than what it computes. That question is answerable from four weeks of work; the arithmetic question mostly isn't, and mostly doesn't matter.

Done when

Exit criterion

You can read the linear algebra in an ML paper as description rather than as noise.

The concrete test: open a paper on something you actually care about — retrieval, attention, embeddings — and read the equations. For each one, say what it does to the space in a sentence. You don't need to derive anything. If you can narrate the shapes, you're done.

Resource index

Essence of Linear Algebra — 3Blue1Brown

The spine for intuition. Fifteen short chapters, entirely geometric, and the single best explanation of the subject that exists in any medium. Watch it twice if needed; it's under four hours.

3blue1brown.com · linear algebra
NumPy

Where the arithmetic lives after week one. Build each operation by hand once, then use the library and never hand-compute a determinant again.

numpy.org · absolute beginners
MIT 18.06 — Gilbert Strang

Optional, and the classic. Lectures free on OCW. Dip in when you want a second explanation with more rigour; don't take it as the spine — its emphasis on hand computation isn't what you need.

ocw.mit.edu · 18.06
Mathematics for Machine Learning

Free book. Part one is linear algebra written specifically for where you're heading, which makes it a better second source than a general textbook.

mml-book.github.io

Phase 06 · one week · ~10 hours

Calculus, only the
load-bearing parts.

You took Calc I and lost it, which is fine, because you need about four ideas from it and none of the mechanics. This is intuition repair, not a course — the smallest phase on the plan, placed one week before the only phase that uses it.

Three blocks: watch, drill, then code it. The last one is what makes it stick.

Why this moved to next-to-last

This was Phase 01 on the first draft, which was wrong. Nothing in data structures, proof, algorithms, systems, or linear algebra needs calculus — it's load-bearing only for probability and for reading the gradient in an ML paper.

Learning it first would have meant six months of decay before first use, on material that is pure intuition and therefore decays fastest. Here it sits one week ahead of Phase 07, which is the only thing that consumes it.

Which 3Blue1Brown chapters, and which to skip

Essence of Calculus is twelve chapters and roughly three hours. You need about half of it. The skips aren't laziness — they're the parts that exist to gate engineering majors rather than to serve you.

ChapterWhyVerdict

Done when

One artifact settles it.

Exit criterion

You can write gradient descent from scratch on a function of two variables — no library, no reference — and explain out loud what every term in it is doing and why the minus sign is there.

That single program uses all four things this phase exists to give you: derivative as rate of change, the chain rule, partial derivatives, and the gradient. If you can write it cold, you're done. If you can't, you know exactly which of the four is missing.

Resource index

Essence of Calculus

Twelve chapters, geometric intuition rather than mechanics. The whole watch block.

3blue1brown.com · essence of calculus
Khan Academy — Multivariable calculus

Where partial derivatives and the gradient live. Grant Sanderson wrote and narrated much of this series, so it's continuous with the videos above.

khanacademy.org · multivariable calculus
Khan Academy — Differential calculus

Chain rule drills only. Ignore the rest of the unit.

khanacademy.org · differential calculus
SymPy

Your answer key. Differentiate and integrate symbolically to check what you computed by hand or in code.

sympy.org

Phase 07 · five weeks · Apr 6 – May 10 · 35 hours · final core phase

Probability.
Learn it by
simulating it.

The last phase of the core, and the one that underwrites the most: machine learning, randomized algorithms, average-case analysis, cache behaviour, cryptography, and every honest claim anyone makes about whether a system works.

Five weeks at seven hours. Also the subject most improved by already having Python — for every concept, write the Monte Carlo version and watch it converge.

The rule for this phase

Simulate before you derive. Every concept gets twenty lines of Python that generate the thing and count outcomes, run before you work through the algebra. You'll be nine months into a plan that started with Python; this is where that becomes a genuine mathematical advantage rather than just a skill you happen to have.

Bayes in particular clicks permanently the first time you simulate a counterintuitive result and watch the number arrive exactly where the maths promised. That experience is not available to someone learning this from a textbook alone, and it's most of the reason this phase sits at the end rather than the beginning.

The distribution chooser

The last of these reference cards. Every distribution is a story about how something is generated — and picking the right one is almost entirely a matter of recognising which story you're in. Blitzstein's book builds a flowchart showing how they all relate through conditioning or through limits; this is the practical version of that.

DistributionThe story it tellsYou meet it when
How to use it

Read the middle column first and ask which one describes your situation. Almost everyone reaches for the normal distribution by reflex, and it's frequently the wrong answer — latency isn't normal, retry counts aren't normal, and assuming otherwise is how confident people produce badly wrong estimates.

When none of the stories fits, that's real information too: it means you should simulate rather than reach for a closed form. Which is the whole method of this phase anyway.

Done when

Exit criterion

You can quantify uncertainty in a system you built, and you reach for simulation before you reach for a closed form.

The concrete test: take a claim you'd want to make about your own work — this agent is better, this change reduced latency, this failure rate is acceptable — and state it with an honest interval around it. Say how many observations you'd need to believe it, and what would change your mind. If you can do that without looking anything up, the core is finished.

After this

The core ends here

Nine months, 383 hours, eight phases. What comes next is on the electives page: probe three in mid-May, then one concentration with real depth. Neuromatch's prerequisites are Python, linear algebra, probability, statistics and calculus — you'll have finished the last of those the week before their July cohort opens.

Worth doing on the last day: reread the plan page. Not for nostalgia — to notice which of the things that looked hardest in August turned out not to be, because that recalibration is what you'll use to scope the next thing you decide to learn.

Resource index

Introduction to Probability — Blitzstein & Hwang

The spine. Free online, second edition. Notable for story proofs — proving results by interpretation and by counting the same thing two ways, rather than by algebra. That technique is Phase 02 cashing in.

probabilitybook.net
Harvard Stat 110 — video lectures

Thirty-four lectures, free, Blitzstein teaching the book. Watch selectively rather than all of it; the chooser table tells you which topics you actually need.

stat110.hsites.harvard.edu/youtube
Stat110x on edX

The interactive version — animations, embedded problem-solving, complementary to the lectures rather than a substitute. Free to sign up, and it suits how you learn better than passive video.

stat110.hsites.harvard.edu
Python and NumPy

Where every concept gets tested. One notebook per week, one simulation per idea. By May this is the most useful artefact the phase produces.

Local

Electives · probes · concentration · Sep 2026 – 2027

Three interests.
One of them is
the one you want.

The core plan makes you competent. This decides what you're competent at. Three cheap probes spread across the core, then one concentration with real depth — and a monthly habit that costs nothing because it runs on hours you're already spending.

Nothing here competes with core hours. The failure mode for this plan was never difficulty, it was attrition.

The framing

You described the three differently, and the difference is the useful signal. AI is a bet about where the world is going. Data science and economics is justified by what's already on your CV. Neuroscience is the only one you described in terms of wanting.

And "everything will be AI-adjacent soon" is an argument against AI as a concentration. If it becomes the substrate, it stops being the differentiator — you're already getting forty hours a week of it, and Phases 00 through 07 are its foundation. The concentration is what you bring to it.

The decision table

The last column is yours. Fill it in after each probe, in your own words, while it's fresh — the whole point of a probe is that it produces evidence, and evidence you don't write down turns back into a hunch within a fortnight.

InterestHow you described itWhat the probe testsVerdict

The entangled decision

Darden

The concentration question and the business school question are the same question in different clothes. If the honest end state is research-adjacent work connected to neuroscience, an MBA is a strange instrument for getting there. If it's leading AI organisations, it's a very good one.

That's not a call anyone else should make. But notice the sequencing: probe one lands in early October 2026, probe two in March 2027, and the concentration in the summer. Every one of those produces information the Darden decision needs, and all of them arrive before it has to be made.

The worst version is deciding by default — letting the deadline choose because the probes never happened.

Resource index

Neuromatch — open education resources

Free, complete, self-paced curricula in Computational Neuroscience and NeuroAI. Notebook-based. This is probe one and, quite possibly, the concentration.

neuromatch.io · open resources
Neuromatch Academy — July cohorts

The taught version: pods, TAs, projects, a global cohort. Runs each July, so July 2027 lands almost exactly where the core plan ends.

neuromatch.io/courses
Neuromatch prerequisites

Python, linear algebra, probability, basic statistics, and calculus including derivatives and ODEs. Read this list against Phases 05, 06, and 07 — the overlap is close to exact.

compneuro.neuromatch.io · prereqs
Your own agent and operator

Every probe extends what you already built rather than starting fresh. Green-field probes don't get finished; extensions do.

Local