Commit Graph
26 Commits
Author SHA1 Message Date
Vijay Janapa Reddi 8a101cf52d 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 0c24d77a86 Fix module structure ordering across all modules
Standardize module structure to ensure correct section ordering:
- if __name__ block → ML Systems Thinking → Module Summary (always last)

Fixed 10 modules with incorrect ordering:
• 02_tensor, 04_layers, 05_dense, 06_spatial
• 08_dataloader, 09_autograd, 10_optimizers, 11_training
• 12_compression (consolidated 3 scattered if blocks)
• 15_mlops (consolidated 6 scattered if blocks)

All 17 modules now follow consistent structure:
1. Content and implementations
2. Main execution block (if __name__)
3. ML Systems Thinking Questions
4. Module Summary (always last section)

Updated CLAUDE.md with explicit ordering requirements to prevent future issues.
2025-09-17 17:33:09 -04:00
Vijay Janapa Reddi d04d66a716 Implement interactive ML Systems questions and standardize module structure
Major Educational Framework Enhancements:
• Deploy interactive NBGrader text response questions across ALL modules
• Replace passive question lists with active 150-300 word student responses
• Enable comprehensive ML Systems learning assessment and grading

TinyGPT Integration (Module 16):
• Complete TinyGPT implementation showing 70% component reuse from TinyTorch
• Demonstrates vision-to-language framework generalization principles
• Full transformer architecture with attention, tokenization, and generation
• Shakespeare demo showing autoregressive text generation capabilities

Module Structure Standardization:
• Fix section ordering across all modules: Tests → Questions → Summary
• Ensure Module Summary is always the final section for consistency
• Standardize comprehensive testing patterns before educational content

Interactive Question Implementation:
• 3 focused questions per module replacing 10-15 passive questions
• NBGrader integration with manual grading workflow for text responses
• Questions target ML Systems thinking: scaling, deployment, optimization
• Cumulative knowledge building across the 16-module progression

Technical Infrastructure:
• TPM agent for coordinated multi-agent development workflows
• Enhanced documentation with pedagogical design principles
• Updated book structure to include TinyGPT as capstone demonstration
• Comprehensive QA validation of all module structures

Framework Design Insights:
• Mathematical unity: Dense layers power both vision and language models
• Attention as key innovation for sequential relationship modeling
• Production-ready patterns: training loops, optimization, evaluation
• System-level thinking: memory, performance, scaling considerations

Educational Impact:
• Transform passive learning to active engagement through written responses
• Enable instructors to assess deep ML Systems understanding
• Provide clear progression from foundations to complete language models
• Demonstrate real-world framework design principles and trade-offs
2025-09-17 14:42:24 -04:00
Vijay Janapa Reddi 719507bb8f Standardize NBGrader formatting and fix test execution patterns across all modules
This comprehensive update ensures all TinyTorch modules follow consistent NBGrader
formatting guidelines and proper Python module structure:

- Fix test execution patterns: All test calls now wrapped in if __name__ == "__main__" blocks
- Add ML Systems Thinking Questions to modules missing them
- Standardize NBGrader formatting (BEGIN/END SOLUTION blocks, STEP-BY-STEP, etc.)
- Remove unused imports across all modules
- Fix syntax errors (apostrophes, special characters)
- Ensure modules can be imported without running tests

Affected modules: All 17 development modules (00-16)
Agent workflow: Module Developer → QA Agent → Package Manager coordination
Testing: Comprehensive QA validation completed
2025-09-16 19:48:54 -04:00
Vijay Janapa Reddi 34a59e2064 Fix module test execution issues
- Fixed test functions to only run when modules executed directly
- Added proper __name__ == '__main__' guards to all test calls
- Fixed syntax errors from incorrect replacements in Module 13 and 15
- Modules now import properly without executing tests
- ProductionBenchmarkingProfiler (Module 14) and ProductionMLSystemProfiler (Module 16) fully working
- Other profiler classes present but require full numpy environment to test completely
2025-09-16 00:17:32 -04:00
Vijay Janapa Reddi 94482a3b07 Enhance Module 04 (Layers) with comprehensive educational scaffolding
- Add deep mathematical foundation and visual diagrams
- Expand learning goals to connect with production ML systems
- Implement complete TODO/APPROACH/EXAMPLE/HINTS pattern
- Add extensive inline documentation for matrix multiplication
- Enhance Dense layer with detailed initialization strategies
- Create layer-activation integration patterns
- Add production system comparisons (PyTorch, TensorFlow)
- Include real-world architecture examples
- Add comprehensive checkpoint sections
- Expand module summary with industry connections

This enhancement transforms the layers module into a comprehensive
educational resource that deeply explains the mathematical foundation
of all neural networks while maintaining practical implementation focus.
2025-09-15 13:28:47 -04:00
Vijay Janapa Reddi c33f62ca79 Updates markdown headers in development files
Updates markdown headers in development files to improve consistency and readability.

Removes the redundant "🔧 DEVELOPMENT" headers and standardizes the subsequent headers to indicate the purpose of the following code, such as "🧪 Test Your Matrix Multiplication". This change enhances the clarity and organization of the development files.
2025-07-20 17:36:32 -04:00
Vijay Janapa Reddi 35e54335a6 Add section organization to 04_layers module: Add DEVELOPMENT section header
- Insert ## 🔧 DEVELOPMENT header before first test function
- Organizes module according to educational structure guidelines
- Maintains all existing functionality and test execution
- Improves readability and navigation for educational use
2025-07-20 14:01:13 -04:00
Vijay Janapa Reddi cc9cdee97d Deprecate AUTO TESTING: Remove run_module_tests_auto from all _dev.py modules. Standardize on full-module test execution for reliable, context-aware testing. 2025-07-20 13:28:10 -04:00
Vijay Janapa Reddi 5618daa26e Update test function names from test_integration_* to test_module_* for clearer cross-module testing semantics 2025-07-20 13:03:52 -04:00
Vijay Janapa Reddi e30316b8f2 Renames integration test function
Updates the integration test function name for clarity
and consistency within the codebase.
2025-07-20 12:59:51 -04:00
Vijay Janapa Reddi 6b3aa8fcf8 Clean up formatting in layers module 2025-07-20 12:54:57 -04:00
Vijay Janapa Reddi b3d6edb789 Fix test function calls - remove __main__ wrapper to ensure tests run during automation 2025-07-20 12:51:47 -04:00
Vijay Janapa Reddi ede665e2dc Simplify plot handling - remove _should_show_plots functions and plot guards 2025-07-20 12:47:14 -04:00
Vijay Janapa Reddi 98a7228bf5 Removes development headers from notebooks
Removes redundant "DEVELOPMENT" headers from several notebook files.

These headers are no longer necessary and declutter the notebook content, improving readability and focus on the core content and testing sections.
2025-07-20 12:39:21 -04:00
Vijay Janapa Reddi bae21b7d49 Standardize section headers for 04_layers module 2025-07-20 12:25:54 -04:00
Vijay Janapa Reddi 2a772ee25d 🧪 Fix test function name mismatches in 04_layers module
- Fixed test_matrix_multiplication() → test_unit_matrix_multiplication()
- Fixed test_dense_layer() → test_unit_dense_layer()
- Fixed test_layer_activation() → test_unit_layer_activation()

Ensures correct function names are called to match their definitions.
2025-07-20 10:22:11 -04:00
Vijay Janapa Reddi 8fea5ff831 Add structural organization headers to 04_layers module
- Added ## 🔧 DEVELOPMENT section before Step 1 where development begins
- Added ## 🤖 AUTO TESTING section before nbgrader block
- Updated to ## 🎯 MODULE SUMMARY: Neural Network Layers

Improves notebook organization without changing any code logic or content.
2025-07-20 09:56:48 -04:00
Vijay Janapa Reddi 35bf079749 🧹 Remove backup files - Clean repository maintenance
- Delete 8 *_backup.py files from modules/source directories
- Remove tito/commands/test.py.backup file
- Eliminates obsolete backup files from version control
- Keeps repository clean and focused on current implementations
- Reduces repository size and improves maintainability

Removed files:
- modules/source/02_tensor/tensor_dev_backup.py
- modules/source/03_activations/activations_dev_backup.py
- modules/source/04_layers/layers_dev_backup.py
- modules/source/05_dense/dense_dev_backup.py
- modules/source/06_spatial/spatial_dev_backup.py
- modules/source/08_dataloader/dataloader_dev_backup.py
- modules/source/09_autograd/autograd_dev_backup.py
- modules/source/13_kernels/kernels_dev_backup.py
- tito/commands/test.py.backup
2025-07-20 08:42:59 -04:00
Vijay Janapa Reddi 771ed98a80 🧹 Remove Jupyter notebooks from modules/source - Python-first workflow
- Delete all 15 .ipynb files from modules/source directories
- Align with TinyTorch's Python-first development philosophy
- .py files are the source of truth, .ipynb files are temporary outputs
- Prevents version control conflicts with notebook metadata
- Students work directly with .py files using Jupytext format
- Notebooks can be regenerated when needed via 'tito nbdev generate'

Removed files:
- All *_dev.ipynb files across modules 01-15
- Keeps repository clean and focused on source code
2025-07-20 08:41:26 -04:00
Vijay Janapa Reddi dfad756278 🧠 Core ML: Standardize test naming in neural network building blocks
- Activations: test_integration_* → test_module_* (module dependency tests)
- Layers: test_matrix_multiplication → test_unit_matrix_multiplication
- Layers: test_dense_layer → test_unit_dense_layer
- Layers: test_layer_activation → test_unit_layer_activation
- Dense: test_integration_* → test_module_* (module dependency tests)
- Spatial: test_integration_* → test_module_* (module dependency tests)
- Attention: test_integration_* → test_module_* (module dependency tests)
- Establishes unit vs module test distinction for neural network components
2025-07-20 08:39:00 -04:00
Vijay Janapa Reddi 507cdf50f5 refactor: Implement YAML-based difficulty and time system
- Added educational metadata (difficulty, time_estimate) to all module.yaml files
- Updated convert_readmes.py to read from YAML instead of hardcoded mappings
- Standardized difficulty progression: 🥷
- Fixed path resolution for YAML reading in book build process
- Eliminated duplication: single source of truth for educational metadata
- Capstone gets special ninja treatment (🥷) as beyond-expert level
2025-07-16 11:48:09 -04:00
Vijay Janapa Reddi 19a8123333 Standardize all 14 module READMEs with consistent structure
 Complete standardization of all TinyTorch module READMEs:

📊 **Module Info**: Consistent difficulty, time, prerequisites, next steps
🎯 **Learning Objectives**: Clear, measurable, action-oriented outcomes
🧠 **Pedagogical Framework**: Build → Use → [Context-specific verb]
📚 **What You'll Build**: Concrete code examples and implementations
🚀 **Getting Started**: Prerequisites check + development workflow
🧪 **Testing**: Comprehensive test coverage + inline feedback
🎯 **Key Concepts**: Real-world applications + technical foundations
🎉 **Ready to Build**: Motivational + grid cards for all modules

 All 14 modules now follow identical structure:
- 01_setup: Foundation workflow mastery
- 02_tensor: Core data structures
- 03_activations: Neural network fundamentals
- 04_layers: Building blocks
- 05_networks: Architecture design
- 06_cnn: Computer vision foundations
- 07_dataloader: Data pipeline engineering
- 08_autograd: Automatic differentiation
- 09_optimizers: Learning algorithms
- 10_training: End-to-end orchestration
- 11_compression: Model optimization
- 12_kernels: Performance optimization
- 13_benchmarking: Systematic evaluation
- 14_mlops: Production deployment (capstone)

🎓 **Student Experience**: Predictable navigation, clear expectations, motivational flow
👨‍🏫 **Instructor Experience**: Professional consistency, easy maintenance, coherent course

This establishes the single source of truth that will automatically convert to
clean website chapters via book/convert_readmes.py
2025-07-16 01:44:49 -04:00
Vijay Janapa Reddi e1fd90af2f Standardize module headers - consistent 🔥 emoji and clean chapter titles
README Updates:
- All modules now use consistent '🔥 Module: [Name]' format
- Removed inconsistent emojis (🧠, 🚀, 📊, 🧱, 🏋️)
- Removed module numbers and descriptive subtitles
- Clean, consistent branding across all 14 modules

Converter Updates:
- Added header cleaning logic to strip module prefixes from chapter titles
- Chapters now show clean names: 'CNN', 'Tensor', 'Setup', etc.
- No emoji or module numbers in final website headers
- Maintains clean, professional appearance

Result: Consistent source files + clean website presentation
2025-07-16 01:18:07 -04:00
Vijay Janapa Reddi 074f695fb3 Generate notebook files from Python modules for direct access 2025-07-15 23:51:56 -04:00
Vijay Janapa Reddi d82c75f9dc Renumber modules from 00-13 to 01-14 for natural numbering
 Rename all module directories: 00_setup → 01_setup, etc.
 Update convert_modules.py mappings for new directory names
 Update _toc.yml file paths and titles (1-14 instead of 0-13)
 Regenerate all overview pages with new numbering
 Fix all broken references in usage-paths and intro
 Update chapter references to use natural numbering

Benefits:
- More intuitive course progression starting from 1
- Matches academic course numbering conventions
- Eliminates confusion about 'Module 0' concept
- Cleaner mental model for students and instructors
- All references and links properly updated

Complete transformation: 14 modules now numbered 01-14
2025-07-15 18:51:36 -04:00