Just so stories: how the program got that bug

Teachers see many more buggy programs than they do correct programs. We view this volume of buggy programs as riches to be mined: as windows into the thought processes of the students. In this paper we will describe one of the methods we employ in analyzing buggy programs: "just so bug stories", in which we generate hypotheses as to the misconceptions on the student's part that may have led to the observed program bugs. Our goal in presenting this discussion is to convince the reader of the potential for improved programming instruction that can come from paying attention to the bugs in a student's program: by truly understanding what the student was thinking about, we are in a much better position to offer counsel to the student.

[1]  L. Resnick,et al.  Mathematics and Science Learning: A New Conception , 1983, Science.

[2]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[3]  Kate Ehrlich,et al.  An empirical investigation of the tacit plan knowledge in programming , 1984 .

[4]  John Seely Brown,et al.  Artificial Intelligence and Learning Strategies. , 1978 .

[5]  Kate Ehrlich,et al.  Cognitive strategies and looping constructs: an empirical study , 1983, CACM.

[6]  John J. Clement,et al.  Translation Difficulties in Learning Mathematics , 1981 .

[7]  B. Adelson Problem solving and the development of abstract categories in programming languages , 1981, Memory & cognition.

[8]  Kate Ehrlich,et al.  Collecting and analyzing on-line protocols from novice programmers , 1982 .

[9]  Seymour Papert,et al.  Mindstorms: Children, Computers, and Powerful Ideas , 1981 .

[10]  Kate Ehrlich,et al.  WHAT DO PROGRAMMERS REUSE? THEORY AND EXPERIMENT. , 1983 .

[11]  EDWINA RISSLAND MICHENER,et al.  Understanding Understanding Mathematics , 1978, Cogn. Sci..

[12]  J. Reitman,et al.  Knowledge organization and skill differences in computer programmers , 1981, Cognitive Psychology.

[13]  Charles Rich Inspection methods in programming , 1980 .

[14]  Allan Collins Explicating the Tacit Knowledge in Teaching and Learning. Technical Report No. 5. , 1978 .

[15]  David R. Barstow,et al.  Knowledge-based program construction , 1979 .

[16]  Dorothea P. Simon,et al.  Expert and Novice Performance in Solving Physics Problems , 1980, Science.

[17]  John Seely Brown,et al.  Diagnostic Models for Procedural Bugs in Basic Mathematical Skills , 1978, Cogn. Sci..