Quantifying Student Mistakes and Misconceptions of the Run-Time Memory Layout of Java Programs
Abstract
Novice programmers often have flawed mental models of program execution, and knowing what misconceptions they are likely to hold can help instructors to prevent and correct these misconceptions. Recently, tools have emerged which task students with simulating a program's execution and constructing the run-time memory layout. Such tools create new opportunities to systematically log student errors and identify flaws in their mental models --- including low-level misconceptions that may not be visible when looking at other artifacts such as student-written programs. This paper analyzes log data that was collected by instrumenting one such tool. We identify the most common mistakes that students made, as well as mistakes that were particularly likely to persist even in the face of targeted feedback. We also present the results of a conceptual pretest-posttest designed to help contextualize these mistakes.