We all have to deal with bugs - students, teachers, hobbyists, professionals. It's rare that we'll take a concept to working program without some bumps along the way. Well, once or twice I did but that's once or twice over the course of a lifetime, those cases are the exceptions.
The errors and the bugs are inevitable so what can we do to help students deal with the invariable frustration?
Yesterday's post on errors led to some interesting discussion over on Facebook. Specifically on teaching students to use a debugger. My contention is that while it's easy to demonstrate a debugger it's hard to get student buy in. In my CS0, we start with Thonny which has a great integrated debugger. In my CS1 I also show and use gdb. Regardless of my approach the subset of students who actively end up using the debugger has remained both constant and small.
Programming is amazing. You get the thrill of victory and the agony of defeat. It's a great feeling when you write something and it works - even it it's small and simple. It also feels good to hunt down, discover and eliminate subtle bugs in our code. On the other hand, I'll frequently feel like a bozo when I pour over my code for days only to find a super silly error.
<blockquote> Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? – Brian Kernighan </blockquote>
Debugging is what the third episode of the CS Ed Podcast was all about. Kristin Stephens-Martinez of Duke University speaks with Amy Ko of the University of Washington.