Files
TinyTorch/modules/setup
Vijay Janapa Reddi 250cc9f0fa Add file-based ASCII art system with stunning flame design
🎨 File-Based ASCII Art System:
- Add beautiful tinytorch_flame.txt with sophisticated flame design
- Dynamic file loading with fallback to simple flame
- Easy customization - students can edit the file directly
- Proper error handling for missing files

🔥 Enhanced Visual Experience:
- Stunning detailed flame ASCII art from file
- 'Tiny🔥Torch' branding with 'Build ML Systems from Scratch!' tagline
- Much more sophisticated design than hardcoded version
- Students can easily customize by editing tinytorch_flame.txt

📚 Educational Benefits:
- Two customization options: parameter override or file editing
- Teaches file I/O and error handling concepts
- Encourages creative expression and ownership
- Professional development practices

🧪 Testing:
- Updated all tests to work with file-based system
- All 17 tests pass successfully
- Comprehensive coverage of file loading and fallback
- Verified both custom and default ASCII art functionality

Students can now easily create their own ASCII art by editing the tinytorch_flame.txt file or providing custom art via parameters
2025-07-10 19:14:49 -04:00
..

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 SystemInfo class
  • 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 #| export to 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