Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers
- 1 June 1985
- journal article
- Published by Taylor & Francis in Human–Computer Interaction
- Vol. 1 (2) , 133-161
- https://doi.org/10.1207/s15327051hci0102_3
Abstract
We present a process model to explain bugs produced by novices early in a programming course. The model was motivated by interviews with novice programmers solving simple programming problems. Our key idea is that many programming bugs can be explained by novices inappropriately using their knowledge of step-by-step procedural specifications in natural language. We view programming bugs as patches generated in response to an impasse reached by the novice while developing a program. We call such patching strategies bug generators. Several of our bug generators describe how natural language preprogramming knowledge is used by novices to create patches. Other kinds of bug generators are also discussed. We describe a representation both for novice natural language preprogramming knowledge and novice fragmentary programming knowledge. Using these representations and the bug generators, we evaluate the model by analyzing four interviews with novice programmers.Keywords
This publication has 9 references indexed in Scilit:
- Empirical Studies of Programming KnowledgeIEEE Transactions on Software Engineering, 1984
- Learning to program in LISPCognitive Science, 1984
- Cognitive strategies and looping constructsCommunications of the ACM, 1983
- Unlearning Aristotelian physics: a study of knowledge-based learningCognitive Science, 1982
- Students’ preconceptions in introductory mechanicsAmerican Journal of Physics, 1982
- Categorization and Representation of Physics Problems by Experts and Novices*Cognitive Science, 1981
- Repair theory: A generative theory of bugs in procedural skillsCognitive Science, 1980
- Verbal reports as data.Psychological Review, 1980
- Exploratory experiments in programmer behaviorInternational Journal of Parallel Programming, 1976