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 tensorsCheck 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