An evaluation of SeeC: a tool designed to assist novice C programmers with program understanding and debugging. Issue 3 (3rd July 2021) - Heinsen Egan, Matthew; McDonald, Chris
ABSTRACT: Background and Context: Students learning the C programming language struggle to debug, and to understand the runtime behaviour of, their programs. Objective: We examine a tool that combines several novice-focused error detection, program visualization, and debugging techniques, to investigate which features students use in real study sessions, which features they consider effective, and whether or not the tool can effectively assist students with debugging tasks. Method: This study employed a mixed-methods approach. First, we record participants' interactions with the tool during their regular coursework by instrumenting the tool itself. Second, we collected interaction recordings and screen capture recordings of students using the tool to perform set debugging tasks. Finally we surveyed students who participated in the second part of the study, to investigate their perceptions of the tool. Findings: Students used the tool's runtime error detection and execution trace reviewing features to find and investigate bugs during their coursework. In set debugging tasks, even students with no previous experience of the tool were able to use it effectively with little to no assistance. Students were positive about the tool, but suggested a number of user interface improvements. Implications: Novice-focused program visualization and debugging tools for the C programming language can assist students with complicated debugging tasks encountered during their regular coursework. Simple, user-friendly interfaces are important in such tools, and may motivate their use (in preference to debugging tools designed for developers).