Curriculum & Milestones
The 20 modules
Four parts, each one asking the same question of a new piece of the stack: can I build this from scratch, and can I build it well?
Part I: Foundations (01–08)
| # | Module | What you build |
|---|---|---|
| 01 | Tensor | Your core data structure, with autodiff |
| 02 | Activations | ReLU, Sigmoid, Softmax |
| 03 | Layers | Linear layers, the Module system |
| 04 | Losses | MSE, CrossEntropy |
| 05 | DataLoader | Efficient data batching |
| 06 | Autograd | Automatic differentiation |
| 07 | Optimizers | SGD, Adam |
| 08 | Training | A complete training loop |
Part II: Vision (09)
| # | Module | What you build |
|---|---|---|
| 09 | Convolutions | Conv2d, MaxPool2d, CNNs |
Part III: Language (10–13)
| # | Module | What you build |
|---|---|---|
| 10 | Tokenization | Text processing |
| 11 | Embeddings | Token & positional embeddings |
| 12 | Attention | Multi-head attention |
| 13 | Transformers | Complete transformer blocks |
Part IV: Optimization (14–20)
| # | Module | What you build |
|---|---|---|
| 14 | Profiling | Performance analysis |
| 15 | Quantization | Precision reduction |
| 16 | Compression | Pruning & distillation |
| 17 | Acceleration | Hardware-aware optimization (kernel fusion, etc.) |
| 18 | Memoization | KV-cache |
| 19 | Benchmarking | Performance measurement |
| 20 | Capstone | Ties the whole framework together |
Each module lives at data/src/NN_name/NN_name.py, that's the file you actually edit. tren module start NN turns it into a notebook stub; tren module complete NN tests it and exports it into the real trentorch package.
The 6 historical milestones
As you complete modules, you unlock milestones: recreations of landmark ML moments, run entirely on the framework you wrote:
| Year | Milestone | What it proves | Unlocked by |
|---|---|---|---|
| 1958 | Perceptron | Binary classification with gradient descent | Modules 1–3 |
| 1969 | XOR Crisis | A single-layer perceptron cannot solve XOR, and why that mattered | Modules 1–3 |
| 1986 | MLP Revival | Hidden layers + backprop solve the "impossible" XOR problem, then scale to real digit data | Modules 1–8 |
| 1998 | CNN Revolution | CNNs beat MLPs on image classification, LeNet-style | Modules 1–9 |
| 2017 | Transformer Era | Attention learns sequence reversal, copying, and conditional tasks | Modules 1–8, 11–13 |
| 2018+ | MLPerf Olympics | Production-style optimization: compress and accelerate your own network | Full stack |
Run one with:
tren milestone run 04 # or: tren milestone run cnn
Each milestone script checks its own required modules are actually done before running, and for milestones with multiple parts (like CNN Revolution's TinyDigits vs. CIFAR-10 tracks), --part N picks which one.
tren milestone list # what's unlocked, what's next
tren milestone info 04 # details on one milestone
tren milestone timeline # the whole arc, as a progress view
Not toy demos
These milestones aren't scaled-down illustrations, they're the real historical experiments (perceptron convergence, XOR's non-linearity, LeNet-scale CNN training, attention learning real sequence tasks), run against real data, using real optimizers and real backprop, all implemented by you in the modules above. The one place CI takes a shortcut is trimming demo epoch counts under automated verification, since a real student running the milestone interactively still gets the full experience; see Architecture for that distinction.