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

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

Research output: Contribution to journalArticle

36 Citations (Scopus)

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.
LanguageEnglish
Pages57-80
Number of pages24
JournalComputer Science Education
Volume21
Issue number1
DOIs
Publication statusPublished - 30 Mar 2011

Fingerprint

programming
Teaching
Students
first-year student
Computer programming
visualization
Visualization
student
cause
learning
Values

Keywords

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

Cite this

@article{771d7ae593a0453fae8d474c151418e4,
title = "Investigating and improving the models of programming concepts held by novice programmers",
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.",
keywords = "empirical studies, teaching/learning strategies, novice programmers, constructivism, mental models, assignment",
author = "L. Ma and John Ferguson and M. Roper and M. Wood",
year = "2011",
month = "3",
day = "30",
doi = "10.1080/08993408.2011.554722",
language = "English",
volume = "21",
pages = "57--80",
journal = "Computer Science Education",
issn = "0899-3408",
number = "1",

}

Investigating and improving the models of programming concepts held by novice programmers. / Ma, L.; Ferguson, John; Roper, M.; Wood, M.

In: Computer Science Education, Vol. 21, No. 1, 30.03.2011, p. 57-80.

Research output: Contribution to journalArticle

TY - JOUR

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

AU - Ma, L.

AU - Ferguson, John

AU - Roper, M.

AU - Wood, M.

PY - 2011/3/30

Y1 - 2011/3/30

N2 - 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.

AB - 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.

KW - empirical studies

KW - teaching/learning strategies

KW - novice programmers

KW - constructivism

KW - mental models

KW - assignment

UR - http://www.informaworld.com/smpp/title~content=t713734307~db=all

U2 - 10.1080/08993408.2011.554722

DO - 10.1080/08993408.2011.554722

M3 - Article

VL - 21

SP - 57

EP - 80

JO - Computer Science Education

T2 - Computer Science Education

JF - Computer Science Education

SN - 0899-3408

IS - 1

ER -