A Closer Look at Metacognitive Scaffolding: Solving Test Cases Before Programming

Paul Denny,James Prather,Brett A. Becker,Zachary Albrecht,Dastyni Loksa,Raymond Pettit
DOI: https://doi.org/10.1145/3364510.3366170
2019-01-01
Abstract:Prior research has shown that novices face metacognitive difficulties associated with understanding problem statements. Metacognition refers to the processes that an individual uses to plan, monitor, and assess their own understanding and performance and is often described as "thinking about thinking." Metacognitive awareness is a higher-order thinking skill that includes knowing when and how to use particular strategies for problem-solving. However, novice students often lack metacognitive skills. This can be a disadvantage, particularly when learning in unfamiliar domains. For instance, students who misinterpret a problem statement will most likely form an invalid mental model of the problem which they may find difficult to correct. A prior think-aloud study that used an intervention focused on this initial step in the problem-solving process showed promising results at a small scale. In this paper, we report on a large (n = 976) controlled experiment to examine the scalability of the aforementioned study. We measure the effect on novice programmer performance of metacognitive scaffolding that requires deliberate reflection on the problem statement before any code is written. Although control and experimental groups exhibited similar completion rates overall, students in the experimental group encountered significantly fewer errors that related to the formation of an incorrect mental model of the problem. These results hold promise in moving towards more reliable methods for developing metacognitive awareness in novice programmers.
What problem does this paper attempt to address?