---
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)
