SIGCSE '03 Proceedings of the 34th SIGCSE technical symposium on Computer science education
CS1 assessment using memory diagrams
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Scaffolding with object diagrams in first year programming classes: some unexpected results
Proceedings of the 35th SIGCSE technical symposium on Computer science education
A multi-national study of reading and tracing skills in novice programmers
Working group reports from ITiCSE on Innovation and technology in computer science education
Journal of Computing Sciences in Colleges - Papers of the Fourteenth Annual CCSC Midwestern Conference and Papers of the Sixteenth Annual CCSC Rocky Mountain Conference
Using cognitive conflict and visualisation to improve mental models held by novice programmers
Proceedings of the 39th SIGCSE technical symposium on Computer science education
ITiCSE '09 Proceedings of the 14th annual ACM SIGCSE conference on Innovation and technology in computer science education
Identifying student misconceptions of programming
Proceedings of the 41st ACM technical symposium on Computer science education
Heapviz: interactive heap visualization for program understanding and debugging
Proceedings of the 5th international symposium on Software visualization
UUhistle: a software tool for visual program simulation
Proceedings of the 10th Koli Calling International Conference on Computing Education Research
Following a thread: knitting patterns and program tracing
Proceedings of the 43rd ACM technical symposium on Computer Science Education
Experiments with algorithm visualization tool development
Proceedings of the 43rd ACM technical symposium on Computer Science Education
CSTutor: a pen-based tutor for data structure visualization
Proceedings of the 43rd ACM technical symposium on Computer Science Education
A Review of Generic Program Visualization Systems for Introductory Programming Education
ACM Transactions on Computing Education (TOCE)
Hi-index | 0.00 |
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.