Authors: Matthew Heinsen Egan and Chris McDonald
Abstract: Debugging is a source of great frustration for most novice programmers. Standard and professional debugging tools are unsuitable for novice programmers, because they are overly complex and do not provide the basic information that novices frequently require. We describe an ongoing project to design, build, and evaluate novice-focused debugging tools supporting the standard C programming language. In particular, our focus is on detecting, reporting, and reviewing the typical runtime errors that confuse and frustrate student programmers - accesses to invalid memory, reading from uninitialized memory, and C's often "defined to be undefined" behaviour. In addition, our tool features integrated execution tracing so that students receive not only very informative error reporting, but the ability to replay the entire history of their program leading to that error.
Keywords: Novice programmers, debuggers