--- title: "Getting Started" subtitle: "From zero to teaching in one afternoon" --- ::: {.callout-note} ## Who is this site for? **The Blueprint** is designed for **instructors and TAs** adopting the ML Systems curriculum. If you are a **student**, your instructor will direct you to the [textbook](https://mlsysbook.ai), [labs](https://mlsysbook.ai/labs/), and [TinyTorch](https://mlsysbook.ai/tinytorch/) directly. ::: --- ## 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](customization.qmd)) | ::: {.callout-tip} ## Recommendation 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](https://creativecommons.org/licenses/by-nc-sa/4.0/). No access codes, no adoption fees. | Resource | Where to Find It | Format | |:---|:---|:---| | **Textbook Vol I** | [mlsysbook.ai/vol1](https://mlsysbook.ai/vol1/) | Web, PDF, EPUB | | **Textbook Vol II** | [mlsysbook.ai/vol2](https://mlsysbook.ai/vol2/) | Web, PDF, EPUB | | **TinyTorch** | [mlsysbook.ai/tinytorch](https://mlsysbook.ai/tinytorch/) | Jupyter notebooks | | **Interactive Labs** | [mlsysbook.ai/labs](https://mlsysbook.ai/labs/) | Marimo (browser) | | **Hardware Kits** | [mlsysbook.ai/kits](https://mlsysbook.ai/kits/) | Deployment guides | | **Lecture Slides** | [mlsysbook.ai/slides](https://mlsysbook.ai/slides/) | PDF, PPTX, LaTeX | | **GitHub Repository** | [github.com/harvard-edge/cs249r_book](https://github.com/harvard-edge/cs249r_book) | Source | --- ## Step 3: Set Up Infrastructure ### TinyTorch (Required for Foundations) ```bash 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](https://mlsysbook.ai/tinytorch/modules/01_tensor_ABOUT.html) with learning objectives, audio overview, and a Binder link for browser-based execution - Auto-grading runs via `pytest` or `nbgrader` - See the [TinyTorch Instructor Guide](https://mlsysbook.ai/tinytorch/INSTRUCTOR.html) for nbgrader configuration ::: {.callout-tip} ## What Does a TinyTorch Module Look Like? 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](https://mlsysbook.ai/tinytorch/modules/06_autograd_ABOUT.html), 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](https://mlsysbook.ai/tinytorch/) to see the full structure. ::: ### Interactive Labs (Both Semesters) ```bash pip install marimo mlsysim marimo edit labs/vol1/lab_05_nn_compute.py ``` - Labs run in the browser — no GPU required - The [`mlsysim`](https://mlsysbook.ai/mlsysim/) simulator 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](https://mlsysbook.ai/kits/) 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](assessment.qmd) 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**](foundations-syllabus.qmd) — 16 weeks covering Volume I - [**Scale Syllabus**](scale-syllabus.qmd) — 16 weeks covering Volume II Need to adapt for a quarter system, a graduate seminar, or a specific emphasis? See the [Customization Guide](customization.qmd). --- ## Step 6: Your First Week Here is exactly what to assign on Day 1: 1. **Reading**: [Vol I, Introduction](https://mlsysbook.ai/vol1/introduction.html) (45 min) 2. **Lab**: [Lab 00](https://mlsysbook.ai/labs/vol1/lab_00_introduction.html) — The Architect's Portal (30 min) 3. **TinyTorch**: [Module 01: Tensor](https://mlsysbook.ai/tinytorch/modules/01_tensor_ABOUT.html) — due end of Week 1 (4–6 hrs) 4. **Prediction Lock**: "A GPU is how many times faster than a CPU for a 1024x1024 matrix multiply?" (students commit a number before Lab 01) ::: {.callout-tip} ## Day 1 Activity 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**](ta-guide.qmd) — grading workflows, common student struggles, lab facilitation - [**Assessment & Grading**](assessment.qmd) — rubrics they will use every week - [**Pedagogy Guide**](pedagogy.qmd) — 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](https://github.com/harvard-edge/cs249r_book/discussions) - **OpenCollective**: [Support the project's ongoing development](https://opencollective.com/mlsysbook)