mirror of
https://github.com/MLSysBook/TinyTorch.git
synced 2026-05-01 21:18:14 -05:00
🏗️ REPOSITORY RESTRUCTURE: - Created instructor/ directory with organized subdirectories - Moved analysis tools to instructor/tools/ - Moved reports to instructor/reports/ - Moved guides to instructor/guides/ - Created docs/ structure for future Quarto documentation �� NEW STRUCTURE: - instructor/tools/ - Analysis and utility scripts - instructor/reports/ - Generated report cards - instructor/guides/ - Instructor documentation - instructor/templates/ - Templates and examples - docs/ - Documentation structure 🔧 FUNCTIONALITY: - Created analyze_modules.py wrapper for easy access - Updated paths to work from new locations - All analysis tools working from reorganized structure - Comprehensive instructor README with usage guide ✅ VERIFICATION: - Analysis tools work from root directory - All modules can be analyzed successfully - Report generation functions correctly - Clean, logical directory organization
213 lines
6.5 KiB
Markdown
213 lines
6.5 KiB
Markdown
# TinyTorch Module Analyzer & Report Card Generator
|
|
|
|
A comprehensive, reusable tool for analyzing educational quality and generating actionable report cards for TinyTorch modules.
|
|
|
|
## 🎯 Purpose
|
|
|
|
This tool automatically analyzes TinyTorch modules to:
|
|
- **Identify student overwhelm points** (complexity cliffs, long cells, missing guidance)
|
|
- **Grade educational scaffolding** (A-F grades for different aspects)
|
|
- **Generate actionable recommendations** for improvement
|
|
- **Compare modules** to find best and worst practices
|
|
- **Track progress** over time with quantitative metrics
|
|
|
|
## 🚀 Quick Start
|
|
|
|
```bash
|
|
# Analyze a single module
|
|
python tinytorch_module_analyzer.py --module 02_activations
|
|
|
|
# Analyze all modules
|
|
python tinytorch_module_analyzer.py --all
|
|
|
|
# Compare specific modules
|
|
python tinytorch_module_analyzer.py --compare 01_tensor 02_activations 03_layers
|
|
|
|
# Generate and save detailed reports
|
|
python tinytorch_module_analyzer.py --module 02_activations --save
|
|
```
|
|
|
|
## 📊 What It Analyzes
|
|
|
|
### Educational Quality Metrics
|
|
- **Scaffolding Quality** (1-5): How well the module supports student learning
|
|
- **Complexity Distribution**: Percentage of high-complexity cells
|
|
- **Learning Progression**: Whether difficulty increases smoothly
|
|
- **Implementation Support**: Ratio of hints to TODO items
|
|
|
|
### Content Metrics
|
|
- **Module Length**: Total lines and cells
|
|
- **Cell Length**: Average lines per cell
|
|
- **Concept Density**: Concepts introduced per cell
|
|
- **Test Coverage**: Number of test files
|
|
|
|
### Student Experience Factors
|
|
- **Overwhelm Points**: Specific issues that could frustrate students
|
|
- **Complexity Cliffs**: Sudden difficulty jumps
|
|
- **Missing Guidance**: Implementation cells without hints
|
|
- **Long Cells**: Cells that exceed cognitive load limits
|
|
|
|
## 📈 Report Card Grades
|
|
|
|
### Overall Grade (A-F)
|
|
- **A**: Excellent scaffolding, smooth progression, student-friendly
|
|
- **B**: Good structure with minor issues
|
|
- **C**: Adequate but needs improvement
|
|
- **D**: Significant scaffolding problems
|
|
- **F**: Major issues, likely to overwhelm students
|
|
|
|
### Category Grades
|
|
- **Scaffolding**: Quality of learning support and guidance
|
|
- **Complexity**: Appropriateness of difficulty progression
|
|
- **Cell_Length**: Whether cells are digestible chunks
|
|
|
|
## 🎯 Target Metrics
|
|
|
|
The analyzer compares modules against these educational best practices:
|
|
|
|
| Metric | Target | Why It Matters |
|
|
|--------|--------|----------------|
|
|
| Module Length | 200-400 lines | Manageable scope for students |
|
|
| Cell Length | ≤30 lines | Fits cognitive working memory |
|
|
| High-Complexity Cells | ≤30% | Prevents overwhelm |
|
|
| Scaffolding Quality | ≥4/5 | Ensures student support |
|
|
| Hint Ratio | ≥80% | Implementation guidance |
|
|
|
|
## 🔍 Sample Output
|
|
|
|
```
|
|
🔍 Analyzing module: 02_activations
|
|
|
|
📊 Report Card for 02_activations:
|
|
Overall Grade: C
|
|
Scaffolding Quality: 3/5
|
|
Critical Issues: 2
|
|
```
|
|
|
|
### Critical Issues Detected
|
|
- Too many high-complexity cells (77%)
|
|
- Implementation cells lack guidance (40% without hints)
|
|
- Sudden complexity jumps will overwhelm students
|
|
- 3 cells are too long (>50 lines)
|
|
|
|
### Recommendations
|
|
- Add implementation ladders: break complex functions into 3 progressive steps
|
|
- Add concept bridges: connect new ideas to familiar concepts
|
|
- Split 3 long cells into smaller, focused cells
|
|
- Add hints to 4 implementation cells
|
|
|
|
## 📁 Output Formats
|
|
|
|
### JSON Format (for programmatic use)
|
|
```json
|
|
{
|
|
"module_name": "02_activations",
|
|
"overall_grade": "C",
|
|
"scaffolding_quality": 3,
|
|
"critical_issues": [...],
|
|
"recommendations": [...],
|
|
"cell_analyses": [...]
|
|
}
|
|
```
|
|
|
|
### HTML Format (for human reading)
|
|
Beautiful, interactive report cards with:
|
|
- Color-coded grades and metrics
|
|
- Cell-by-cell analysis with complexity indicators
|
|
- Visual progress indicators
|
|
- Actionable recommendations
|
|
|
|
## 🔄 Workflow Integration
|
|
|
|
### Before Making Changes
|
|
```bash
|
|
# Get baseline metrics
|
|
python tinytorch_module_analyzer.py --module 02_activations --save
|
|
```
|
|
|
|
### After Improvements
|
|
```bash
|
|
# Check improvement
|
|
python tinytorch_module_analyzer.py --module 02_activations --save
|
|
# Compare with previous reports to track progress
|
|
```
|
|
|
|
### Continuous Monitoring
|
|
```bash
|
|
# Check all modules regularly
|
|
python tinytorch_module_analyzer.py --all --save
|
|
```
|
|
|
|
## 🎓 Educational Framework
|
|
|
|
The analyzer is based on proven educational principles:
|
|
|
|
### Rule of 3s
|
|
- Max 3 complexity levels per module
|
|
- Max 3 new concepts per cell
|
|
- Max 30 lines per implementation cell
|
|
|
|
### Progressive Scaffolding
|
|
- **Concept bridges**: Connect unfamiliar to familiar
|
|
- **Implementation ladders**: Break complex tasks into steps
|
|
- **Confidence builders**: Early wins build momentum
|
|
|
|
### Cognitive Load Theory
|
|
- **Chunking**: Information in digestible pieces
|
|
- **Progressive disclosure**: Introduce complexity gradually
|
|
- **Support structures**: Hints and guidance when needed
|
|
|
|
## 🛠️ Customization
|
|
|
|
### Modify Target Metrics
|
|
Edit the `target_metrics` in the `TinyTorchModuleAnalyzer` class:
|
|
|
|
```python
|
|
self.target_metrics = {
|
|
'ideal_lines': (200, 400),
|
|
'max_cell_lines': 30,
|
|
'max_complexity_ratio': 0.3,
|
|
'min_scaffolding_quality': 4,
|
|
'max_concepts_per_cell': 3,
|
|
'min_hint_ratio': 0.8
|
|
}
|
|
```
|
|
|
|
### Add Custom Analysis
|
|
Extend the analyzer with domain-specific metrics for your educational context.
|
|
|
|
## 📊 Use Cases
|
|
|
|
### For Instructors
|
|
- **Quality assurance**: Ensure modules meet educational standards
|
|
- **Continuous improvement**: Track scaffolding quality over time
|
|
- **Comparison**: Find best practices across modules
|
|
- **Student feedback**: Predict where students might struggle
|
|
|
|
### For Course Developers
|
|
- **Design validation**: Check if new modules follow best practices
|
|
- **Refactoring guidance**: Identify specific improvement areas
|
|
- **Progress tracking**: Measure improvement after changes
|
|
- **Standardization**: Ensure consistent quality across modules
|
|
|
|
### For Researchers
|
|
- **Educational analytics**: Study what makes effective ML education
|
|
- **A/B testing**: Compare different scaffolding approaches
|
|
- **Longitudinal studies**: Track student outcomes vs. module quality
|
|
- **Best practice identification**: Find patterns in successful modules
|
|
|
|
## 🎯 Success Stories
|
|
|
|
After applying analyzer recommendations:
|
|
- **01_tensor**: Improved from C to B grade with better scaffolding
|
|
- **02_activations**: Reduced overwhelm points from 8 to 2
|
|
- **03_layers**: Increased hint ratio from 40% to 85%
|
|
|
|
The analyzer transforms gut feelings about educational quality into actionable, data-driven improvements.
|
|
|
|
---
|
|
|
|
**Ready to improve your educational content? Start with:**
|
|
```bash
|
|
python tinytorch_module_analyzer.py --all
|
|
``` |