Getting Started
From zero to teaching in one afternoon
Step 1: Choose Your Track
Decide which configuration fits your program:
| Configuration | Duration | What Students Get |
|---|---|---|
| Foundations Only (most common) | 16 weeks | Vol I + TinyTorch 01–08 + Labs 00–15 |
| Scale Only (requires Vol I prereq) | 16 weeks | Vol II + Labs 01–16 |
| Full Sequence | 2 semesters | Both volumes + all modules + all labs |
| Quarter Version | 10 weeks | Condensed Vol I (see Customization) |
Start with Foundations Only. It is self-contained, requires no distributed systems background, and gives students a complete experience from theory through deployment.
Step 2: Access the Materials
All materials are open-source under CC-BY-NC-SA 4.0. No access codes, no adoption fees.
| Resource | Where to Find It | Format |
|---|---|---|
| Textbook Vol I | mlsysbook.ai/vol1 | Web, PDF, EPUB |
| Textbook Vol II | mlsysbook.ai/vol2 | Web, PDF, EPUB |
| TinyTorch | mlsysbook.ai/tinytorch | Jupyter notebooks |
| Interactive Labs | mlsysbook.ai/labs | Marimo (browser) |
| Hardware Kits | mlsysbook.ai/kits | Deployment guides |
| Lecture Slides | mlsysbook.ai/slides | PDF, PPTX, LaTeX |
| GitHub Repository | github.com/harvard-edge/cs249r_book | Source |
Step 3: Set Up Infrastructure
TinyTorch (Required for Foundations)
git clone https://github.com/harvard-edge/cs249r_book.git
cd cs249r_book/tinytorch- Students work in
src/— one folder per module (e.g.,src/01_tensor/) - Each module has a companion ABOUT page with learning objectives, audio overview, and a Binder link for browser-based execution
- Auto-grading runs via
pytestornbgrader - See the TinyTorch Instructor Guide for nbgrader configuration
Each module is a Python file with scaffolded cells. Students implement core functions (forward(), backward(), etc.) while the test suite validates correctness. For example, in Module 06: Autograd, students build reverse-mode automatic differentiation from scratch — implementing the computation graph, topological sort, and gradient accumulation that powers every modern framework. Browse any module’s ABOUT page on the TinyTorch site to see the full structure.
Interactive Labs (Both Semesters)
pip install marimo mlsysim
marimo edit labs/vol1/lab_05_nn_compute.py- Labs run in the browser — no GPU required
- The
mlsysimsimulator provides hardware-accurate physics (models real hardware specs for H100, A100, Jetson, XIAO, and more) - Zero infrastructure beyond Python 3.10+
Hardware Kits (Optional)
- Budget: ~$50–100 per student station
- Order 4+ weeks before semester start
- See Hardware Kits site for bill of materials
Step 4: Set Up Your LMS
Create these assignment categories in Canvas, Gradescope, or your LMS:
Semester 1 (Foundations):
| Category | Weight | Frequency | Source |
|---|---|---|---|
| TinyTorch Modules | 35% | Weekly | Auto-graded notebooks |
| Lab Decision Logs | 25% | Weekly | Written reflections (200 words) |
| Design Challenges | 20% | Bi-weekly | Lab Part C open-ended problems |
| Capstone (AI Olympics) | 20% | Once | End-of-semester competition |
See Assessment & Grading for detailed rubrics and sample student work.
Step 5: Choose Your Syllabus
We provide two complete, week-by-week syllabi with direct links to every reading, lab, and assignment:
- Foundations Syllabus — 16 weeks covering Volume I
- Scale Syllabus — 16 weeks covering Volume II
Need to adapt for a quarter system, a graduate seminar, or a specific emphasis? See the Customization Guide.
Step 6: Your First Week
Here is exactly what to assign on Day 1:
- Reading: Vol I, Introduction (45 min)
- Lab: Lab 00 — The Architect’s Portal (30 min)
- TinyTorch: Module 01: Tensor — due end of Week 1 (4–6 hrs)
- Prediction Lock: “A GPU is how many times faster than a CPU for a 1024x1024 matrix multiply?” (students commit a number before Lab 01)
Have students write their GPU speedup prediction on a sticky note and post it on the board. After Lab 01, revisit. The visual distribution — and how wrong most of them are — sets the tone for the entire course.
Step 7: Prepare Your TAs
If you have teaching assistants, share these resources with them:
- TA Guide — grading workflows, common student struggles, lab facilitation
- Assessment & Grading — rubrics they will use every week
- Pedagogy Guide — the “why” behind Prediction Locks, Decision Logs, and the A-B-C structure
Step 8: Join the Community
- GitHub Discussions: Ask questions, share adaptations, report issues
- OpenCollective: Support the project’s ongoing development