---
description: TinyTorch is designed for a **Machine Learning Systems course** where students build every component from scratch. This is NOT a typical ML course using existing frameworks - students implement the framework itself.
---

# TinyTorch: ML Systems Course Context

## Course Overview

TinyTorch is designed for a **Machine Learning Systems course** where students build every component from scratch. This is NOT a typical ML course using existing frameworks - students implement the framework itself.

## Educational Philosophy

**Progressive Build-Up**: Each module builds on previous ones:
1. **Setup** → Development workflow and environment
2. **Tensor** → Core data structure (foundation for everything)  
3. **Autograd** → Automatic differentiation (enables gradient computation)
4. **MLP** → Multi-layer perceptrons (first neural networks)
5. **CNN** → Convolutional networks (computer vision)
6. **Training** → Optimizers and training loops
7. **MLOps** → Production systems and monitoring

## Learning Approach

**🎓 Teaching vs. 🔧 Building**:
- **Concepts first**: Understand the theory in modules/
- **Implementation second**: Build working code that exports to tinytorch/
- **Integration third**: Combine components into complete ML systems

## Key Learning Objectives

Students learn to build:
- **Tensor operations** from NumPy foundations
- **Automatic differentiation** for gradient computation
- **Neural network layers** and architectures  
- **Optimization algorithms** (SGD, Adam, etc.)
- **Training pipelines** and data handling
- **Production deployment** and monitoring

## Course Structure (13 Projects)

The `projects/` directory contains numbered project folders:
- `01-intro` through `13-mlops`
- Each project is substantial (not just assignments)
- Progressive difficulty building complete ML system
- Culminates in production-ready MLOps implementation

## Student Journey

1. **Start**: Know basic Python, some ML theory
2. **Build**: Implement every component from scratch
3. **Understand**: Deep knowledge of how ML systems work internally
4. **Deploy**: Production-ready ML systems with monitoring

This approach creates ML engineers who understand systems deeply, not just how to call library functions.

## Code Organization Principles

- **Self-contained modules**: Each can be learned independently
- **Clear progression**: Later modules build on earlier ones  
- **Real implementation**: Code actually works, not just toy examples
- **Production ready**: Exports to a real Python package

- **Real implementation**: Code actually works, not just toy examples
- **Production ready**: Exports to a real Python package
 