mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-05-07 02:03:55 -05:00
Two surgical fixes for the nightly link-rot tracker (#1424): 1. **shared/config/.lycheeignore**: add two patterns that suppress confirmed false positives reported in the tracker. - JS template literals (`${m.github}`): when Lychee parses a .qmd containing JavaScript with template literals like `https://github.com/${m.github}`, the literal is URL-encoded in the AST as `$%7B…%7D` and reported as broken. The literal is substituted at runtime; it is never a real URL. Pattern matches any `${ANY.ANY}` template-literal residue. - GitHub avatar URLs (`github.com/<user>.png?size=N`): manually verified that every avatar URL flagged by the tracker (profvjreddi, Mjrovai, etc.) returns 200 in a browser. Lychee unreliably HEADs them due to GitHub's avatar throttling. Together these cover the 8 remaining "broken" links on the Unified Site that are not real failures. 2. **slides/teaching.qmd**: replace a markdown link to `.claude/rules/svg-style.md` with plain prose. The `.claude/` directory is gitignored in this repo, so the URL github.com/harvard-edge/cs249r_book/blob/main/.claude/rules/svg-style.md 404s. Mention the SVG style guide in prose without the broken link. Out of scope for this patch: the 329 `tinyMLx/courseware/raw/master/...` links in slides/, which point to PDFs that don't exist in the upstream repo (the directory exists, but the specific file numbers don't). That is a content/strategic question — needs a decision on whether to upload missing PDFs, switch repos, or remove the links — and is left for a separate workstream.
197 lines
8.4 KiB
Plaintext
197 lines
8.4 KiB
Plaintext
---
|
||
title: "Teaching Guide"
|
||
---
|
||
|
||
## How to Use These Slides
|
||
|
||
Each slide deck is designed for **50--75 minutes** of classroom teaching. The decks follow the textbook chapter structure exactly, so students can read the corresponding chapter before or after class.
|
||
|
||
Use the slides as the classroom layer of the broader curriculum: assign the [textbook](https://mlsysbook.ai) for reading, use [Co-Labs](https://mlsysbook.ai/labs/) for prediction and exploration, use [TinyTorch](https://mlsysbook.ai/tinytorch/) for implementation, use [Hardware Kits](https://mlsysbook.ai/kits/) for deployment, and use [The AI Engineering Blueprint](https://mlsysbook.ai/instructors/) for syllabi, rubrics, and TA workflows.
|
||
|
||
### Speaker Notes
|
||
|
||
Every slide has speaker notes containing:
|
||
|
||
- **Timing guidance** (`[N min]`) for pacing the lecture
|
||
- **Teaching tips** for explaining difficult concepts
|
||
- **Common student errors** to address proactively
|
||
- **Discussion prompts** for engaging the class
|
||
- **Transition cues** connecting each slide to the next
|
||
|
||
To view speaker notes in the PDF, use your PDF reader's presenter mode. In the LaTeX source, notes appear as `\note{...}` commands on each frame.
|
||
|
||
### Active Learning
|
||
|
||
Every deck includes **8--11 active learning moments**, distributed across these types:
|
||
|
||
- **Predict**: Students predict the outcome of a scenario before seeing the answer. Builds intuition about system behavior.
|
||
- **Exercise**: A short calculation or analysis task (2--5 minutes). Often involves the Iron Law, roofline analysis, or memory estimation.
|
||
- **Discussion**: Open-ended question for pair or group discussion (3--5 minutes). Explores trade-offs and design decisions.
|
||
- **Retrieval Practice**: Students recall key concepts from earlier in the lecture or from previous chapters without looking at notes.
|
||
- **Muddiest Point**: End-of-lecture check where students identify the concept they found most confusing.
|
||
|
||
These moments are marked with distinct frame titles and styling so they are easy to find in the deck.
|
||
|
||
## Customizing the Slides
|
||
|
||
### Source Format
|
||
|
||
The slides are **Beamer LaTeX**, not locked PDFs. The full source is open and designed for customization.
|
||
|
||
```
|
||
slides/
|
||
assets/beamerthememlsys.sty # Theme (colors, fonts, layout)
|
||
vol1/<chapter>/
|
||
<chapter>.tex # Slide source
|
||
images/ # SVGs, photos, generated PDFs
|
||
vol2/<chapter>/
|
||
<chapter>.tex
|
||
images/
|
||
Makefile # Build system
|
||
```
|
||
|
||
### Building
|
||
|
||
To build a single deck (PDF):
|
||
|
||
```bash
|
||
cd slides
|
||
make ch01 # Builds vol1/01_introduction PDF
|
||
```
|
||
|
||
To build everything (PDF):
|
||
|
||
```bash
|
||
make all
|
||
```
|
||
|
||
To build PowerPoint (PPTX) from PDFs:
|
||
|
||
```bash
|
||
make pptx-ch01 # Single chapter PPTX
|
||
make pptx-vol1 # All Vol1 PPTX
|
||
make pptx # All PPTX (both volumes)
|
||
```
|
||
|
||
PPTX conversion requires `poppler` (`brew install poppler` on macOS, `apt install poppler-utils` on Ubuntu) and `python-pptx` + `Pillow` (`pip install python-pptx Pillow`). The PPTX files are image-based at 300 DPI — visually identical to the PDF, suitable for presenter mode and annotations, but not editable text.
|
||
|
||
Output goes to `_build/vol1/` and `_build/vol2/` (PDFs and PPTX side by side).
|
||
|
||
### Editing Workflow
|
||
|
||
1. **Fork** the [repository](https://github.com/harvard-edge/cs249r_book)
|
||
2. **Edit** the `.tex` file for the chapter you want to change
|
||
3. **Rebuild** with `make chXX`
|
||
4. **Review** the PDF output in `_build/`
|
||
|
||
### SVG Figures
|
||
|
||
All diagrams are authored as **SVG files** in each chapter's `images/` directory. SVGs are the source of truth; the build system converts them to PDF via Inkscape for embedding in Beamer.
|
||
|
||
To modify a diagram:
|
||
|
||
1. Edit the `.svg` file in any vector editor (Inkscape, Illustrator, Figma)
|
||
2. Follow the SVG style guide (palette, typography, canvas conventions) used by the book figures
|
||
3. Rebuild the deck; the Makefile handles SVG-to-PDF conversion
|
||
|
||
### Theme Customization
|
||
|
||
The file `assets/beamerthememlsys.sty` controls the global look:
|
||
|
||
- **Accent color**: Deep Rose (`#BE185D`) used throughout
|
||
- **Header bar**: Section navigation with centered labels
|
||
- **Footer**: Book logo + chapter context (left), page number + institution (right)
|
||
- **Fonts**: Metropolis base with custom overrides
|
||
|
||
Change the accent color or institution branding in the theme file and all decks update on rebuild.
|
||
|
||
## Suggested Semester Plans
|
||
|
||
### 16-Week Plan: Volume I (Foundations)
|
||
|
||
```{=html}
|
||
<table class="slide-table">
|
||
<thead>
|
||
<tr>
|
||
<th>Week</th>
|
||
<th>Chapter</th>
|
||
<th>Topic</th>
|
||
<th>~Time</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr><td>1</td><td>0</td><td>Course Overview</td><td>53 min</td></tr>
|
||
<tr><td>2</td><td>1</td><td>Introduction</td><td>74 min</td></tr>
|
||
<tr><td>3</td><td>2</td><td>ML Systems</td><td>70 min</td></tr>
|
||
<tr><td>4</td><td>3</td><td>ML Workflow</td><td>79 min</td></tr>
|
||
<tr><td>5</td><td>4</td><td>Data Engineering</td><td>66 min</td></tr>
|
||
<tr><td>6</td><td>5</td><td>Neural Network Computation</td><td>68 min</td></tr>
|
||
<tr><td>7</td><td>6</td><td>Network Architectures</td><td>63 min</td></tr>
|
||
<tr><td>8</td><td colspan="3" style="text-align:center; font-style:italic;">Midterm / Review</td></tr>
|
||
<tr><td>9</td><td>7</td><td>ML Frameworks</td><td>73 min</td></tr>
|
||
<tr><td>10</td><td>8</td><td>Model Training</td><td>68 min</td></tr>
|
||
<tr><td>11</td><td>9</td><td>Data Selection</td><td>63 min</td></tr>
|
||
<tr><td>12</td><td>10</td><td>Model Compression</td><td>64 min</td></tr>
|
||
<tr><td>13</td><td>11</td><td>Hardware Acceleration</td><td>66 min</td></tr>
|
||
<tr><td>14</td><td>12–13</td><td>Benchmarking + Model Serving</td><td>142 min</td></tr>
|
||
<tr><td>15</td><td>14–15</td><td>ML Ops + Responsible Engineering</td><td>130 min</td></tr>
|
||
<tr><td>16</td><td>16</td><td>Conclusion + Final Review</td><td>51 min</td></tr>
|
||
</tbody>
|
||
</table>
|
||
```
|
||
|
||
### 16-Week Plan: Volume II (At Scale)
|
||
|
||
```{=html}
|
||
<table class="slide-table">
|
||
<thead>
|
||
<tr>
|
||
<th>Week</th>
|
||
<th>Chapter</th>
|
||
<th>Topic</th>
|
||
<th>~Time</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr><td>1</td><td>0</td><td>Course Overview: ML Systems at Scale</td><td>49 min</td></tr>
|
||
<tr><td>2</td><td>1</td><td>Introduction</td><td>76 min</td></tr>
|
||
<tr><td>3</td><td>2</td><td>Compute Infrastructure</td><td>72 min</td></tr>
|
||
<tr><td>4</td><td>3</td><td>Network Fabrics</td><td>68 min</td></tr>
|
||
<tr><td>5</td><td>4</td><td>Data Storage</td><td>69 min</td></tr>
|
||
<tr><td>6</td><td>5</td><td>Distributed Training Systems</td><td>70 min</td></tr>
|
||
<tr><td>7</td><td>6</td><td>Collective Communication</td><td>64 min</td></tr>
|
||
<tr><td>8</td><td colspan="3" style="text-align:center; font-style:italic;">Midterm / Review</td></tr>
|
||
<tr><td>9</td><td>7</td><td>Fault Tolerance and Reliability</td><td>68 min</td></tr>
|
||
<tr><td>10</td><td>8</td><td>Fleet Orchestration</td><td>74 min</td></tr>
|
||
<tr><td>11</td><td>9</td><td>Inference at Scale</td><td>71 min</td></tr>
|
||
<tr><td>12</td><td>10</td><td>Performance Engineering</td><td>72 min</td></tr>
|
||
<tr><td>13</td><td>11–12</td><td>Edge Intelligence + Ops at Scale</td><td>132 min</td></tr>
|
||
<tr><td>14</td><td>13–14</td><td>Security/Privacy + Robust AI</td><td>142 min</td></tr>
|
||
<tr><td>15</td><td>15–16</td><td>Sustainable AI + Responsible AI</td><td>131 min</td></tr>
|
||
<tr><td>16</td><td>17</td><td>Conclusion + Final Review</td><td>47 min</td></tr>
|
||
</tbody>
|
||
</table>
|
||
```
|
||
|
||
### 32-Week Combined Plan
|
||
|
||
For a two-semester sequence, teach Volume I in the first semester and Volume II in the second. Volume I provides the single-machine foundations that Volume II builds upon for distributed systems. The combined plan covers the full ML systems stack from data engineering on a single accelerator to fleet-scale governance.
|
||
|
||
## Audio Lectures {.coming-soon-section}
|
||
|
||
```{=html}
|
||
<div class="info-section">
|
||
<h2>Coming Soon: Audio Lectures <span class="coming-soon">Coming Soon</span></h2>
|
||
<p>
|
||
Each slide deck will have a companion <strong>audio lecture</strong> generated from the
|
||
speaker notes written by the textbook author. These recordings will be:
|
||
</p>
|
||
<ul>
|
||
<li><strong>Synchronized</strong> with the slide deck for self-paced playback</li>
|
||
<li><strong>Based on author notes</strong>, not generic AI narration</li>
|
||
<li><strong>Designed for flipped classrooms</strong>: students listen before class, class time is for active learning</li>
|
||
<li><strong>Downloadable</strong> as MP3 for offline use</li>
|
||
</ul>
|
||
</div>
|
||
```
|