13 June 2012
Coming soon: an online course on debugging
by Andreas Zeller
In the past weeks, I have been preparing an online course on software debugging for Udacity, the Silicon Valley startup that aims to "democratize education". The course will be highly interactive, in seven 60-minute units with quizzes every 2-4 minutes, and deliver a systematic approach to debugging. During the course, I will have the participants build automated debugging tools in Python, such as
Preparing these tools in Python was amazingly straight-forward (less than 45 minutes each – but then, I'm an expert); Python offers simple, yet effective tracing facilities that grant access to all events and states during execution. (My only gripe is the lack of easy static analysis.) Since systematic debugging is not frequently found in computer science curricula, I hope to cater to students as well as to professionals who are looking for additional training – and, of course, to improve the state of the practice in debugging.
- an interactive debugger,
- delta debugging on inputs,
- inferring dynamic invariants,
- statistical debugging, or
- mining software archives.
I will be spending the next two weeks with Udacity in Palo Alto to record the units. The format will be Udacity-like: Most of the time, you'll only see my hand writing, doodling, sketching, and developing the material on the screen while I am talking. You can always stop and repeat as you like (or fast forward until the next automated quiz). I am pretty excited about the format, and very much look forward to an exciting course as well.
To see what an online course at Udacity looks like, check out Wes Weimer's CS 262: Programming Languages (Building a Web Browser) and go to "Preview the Class".
To learn more about the recording process, see John Regehr's blog on recording a class at Udacity.
To learn more about my work on debugging, see my book "Why Programs Fail".