Commit Graph

22 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
08353f667f Implement Phase 1: Core milestone system architecture
- Add complete MilestoneSystem class with 5 epic milestones
- Integrate milestone detection into module completion workflow
- Implement milestone CLI commands (status, timeline, test, demo)
- Add milestone progress tracking and storage (.tito/milestones.json)
- Create epic celebration system for milestone unlocks
- Register milestone commands in main CLI

Features:
- 5 milestones: Basic Inference → Computer Vision → Full Training → Advanced Vision → Language Generation
- Visual progress tracking with Rich library
- Module completion triggers milestone evaluation
- Epic ASCII art celebrations for achievements
- Timeline views (tree and horizontal progress bar)
- Milestone testing and validation

The milestone system transforms module completion into meaningful
capability achievements that prepare students for ML engineering careers.
2025-09-20 20:42:07 -04:00
Vijay Janapa Reddi
0470838c31 Redesign TinyTorch CLI logo with vertical 'tiny' integration
- Create bold ASCII art logo with 'tiny' spelled vertically
- Add flame banner above TORCH for visual impact
- Update tagline to 'Don't import the future. Build it from tensors up.'
- Simplify logo command to show philosophy and meaning
- Remove unused preferences system
- Clean up display logic and improve color scheme

The new design features 'tiny' integrated vertically alongside TORCH,
creating a unique visual identity that reinforces the framework's philosophy
of building from small foundations up to powerful systems.
2025-09-20 19:39:30 -04:00
Vijay Janapa Reddi
3b721c5477 Add gamified capability showcase system with module completion integration
- Implement complete capability showcase system (11 demonstrations)
- Add auto-run showcases after successful module completion
- Create interactive launcher for easy showcase navigation
- Integrate with tito module complete workflow
- Add user preference system for logo themes
- Showcase student achievements without requiring additional work
- Demonstrate real ML capabilities from tensors to TinyGPT
- Use Rich terminal UI for beautiful visualizations
2025-09-19 18:17:02 -04:00
Vijay Janapa Reddi
1611af0b78 Add progressive demo system with repository reorganization
Implements comprehensive demo system showing AI capabilities unlocked by each module export:
- 8 progressive demos from tensor math to language generation
- Complete tito demo CLI integration with capability matrix
- Real AI demonstrations including XOR solving, computer vision, attention mechanisms
- Educational explanations connecting implementations to production ML systems

Repository reorganization:
- demos/ directory with all demo files and comprehensive README
- docs/ organized by category (development, nbgrader, user guides)
- scripts/ for utility and testing scripts
- Clean root directory with only essential files

Students can now run 'tito demo' after each module export to see their framework's
growing intelligence through hands-on demonstrations.
2025-09-18 17:36:32 -04:00
Vijay Janapa Reddi
ae5a9260c4 Add tito grade command for simplified NBGrader interface
Implement comprehensive grading workflow wrapped behind tito CLI:
• tito grade setup - Initialize NBGrader course structure
• tito grade generate - Create instructor version with solutions
• tito grade release - Create student version without solutions
• tito grade collect - Collect student submissions
• tito grade autograde - Automatically grade submissions
• tito grade manual - Open manual grading interface
• tito grade feedback - Generate student feedback
• tito grade export - Export grades to CSV

This allows users to only learn tito commands without needing to
understand NBGrader's complex interface. All grading functionality
is accessible through simple, consistent tito commands.
2025-09-17 19:22:02 -04:00
Vijay Janapa Reddi
df67eb4a0a Rename milestone to checkpoint system with enhanced Rich CLI visualizations
Major changes:
- Renamed entire system from "milestone" to "checkpoint" for academic framing
- Checkpoints are now positioned as academic progress markers in learning journey
- Implemented enhanced Rich CLI timeline with progress bars and connecting lines
- Added overall progress tracking (16/16 modules = 100%)

Enhanced timeline visualization:
- Horizontal view shows progress bar with filled/unfilled segments
- Visual connecting lines between checkpoints showing completion status
- Color-coded progress: green (complete), yellow (in-progress), dim (future)
- Percentage indicators for each checkpoint and overall progress

CLI improvements:
- `tito checkpoint status` - Shows overall and per-checkpoint progress
- `tito checkpoint timeline --horizontal` - Rich visual progress line
- `tito checkpoint timeline` - Vertical tree view with module details
- Better progress indicators with filled bars and connecting lines

Documentation updates:
- Renamed milestone-system.md to checkpoint-system.md
- Updated all references from milestone to checkpoint terminology
- Emphasized academic checkpoint philosophy and progress markers
- Added descriptions of new Rich CLI visualizations

Benefits:
- More academic framing aligns with educational context
- Visual progress bars provide immediate feedback on learning journey
- Checkpoint terminology is more familiar to students
- Rich CLI visualizations make progress tracking engaging
2025-09-16 13:27:43 -04:00
Vijay Janapa Reddi
2d918fadbf Implement comprehensive milestone system for capability-driven learning
Features implemented:
- Complete milestone tracking system with Foundation → Architecture → Training → Inference → Serving progression
- Rich CLI visualization with status, timeline (horizontal/vertical), and progress tracking
- Ticker-based granular progress within each milestone showing module completion
- Comprehensive documentation explaining the pedagogical approach and system benefits
- Integration with existing tito CLI infrastructure and module detection

Key capabilities:
- `tito milestone status` - shows current progress and capabilities unlocked
- `tito milestone timeline` - visual progress timeline with multiple views
- `tito milestone test/unlock` - placeholder for future capability testing
- Automatic module detection and progress calculation
- Clear capability statements for each milestone achievement

Benefits:
- Transforms learning from "completing modules" to "building capabilities"
- Provides clear motivation through visual progress and capability unlocks
- Aligns with real ML engineering workflow: Foundation → Architecture → Training → Inference → Serving
- Gives students concrete sense of progress toward complete ML framework
2025-09-16 13:15:13 -04:00
Vijay Janapa Reddi
0bdd1e612a Complete fix for tito module view command
- Added modules_dir to CLIConfig (alias for assignments_dir)
- Made environment validation warning-only to allow development
- Command now works: generates notebooks and launches Jupyter Lab
- Tested successfully with 'tito module view 02_tensor'

The view command is fully functional for interactive development.
2025-09-15 19:08:10 -04:00
Vijay Janapa Reddi
e4d4db5d42 Fix GitHub workflow to properly activate virtual environment
- Combine venv setup and tito execution in same step
- Add pytest installation for tito environment validation
- Add explanatory comments about GitHub Actions shell behavior
- Remove environment skipping hack in favor of proper setup
- Workflow now uses tito CLI consistently for book generation
2025-07-15 23:26:34 -04:00
Vijay Janapa Reddi
25497661fc Update module numbering from 00-13 to 01-14 and refresh tagline
- Updated all module references to start from 01 instead of 00
- Changed tagline to 'Build your own ML framework. Start small. Go deep.'
- Added educational foundation section linking to ML Systems book
- Updated README, documentation, CLI examples, and prerequisites
- Regenerated book content with consistent numbering throughout
- Maintains 14 modules total but with natural numbering (01-14)
2025-07-15 21:11:07 -04:00
Vijay Janapa Reddi
827aaabff6 🧪 Test publish command 2025-07-15 20:39:51 -04:00
Vijay Janapa Reddi
5264b6aa68 Move testing utilities to tito/tools for better software architecture
- Move testing utilities from tinytorch/utils/testing.py to tito/tools/testing.py
- Update all module imports to use tito.tools.testing
- Remove testing utilities from core TinyTorch package
- Testing utilities are development tools, not part of the ML library
- Maintains clean separation between library code and development toolchain
- All tests continue to work correctly with improved architecture
2025-07-13 21:05:11 -04:00
Vijay Janapa Reddi
9247784cb7 feat: Enhanced tensor and activations modules with comprehensive educational content
- Added package structure documentation explaining modules/source/ vs tinytorch.core.
- Enhanced mathematical foundations with linear algebra refresher and Universal Approximation Theorem
- Added real-world applications for each activation function (ReLU, Sigmoid, Tanh, Softmax)
- Included mathematical properties, derivatives, ranges, and computational costs
- Added performance considerations and numerical stability explanations
- Connected to production ML systems (PyTorch, TensorFlow, JAX equivalents)
- Implemented streamlined 'tito export' command with automatic .py → .ipynb conversion
- All functionality preserved: scripts run correctly, tests pass, package integration works
- Ready to continue with remaining modules (layers, networks, cnn, dataloader)
2025-07-12 17:51:00 -04:00
Vijay Janapa Reddi
77150be3a6 Module 00_setup migration: Core functionality complete, NBGrader architecture issue discovered
 COMPLETED:
- Instructor solution executes perfectly
- NBDev export works (fixed import directives)
- Package functionality verified
- Student assignment generation works
- CLI integration complete
- Systematic testing framework established

⚠️ CRITICAL DISCOVERY:
- NBGrader requires cell metadata architecture changes
- Current generator creates content correctly but wrong cell types
- Would require major rework of assignment generation pipeline

📊 STATUS:
- Core TinyTorch functionality:  READY FOR STUDENTS
- NBGrader integration: Requires Phase 2 rework
- Ready to continue systematic testing of modules 01-06

🔧 FIXES APPLIED:
- Added #| export directive to imports in enhanced modules
- Fixed generator logic for student scaffolding
- Updated testing framework and documentation
2025-07-12 09:08:45 -04:00
Vijay Janapa Reddi
2a4bbc6a09 Rename sync command to export for clarity
- Rename SyncCommand to ExportCommand and sync.py to export.py
- Update all CLI references from 'tito package sync' to 'tito package export'
- Update help text and internal messages to use 'Export' terminology
- Update imports across all command files
- Update help text in main CLI, reset, clean, info, and notebooks commands
- Command now clearly communicates that it exports notebook code to Python package
- Maintains same functionality but with clearer naming for user experience
2025-07-11 23:59:25 -04:00
Vijay Janapa Reddi
3198100eb9 Fix doctor command environment validation
- Skip environment validation for 'tito system doctor' command
- Fix dependency detection in doctor command for packages without __version__
- Doctor command now works correctly and shows comprehensive system diagnosis
2025-07-11 23:28:41 -04:00
Vijay Janapa Reddi
3ba0873979 Clean up CLI by removing legacy flat commands
- Remove legacy flat commands (info, test, sync, etc.) from main parser
- Keep only hierarchical command groups (system, module, package)
- Eliminate confusing positional arguments showing both flat and hierarchical commands
- Update help text to remove references to deprecated commands
- CLI now shows clean 3-command structure: system, module, package
- Old flat commands like 'tito info' now properly error with helpful message
- Maintains all functionality through hierarchical structure:
  - tito info → tito system info
  - tito status → tito module status
  - tito sync → tito package sync

Result: Clean, focused CLI with clear command organization
2025-07-11 22:54:39 -04:00
Vijay Janapa Reddi
19bb551004 feat: Reorganize CLI into hierarchical command structure
- Add system, module, and package command groups for clear subsystem separation
- Create SystemCommand, ModuleCommand, and PackageCommand classes
- Maintain backward compatibility with existing flat commands
- Enhanced help system with contextual guidance at each level
- Updated main CLI to show organized command groups
- Added comprehensive documentation for CLI reorganization

New structure:
- tito system (info, doctor, jupyter)
- tito module (status, test, notebooks)
- tito package (sync, reset, nbdev)

Benefits:
- Clear subsystem separation
- Intuitive command discovery
- Better extensibility for future commands
- Reduced cognitive load for users
2025-07-11 22:37:35 -04:00
Vijay Janapa Reddi
de03be4f70 refactor: Reorganize CLI commands for clear separation of concerns
- Rename 'modules' command to 'status' for intuitive module status checking
- Consolidate all testing functionality into 'test' command:
  - 'tito test --module X' for individual module testing with detailed output
  - 'tito test --all' for all modules with progress bar
  - Remove confusing redirection from test to modules
- Simplify 'info' command to focus on system information and course navigation:
  - Remove module implementation status table (moved to status command)
  - Add quick command reference panel
  - Clean separation between system info and module status
- Update all imports and registrations for renamed command

Result: Clean, intuitive CLI with no duplication:
- 'tito status' → Module development status
- 'tito test' → All testing functionality
- 'tito info' → System info and navigation

No more confusing overlaps or redirections between commands.
2025-07-11 22:25:19 -04:00
Vijay Janapa Reddi
39a04bbe65 feat: Add modules command and clean up CLI duplication
- Add new 'tito modules' command for comprehensive module status checking
  - Scans all modules in modules/ directory automatically
  - Shows file structure (dev file, tests, README)
  - Runs tests with --test flag
  - Provides detailed breakdown with --details flag

- Remove duplicate/stub commands:
  - Remove 'tito status' (unimplemented stub)
  - Remove 'tito submit' (unimplemented stub)

- Update 'tito test' command:
  - Focus on individual module testing with detailed output
  - Redirect 'tito test --all' to 'tito modules --test' with recommendation
  - Better error handling with available modules list

- Add comprehensive documentation:
  - docs/development/testing-separation.md - explains module vs package checking
  - docs/development/command-cleanup-summary.md - documents CLI cleanup

Key benefit: Clear separation between module development status (tito modules)
and TinyTorch package functionality (tito info) with no confusing overlaps.
2025-07-11 22:14:53 -04:00
Vijay Janapa Reddi
15f5a84863 RESTORE: Complete CLI functionality in new architecture
- Ported all commands from bin/tito.py to new tito/ CLI architecture
- Added InfoCommand with system info and module status
- Added TestCommand with pytest integration
- Added DoctorCommand with environment diagnosis
- Added SyncCommand for nbdev export functionality
- Added ResetCommand for package cleanup
- Added JupyterCommand for notebook server
- Added NbdevCommand for nbdev development tools
- Added SubmitCommand and StatusCommand (placeholders)
- Fixed missing imports in tinytorch/core/tensor.py
- All commands now work with 'tito' command in shell
- Maintains professional architecture while restoring full functionality

Commands restored:
 info - System information and module status
 test - Run module tests with pytest
 doctor - Environment diagnosis
 sync - Export notebooks to package
 reset - Clean tinytorch package
 nbdev - nbdev development commands
 jupyter - Start Jupyter server
 submit - Module submission
 status - Module status
 notebooks - Build notebooks from Python files

The CLI now has both the professional architecture and all original functionality.
2025-07-10 22:39:23 -04:00
Vijay Janapa Reddi
a92a5530ef MAJOR: Separate CLI from framework - proper architectural separation
BREAKING CHANGE: CLI moved from tinytorch/cli/ to tito/

Perfect Senior Engineer Architecture:
- tinytorch/ = Pure ML framework (production)
- tito/ = Development/management CLI tool
- modules/ = Educational content

Benefits:
 Clean separation of concerns
 Framework stays lightweight (no CLI dependencies)
 Clear mental model for users
 Professional project organization
 Proper dependency management

Structure:
tinytorch/          # 🧠 Core ML Framework
├── core/          # Tensors, layers, operations
├── training/      # Training loops, optimizers
├── models/        # Model architectures
└── ...           # Pure ML functionality

tito/              # 🔧 Development CLI Tool
├── main.py        # CLI entry point
├── core/          # CLI configuration & console
├── commands/      # Command implementations
└── tools/         # CLI utilities

Key Changes:
- Moved all CLI code from tinytorch/cli/ to tito/
- Updated imports and entry points
- Separated dependencies (Rich only for dev tools)
- Updated documentation to reflect proper separation
- Maintained backward compatibility with bin/tito wrapper

This demonstrates how senior engineers separate:
- Production code (framework) from development tools (CLI)
- Core functionality from management utilities
- User-facing APIs from internal tooling

Educational Value:
- Shows proper software architecture
- Teaches separation of concerns
- Demonstrates dependency management
- Models real-world project organization
2025-07-10 22:08:56 -04:00