Affiliation:
1. Aalto University, AALTO, Finland
Abstract
This article brings together, summarizes, and comments on several threads of research that have contributed to our understanding of the challenges that novice programmers face when learning about the runtime dynamics of programs and the role of the computer in program execution. More specifically, the review covers the literature on programming misconceptions, the cognitive theory of mental models, constructivist theory of knowledge and learning, phenomenographic research on experiencing programming, and the theory of threshold concepts. These bodies of work are examined in relation to the concept of a “notional machine”—an abstract computer for executing programs of a particular kind. As a whole, the literature points to notional machines as a major challenge in introductory programming education. It is argued that instructors should acknowledge the notional machine as an explicit learning objective and address it in teaching. Teaching within some programming paradigms, such as object-oriented programming, may benefit from using multiple notional machines at different levels of abstraction. Pointers to some promising pedagogical techniques are provided.
Publisher
Association for Computing Machinery (ACM)
Subject
Education,General Computer Science
Reference134 articles.
1. The Role of Domain Expenence in Software Design
2. Role playing in an object-oriented world
3. Babbage C. 1864. Passages from the Life of a Philosopher. Longman Green. Babbage C. 1864. Passages from the Life of a Philosopher. Longman Green.
4. A diagnosis of beginning programmers' misconceptions of BASIC programming statements
5. Constructivism in computer science education;Ben-Ari M.;J. Comput. Math. Sci. Teach.,2001
Cited by
193 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献