Files
cs249r_book/slides/tinyml-fundamentals.qmd
Vijay Janapa Reddi 17c233d71b fix(slides): repair the 6 unique broken tinyMLx/courseware URLs
Follow-up to #1424. The link-rot tracker reported 405 broken URLs on
the Slides site, dominated by `tinyMLx/courseware/raw/master/edX/...`
references. After de-duplicating, only 6 unique URLs were actually
broken — the other ~325 occurrences were references to those same
6 dead targets repeated across the deck inventory pages.

Cross-checking each broken path against the upstream repo's actual
contents (via the GitHub Contents API) revealed two categories:

CATEGORY A — file exists with extended title; URL needs encoding
  - readings/5-11-1.pdf → readings/5-11-1%20Responsible%20AI%20Intro.pdf
  - readings/5-11-3.pdf → readings/5-11-3%20Sustainable%20AI.pdf

  Both upstream files contain the title in the filename
  (e.g. "5-11-1 Responsible AI Intro.pdf"). The bare-number form in our
  source matched the upstream README, which is itself broken; the
  URL-encoded extended form returns 200.

CATEGORY B — file genuinely missing in upstream repo
  - other/2-1-14.pdf      ("Assignment Solution")
  - readings/4-7-11.pdf   ("Deploying a Multi-Tenant Application")
  - slides/3-1-6.pdf      ("What You'll Learn in This Course")
  - slides/5-6-X.pdf      ("Model Conversion") — `X` is a literal placeholder
                           in the upstream README too

  No correct URL exists; the upstream README references these as
  broken links. Replaced the entire `<a>` cell content with an em-dash
  (—), preserving the table layout and the topic name in the adjacent
  cell, but removing the broken link.

Files touched:
  slides/tinyml-mlops.qmd        (2 URL fixes + 1 em-dash)
  slides/tinyml-applications.qmd (1 em-dash)
  slides/tinyml-deploying.qmd    (1 em-dash)
  slides/tinyml-fundamentals.qmd (1 em-dash)

After this lands, the next nightly link-rot run should report Slides
site clean of `tinyMLx/courseware` failures.
2026-04-26 09:18:04 -04:00

422 lines
20 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Course 1: Fundamentals of TinyML"
---
```{=html}
<div style="margin-bottom: 1.5rem;">
<a href="tinyml.html" class="btn-outline">← Back to TinyML Overview</a>
<a href="https://github.com/harvard-edge/cs249r_book/releases/download/slides-latest/MLSysBook-TinyML-All.zip" class="btn-accent" target="_blank">Download All (ZIP)</a>
<a href="https://www.edx.org/professional-certificate/harvardx-tiny-machine-learning" class="btn-outline" target="_blank">edX Course</a>
</div>
<!-- ================================================================ -->
<!-- CHAPTER 1: Welcome to TinyML -->
<!-- ================================================================ -->
<div class="module-card">
<span class="tag">Chapter 1 · Course 1</span>
<h3>Welcome to TinyML</h3>
<p class="module-desc">Core concepts, challenges, and opportunities of TinyML. Overview of the specialization, introduction to responsible AI, and getting started with Google Colab and TensorFlow.</p>
<span class="companion">Textbook companion: <a href="https://mlsysbook.ai/vol1/">Vol I Ch 12</a> · <a href="https://mlsysbook.ai/kits/">Hardware Kits</a></span>
</div>
<div class="module-card">
<h4 class="section-header-sm">§1.1 Course Overview</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>What is this specialization all about?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-1-1.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>Who is this course aimed at (everyone)?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-1-2.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>What will you learn?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-1-4.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>How is the course structured?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-1-5.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
</tbody>
</table>
</div>
<div class="module-card">
<h4 class="section-header-sm">§1.2 The Future of ML is Tiny and Bright</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>What is (tiny) Machine Learning?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-2-1.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>TinyML application case studies</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/1-2-2.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>How do we enable TinyML?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-2-4.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
</tbody>
</table>
</div>
<div class="module-card">
<h4 class="section-header-sm">§1.3 TinyML Challenges</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>What are the Challenges for TinyML (Part A)?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-3-1.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>What are the Challenges for TinyML (Part B)?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-3-2.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>What are the Challenges for TinyML (Part C)?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-3-4.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>What are the Challenges for TinyML (Part D)?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-3-5.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>Why the Future of ML is Tiny</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/1-3-6.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Introduction to Responsible AI/ML</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-3-7.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>Case Studies of Responsible AI/ML Failures</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/other/1-3-8.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
</tbody>
</table>
</div>
<div class="module-card">
<h4 class="section-header-sm">§1.4 Getting Started</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>What resources are needed for this course?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-4-1.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>Colab in this Course</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/1-4-3.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/notebooks/intro.ipynb" target="_blank">Learning Colab</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Tips for using Colab</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/1-4-5.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Sample TensorFlow code</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/1-4-8.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
</tbody>
</table>
</div>
<!-- ================================================================ -->
<!-- CHAPTER 2: Introduction to (Tiny) ML -->
<!-- ================================================================ -->
<div class="module-card">
<span class="tag">Chapter 2 · Course 1</span>
<h3>Introduction to (Tiny) ML</h3>
<p class="module-desc">The machine learning paradigm, deep learning building blocks, CNNs, computer vision, and responsible AI design. Hands-on with loss functions, gradient descent, neural networks, and image classification.</p>
<span class="companion">Textbook companion: <a href="https://mlsysbook.ai/vol1/">Vol I Ch 36</a></span>
</div>
<div class="module-card">
<h4 class="section-header-sm">§2.1 The Machine Learning Paradigm</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>The machine learning paradigm</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-1-1.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>Thinking about Loss</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-1-3.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-1-4-ExploringLoss.ipynb" target="_blank">Exploring Loss</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Minimizing Loss</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-1-5.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-1-6-MimimizingLoss.ipynb" target="_blank">Exploring Gradient Descent</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>First Neural Network</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-1-8.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-1-9-FirstNeuralNetwork.ipynb" target="_blank">First Neural Network in Colab</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>More on Neural Networks</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-1-10.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Machine Learning Case Studies</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-1-11.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-1-13-AssignmentQuestion.ipynb" target="_blank">Neural Network Coding Assignment</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Assignment Solution</td>
<td class="dl-col">—</td>
</tr>
</tbody>
</table>
</div>
<div class="module-card">
<h4 class="section-header-sm">§2.2 The Building Blocks of Deep Learning</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>Initialization in Machine Learning</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-2-1.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Understanding Neurons</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-2-2.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-2-3-MimimizingLoss.ipynb" target="_blank">Neurons in Action</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Coding Stepback</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-2-4.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-2-5-FirstNeuralNetworkRevisited.ipynb" target="_blank">Multi-Layer Neural Network</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Introduction to Classification</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-2-6.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-2-7-ExploringCategorical.ipynb" target="_blank">Coding Exercise: DNN</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Training, Validation, and Test Data</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-2-9.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>Realities of Coding Neural Networks</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-2-11.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-2-12-AssignmentQuestion.ipynb" target="_blank">Coding Assignment: DNNs</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Assignment Solution</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/other/2-2-13.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
</tbody>
</table>
</div>
<div class="module-card">
<h4 class="section-header-sm">§2.3 Exploring Machine Learning Scenarios</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>Quick Recap</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-3-1.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Introducing Convolutions</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-3-2.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-3-3-ExploringConvolutions.ipynb" target="_blank">Coding Exercise: Filters</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>From DNN to CNN</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-3-4.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-3-5-FashionMNISTConvolutions.ipynb" target="_blank">Coding Exercise: CNN</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Mapping Features to Labels</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-3-6.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-3-7-FashionMNISTConvolutionsVisualizations.ipynb" target="_blank">Coding Exercise: Computer Vision</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-3-9-AssignmentQuestion.ipynb" target="_blank">Coding Assignment: CNNs</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Assignment Solution</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/other/2-3-10.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
</tbody>
</table>
</div>
<div class="module-card">
<h4 class="section-header-sm">§2.4 Building a Computer Vision Model</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>Quick Recap</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-4-1.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Preparing Image Data</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-4-2.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-4-3-HorsesOrHumans.ipynb" target="_blank">Coding Exercise: Complex Images</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>TFDS for Image Data</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-4-4.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Overfitting</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-4-5.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-4-6-HorseOrHumanWithAugmentation.ipynb" target="_blank">Coding Exercise: Image Augmentation</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Dropout Regularization</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-4-8.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Exploring Loss Functions and Optimizers</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-4-9.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td><a href="https://colab.research.google.com/github/tinyMLx/colabs/blob/master/2-4-11-AssignmentQuestion.ipynb" target="_blank">Coding Assignment: Enhancing a CNN</a></td>
<td class="dl-col"><span class="badge-colab">Colab</span></td>
</tr>
<tr>
<td>Assignment Solution</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/other/2-4-12.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
</tbody>
</table>
</div>
<div class="module-card">
<h4 class="section-header-sm">§2.5 Responsible AI Design</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>What Am I Building? What's the Goal?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-5-1.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>Development and TinyML</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/other/2-5-2.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Who Am I Building This For?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-5-3.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>What Are the Consequences for the User When It Fails?</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-5-4.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>Error Types and Ethics</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/other/2-5-6.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
</tbody>
</table>
</div>
<div class="module-card">
<h4 class="section-header-sm">§2.6 Course 1 Summary</h4>
<table class="section-list">
<thead>
<tr><th>Topic</th><th class="dl-col">Type</th></tr>
</thead>
<tbody>
<tr>
<td>Recapping (Tiny) ML and its Data-Centric Role</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/readings/2-6-1.pdf" target="_blank" class="badge-reading">Reading</a></td>
</tr>
<tr>
<td>Why We Are Excited About TinyML</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-6-2.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>What We Have Learned Thus Far</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-6-3.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
<tr>
<td>What's Coming Next</td>
<td class="dl-col"><a href="https://github.com/tinyMLx/courseware/raw/master/edX/slides/2-6-5.pdf" target="_blank" class="badge-slides">Slides</a></td>
</tr>
</tbody>
</table>
</div>
```
::: {.callout-note}
These materials were originally developed for the [HarvardX Professional Certificate in Tiny Machine Learning](https://www.edx.org/professional-certificate/harvardx-tiny-machine-learning) on edX. See the [original curriculum](tinyml/README-edx-original.md) for the full item-by-item breakdown including forum prompts and quizzes not listed above.
:::