Commit Graph

21 Commits

Author SHA1 Message Date
Vijay Janapa Reddi
8cccf322b5 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
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
7a9db7d52a 📚 Consolidate module documentation into single source
- Replaced 3 overlapping documentation files with 1 authoritative source
- Set modules/source/08_optimizers/optimizers_dev.py as reference implementation
- Created comprehensive module-rules.md with complete patterns and examples
- Added living-example approach: use actual working code as template
- Removed redundant files: module-structure-design.md, module-quick-reference.md, testing-design.md
- Updated cursor rules to point to consolidated documentation
- All module development now follows single source of truth
2025-07-13 19:35:16 -04:00
Vijay Janapa Reddi
469af4c3de Remove module-level tests directories, keep only main tests/ for exported package validation
- Remove all tests/ directories under modules/source/
- Keep main tests/ directory for testing exported functionality
- Update status command to check tests in main tests/ directory
- Update documentation to reflect new test structure
- Reduce maintenance burden by eliminating duplicate test systems
- Focus on inline NBGrader tests for development, main tests for package validation
2025-07-13 17:14:14 -04:00
Vijay Janapa Reddi
1d3314add5 Update testing design to inline-first approach
- Prioritize student learning effectiveness over context switching
- Define three-tier architecture: Inline → Module → Integration
- Emphasize comprehensive inline testing with educational context
- Maintain professional module tests for grading
- Preserve flow state by keeping students in notebooks
- Provide immediate, encouraging feedback with visual indicators
2025-07-12 19:36:09 -04:00
Vijay Janapa Reddi
fb4f92c35f Refine testing architecture with four-tier system and mock-based module tests
- Define clear goals for each testing tier: Unit → Module → Integration → System
- Implement mock-based module testing to avoid dependency cascades
- Provide comprehensive examples for each testing level
- Establish clear interface contracts through visible mocks
- Enable independent module development and grading
- Ensure realistic integration testing with vetted solutions
2025-07-12 19:23:07 -04:00
Vijay Janapa Reddi
2f2feeae3f Add comprehensive testing and module structure design documents
- Create testing-design.md analyzing current testing redundancy
- Propose unified testing approach eliminating unit/module distinction
- Create module-structure-design.md with standardized patterns
- Document NBDev educational framework requirements
- Establish design guidelines for future module development
2025-07-12 18:54:24 -04:00
Vijay Janapa Reddi
f1d47330b3 Simplify export workflow: remove module_paths.txt, use dynamic discovery
- Remove unnecessary module_paths.txt file for cleaner architecture
- Update export command to discover modules dynamically from modules/source/
- Simplify nbdev command to support --all and module-specific exports
- Use single source of truth: nbdev settings.ini for module paths
- Clean up import structure in setup module for proper nbdev export
- Maintain clean separation between module discovery and export logic

This implements a proper software engineering approach with:
- Single source of truth (settings.ini)
- Dynamic discovery (no hardcoded paths)
- Clean CLI interface (tito package nbdev --export [--all|module])
- Robust error handling with helpful feedback
2025-07-12 17:19:22 -04:00
Vijay Janapa Reddi
3d81f76897 Clean up stale documentation - remove outdated workflow patterns
- Remove 5 outdated development guides that contradicted clean NBGrader/nbdev architecture
- Update all documentation to reflect assignments/ directory structure
- Remove references to deprecated #| hide approach and old command patterns
- Ensure clean separation: NBGrader for assignments, nbdev for package export
- Update README, Student Guide, and Instructor Guide with current workflows
2025-07-12 12:36:31 -04:00
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
Vijay Janapa Reddi
b5486cd7f8 Enhance inline testing for better student experience
- Add comprehensive step-by-step inline tests to activations module
- Each activation function now has immediate feedback tests
- Tests check mathematical properties, edge cases, and numerical stability
- Provide clear success/failure messages with actionable guidance
- Create comprehensive testing guidelines document
- Document two-tier testing approach: inline tests for learning, pytest for validation
- All existing tests still pass, enhanced learning experience
2025-07-12 01:16:25 -04:00
Vijay Janapa Reddi
71607f70e8 Clean up and modernize documentation
- Remove outdated documentation files (cli-reorganization, command-cleanup-summary, module-metadata-system, testing-separation)
- Update all CLI commands to use current hierarchical structure (tito system/module/package)
- Align documentation with simplified metadata system
- Update student project guide with current module structure
- Modernize development guides and quick reference
- Remove references to removed features (py_to_notebook, complex metadata)
- Ensure all documentation reflects current system state

Documentation now focuses on:
- Current CLI structure and commands
- Simplified module development workflow
- Real data and production patterns
- Clean educational progression
2025-07-11 23:36:33 -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
341b10969c feat: Add comprehensive module metadata system
- Add module.yaml files for setup, tensor, activations, layers, and autograd modules
- Enhanced tito status command with --metadata flag for rich information display
- Created metadata schema with learning objectives, dependencies, components, and more
- Added metadata generation script (bin/generate_module_metadata.py)
- Comprehensive documentation in docs/development/module-metadata-system.md
- Status command now shows module status, difficulty, time estimates, and detailed metadata
- Supports dependency tracking, component-level status, and educational information
- Enables rich CLI experience with structured module information
2025-07-11 22:33:24 -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
121287fc39 Adds module development documentation
Introduces documentation for TinyTorch module development, including guides for developers and AI assistants.

Provides comprehensive resources for creating high-quality, educational modules, focusing on real-world applications and systems thinking.
2025-07-11 18:38:48 -04:00
Vijay Janapa Reddi
53fb514918 Evolve pedagogical framework: Build → Use → [Engage] patterns
- Updated pedagogical principles with refined engagement patterns:
  - Build → Use → Reflect (design & systems thinking)
  - Build → Use → Analyze (technical depth & debugging)
  - Build → Use → Optimize (systems iteration & performance)

- Added pattern selection guide for module developers
- Updated development workflow to choose pattern first
- Created specific module assignments for each pattern
- Enhanced quick reference with pattern-specific activities

This evolution moves beyond passive 'understanding' to active,
specific engagement that matches professional ML engineering skills.
2025-07-11 18:37:00 -04:00
Vijay Janapa Reddi
eebb22ebdb feat: Add consistent 'Where This Code Lives' template across modules
- Add template section to tensor, layers, activations, and cnn modules
- Create docs/development/module-template.md for future reference
- Clarify learning vs building structure consistently
- Show students where their code will live in the final package
- Decouple learning modules from production organization
2025-07-10 23:48:49 -04:00
Vijay Janapa Reddi
2cb887e9e4 Move py_to_notebook.py to bin/ directory for better organization
- Moved tools/py_to_notebook.py to bin/py_to_notebook.py
- Updated tito.py to reference the new location
- Made py_to_notebook.py executable for direct invocation
- Removed empty tools/ directory
- Updated documentation to reflect new location
- All tools now consolidated in bin/ directory for consistency

Benefits:
- Conventional organization (bin/ for executables)
- Can invoke tools directly: ./bin/py_to_notebook.py
- Cleaner project structure
- Consistent with other tools (tito.py, generate_student_notebooks.py)
2025-07-10 21:59:14 -04:00
Vijay Janapa Reddi
82defeafd3 Refactor notebook generation to use separate files for better architecture
- Restored tools/py_to_notebook.py as a focused, standalone tool
- Updated tito notebooks command to use subprocess to call the separate tool
- Maintains clean separation of concerns: tito.py for CLI orchestration, py_to_notebook.py for conversion logic
- Updated documentation to use 'tito notebooks' command instead of direct tool calls
- Benefits: easier debugging, better maintainability, focused single-responsibility modules
2025-07-10 21:57:09 -04:00
Vijay Janapa Reddi
53ee9f17f3 📁 Reorganize documentation with modern naming
- Move all documentation to docs/ directory with clear organization
- Use lowercase-with-dashes naming convention (modern standard)
- Organize by audience: students/, development/, pedagogy/
- Create comprehensive docs/README.md index
- Clean up root directory (only README.md and quickstart.md remain)

Structure:
docs/
├── pedagogy/           # Educational philosophy
├── development/        # Module development guides
├── students/          # Student-facing documentation
└── README.md          # Documentation index

This makes the project more professional and easier to navigate.
2025-07-10 20:16:26 -04:00