Chris McDonald and Matthew Heinsen Egan
Communicating using Program Traces

Supported by the growth of embedded devices, the IoT, and modern standardization, C remains an important language for undergraduate students. However, when presented to relatively inexperienced programmers, its very limited runtime support is a source of frustration for both students and educators, alike.

SeeC is a novice-focused tool for the C programming language that displays and records the execution of programs, detects runtime errors, and enables students to review their programs' data and execution history. Students can deterministically replay a program, and reason backwards from a runtime error to determine its true cause. The approach can lead to students' reduced frustration and greater understanding of program behaviour.

This presentation provides a brief overview of SeeC and a discussion on how its program traces provide an opportunity for students to communicate their questions and misunderstandings with educators, and for educators to provide examples and debugging challenges to students.