@inproceedings{68941962d4524f59bff6974079c66049,
title = "Trace-based teaching in early programming courses",
abstract = "Students in introductory programming courses struggle with building the mental models that correctly describe concepts such as variables, subroutine calls, and dynamic memory usage. This struggle leads to lowered student learning outcomes and, it has been argued, the high failure and dropout rates commonly seen in these courses. We will show that accurately modeling what is occurring in memory and requiring students to trace code using this model improves student performance and increases retention. This paper presents the results of an experiment in which introductory programming courses were organized around code tracing. We present program memory traces, a new approach for tracing code that models what occurs in memory as a program executes. We use these traces to drive our lectures and to act as key pieces of our active learning activities. We report the results of student surveys showing that instructor tracing was rated as the most valuable piece of the course and students' overwhelming agreement on the importance of the tracing activities for their learning. Finally, we demonstrate that trace-based teaching led to statistically significant improvements student grades, decreased drop and failure rates, and an improvement in students' programming abilities.",
keywords = "CS1, CS2, Pedagogy, Tracing",
author = "Matthew Hertz and Maria Jump",
year = "2013",
doi = "10.1145/2445196.2445364",
language = "English",
isbn = "9781450320306",
series = "SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education",
publisher = "Association for Computing Machinery",
pages = "561--566",
booktitle = "SIGCSE 2013 - Proceedings of the 44th ACM Technical Symposium on Computer Science Education",
address = "United States",
note = "44th ACM Technical Symposium on Computer Science Education, SIGCSE 2013 ; Conference date: 06-03-2013 Through 09-03-2013",
}