Summary: | Novice programmers struggle with debugging. Despite a rich literature of research on the effectiveness of teaching debugging, debugging is often not taught systematically in computer science curricula. This thesis presents the Debug Tutor, an automated debugging tutor for explicit debugging practice at the college level. The Debug Tutor’s suite of exercises drill particular microskills essential for competent debugging, and it offers automated expert hints and feedback by observing students’ debugging actions in real time. The Debug Tutor was incorporated into MIT’s undergraduate Software Construction course (6.102, formerly 6.031) in the Spring 2023 term. The Debug Tutor’s effectiveness at teaching important low-level debugging skills was investigated by analyzing exercise completion statistics and subsequent debugging-related quiz scores of the over 500 MIT students enrolled in the undergraduate course. The analysis revealed that completing Debug Tutor exercises was positively correlated with performance on debugger-related exam questions, regardless of students’ prior comfort levels with using a debugger. Furthermore, the software design of the Debug Tutor as a tutoring architecture with event tracking support was shown to be robust in capturing specific student actions to compare against exercise event patterns, flexible enough to handle a wide range of unexpected action sequences and on-the-fly updates, and extensible to domains other than the use of the debugger.
|