Helping Students Debug ≠ debugging student code -------- I Use Loud Cheering! Identify Understand Locate Change -------- I Use Loud Cheering! Identify “What's wrong?” “How do you know it doesn't work?” Design (turn off computer) vs Implementation (help with code) Understand Locate Change -------- I Use Loud Cheering! Identify Understand Goal: are they ready for debugging? Intro: “what does x store?” “which is first confusing line?” Adv: “where is concept X?” “what does this messy bit do?” Locate Change -------- I Use Loud Cheering! Identify Understand Locate 1. Pick a point 2. What should happen there? 3. What does happen there? 4. Pick a new point and repeat Change -------- I Use Loud Cheering! Identify Understand Locate Change 1. local 2. missing component 3. aliased meaning Refactor 2 & 3 into 1 Small steps, test often -------- Helping Students Debug I Use Loud Cheering! Identify Ask what's wrong Design vs Implementation Understand Ask what code does Locate 1. Pick point 2. What should it do? 3. What does it do? Change - Local - Missing component - Aliased meaning Refector before fix Test often