Phone: (+61 8) 6488 2238
Fax: (+61 8) 6488 1089
Advanced debugging and program visualization for novice C programmers
This thesis describes the design, implementation, and evaluation of a tool named SeeC (pronounced "seek"), created to assist with program understanding and debugging for novice programmers learning C, widely considered a difficult language to learn. We combine advanced debugging techniques with pedagogically effective program visualization features, mitigate problems which afflicted previous tools, and produce a sustainable implementation that rigorously follows language standards, supports several platforms, and serves as a foundation for future research. Evaluations of SeeC's use by students, in coursework and preformed debugging tasks, show that it is an effective, intuitive debugging tool.
C is an important language, used ubiquitously, with compilers for numerous architectures, foundational to many other languages, and frequently used to teach upper-level courses. Newcomers to C often have great difficulty learning the language, particularly with building a thorough understanding of pointers, which are a Threshold Concept in Computer Science. An incomplete understanding of the language often leads to run-time errors, which cause further difficulties for students, especially those with limited debugging experience. Debugging run-time errors has been shown to be difficult for novice programmers, preventing them from completing work, consuming inordinate amounts of time, and ultimately contributing to decisions to drop out of programming courses.