Vijay Janapa Reddi b5cd73cfb8 🔄 Restore NBGrader workflow and clean up remaining artifacts
 NBGRADER WORKFLOW RESTORED:
- Restored assignments/ directory with 6 source assignments
- Restored nbgrader_config.py and gradebook.db
- Restored tito/commands/nbgrader.py for full NBGrader integration
- Restored bin/generate_student_notebooks.py

🧹 CLEANUP COMPLETED:
- Removed outdated tests/ directory (less comprehensive than module tests)
- Cleaned up Python cache files (__pycache__)
- Removed .pytest_cache directory
- Preserved all essential functionality

📚 DOCUMENTATION UPDATED:
- Added NBGrader workflow to INSTRUCTOR_GUIDE.md
- Updated README.md with NBGrader integration info
- Clear instructor workflow: Create solutions → Generate student versions → Release → Grade

 VERIFIED WORKING:
- tito nbgrader generate 00_setup 
- tito nbgrader status 
- tito system doctor 
- Module tests still pass 

🎯 INSTRUCTOR WORKFLOW NOW COMPLETE:
1. Create instructor solutions in modules/XX/XX_dev.py
2. Generate student versions: tito nbgrader generate XX
3. Release assignments: tito nbgrader release XX
4. Collect & grade: tito nbgrader collect XX && tito nbgrader autograde XX

Repository now properly supports full instructor → student workflow with NBGrader
?
2025-07-12 11:26:44 -04:00
2025-07-08 22:47:00 -04:00
2025-07-10 11:23:48 -04:00
2025-07-10 11:23:48 -04:00

Tiny🔥Torch: Build ML Systems from Scratch

A hands-on ML Systems course where students implement every component from scratch

Python 3.8+ License nbdev

Disclaimer: TinyTorch is an educational framework developed independently and is not affiliated with or endorsed by Meta or the PyTorch project.

Tiny🔥Torch is a complete ML Systems course where students build their own machine learning framework from scratch. Rather than just learning about ML systems, students implement every component and then use their own implementation to solve real problems.

🚀 Quick Start - Choose Your Path

👨‍🏫 For Instructors

📖 Instructor Guide - Complete teaching guide with verified modules, class structure, and commands

  • 6+ weeks of proven curriculum content
  • Verified module status and teaching sequence
  • Class session structure and troubleshooting guide

👨‍🎓 For Students

🔥 Student Guide - Complete learning path with clear workflow

  • Step-by-step progress tracker
  • 5-step daily workflow for each module
  • Getting help and study tips

🛠️ For Developers

📚 Documentation - Complete documentation including pedagogy and development guides

🎯 NBGrader Integration

Instructor Workflow: Create solutions → Generate student versions → Release → Collect → Grade

  • tito nbgrader generate XX - Create student assignments from instructor solutions
  • tito nbgrader status - Check assignment status
  • Full NBGrader integration for classroom management

🎯 What Students Build

By completing TinyTorch, students implement a complete ML framework:

  • Activation functions (ReLU, Sigmoid, Tanh)
  • Neural network layers (Dense, Conv2D)
  • Network architectures (Sequential, MLP)
  • Data loading (CIFAR-10 pipeline)
  • Development workflow (export, test, use)
  • 🚧 Tensor operations (arithmetic, broadcasting)
  • 🚧 Automatic differentiation (backpropagation)
  • 🚧 Training systems (optimizers, loss functions)

🎓 Learning Philosophy: Build → Use → Understand → Repeat

Students experience the complete cycle:

  1. Build: Implement ReLU() function from scratch
  2. Use: Import from tinytorch.core.activations import ReLU with their own code
  3. Understand: See how it works in real neural networks
  4. Repeat: Each module builds on previous implementations

📊 Current Status (Ready for Classroom Use)

Fully Working Modules (6+ weeks of content)

  • 00_setup (20/20 tests) - Development workflow & CLI tools
  • 02_activations (24/24 tests) - ReLU, Sigmoid, Tanh functions
  • 03_layers (17/22 tests) - Dense layers & neural building blocks
  • 04_networks (20/25 tests) - Sequential networks & MLPs
  • 06_dataloader (15/15 tests) - CIFAR-10 data loading
  • 05_cnn (2/2 tests) - Convolution operations

🚧 In Development

  • 01_tensor (22/33 tests) - Tensor arithmetic
  • 07-13 - Advanced features (autograd, training, MLOps)

🚀 Quick Commands

System Status

tito system info              # Check system and module status
tito system doctor            # Verify environment setup
tito module status            # View all module progress

Student Workflow

cd modules/00_setup           # Navigate to first module
jupyter lab setup_dev.py     # Open development notebook
python -m pytest tests/ -v   # Run tests
python bin/tito module export 00_setup  # Export to package

Verify Implementation

# Use student's own implementations
python -c "from tinytorch.core.utils import hello_tinytorch; hello_tinytorch()"
python -c "from tinytorch.core.activations import ReLU; print(ReLU()([-1, 0, 1]))"

🌟 Why Build from Scratch?

Even in the age of AI-generated code, building systems from scratch remains educationally essential:

  • Understanding vs. Using: AI shows what works, TinyTorch teaches why it works
  • Systems Literacy: Debugging real ML requires understanding abstractions like autograd and data loaders
  • AI-Augmented Engineers: The best engineers collaborate with AI tools, not rely on them blindly
  • Intentional Design: Systems thinking about memory, performance, and architecture can't be outsourced

🏗️ Repository Structure

TinyTorch/
├── README.md                 # This file - main entry point
├── docs/
│   ├── INSTRUCTOR_GUIDE.md   # Complete teaching guide
│   ├── STUDENT_GUIDE.md      # Complete learning path
│   └── [detailed docs]       # Pedagogy and development guides
├── modules/
│   ├── 00_setup/            # Development workflow
│   ├── 01_tensor/           # Tensor operations
│   ├── 02_activations/      # Activation functions
│   ├── 03_layers/           # Neural network layers
│   ├── 04_networks/         # Network architectures
│   ├── 05_cnn/              # Convolution operations
│   ├── 06_dataloader/       # Data loading pipeline
│   └── 07-13/               # Advanced features
├── tinytorch/               # The actual Python package
├── bin/                     # CLI tools (tito)
└── tests/                   # Integration tests

📚 Educational Approach

Real Data, Real Systems

  • Work with CIFAR-10 (10,000 real images)
  • Production-style code organization
  • Performance and engineering considerations

Immediate Feedback

  • Tests provide instant verification
  • Students see their code working quickly
  • Progress is visible and measurable

Progressive Complexity

  • Start simple (activation functions)
  • Build complexity gradually (layers → networks → training)
  • Connect to real ML engineering practices

🤝 Contributing

We welcome contributions! See our development documentation for guidelines on creating new modules or improving existing ones.

📄 License

Apache License 2.0 - see the LICENSE file for details.


🎉 Ready to Start?

Instructors

  1. Read the 📖 Instructor Guide
  2. Test your setup: tito system doctor
  3. Start with: cd modules/00_setup && jupyter lab setup_dev.py

Students

  1. Read the 🔥 Student Guide
  2. Begin with: cd modules/00_setup && jupyter lab setup_dev.py
  3. Follow the 5-step workflow for each module

🚀 TinyTorch is ready for classroom use with 6+ weeks of proven curriculum content!

Description
No description provided
Readme MIT 505 MiB
Languages
Python 84.5%
Jupyter Notebook 7.4%
HTML 2.8%
TeX 2.2%
JavaScript 1.3%
Other 1.8%