mirror of
https://github.com/MLSysBook/TinyTorch.git
synced 2026-06-02 16:45:59 -05:00
SINGLE SOURCE approach: One notebook serves both instructors and students 🎯 Key Features: - #|hide directive hides complete solutions from students - #|code-fold creates collapsible sections for details - #|export with educational metadata - Progressive learning: simple → ML-relevant complexity - Vector operations (add, dot product) as ML foundations - ML-aware SystemInfo class with library checking - Comprehensive testing for both student/instructor versions 🔄 Workflow: - Students see exercises with TODOs and hints - Instructors see complete solutions (hidden by default) - Package exports get instructor (complete) implementations - Single notebook maintains both audiences This establishes the pattern for all TinyTorch modules
Module 0: Setup
Learning Objectives
This module teaches you the TinyTorch development workflow. By the end, you'll be comfortable with:
- Writing code in Jupyter notebooks using nbdev conventions
- Exporting notebook code to Python modules
- Running tests and using the TinyTorch CLI
- Understanding the development rhythm you'll use for all modules
What You'll Build
A simple "Hello World" system that demonstrates the complete development cycle:
- Basic utility functions
- A simple
SystemInfoclass - Tests to verify everything works
- Experience with the full notebook → export → test workflow
Module Structure
modules/setup/
├── setup_dev.ipynb # 📓 Main development notebook
├── README.md # 📖 This guide
└── __init__.py # 📦 Module marker
Development Workflow
1. Work in the Notebook
cd modules/setup
jupyter lab setup_dev.ipynb
2. Export Your Code
python bin/tito.py sync
3. Test Your Implementation
python bin/tito.py test --module setup
4. Check Your Progress
python bin/tito.py info
Key Concepts
- nbdev workflow: Write in notebooks, export to Python
- Export directive: Use
#| exportto mark code for export - Module → Package mapping: This module exports to
tinytorch/core/utils.py - Teaching vs. Building: Learn by modules, build by function (see VISION.md)
- Test integration: Tests run automatically via CLI
- Module development: Each module is self-contained
Success Criteria
✅ All tests pass
✅ Code exports cleanly to tinytorch/core/utils.py
✅ You understand the development rhythm
✅ Ready to tackle the Tensor module
Next Module: Tensor - Core data structures and operations