TY - JOUR
T1 - An evaluation of SeeC
T2 - a tool designed to assist novice C programmers with program understanding and debugging
AU - Heinsen Egan, Matthew
AU - McDonald, Chris
PY - 2021
Y1 - 2021
N2 - 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).
AB - 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).
KW - debuggers
KW - Novice programmers
KW - program visualization
UR - http://www.scopus.com/inward/record.url?scp=85087366727&partnerID=8YFLogxK
U2 - 10.1080/08993408.2020.1777034
DO - 10.1080/08993408.2020.1777034
M3 - Article
AN - SCOPUS:85087366727
SN - 0899-3408
VL - 31
SP - 340
EP - 373
JO - Computer Science Education
JF - Computer Science Education
IS - 3
ER -