The importance of students' attention to program state: a case study of debugging behavior

To develop a model of students' debugging processes, I conducted a qualitative analysis of young students engaged in debugging computer programs they had written in the programming language Scratch. I present a microgenetic analysis that tracks how one student's attention to elements of computer program state shifted during his debugging process. I present evidence that this student had relevant domain knowledge and claim that his changing attention within the problem, and not his domain knowledge, mediated his debugging process. I hypothesize that a key competence in debugging is learning to identify what elements of program state are important to pay attention to and that this attention, and not only domain knowledge, mediates the debugging process. This hypothesis is consistent with a model of physics reasoning and learning from the Knowledge in Pieces theoretical framework and in this research I build upon education research outside of computer science. The case study analyzes the debugging process of a student entering the sixth grade, but I document an isomorphic case from a pair of college students to show that this pattern extends beyond this age.

[1]  Raymond Lister,et al.  Relationships between reading, tracing and writing skills in introductory programming , 2008, ICER '08.

[2]  Randy Pausch,et al.  Alice: a 3-D tool for introductory programming concepts , 2000 .

[3]  Colleen M. Lewis How programming environment shapes perception, learning and goals: logo vs. scratch , 2010, SIGCSE.

[4]  A. diSessa,et al.  What changes in conceptual change , 1998 .

[5]  R. Siegler Microgenetic Analyses of Learning , 2007 .

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

[7]  Tim O'Shea,et al.  The black box inside the glass box: presenting computing concepts to novices , 1999, Int. J. Hum. Comput. Stud..

[8]  Marja Kuittinen,et al.  A study of the development of students' visualizations of program state during an elementary object-oriented programming course , 2008, JERC.

[9]  Richard E. Mayer,et al.  Teaching and Learning Computer Programming : Multiple Research Perspectives , 1988 .

[10]  A. diSessa Toward an Epistemology of Physics , 1993 .

[11]  Roy D. Pea,et al.  Children's Mental Models of Recursive Logo Programs , 1985 .

[12]  David Hammer,et al.  Student resources for learning introductory physics , 2000 .

[13]  Leanne M. Hirshfield,et al.  Through the looking glass: teaching CS0 with Alice , 2007, SIGCSE.

[14]  Hank Kahney,et al.  What do novice programmers know about recursion , 1983, CHI '83.

[15]  Colleen M. Lewis Is pair programming more effective than other forms of collaboration for young students? , 2011, Comput. Sci. Educ..

[16]  Colleen M. Lewis,et al.  Building upon and enriching grade four mathematics standards with programming curriculum , 2012, SIGCSE '12.

[17]  Marja Kuittinen,et al.  An Experiment on Using Roles of Variables in Teaching Introductory Programming , 2005, Comput. Sci. Educ..

[18]  Randy Pausch,et al.  Objects: visualization of behavior and state , 2003 .

[19]  Elliot Soloway,et al.  Studying the Novice Programmer , 1988 .

[20]  A. diSessa An Interactional Analysis of Clinical Interviewing , 2007 .

[21]  Laurie Williams,et al.  The costs and benefits of pair programming , 2001 .

[22]  A. Strauss Basics Of Qualitative Research , 1992 .

[23]  Alan H. Schoenfeld Reflections on an Assessment Interview: what a Close Look at Student Understanding Can Reveal , 2007 .

[24]  Benedict duBoulay,et al.  Some Difficulties of Learning to Program , 1986 .