Files
TinyTorch/book/_build/html/instructor-guide.html
Vijay Janapa Reddi 92781736a1 Restructure TinyTorch: Move TinyGPT to examples, improve testing framework
Major changes:
- Moved TinyGPT from Module 16 to examples/tinygpt (capstone demo)
- Fixed Module 10 (optimizers) and Module 11 (training) bugs
- All 16 modules now passing tests (100% health)
- Added comprehensive testing with 'tito test --comprehensive'
- Renamed example files for clarity (train_xor_network.py, etc.)
- Created working TinyGPT example structure
- Updated documentation to reflect 15 core modules + examples
- Added KISS principle and testing framework documentation
2025-09-22 09:37:18 -04:00

1156 lines
62 KiB
HTML
Raw 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.
<!DOCTYPE html>
<html lang="en" data-content_root="./" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>👨‍🏫 Instructor Guide: NBGrader + TinyTorch &#8212; TinyTorch</title>
<script data-cfasync="false">
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
document.documentElement.dataset.theme = localStorage.getItem("theme") || "";
</script>
<!-- Loaded before other Sphinx assets -->
<link href="_static/styles/theme.css?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
<link href="_static/styles/bootstrap.css?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
<link href="_static/styles/pydata-sphinx-theme.css?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
<link href="_static/vendor/fontawesome/6.5.2/css/all.min.css?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="_static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="_static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.woff2" />
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=03e43079" />
<link rel="stylesheet" type="text/css" href="_static/styles/sphinx-book-theme.css?v=eba8b062" />
<link rel="stylesheet" type="text/css" href="_static/togglebutton.css?v=13237357" />
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
<link rel="stylesheet" type="text/css" href="_static/mystnb.8ecb98da25f57f5357bf6f572d296f466b2cfe2517ffebfabe82451661e28f02.css?v=6644e6bb" />
<link rel="stylesheet" type="text/css" href="_static/sphinx-thebe.css?v=4fa983c6" />
<link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
<link rel="stylesheet" type="text/css" href="_static/custom.css?v=5a689c52" />
<!-- Pre-loaded scripts that we'll load fully later -->
<link rel="preload" as="script" href="_static/scripts/bootstrap.js?digest=dfe6caa3a7d634c4db9b" />
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=dfe6caa3a7d634c4db9b" />
<script src="_static/vendor/fontawesome/6.5.2/js/all.min.js?digest=dfe6caa3a7d634c4db9b"></script>
<script src="_static/documentation_options.js?v=9eb32ce0"></script>
<script src="_static/doctools.js?v=9a2dae69"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="_static/clipboard.min.js?v=a7894cd8"></script>
<script src="_static/copybutton.js?v=f281be69"></script>
<script src="_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
<script>let toggleHintShow = 'Click to show';</script>
<script>let toggleHintHide = 'Click to hide';</script>
<script>let toggleOpenOnPrint = 'true';</script>
<script src="_static/togglebutton.js?v=4a39c7ea"></script>
<script>var togglebuttonSelector = '.toggle, .admonition.dropdown';</script>
<script src="_static/design-tabs.js?v=f930bc37"></script>
<script>const THEBE_JS_URL = "https://unpkg.com/thebe@0.8.2/lib/index.js"; const thebe_selector = ".thebe,.cell"; const thebe_selector_input = "pre"; const thebe_selector_output = ".output, .cell_output"</script>
<script async="async" src="_static/sphinx-thebe.js?v=c100c467"></script>
<script>var togglebuttonSelector = '.toggle, .admonition.dropdown';</script>
<script>const THEBE_JS_URL = "https://unpkg.com/thebe@0.8.2/lib/index.js"; const thebe_selector = ".thebe,.cell"; const thebe_selector_input = "pre"; const thebe_selector_output = ".output, .cell_output"</script>
<script>DOCUMENTATION_OPTIONS.pagename = 'instructor-guide';</script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Module: Setup" href="chapters/01-setup.html" />
<link rel="prev" title="Classroom Use Overview" href="usage-paths/classroom-use.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
</head>
<body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="">
<div id="pst-skip-link" class="skip-link d-print-none"><a href="#main-content">Skip to main content</a></div>
<div id="pst-scroll-pixel-helper"></div>
<button type="button" class="btn rounded-pill" id="pst-back-to-top">
<i class="fa-solid fa-arrow-up"></i>Back to top</button>
<input type="checkbox"
class="sidebar-toggle"
id="pst-primary-sidebar-checkbox"/>
<label class="overlay overlay-primary" for="pst-primary-sidebar-checkbox"></label>
<input type="checkbox"
class="sidebar-toggle"
id="pst-secondary-sidebar-checkbox"/>
<label class="overlay overlay-secondary" for="pst-secondary-sidebar-checkbox"></label>
<div class="search-button__wrapper">
<div class="search-button__overlay"></div>
<div class="search-button__search-container">
<form class="bd-search d-flex align-items-center"
action="search.html"
method="get">
<i class="fa-solid fa-magnifying-glass"></i>
<input type="search"
class="form-control"
name="q"
id="search-input"
placeholder="Search this book..."
aria-label="Search this book..."
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false"/>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
</form></div>
</div>
<div class="pst-async-banner-revealer d-none">
<aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside>
</div>
<header class="bd-header navbar navbar-expand-lg bd-navbar d-print-none">
</header>
<div class="bd-container">
<div class="bd-container__inner bd-page-width">
<div class="bd-sidebar-primary bd-sidebar">
<div class="sidebar-header-items sidebar-primary__section">
</div>
<div class="sidebar-primary-items__start sidebar-primary__section">
<div class="sidebar-primary-item">
<a class="navbar-brand logo" href="intro.html">
<img src="_static/logo.png" class="logo__image only-light" alt="TinyTorch - Home"/>
<script>document.write(`<img src="_static/logo.png" class="logo__image only-dark" alt="TinyTorch - Home"/>`);</script>
</a></div>
<div class="sidebar-primary-item">
<script>
document.write(`
<button class="btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
`);
</script></div>
<div class="sidebar-primary-item"><nav class="bd-links bd-docs-nav" aria-label="Main">
<div class="bd-toc-item navbar-nav active">
<ul class="nav bd-sidenav bd-sidenav__home-link">
<li class="toctree-l1">
<a class="reference internal" href="intro.html">
TinyTorch: Build Your Own ML Framework from First Principles
</a>
</li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Usage Paths</span></p>
<ul class="current nav bd-sidenav">
<li class="toctree-l1"><a class="reference internal" href="usage-paths/quick-exploration.html">Quick Exploration</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage-paths/serious-development.html">Serious Development</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage-paths/classroom-use.html">Classroom Use</a></li>
<li class="toctree-l1 current active"><a class="current reference internal" href="#">Instructor Guide</a></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Foundation</span></p>
<ul class="nav bd-sidenav">
<li class="toctree-l1"><a class="reference internal" href="chapters/01-setup.html">0. Setup</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/02-tensor.html">1. Tensors</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/03-activations.html">2. Activations</a></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Building Blocks</span></p>
<ul class="nav bd-sidenav">
<li class="toctree-l1"><a class="reference internal" href="chapters/04-layers.html">3. Layers</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/05-dense.html">4. Dense</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/06-spatial.html">5. Spatial</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/07-attention.html">6. Attention</a></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Training Systems</span></p>
<ul class="nav bd-sidenav">
<li class="toctree-l1"><a class="reference internal" href="chapters/08-dataloader.html">7. DataLoader</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/09-autograd.html">8. Autograd</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/10-optimizers.html">9. Optimizers</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/11-training.html">10. Training</a></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Inference &amp; Serving</span></p>
<ul class="nav bd-sidenav">
<li class="toctree-l1"><a class="reference internal" href="chapters/12-compression.html">11. Compression</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/13-kernels.html">12. Kernels</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/14-benchmarking.html">13. Benchmarking</a></li>
<li class="toctree-l1"><a class="reference internal" href="chapters/15-mlops.html">14. MLOps</a></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Language Models</span></p>
<ul class="nav bd-sidenav">
<li class="toctree-l1"><a class="reference internal" href="chapters/16-tinygpt.html">15. TinyGPT</a></li>
</ul>
<p aria-level="2" class="caption" role="heading"><span class="caption-text">Additional Resources</span></p>
<ul class="nav bd-sidenav">
<li class="toctree-l1"><a class="reference internal" href="vision.html">TinyTorch Vision</a></li>
<li class="toctree-l1"><a class="reference internal" href="kiss-principle.html">KISS Principle</a></li>
<li class="toctree-l1"><a class="reference internal" href="checkpoint-system.html">Checkpoint System</a></li>
<li class="toctree-l1"><a class="reference internal" href="testing-framework.html">Testing Framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="resources.html">Learning Resources</a></li>
</ul>
</div>
</nav></div>
</div>
<div class="sidebar-primary-items__end sidebar-primary__section">
</div>
<div id="rtd-footer-container"></div>
</div>
<main id="main-content" class="bd-main" role="main">
<div class="sbt-scroll-pixel-helper"></div>
<div class="bd-content">
<div class="bd-article-container">
<div class="bd-header-article d-print-none">
<div class="header-article-items header-article__inner">
<div class="header-article-items__start">
<div class="header-article-item"><button class="sidebar-toggle primary-toggle btn btn-sm" title="Toggle primary sidebar" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="fa-solid fa-bars"></span>
</button></div>
</div>
<div class="header-article-items__end">
<div class="header-article-item">
<div class="article-header-buttons">
<div class="dropdown dropdown-source-buttons">
<button class="btn dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Source repositories">
<i class="fab fa-github"></i>
</button>
<ul class="dropdown-menu">
<li><a href="https://github.com/mlsysbook/TinyTorch" target="_blank"
class="btn btn-sm btn-source-repository-button dropdown-item"
title="Source repository"
data-bs-placement="left" data-bs-toggle="tooltip"
>
<span class="btn__icon-container">
<i class="fab fa-github"></i>
</span>
<span class="btn__text-container">Repository</span>
</a>
</li>
<li><a href="https://github.com/mlsysbook/TinyTorch/edit/main/book/instructor-guide.md" target="_blank"
class="btn btn-sm btn-source-edit-button dropdown-item"
title="Suggest edit"
data-bs-placement="left" data-bs-toggle="tooltip"
>
<span class="btn__icon-container">
<i class="fas fa-pencil-alt"></i>
</span>
<span class="btn__text-container">Suggest edit</span>
</a>
</li>
<li><a href="https://github.com/mlsysbook/TinyTorch/issues/new?title=Issue%20on%20page%20%2Finstructor-guide.html&body=Your%20issue%20content%20here." target="_blank"
class="btn btn-sm btn-source-issues-button dropdown-item"
title="Open an issue"
data-bs-placement="left" data-bs-toggle="tooltip"
>
<span class="btn__icon-container">
<i class="fas fa-lightbulb"></i>
</span>
<span class="btn__text-container">Open issue</span>
</a>
</li>
</ul>
</div>
<div class="dropdown dropdown-download-buttons">
<button class="btn dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Download this page">
<i class="fas fa-download"></i>
</button>
<ul class="dropdown-menu">
<li><a href="_sources/instructor-guide.md" target="_blank"
class="btn btn-sm btn-download-source-button dropdown-item"
title="Download source file"
data-bs-placement="left" data-bs-toggle="tooltip"
>
<span class="btn__icon-container">
<i class="fas fa-file"></i>
</span>
<span class="btn__text-container">.md</span>
</a>
</li>
<li>
<button onclick="window.print()"
class="btn btn-sm btn-download-pdf-button dropdown-item"
title="Print to PDF"
data-bs-placement="left" data-bs-toggle="tooltip"
>
<span class="btn__icon-container">
<i class="fas fa-file-pdf"></i>
</span>
<span class="btn__text-container">.pdf</span>
</button>
</li>
</ul>
</div>
<button onclick="toggleFullScreen()"
class="btn btn-sm btn-fullscreen-button"
title="Fullscreen mode"
data-bs-placement="bottom" data-bs-toggle="tooltip"
>
<span class="btn__icon-container">
<i class="fas fa-expand"></i>
</span>
</button>
<script>
document.write(`
<button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light"></i>
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark"></i>
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto"></i>
</button>
`);
</script>
<script>
document.write(`
<button class="btn btn-sm pst-navbar-icon search-button search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass fa-lg"></i>
</button>
`);
</script>
<button class="sidebar-toggle secondary-toggle btn btn-sm" title="Toggle secondary sidebar" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="fa-solid fa-list"></span>
</button>
</div></div>
</div>
</div>
</div>
<div id="jb-print-docs-body" class="onlyprint">
<h1>👨‍🏫 Instructor Guide: NBGrader + TinyTorch</h1>
<!-- Table of contents -->
<div id="print-main-content">
<div id="jb-print-toc">
<div>
<h2> Contents </h2>
</div>
<nav aria-label="Page">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#the-complete-instructor-journey">🎯 The Complete Instructor Journey</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#prerequisites">📋 Prerequisites</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-1-initial-setup-one-time">🚀 Phase 1: Initial Setup (One-Time)</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-1-clone-and-setup-repository">Step 1: Clone and Setup Repository</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-2-verify-installation">Step 2: Verify Installation</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-3-initialize-nbgrader-environment">Step 3: Initialize NBGrader Environment</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-4-verify-complete-setup">Step 4: Verify Complete Setup</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-2-course-preparation">🎓 Phase 2: Course Preparation</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#understanding-the-tinytorch-module-structure">Understanding the TinyTorch Module Structure</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#course-planning-recommendations">Course Planning Recommendations</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-3-assignment-management">📝 Phase 3: Assignment Management</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#creating-student-assignments">Creating Student Assignments</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#releasing-assignments-to-students">Releasing Assignments to Students</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#monitoring-assignment-status">Monitoring Assignment Status</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-4-grading-workflow">📊 Phase 4: Grading Workflow</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#collecting-student-submissions">Collecting Student Submissions</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#auto-grading-process">Auto-Grading Process</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#generating-student-feedback">Generating Student Feedback</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#exporting-grades">Exporting Grades</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-5-common-workflows">🔧 Phase 5: Common Workflows</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#weekly-assignment-routine">Weekly Assignment Routine</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mid-semester-status-check">Mid-Semester Status Check</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#end-of-semester-workflow">End-of-Semester Workflow</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-6-troubleshooting-tips">🛠️ Phase 6: Troubleshooting &amp; Tips</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#common-issues">Common Issues</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#best-practices">Best Practices</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#advanced-configuration">Advanced Configuration</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-7-student-guidance">📚 Phase 7: Student Guidance</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#what-to-tell-your-students">What to Tell Your Students</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#quick-reference-commands">🎯 Quick Reference Commands</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#essential-daily-commands">Essential Daily Commands</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#batch-operations">Batch Operations</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#system-maintenance">System Maintenance</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#getting-help">📞 Getting Help</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#success-metrics">🎉 Success Metrics</a></li>
</ul>
</nav>
</div>
</div>
</div>
<div id="searchbox"></div>
<article class="bd-article">
<section id="instructor-guide-nbgrader-tinytorch">
<h1>👨‍🏫 Instructor Guide: NBGrader + TinyTorch<a class="headerlink" href="#instructor-guide-nbgrader-tinytorch" title="Link to this heading">#</a></h1>
<p><strong>Complete workflow for instructors and TAs using TinyTorch with automated grading</strong></p>
<hr class="docutils" />
<section id="the-complete-instructor-journey">
<h2>🎯 The Complete Instructor Journey<a class="headerlink" href="#the-complete-instructor-journey" title="Link to this heading">#</a></h2>
<p>This guide walks you through everything you need to know to successfully run a TinyTorch course with automated grading, from initial setup to semester completion.</p>
</section>
<hr class="docutils" />
<section id="prerequisites">
<h2>📋 Prerequisites<a class="headerlink" href="#prerequisites" title="Link to this heading">#</a></h2>
<p>Before you begin, ensure you have:</p>
<ul class="simple">
<li><p><strong>Python 3.8+</strong> installed on your system</p></li>
<li><p><strong>Git</strong> for version control</p></li>
<li><p><strong>Terminal/Command Line</strong> access</p></li>
<li><p><strong>Basic familiarity</strong> with Jupyter notebooks</p></li>
</ul>
<p><strong>Time Investment:</strong> ~30 minutes for initial setup, then 5-10 minutes per assignment</p>
</section>
<hr class="docutils" />
<section id="phase-1-initial-setup-one-time">
<h2>🚀 Phase 1: Initial Setup (One-Time)<a class="headerlink" href="#phase-1-initial-setup-one-time" title="Link to this heading">#</a></h2>
<section id="step-1-clone-and-setup-repository">
<h3>Step 1: Clone and Setup Repository<a class="headerlink" href="#step-1-clone-and-setup-repository" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Clone the TinyTorch repository</span>
git<span class="w"> </span>clone<span class="w"> </span>https://github.com/your-org/TinyTorch.git
<span class="nb">cd</span><span class="w"> </span>TinyTorch
<span class="c1"># Create and activate virtual environment</span>
python3<span class="w"> </span>-m<span class="w"> </span>venv<span class="w"> </span>.venv
<span class="nb">source</span><span class="w"> </span>.venv/bin/activate<span class="w"> </span><span class="c1"># On Windows: .venv\Scripts\activate</span>
<span class="c1"># Install all dependencies</span>
pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
pip<span class="w"> </span>install<span class="w"> </span>nbgrader<span class="w"> </span>jupyter<span class="w"> </span>jupytext<span class="w"> </span>rich
</pre></div>
</div>
</section>
<section id="step-2-verify-installation">
<h3>Step 2: Verify Installation<a class="headerlink" href="#step-2-verify-installation" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Test that everything is working</span>
./bin/tito<span class="w"> </span>system<span class="w"> </span>doctor
<span class="c1"># Expected output:</span>
<span class="c1"># ✅ Python 3.x.x</span>
<span class="c1"># ✅ Virtual environment active</span>
<span class="c1"># ✅ All dependencies installed</span>
<span class="c1"># ✅ TinyTorch CLI ready</span>
</pre></div>
</div>
</section>
<section id="step-3-initialize-nbgrader-environment">
<h3>Step 3: Initialize NBGrader Environment<a class="headerlink" href="#step-3-initialize-nbgrader-environment" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Initialize the grading infrastructure</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>init
<span class="c1"># Expected output:</span>
<span class="c1"># ✅ NBGrader version: 0.9.5</span>
<span class="c1"># 📁 Created directory: assignments</span>
<span class="c1"># ✅ NBGrader database initialized</span>
<span class="c1"># 🎉 NBGrader environment initialized successfully!</span>
</pre></div>
</div>
</section>
<section id="step-4-verify-complete-setup">
<h3>Step 4: Verify Complete Setup<a class="headerlink" href="#step-4-verify-complete-setup" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Check system status</span>
./bin/tito<span class="w"> </span>module<span class="w"> </span>status<span class="w"> </span>--comprehensive
<span class="c1"># Should show:</span>
<span class="c1"># 🐍 Environment Health: All ✅ green</span>
<span class="c1"># 📊 Module Status: Overview of 17 modules</span>
<span class="c1"># 🎯 Priority Actions: Any setup issues to fix</span>
</pre></div>
</div>
</section>
</section>
<hr class="docutils" />
<section id="phase-2-course-preparation">
<h2>🎓 Phase 2: Course Preparation<a class="headerlink" href="#phase-2-course-preparation" title="Link to this heading">#</a></h2>
<section id="understanding-the-tinytorch-module-structure">
<h3>Understanding the TinyTorch Module Structure<a class="headerlink" href="#understanding-the-tinytorch-module-structure" title="Link to this heading">#</a></h3>
<p>TinyTorch has <strong>17 progressive modules</strong>:</p>
<p><strong>Foundation (Modules 00-02):</strong></p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">00_introduction</span></code> - Visual system overview and dependencies</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">01_setup</span></code> - Development environment and CLI workflow</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">02_tensor</span></code> - Multi-dimensional arrays and operations</p></li>
</ul>
<p><strong>Building Blocks (Modules 03-07):</strong></p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">03_activations</span></code> - Mathematical functions and nonlinearity</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">04_layers</span></code> - Neural network layer abstractions</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">05_dense</span></code> - Fully connected layers and matrix operations</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">06_spatial</span></code> - Convolutional operations and computer vision</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">07_attention</span></code> - Self-attention and transformer mechanisms</p></li>
</ul>
<p><strong>Training Systems (Modules 08-11):</strong></p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">08_dataloader</span></code> - Data pipeline and CIFAR-10 integration</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">09_autograd</span></code> - Automatic differentiation engine</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">10_optimizers</span></code> - SGD, Adam, and learning rate scheduling</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">11_training</span></code> - Training loops, loss functions, and metrics</p></li>
</ul>
<p><strong>Production &amp; Performance (Modules 12-16):</strong></p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">12_compression</span></code> - Model pruning and quantization</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">13_kernels</span></code> - Custom operations and hardware optimization</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">14_benchmarking</span></code> - MLPerf-style evaluation and profiling</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">15_mlops</span></code> - Production deployment and monitoring</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">16_capstone</span></code> - Final integration project</p></li>
</ul>
</section>
<section id="course-planning-recommendations">
<h3>Course Planning Recommendations<a class="headerlink" href="#course-planning-recommendations" title="Link to this heading">#</a></h3>
<p><strong>📅 Semester Planning (14-16 weeks):</strong></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Week</span> <span class="mi">1</span><span class="p">:</span> <span class="mi">00</span><span class="n">_introduction</span> <span class="o">+</span> <span class="mi">01</span><span class="n">_setup</span>
<span class="n">Week</span> <span class="mi">2</span><span class="p">:</span> <span class="mi">02</span><span class="n">_tensor</span>
<span class="n">Week</span> <span class="mi">3</span><span class="p">:</span> <span class="mi">03</span><span class="n">_activations</span>
<span class="n">Week</span> <span class="mi">4</span><span class="p">:</span> <span class="mi">04</span><span class="n">_layers</span>
<span class="n">Week</span> <span class="mi">5</span><span class="p">:</span> <span class="mi">05</span><span class="n">_dense</span>
<span class="n">Week</span> <span class="mi">6</span><span class="p">:</span> <span class="mi">06</span><span class="n">_spatial</span>
<span class="n">Week</span> <span class="mi">7</span><span class="p">:</span> <span class="mi">07</span><span class="n">_attention</span>
<span class="n">Week</span> <span class="mi">8</span><span class="p">:</span> <span class="n">Midterm</span> <span class="o">/</span> <span class="n">Review</span>
<span class="n">Week</span> <span class="mi">9</span><span class="p">:</span> <span class="mi">08</span><span class="n">_dataloader</span>
<span class="n">Week</span> <span class="mi">10</span><span class="p">:</span> <span class="mi">09</span><span class="n">_autograd</span>
<span class="n">Week</span> <span class="mi">11</span><span class="p">:</span> <span class="mi">10</span><span class="n">_optimizers</span>
<span class="n">Week</span> <span class="mi">12</span><span class="p">:</span> <span class="mi">11</span><span class="n">_training</span>
<span class="n">Week</span> <span class="mi">13</span><span class="p">:</span> <span class="mi">12</span><span class="n">_compression</span> <span class="o">+</span> <span class="mi">13</span><span class="n">_kernels</span>
<span class="n">Week</span> <span class="mi">14</span><span class="p">:</span> <span class="mi">14</span><span class="n">_benchmarking</span> <span class="o">+</span> <span class="mi">15</span><span class="n">_mlops</span>
<span class="n">Week</span> <span class="mi">15</span><span class="p">:</span> <span class="mi">16</span><span class="n">_capstone</span>
<span class="n">Week</span> <span class="mi">16</span><span class="p">:</span> <span class="n">Final</span> <span class="n">presentations</span>
</pre></div>
</div>
</section>
</section>
<hr class="docutils" />
<section id="phase-3-assignment-management">
<h2>📝 Phase 3: Assignment Management<a class="headerlink" href="#phase-3-assignment-management" title="Link to this heading">#</a></h2>
<section id="creating-student-assignments">
<h3>Creating Student Assignments<a class="headerlink" href="#creating-student-assignments" title="Link to this heading">#</a></h3>
<p><strong>For Individual Modules:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Generate assignment from TinyTorch module</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>generate<span class="w"> </span>01_setup
<span class="c1"># This creates:</span>
<span class="c1"># assignments/source/01_setup/01_setup.ipynb (instructor version)</span>
</pre></div>
</div>
<p><strong>For Multiple Modules:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Generate first 4 modules</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>generate<span class="w"> </span>--range<span class="w"> </span><span class="m">01</span>-04
<span class="c1"># Or generate all modules at once (start of semester)</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>generate<span class="w"> </span>--all
</pre></div>
</div>
<p><strong>What happens during generation:</strong></p>
<ol class="arabic simple">
<li><p>Reads the modules <code class="docutils literal notranslate"><span class="pre">.py</span></code> file from <code class="docutils literal notranslate"><span class="pre">modules/source/XX_module/</span></code></p></li>
<li><p>Converts to Jupyter notebook using jupytext</p></li>
<li><p>Processes with NBGrader to create student version</p></li>
<li><p>Removes instructor solutions, adds <code class="docutils literal notranslate"><span class="pre">#</span> <span class="pre">YOUR</span> <span class="pre">CODE</span> <span class="pre">HERE</span></code> stubs</p></li>
<li><p>Creates assignments in <code class="docutils literal notranslate"><span class="pre">assignments/source/XX_module/</span></code></p></li>
</ol>
</section>
<section id="releasing-assignments-to-students">
<h3>Releasing Assignments to Students<a class="headerlink" href="#releasing-assignments-to-students" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Release individual assignment</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>release<span class="w"> </span>01_setup
<span class="c1"># Release multiple assignments</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>release<span class="w"> </span>--range<span class="w"> </span><span class="m">01</span>-04
<span class="c1"># This creates:</span>
<span class="c1"># assignments/release/01_setup/01_setup.ipynb (student version)</span>
</pre></div>
</div>
<p><strong>Distribution to Students:</strong></p>
<ul class="simple">
<li><p>Upload <code class="docutils literal notranslate"><span class="pre">assignments/release/XX_module/XX_module.ipynb</span></code> to your LMS</p></li>
<li><p>Or provide direct access to the <code class="docutils literal notranslate"><span class="pre">assignments/release/</span></code> directory</p></li>
<li><p>Students download and work on their local copies</p></li>
</ul>
</section>
<section id="monitoring-assignment-status">
<h3>Monitoring Assignment Status<a class="headerlink" href="#monitoring-assignment-status" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Check what assignments exist</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>status
<span class="c1"># Example output:</span>
<span class="c1"># 📚 Source assignments: 4</span>
<span class="c1"># - 01_setup, 02_tensor, 03_activations, 04_layers</span>
<span class="c1"># 🚀 Released assignments: 2 </span>
<span class="c1"># - 01_setup, 02_tensor</span>
<span class="c1"># 📥 Submitted assignments: 1</span>
<span class="c1"># - 01_setup</span>
<span class="c1"># 🎯 Graded assignments: 0</span>
</pre></div>
</div>
</section>
</section>
<hr class="docutils" />
<section id="phase-4-grading-workflow">
<h2>📊 Phase 4: Grading Workflow<a class="headerlink" href="#phase-4-grading-workflow" title="Link to this heading">#</a></h2>
<section id="collecting-student-submissions">
<h3>Collecting Student Submissions<a class="headerlink" href="#collecting-student-submissions" title="Link to this heading">#</a></h3>
<p><strong>Manual Collection (Most Common):</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Students submit via LMS, you download to:</span>
mkdir<span class="w"> </span>-p<span class="w"> </span>assignments/submitted/01_setup/student_name/
<span class="c1"># Place student notebooks in: assignments/submitted/01_setup/student_name/01_setup.ipynb</span>
</pre></div>
</div>
<p><strong>NBGrader Exchange (If Using Shared Server):</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Collect all submissions for an assignment</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>collect<span class="w"> </span>01_setup
</pre></div>
</div>
</section>
<section id="auto-grading-process">
<h3>Auto-Grading Process<a class="headerlink" href="#auto-grading-process" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Auto-grade specific assignment</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>autograde<span class="w"> </span>01_setup
<span class="c1"># Auto-grade all collected assignments</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>autograde<span class="w"> </span>--all
<span class="c1"># What happens:</span>
<span class="c1"># - Executes all student code</span>
<span class="c1"># - Runs hidden test cells </span>
<span class="c1"># - Checks assert statements</span>
<span class="c1"># - Records pass/fail for each test</span>
<span class="c1"># - Creates detailed grading reports</span>
</pre></div>
</div>
</section>
<section id="generating-student-feedback">
<h3>Generating Student Feedback<a class="headerlink" href="#generating-student-feedback" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Generate feedback for specific assignment</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>feedback<span class="w"> </span>01_setup
<span class="c1"># Generate feedback for all assignments</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>feedback<span class="w"> </span>--all
<span class="c1"># Creates:</span>
<span class="c1"># assignments/feedback/01_setup/student_name/01_setup.html</span>
</pre></div>
</div>
</section>
<section id="exporting-grades">
<h3>Exporting Grades<a class="headerlink" href="#exporting-grades" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Export grades to CSV</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>report<span class="w"> </span>--format<span class="w"> </span>csv
<span class="c1"># Creates: grades.csv with all student scores</span>
</pre></div>
</div>
</section>
</section>
<hr class="docutils" />
<section id="phase-5-common-workflows">
<h2>🔧 Phase 5: Common Workflows<a class="headerlink" href="#phase-5-common-workflows" title="Link to this heading">#</a></h2>
<section id="weekly-assignment-routine">
<h3>Weekly Assignment Routine<a class="headerlink" href="#weekly-assignment-routine" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Monday: Generate and release new assignment</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>generate<span class="w"> </span>03_activations
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>release<span class="w"> </span>03_activations
<span class="c1"># Upload assignments/release/03_activations/03_activations.ipynb to LMS</span>
<span class="c1"># Announce assignment to students</span>
<span class="c1"># Friday: Collect submissions and grade</span>
<span class="c1"># (Download student submissions from LMS to assignments/submitted/)</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>autograde<span class="w"> </span>03_activations
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>feedback<span class="w"> </span>03_activations
<span class="c1"># Monday: Return graded assignments and feedback to students</span>
</pre></div>
</div>
</section>
<section id="mid-semester-status-check">
<h3>Mid-Semester Status Check<a class="headerlink" href="#mid-semester-status-check" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Comprehensive system status</span>
./bin/tito<span class="w"> </span>module<span class="w"> </span>status<span class="w"> </span>--comprehensive
<span class="c1"># Assignment analytics</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>analytics<span class="w"> </span>03_activations
<span class="c1"># Export current gradebook</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>report<span class="w"> </span>--format<span class="w"> </span>csv
</pre></div>
</div>
</section>
<section id="end-of-semester-workflow">
<h3>End-of-Semester Workflow<a class="headerlink" href="#end-of-semester-workflow" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Generate final gradebook</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>report<span class="w"> </span>--format<span class="w"> </span>csv
<span class="c1"># Archive all assignments and submissions</span>
tar<span class="w"> </span>-czf<span class="w"> </span>course_archive_fall2024.tar.gz<span class="w"> </span>assignments/<span class="w"> </span>gradebook.db
<span class="c1"># Clean up for next semester</span>
./bin/tito<span class="w"> </span>clean
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>init<span class="w"> </span><span class="c1"># Fresh start</span>
</pre></div>
</div>
</section>
</section>
<hr class="docutils" />
<section id="phase-6-troubleshooting-tips">
<h2>🛠️ Phase 6: Troubleshooting &amp; Tips<a class="headerlink" href="#phase-6-troubleshooting-tips" title="Link to this heading">#</a></h2>
<section id="common-issues">
<h3>Common Issues<a class="headerlink" href="#common-issues" title="Link to this heading">#</a></h3>
<p><strong>“Module not found” when generating:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Check available modules</span>
ls<span class="w"> </span>modules/source/
<span class="c1"># Use exact directory name</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>generate<span class="w"> </span>02_tensor<span class="w"> </span><span class="c1"># Not just &quot;tensor&quot;</span>
</pre></div>
</div>
<p><strong>“NBGrader validation failed”:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># This is expected for student notebooks (they have unimplemented functions)</span>
<span class="c1"># Validation failure = students need to implement the code</span>
</pre></div>
</div>
<p><strong>Environment issues:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Always activate virtual environment first</span>
<span class="nb">source</span><span class="w"> </span>.venv/bin/activate
<span class="c1"># Check environment health</span>
./bin/tito<span class="w"> </span>system<span class="w"> </span>doctor
</pre></div>
</div>
</section>
<section id="best-practices">
<h3>Best Practices<a class="headerlink" href="#best-practices" title="Link to this heading">#</a></h3>
<p><strong>📋 Assignment Preparation:</strong></p>
<ul class="simple">
<li><p>Generate all assignments at start of semester</p></li>
<li><p>Test each assignment yourself before releasing</p></li>
<li><p>Provide clear due dates and submission instructions</p></li>
</ul>
<p><strong>⏰ Grading Efficiency:</strong></p>
<ul class="simple">
<li><p>Set up consistent folder structure for submissions</p></li>
<li><p>Use batch grading commands (<code class="docutils literal notranslate"><span class="pre">--all</span></code> flags)</p></li>
<li><p>Review auto-graded results before finalizing</p></li>
</ul>
<p><strong>💡 Student Support:</strong></p>
<ul class="simple">
<li><p>Share <code class="docutils literal notranslate"><span class="pre">./bin/tito</span> <span class="pre">module</span> <span class="pre">status</span></code> command with students</p></li>
<li><p>Encourage testing with provided test functions</p></li>
<li><p>Provide clear error message interpretation</p></li>
</ul>
</section>
<section id="advanced-configuration">
<h3>Advanced Configuration<a class="headerlink" href="#advanced-configuration" title="Link to this heading">#</a></h3>
<p><strong>Customize point values in <code class="docutils literal notranslate"><span class="pre">nbgrader_config.py</span></code>:</strong></p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># Adjust timeout for long-running assignments</span>
<span class="n">c</span><span class="o">.</span><span class="n">ExecutePreprocessor</span><span class="o">.</span><span class="n">timeout</span> <span class="o">=</span> <span class="mi">300</span> <span class="c1"># 5 minutes per cell</span>
<span class="c1"># Customize solution stubs</span>
<span class="n">c</span><span class="o">.</span><span class="n">ClearSolutions</span><span class="o">.</span><span class="n">code_stub</span> <span class="o">=</span> <span class="p">{</span>
<span class="s2">&quot;python&quot;</span><span class="p">:</span> <span class="s2">&quot;# YOUR IMPLEMENTATION HERE</span><span class="se">\n</span><span class="s2">raise NotImplementedError()&quot;</span>
<span class="p">}</span>
</pre></div>
</div>
</section>
</section>
<hr class="docutils" />
<section id="phase-7-student-guidance">
<h2>📚 Phase 7: Student Guidance<a class="headerlink" href="#phase-7-student-guidance" title="Link to this heading">#</a></h2>
<section id="what-to-tell-your-students">
<h3>What to Tell Your Students<a class="headerlink" href="#what-to-tell-your-students" title="Link to this heading">#</a></h3>
<p><strong>Setup Instructions for Students:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Students should run:</span>
git<span class="w"> </span>clone<span class="w"> </span><span class="o">[</span>your-course-repo<span class="o">]</span>
<span class="nb">cd</span><span class="w"> </span>TinyTorch
python3<span class="w"> </span>-m<span class="w"> </span>venv<span class="w"> </span>.venv
<span class="nb">source</span><span class="w"> </span>.venv/bin/activate
pip<span class="w"> </span>install<span class="w"> </span>-r<span class="w"> </span>requirements.txt
<span class="c1"># Test their setup:</span>
./bin/tito<span class="w"> </span>system<span class="w"> </span>doctor
</pre></div>
</div>
<p><strong>Working on Assignments:</strong></p>
<div class="highlight-markdown notranslate"><div class="highlight"><pre><span></span><span class="k">1.</span> Download the assignment notebook from [LMS]
<span class="k">2.</span> Open in Jupyter: <span class="sb">`jupyter lab assignment.ipynb`</span>
<span class="k">3.</span> Look for <span class="sb">`# YOUR CODE HERE`</span> markers
<span class="k">4.</span> Implement the required functions
<span class="k">5.</span> Test your work with provided test cells
<span class="k">6.</span> Submit the completed notebook
</pre></div>
</div>
<p><strong>Debugging Help:</strong></p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Students can check their module status</span>
./bin/tito<span class="w"> </span>module<span class="w"> </span>status
<span class="c1"># Get help with specific modules</span>
./bin/tito<span class="w"> </span>module<span class="w"> </span>info<span class="w"> </span>02_tensor
</pre></div>
</div>
</section>
</section>
<hr class="docutils" />
<section id="quick-reference-commands">
<h2>🎯 Quick Reference Commands<a class="headerlink" href="#quick-reference-commands" title="Link to this heading">#</a></h2>
<section id="essential-daily-commands">
<h3>Essential Daily Commands<a class="headerlink" href="#essential-daily-commands" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Check overall system status</span>
./bin/tito<span class="w"> </span>module<span class="w"> </span>status<span class="w"> </span>--comprehensive
<span class="c1"># Assignment lifecycle</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>generate<span class="w"> </span>MODULE_NAME
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>release<span class="w"> </span>MODULE_NAME<span class="w"> </span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>autograde<span class="w"> </span>MODULE_NAME
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>feedback<span class="w"> </span>MODULE_NAME
<span class="c1"># Monitor progress</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>status
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>analytics<span class="w"> </span>MODULE_NAME
</pre></div>
</div>
</section>
<section id="batch-operations">
<h3>Batch Operations<a class="headerlink" href="#batch-operations" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Work with multiple modules</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>generate<span class="w"> </span>--range<span class="w"> </span><span class="m">01</span>-04
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>release<span class="w"> </span>--all
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>autograde<span class="w"> </span>--all
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>feedback<span class="w"> </span>--all
</pre></div>
</div>
</section>
<section id="system-maintenance">
<h3>System Maintenance<a class="headerlink" href="#system-maintenance" title="Link to this heading">#</a></h3>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Environment health</span>
./bin/tito<span class="w"> </span>system<span class="w"> </span>doctor
<span class="c1"># Clean temporary files </span>
./bin/tito<span class="w"> </span>clean
<span class="c1"># Export final grades</span>
./bin/tito<span class="w"> </span>nbgrader<span class="w"> </span>report<span class="w"> </span>--format<span class="w"> </span>csv
</pre></div>
</div>
</section>
</section>
<hr class="docutils" />
<section id="getting-help">
<h2>📞 Getting Help<a class="headerlink" href="#getting-help" title="Link to this heading">#</a></h2>
<p><strong>If you encounter issues:</strong></p>
<ol class="arabic simple">
<li><p><strong>Check system status</strong>: <code class="docutils literal notranslate"><span class="pre">./bin/tito</span> <span class="pre">system</span> <span class="pre">doctor</span></code></p></li>
<li><p><strong>Review logs</strong>: Check output messages for specific errors</p></li>
<li><p><strong>Consult documentation</strong>: This guide covers 95% of common scenarios</p></li>
<li><p><strong>Community support</strong>: <a class="reference external" href="https://github.com/your-org/TinyTorch/issues">GitHub Issues</a></p></li>
</ol>
<p><strong>For urgent instructor support:</strong></p>
<ul class="simple">
<li><p>Create detailed issue with error messages</p></li>
<li><p>Include output of <code class="docutils literal notranslate"><span class="pre">./bin/tito</span> <span class="pre">module</span> <span class="pre">status</span> <span class="pre">--comprehensive</span></code></p></li>
<li><p>Specify which assignment and step is failing</p></li>
</ul>
</section>
<hr class="docutils" />
<section id="success-metrics">
<h2>🎉 Success Metrics<a class="headerlink" href="#success-metrics" title="Link to this heading">#</a></h2>
<p><strong>Youll know youre successful when:</strong></p>
<ul class="simple">
<li><p>✅ Students can download and run assignments without setup issues</p></li>
<li><p>✅ Auto-grading provides consistent, fair evaluation</p></li>
<li><p>✅ Weekly assignment workflow takes &lt;10 minutes</p></li>
<li><p>✅ Students build a complete ML framework by semester end</p></li>
<li><p>✅ You have detailed analytics on student progress and common issues</p></li>
</ul>
<p><strong>Ready to run the most comprehensive ML systems course your students will ever take!</strong> 🚀</p>
<hr class="docutils" />
<p><em>This guide covers the complete instructor journey from setup to course completion. For specific technical details, see the individual command documentation with <code class="docutils literal notranslate"><span class="pre">./bin/tito</span> <span class="pre">--help</span></code>.</em></p>
</section>
</section>
<script type="text/x-thebe-config">
{
requestKernel: true,
binderOptions: {
repo: "binder-examples/jupyter-stacks-datascience",
ref: "master",
},
codeMirrorConfig: {
theme: "abcdef",
mode: "python"
},
kernelOptions: {
name: "python3",
path: "./."
},
predefinedOutput: true
}
</script>
<script>kernelName = 'python3'</script>
</article>
<footer class="prev-next-footer d-print-none">
<div class="prev-next-area">
<a class="left-prev"
href="usage-paths/classroom-use.html"
title="previous page">
<i class="fa-solid fa-angle-left"></i>
<div class="prev-next-info">
<p class="prev-next-subtitle">previous</p>
<p class="prev-next-title">Classroom Use Overview</p>
</div>
</a>
<a class="right-next"
href="chapters/01-setup.html"
title="next page">
<div class="prev-next-info">
<p class="prev-next-subtitle">next</p>
<p class="prev-next-title">Module: Setup</p>
</div>
<i class="fa-solid fa-angle-right"></i>
</a>
</div>
</footer>
</div>
<div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
<div class="sidebar-secondary-item">
<div class="page-toc tocsection onthispage">
<i class="fa-solid fa-list"></i> Contents
</div>
<nav class="bd-toc-nav page-toc">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#the-complete-instructor-journey">🎯 The Complete Instructor Journey</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#prerequisites">📋 Prerequisites</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-1-initial-setup-one-time">🚀 Phase 1: Initial Setup (One-Time)</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-1-clone-and-setup-repository">Step 1: Clone and Setup Repository</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-2-verify-installation">Step 2: Verify Installation</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-3-initialize-nbgrader-environment">Step 3: Initialize NBGrader Environment</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-4-verify-complete-setup">Step 4: Verify Complete Setup</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-2-course-preparation">🎓 Phase 2: Course Preparation</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#understanding-the-tinytorch-module-structure">Understanding the TinyTorch Module Structure</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#course-planning-recommendations">Course Planning Recommendations</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-3-assignment-management">📝 Phase 3: Assignment Management</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#creating-student-assignments">Creating Student Assignments</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#releasing-assignments-to-students">Releasing Assignments to Students</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#monitoring-assignment-status">Monitoring Assignment Status</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-4-grading-workflow">📊 Phase 4: Grading Workflow</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#collecting-student-submissions">Collecting Student Submissions</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#auto-grading-process">Auto-Grading Process</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#generating-student-feedback">Generating Student Feedback</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#exporting-grades">Exporting Grades</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-5-common-workflows">🔧 Phase 5: Common Workflows</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#weekly-assignment-routine">Weekly Assignment Routine</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mid-semester-status-check">Mid-Semester Status Check</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#end-of-semester-workflow">End-of-Semester Workflow</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-6-troubleshooting-tips">🛠️ Phase 6: Troubleshooting &amp; Tips</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#common-issues">Common Issues</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#best-practices">Best Practices</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#advanced-configuration">Advanced Configuration</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#phase-7-student-guidance">📚 Phase 7: Student Guidance</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#what-to-tell-your-students">What to Tell Your Students</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#quick-reference-commands">🎯 Quick Reference Commands</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#essential-daily-commands">Essential Daily Commands</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#batch-operations">Batch Operations</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#system-maintenance">System Maintenance</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#getting-help">📞 Getting Help</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#success-metrics">🎉 Success Metrics</a></li>
</ul>
</nav></div>
</div></div>
</div>
<footer class="bd-footer-content">
<div class="bd-footer-content__inner container">
<div class="footer-item">
<p class="component-author">
By Prof. Vijay Janapa Reddi (Harvard University)
</p>
</div>
<div class="footer-item">
<p class="copyright">
© Copyright 2025.
<br/>
</p>
</div>
<div class="footer-item">
</div>
<div class="footer-item">
</div>
</div>
</footer>
</main>
</div>
</div>
<!-- Scripts loaded after <body> so the DOM is not blocked -->
<script src="_static/scripts/bootstrap.js?digest=dfe6caa3a7d634c4db9b"></script>
<script src="_static/scripts/pydata-sphinx-theme.js?digest=dfe6caa3a7d634c4db9b"></script>
<footer class="bd-footer">
</footer>
</body>
</html>