An empirical investigation of the tacit plan knowledge in programming
Human factors in computer systems
Cognitive strategies and looping constructs: an empirical study
Communications of the ACM
Understanding the bugs of novice programmers (pascal, human-computer interaction, problem solving)
Understanding the bugs of novice programmers (pascal, human-computer interaction, problem solving)
Human Problem Solving
WIPE " Pilot Testing and Comparative Evaluation
ICALT '05 Proceedings of the Fifth IEEE International Conference on Advanced Learning Technologies
A Web Based Tool for Novice Programmers: Interaction in Use
ICCSA '08 Proceeding sof the international conference on Computational Science and Its Applications, Part I
Another outlook on linear recursion
ACM SIGCSE Bulletin
Simulating student programmers
IJCAI'89 Proceedings of the 11th international joint conference on Artificial intelligence - Volume 1
Identifying student misconceptions of programming
Proceedings of the 41st ACM technical symposium on Computer science education
Multimedia learning object to build cognitive understanding in learning introductory programming
Proceedings of the 7th International Conference on Advances in Mobile Computing and Multimedia
Backward model tracing: an explanation-based approach for reconstructing student reasoning
AAAI'90 Proceedings of the eighth National conference on Artificial intelligence - Volume 1
On compiler error messages: what they say and what they mean
Advances in Human-Computer Interaction
Following a thread: knitting patterns and program tracing
Proceedings of the 43rd ACM technical symposium on Computer Science Education
Teaching the novice programmer: A study of instructional sequences and perception
Education and Information Technologies
Notional machines and introductory programming education
ACM Transactions on Computing Education (TOCE)
Tracing quiz set to identify novices' programming misconceptions
Proceedings of the 13th Koli Calling International Conference on Computing Education Research
Hi-index | 0.00 |
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.