An evaluation of SeeC: a tool designed to assist novice C programmers with program understanding and debugging

Matthew Heinsen Egan, Chris McDonald

Research output: Contribution to journalArticle

1 Citation (Scopus)

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).

Original languageEnglish
JournalComputer Science Education
DOIs
Publication statusE-pub ahead of print - 21 Jun 2020

Fingerprint Dive into the research topics of 'An evaluation of SeeC: a tool designed to assist novice C programmers with program understanding and debugging'. Together they form a unique fingerprint.

Cite this