Common sense computing (episode 4): debugging

We report on responses to a series of four questions designed to identify pre-existing abilities related to debugging and troubleshooting experiences of novice students before they begin programming instruction. The focus of these questions include general troubleshooting, bug location, exploring unfamiliar environments, and describing students' real life troubleshooting experiences. We find that the common sense experience of students related to debugging is often at odds with the needs for debugging programs. Student troubleshooting experiences recognize real world non-determinism and rarely require undoing an attempted fix. Based on student answers, we shed light on some specific frustrations of instructors and make a set of recommendations for teaching, including addressing the difference between finding an error and fixing it, modeling the formation of multiple hypotheses, and encouraging students to apply domain knowledge.

[1]  J. Paul Gibson,et al.  Software engineering as a model of understanding for learning and problem solving , 2005, ICER '05.

[2]  Elliot Soloway,et al.  Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers , 1985, Hum. Comput. Interact..

[3]  Iris Vessey,et al.  Expertise in Debugging Computer Programs: A Process Analysis , 1984, Int. J. Man Mach. Stud..

[4]  Ann L. Brown,et al.  How people learn: Brain, mind, experience, and school. , 1999 .

[5]  Robert McCartney,et al.  Commonsense computing: using student sorting abilities to improve instruction , 2007, SIGCSE.

[6]  Robert McCartney,et al.  Commonsense computing (episode 3): concurrency and concert tickets , 2007, ICER '07.

[7]  L. Gugerty,et al.  Debugging by skilled and novice programmers , 1986, CHI '86.

[8]  John R. Anderson,et al.  Debugging: An Analysis of Bug-Location Strategies , 1987, Hum. Comput. Interact..

[9]  A. M. White The Process of Education , 1994 .

[10]  Mordechai Ben-aft,et al.  Constructivism in computer science education , 1998, SIGCSE '98.

[11]  Renee Hobbs,et al.  Conditions of Learning in Novice Programmers , 1986 .

[12]  Lance A. Miller,et al.  Natural Language Programming: Styles, Strategies, and Contrasts , 1981, IBM Syst. J..

[13]  Robert McCartney,et al.  Commonsense computing: what students know before we teach (episode 1: sorting) , 2006, ICER '06.

[14]  J. Roschelle,et al.  Misconceptions Reconceived: A Constructivist Analysis of Knowledge in Transition , 1994 .

[15]  McCoy Sharon Carver,et al.  Improving children's debugging skills , 1987 .

[16]  Curtis R. Cook,et al.  An analysis of the on-line debugging process , 1987 .

[17]  Roger W. Schvaneveldt,et al.  Programmer-nonprogrammer differences in specifying procedures to people and computers , 1987, J. Syst. Softw..

[18]  Robert McCartney,et al.  What do beginning students know, and what can they do? , 2006, ITICSE '06.