Files
TinyTorch/docs
Vijay Janapa Reddi 0c61394659 Implement comprehensive nbgrader integration for TinyTorch
- Add enhanced student notebook generator with dual-purpose content
- Create complete setup module with 100-point nbgrader allocation
- Implement nbgrader CLI commands (init, generate, release, collect, autograde, feedback)
- Add nbgrader configuration and directory structure
- Create comprehensive documentation and implementation plan
- Support both self-learning and formal assessment workflows
- Maintain backward compatibility with existing TinyTorch system

This implementation provides:
- Single source → multiple outputs (learning + assessment)
- Automated grading with 80% workload reduction
- Scalable course management for 100+ students
- Comprehensive analytics and reporting
- Production-ready nbgrader integration
2025-07-12 08:46:22 -04:00
..
2025-07-11 23:36:33 -04:00

📚 TinyTorch Documentation

Complete documentation for the TinyTorch ML Systems course.

🎯 Quick Navigation

For Students 👨‍🎓

For Developers 👨‍💻

For Instructors 👨‍🏫

📁 Documentation Structure

Development (development/)

For module developers and contributors

  • module-development-guide.md - Complete development methodology
  • quick-module-reference.md - Fast reference for commands and patterns
  • module-creation-checklist.md - Comprehensive step-by-step process
  • module-template.md - Reusable template snippets

Students (students/)

For course participants

  • project-guide.md - Course navigation and module progression

Pedagogy (pedagogy/)

For instructors and educational design

  • pedagogical-principles.md - Educational philosophy and learning theory
  • testing-architecture.md - Assessment strategy and testing patterns
  • vision.md - Course vision and goals

🚀 Quick Commands Reference

System Commands

tito system info              # System information and course navigation
tito system doctor            # Environment diagnosis
tito system jupyter           # Start Jupyter Lab

Module Development

tito module status            # Check all module status
tito module test --module X   # Test specific module
tito module notebooks --module X  # Convert Python to notebook

Package Management

tito package sync            # Export notebooks to package
tito package sync --module X # Export specific module
tito package reset           # Reset package to clean state

🎓 Educational Philosophy

TinyTorch follows a "Build → Use → Understand → Repeat" methodology where students:

  1. Build - Implement core ML components from scratch
  2. Use - Apply their implementations to real problems
  3. Understand - Reflect on design decisions and trade-offs
  4. Repeat - Apply learnings to increasingly complex systems

Key Principles

  • Real Data, Real Systems - Use production datasets and realistic constraints
  • Progressive Complexity - Build understanding step by step
  • Systems Thinking - Connect to production ML engineering practices
  • Immediate Feedback - Students see their code working quickly

🛠️ Development Workflow

For New Modules

  1. Plan - Choose real datasets, define learning objectives
  2. Implement - Write complete working version first
  3. Structure - Add educational content and TODO guidance
  4. Test - Comprehensive testing with real data
  5. Export - Convert to notebooks and export to package

For Students

  1. Setup - Complete environment setup in modules/setup/
  2. Develop - Work in modules/{name}/{name}_dev.py files
  3. Export - Use tito package sync to build package
  4. Test - Use tito module test to verify implementation
  5. Progress - Use tito module status to track completion

📊 Course Structure

TinyTorch is organized into progressive modules:

  • Setup - Development environment and workflow
  • Tensor - Core data structures and operations
  • Layers - Neural network building blocks
  • Networks - Complete model architectures
  • Training - Optimization and learning algorithms
  • Advanced - Production systems and MLOps

Each module builds on previous ones, creating a complete ML systems engineering curriculum.


💡 Pro Tip: Start with the Project Guide if you're a student, or the Development Guide if you're creating modules.