Commit Graph

22 Commits

Author SHA1 Message Date
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
6349c218d2 Standardize all modules to follow NBGrader style guide
- Updated 7 non-compliant modules for consistency
- Module 01_setup: Added EXAMPLE USAGE sections with code examples
- Module 02_tensor: Added STEP-BY-STEP IMPLEMENTATION and LEARNING CONNECTIONS
- Module 05_dense: Added LEARNING CONNECTIONS to all functions
- Module 06_spatial: Added STEP-BY-STEP and LEARNING CONNECTIONS
- Module 08_dataloader: Added LEARNING CONNECTIONS sections
- Module 11_training: Added STEP-BY-STEP and LEARNING CONNECTIONS
- Module 14_benchmarking: Added STEP-BY-STEP and LEARNING CONNECTIONS
- All modules now follow consistent format per NBGRADER_STYLE_GUIDE.md
- Preserved all existing solution blocks and functionality
2025-09-16 16:48:14 -04:00
Vijay Janapa Reddi
357b8cd5bb Revert "Restructure Module 02 (Tensor) with unified template"
This reverts commit 12da3d9f99762d789e6416ac736331fac98ab8d0.
2025-09-15 18:39:29 -04:00
Vijay Janapa Reddi
f8632b6021 Restructure Module 02 (Tensor) with unified template
- Add 5 C's framework for systematic concept understanding
- Separate implementation from testing for clearer learning flow
- Consolidate 15+ fragmented markdown cells into 4 focused sections
- Create clean progression: Concept → Implementation → Test → Usage
- Establish model structure for other modules to follow
2025-09-15 18:17:27 -04:00
Vijay Janapa Reddi
95c872f6aa Update Module 01 to standardized 5 C's format
Apply the new standardized format to both sections:
- Personal Information Configuration (line ~210)
- System Information Queries (line ~424)

Changes:
- Replace verbose numbered sections with integrated code-comment format
- Use exact '### Before We Code: The 5 C's' heading
- Present all content within scannable code blocks
- Add compelling closing statements
- Preserve all educational content and technical details

Both Module 01 and Module 02 now use the same standardized
5 C's format defined in FIVE_CS_FORMAT_STANDARD.md
2025-09-15 15:01:42 -04:00
Vijay Janapa Reddi
af372cf412 Improve Modules 01 and 02 to meet TinyTorch educational standards
Module 01 (Setup) Improvements:
- Fix duplicate grade_id (changed to setup-verification)
- Add comprehensive 5 C's pattern before implementations
- Replace hardcoded instructor data with generic placeholders
- Implement test-immediately pattern after each function
- Add proper NBGrader metadata to all test cells

Module 02 (Tensor) Improvements:
- Move ALL scaffolding outside BEGIN/END SOLUTION blocks
- Add complete 5 C's pattern before Tensor implementation
- Fix test naming to consistent test_unit_* pattern
- Ensure tests run immediately after implementations
- Maintain proper NBGrader metadata with unique grade_ids

Key Standards Applied:
- 5 C's Pattern: Concept, Code Structure, Connections, Constraints, Context
- Test-immediately: Every implementation followed by immediate validation
- NBGrader Ready: Scaffolding outside solutions for student releases
- Professional Standards: Generic data and consistent patterns

These improvements ensure both modules:
1. Pass NBGrader validation for student releases
2. Provide comprehensive educational scaffolding
3. Follow test-immediately pattern for rapid feedback
4. Meet all TinyTorch quality standards
2025-09-15 14:25:49 -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
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
5edda183bb Standardize section headers for 01_setup module 2025-07-20 12:24:02 -04:00
Vijay Janapa Reddi
c4d987cbb7 docs: Add comprehensive test documentation across all modules
 Standardized test explanations with consistent format
📝 Added markdown cells before all test functions
🎯 Improved educational clarity for student understanding

Changes:
- 01_setup: Added 2 test explanations (personal_info, system_info)
- 02_tensor: Added 3 test explanations (creation, properties, arithmetic)
- 12_compression: Added 8 test explanations (metrics, pruning, quantization, distillation, etc.)

All 15 modules now follow standardized test documentation pattern:
### 🧪 Unit Test: [Component Name]
[Brief explanation of validation purpose]

Ensures every test has clear educational context for students.
2025-07-20 10:58:08 -04:00
Vijay Janapa Reddi
7f9cd1d92f 🧪 Add missing test function calls in 01_setup module
- Added test_unit_personal_info_basic() call after function definition
- Added test_unit_system_info_basic() call after function definition

Ensures test functions are actually executed when cells run, providing immediate feedback to students.
2025-07-20 10:18:52 -04:00
Vijay Janapa Reddi
0438b59513 🔧 Fix DEVELOPMENT header placement in 01_setup module
- Moved ## 🔧 DEVELOPMENT to proper location at start of Step 2 where actual development begins
- Removed misplaced header from test function area
- Headers now correctly organize: Development → Auto Testing → Module Summary
2025-07-20 09:53:42 -04:00
Vijay Janapa Reddi
1fd05fb514 Add structural organization headers to 01_setup module
- Added ## 🔧 DEVELOPMENT section before test functions
- Added ## 🤖 AUTO TESTING section before nbgrader block
- Updated to ## 🎯 MODULE SUMMARY: Setup Configuration

Improves notebook organization without changing any code logic or content.
2025-07-20 09:52:32 -04:00
Vijay Janapa Reddi
0355e0a44b Fix 01_setup: Correct pattern - Tests → STANDARDIZED MODULE TESTING → Module Summary
CORRECT PATTERN NOW:
1.  Unit tests (test_unit_personal_info_basic, test_unit_system_info_basic)
2.  ## 🧪 Module Testing
3.  STANDARDIZED MODULE TESTING cell
4.  run_module_tests_auto call
5.  ## 🎯 Module Summary (immediately after, no code between)

 Removed duplicate test functions that were incorrectly placed after run_module_tests_auto
 Clean separation: Tests → Testing → Summary
 No code between STANDARDIZED MODULE TESTING and Module Summary
2025-07-20 09:24:01 -04:00
Vijay Janapa Reddi
49b0a78b99 🧹 Remove duplicate nbgrader cells from 01_setup
Cleaned up duplicate/redundant nbgrader cells that were just comments referencing test functions. The actual test functions remain in their proper location after the standardized testing section.

Removed:
- Duplicate test-personal-info nbgrader cell (just a comment)
- Duplicate test-system-info nbgrader cell (just a comment)
- Redundant 'Inline Test Functions' section

This eliminates confusion and follows the clean pattern established by other modules.
2025-07-20 09:05:38 -04:00
Vijay Janapa Reddi
dd71fca2c9 Fix 01_setup: Add test code between testing section and summary
Module 01_setup now follows correct pattern:
1. ## 🧪 Module Testing (explanation)
2. Standardized testing cell with run_module_tests_auto
3. Actual test functions (test_unit_personal_info_basic, test_unit_system_info_basic)
4. ## 🎯 Module Summary

This ensures students see actual test implementations before the summary.
2025-07-20 09:03:13 -04:00
Vijay Janapa Reddi
48f7b2dea7 🧪 Add standardized module testing to all modules
Ensures consistent testing framework across all TinyTorch modules with:

 Added standardized testing sections to modules that were missing them:
- 01_setup: Added complete testing section + module summary
- 02_tensor: Added testing section + comprehensive module summary
- 15_mlops: Standardized existing testing section to match convention

 All modules now follow the consistent pattern:
1. ## 🧪 Module Testing (markdown explanation)
2. Locked nbgrader cell with standardized-testing ID
3. run_module_tests_auto call to discover and run all tests
4. ## 🎯 Module Summary (educational wrap-up)

 Benefits:
- Consistent testing experience across all 16 modules
- Automatic test discovery and execution before module completion
- Standardized educational flow: learn → implement → test → reflect
- Professional testing practices with locked testing framework

 Verification: All 16 modules now have both:
- '## 🧪 Module Testing' section ✓
- 'run_module_tests_auto' call ✓

This ensures students always verify their implementations work correctly
before moving to the next module, following TinyTorch's educational philosophy.
2025-07-20 09:00:17 -04:00
Vijay Janapa Reddi
6d30438748 🧪 Fix setup module: Wrap all test code in test_ functions
- Remove loose test code from nbgrader cells that ran automatically on import
- Keep only proper test_unit_personal_info_basic() and test_unit_system_info_basic() functions
- Prevents tests from running when module is imported as package
- Follows established test naming conventions (test_unit_*)
- Improves module reliability and reduces side effects

Fixed issues:
- NBGrader cells now reference test functions instead of running test code directly
- All assertions and test logic properly contained in named test functions
- Module can be imported without automatically executing tests
2025-07-20 08:56:18 -04:00
Vijay Janapa Reddi
82e18761fe Foundation: Standardize test naming in setup and tensor modules
- Rename test functions to follow test_unit_<name> convention
- Setup module: test_personal_info → test_unit_personal_info_basic
- Setup module: test_system_info → test_unit_system_info_basic
- Tensor module: test_tensor_* → test_unit_tensor_*
- Establishes consistent unit test naming for core foundation modules
2025-07-20 08:38:46 -04:00
Vijay Janapa Reddi
01e4aec62b 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
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