7.2 KiB
Teaching Assistant Guide for TinyTorch
Complete guide for TAs supporting TinyTorch courses, covering common student errors, debugging strategies, and effective support techniques.
🎯 TA Preparation
Critical Modules for Deep Familiarity
TAs should develop deep familiarity with modules where students commonly struggle:
- Module 05: Autograd - Most conceptually challenging
- Module 09: CNNs (Spatial) - Complex nested loops and memory patterns
- Module 13: Transformers - Attention mechanisms and scaling
Preparation Process
- Complete modules yourself - Implement all three critical modules
- Introduce bugs intentionally - Understand common error patterns
- Practice debugging - Work through error scenarios
- Review student submissions - Familiarize yourself with common mistakes
🐛 Common Student Errors
Module 05: Autograd
Error 1: Gradient Shape Mismatches
Symptom: ValueError: shapes don't match for gradient
Common Cause: Incorrect gradient accumulation or shape handling
Debugging Strategy:
- Check gradient shapes match parameter shapes
- Verify gradient accumulation logic
- Look for broadcasting issues
Example:
# Wrong: Gradient shape mismatch
param.grad = grad # grad might be wrong shape
# Right: Ensure shapes match
assert grad.shape == param.shape
param.grad = grad
Error 2: Disconnected Computational Graph
Symptom: Gradients are None or zero Common Cause: Operations not tracked in computational graph Debugging Strategy:
- Verify
requires_grad=Trueon input tensors - Check that operations create new Tensor objects
- Ensure backward() is called on leaf nodes
Example:
# Wrong: Graph disconnected
x = Tensor([1, 2, 3]) # requires_grad=False by default
y = x * 2
y.backward() # No gradients!
# Right: Enable gradient tracking
x = Tensor([1, 2, 3], requires_grad=True)
y = x * 2
y.backward() # Gradients flow correctly
Error 3: Broadcasting Failures
Symptom: Shape errors during backward pass Common Cause: Incorrect handling of broadcasted operations Debugging Strategy:
- Understand NumPy broadcasting rules
- Check gradient accumulation for broadcasted dimensions
- Verify gradient shapes match original tensor shapes
Module 09: CNNs (Spatial)
Error 1: Index Out of Bounds
Symptom: IndexError in convolution loops
Common Cause: Incorrect padding or stride calculations
Debugging Strategy:
- Verify output shape calculations
- Check padding logic
- Test with small examples first
Error 2: Memory Issues
Symptom: Out of memory errors Common Cause: Creating unnecessary intermediate arrays Debugging Strategy:
- Profile memory usage
- Look for unnecessary copies
- Optimize loop structure
Module 13: Transformers
Error 1: Attention Scaling Issues
Symptom: Attention weights don't sum to 1 Common Cause: Missing softmax or incorrect scaling Debugging Strategy:
- Verify softmax is applied
- Check scaling factor (1/sqrt(d_k))
- Test attention weights sum to 1
Error 2: Positional Encoding Errors
Symptom: Model doesn't learn positional information Common Cause: Incorrect positional encoding implementation Debugging Strategy:
- Verify sinusoidal patterns
- Check encoding is added correctly
- Test with simple sequences
🔧 Debugging Strategies
Structured Debugging Questions
When students ask for help, guide them with questions rather than giving answers:
-
What error message are you seeing?
- Read the full traceback
- Identify the specific line causing the error
-
What did you expect to happen?
- Clarify their mental model
- Identify misconceptions
-
What actually happened?
- Compare expected vs actual
- Look for patterns
-
What have you tried?
- Avoid repeating failed approaches
- Build on their attempts
-
Can you test with a simpler case?
- Reduce complexity
- Isolate the problem
Productive vs Unproductive Struggle
Productive Struggle (encourage):
- Trying different approaches
- Making incremental progress
- Understanding error messages
- Passing additional tests over time
Unproductive Frustration (intervene):
- Repeated identical errors
- Random code changes
- Unable to articulate the problem
- No progress after 30+ minutes
When to Provide Scaffolding
Offer scaffolding modules when students reach unproductive frustration:
- Before Autograd: Numerical gradient checking module
- Before Tensor Autograd: Scalar autograd module
- Before CNNs: Simple 1D convolution exercises
📊 Office Hour Patterns
Expected Demand Spikes
Module 05 (Autograd): Highest demand
- Schedule additional TA capacity
- Pre-record debugging walkthroughs
- Create FAQ document
Module 09 (CNNs): High demand
- Focus on memory profiling
- Loop optimization strategies
- Padding/stride calculations
Module 13 (Transformers): Moderate-high demand
- Attention mechanism debugging
- Positional encoding issues
- Scaling problems
Support Channels
- Synchronous: Office hours, lab sessions
- Asynchronous: Discussion forums, email
- Self-service: Common errors documentation, FAQ
🎓 Grading Support
Manual Review Focus Areas
While NBGrader automates 70-80% of assessment, focus manual review on:
-
Code Clarity and Design Choices
- Is code readable?
- Are design decisions justified?
- Is the implementation clean?
-
Edge Case Handling
- Does code handle edge cases?
- Are there appropriate checks?
- Is error handling present?
-
Computational Complexity Analysis
- Do students understand complexity?
- Can they analyze their code?
- Do they recognize bottlenecks?
-
Memory Profiling Insights
- Do students understand memory usage?
- Can they identify memory issues?
- Do they optimize appropriately?
Grading Rubrics
See INSTRUCTOR.md for detailed grading rubrics for:
- ML Systems Thinking questions
- Code quality assessment
- Systems analysis evaluation
💡 Teaching Tips
1. Encourage Exploration
- Let students try different approaches
- Support learning from mistakes
- Celebrate incremental progress
2. Connect to Production
- Reference PyTorch equivalents
- Discuss real-world debugging scenarios
- Share production war stories
3. Make Systems Visible
- Profile memory usage together
- Analyze computational complexity
- Visualize computational graphs
4. Build Confidence
- Acknowledge when students are on the right track
- Validate their understanding
- Provide encouragement during struggle
📚 Resources
- INSTRUCTOR.md: Complete instructor guide with grading rubrics
- Common Errors: This document (expanded as needed)
- Module Documentation: Each module's ABOUT.md file
- Student Forums: Community discussion areas
🔄 Continuous Improvement
Feedback Collection
- Track common errors in office hours
- Document new error patterns
- Update this guide regularly
- Share insights with instructor team
TA Training
- Regular TA meetings
- Share debugging strategies
- Review student submissions together
- Practice debugging sessions
Last Updated: November 2024
For Questions: See INSTRUCTOR.md or contact course instructor