Investigating and improving the models of programming concepts held by novice programmers

L. Ma, John Ferguson, M. Roper, M. Wood

Research output: Contribution to journalArticlepeer-review

53 Citations (Scopus)


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.
Original languageEnglish
Pages (from-to)57-80
Number of pages24
JournalComputer Science Education
Issue number1
Publication statusPublished - 30 Mar 2011


  • empirical studies
  • teaching/learning strategies
  • novice programmers
  • constructivism
  • mental models
  • assignment


Dive into the research topics of 'Investigating and improving the models of programming concepts held by novice programmers'. Together they form a unique fingerprint.

Cite this