"Investigating and Improving the Models of Programming Concepts Held by Novice Programmers." L. Ma, J. Ferguson, M. Roper, and M. Wood. Computer Science Education. 21
Abstract: The teaching of introductory computer programming seems far from successful, with many first year students performing more poorly than expected. One possible reason for this is that novices hold 'non-viable' mental models (internal explanations of how something works) of key programming concepts which then cause misconceptions and difficulties. An initial study investigated the apparent viability of novices' models of fundamental programming concepts, focusing on value and reference assignment. This revealed that many students appeared to hold 'non-viable' mental models of these key concepts and that those students who appeared to hold viable mental models performed significantly better in programming tasks than those with non-viable models. To address this, a teaching model integrating cognitive conflict and program visualisation is proposed. A series of studies found that this teaching model is potentially effective in enhancing engagement with learning materials and may therefore help novice programmers develop a better understanding of key concepts.