Using Tracing and Sketching to Solve Programming Problems: Replicating and Extending an Analysis of What Students Draw

Sketching out a code trace is a cognitive assistance for programmers, student and professional. Previous research (Lister et al. 2004) showed that students who sketch a trace on paper had greater success on code 'reading' problems involving loops, arrays, and conditionals. We replicated this finding, and developed further categories of student sketching strategies. Our results support previous findings that students who don't sketch on code reading problems have a lower success rate than students who do sketch. We found that students who sketch incomplete traces also have a low success rate, similar to students who don't sketch at all. We categorized sketching strategies on new problem types (code writing, code ordering, and code fixing) and find that different types of sketching are used on these problems, not always with increased success. We ground our results in a theory of sketching as a method for distributing cognition and as a demonstration of the process of the notional machine.

[1]  Edwin Hutchins,et al.  How a Cockpit Remembers Its Speeds , 1995, Cogn. Sci..

[2]  Allison Elliott Tew,et al.  A fresh look at novice programmers' performance and their teachers' expectations , 2013, ITiCSE -WGR '13.

[3]  Linxiao Ma,et al.  Investigating and improving novice programmers’ mental models of programming concepts , 2007 .

[4]  Mark A. Holliday,et al.  CS1 assessment using memory diagrams , 2004, SIGCSE '04.

[5]  Benedict du Boulay,et al.  Some Difficulties of Learning to Program , 1986 .

[6]  F. Paas,et al.  Cognitive Architecture and Instructional Design , 1998 .

[7]  Takashi Yamauchi,et al.  Learning from human tutoring , 2001, Cogn. Sci..

[8]  Jacqueline Whalley,et al.  Decoding doodles: novice programmers and their annotations , 2007 .

[9]  Jorma Sajaniemi,et al.  Factors in novice programmers' poor tracing skills , 2007, ITiCSE.

[10]  Aman Yadav,et al.  Expanding computer science education in schools: understanding teacher experiences and challenges , 2016, Comput. Sci. Educ..

[11]  Paul J. Feltovich,et al.  Categorization and Representation of Physics Problems by Experts and Novices , 1981, Cogn. Sci..

[12]  P. Chandler,et al.  Cognitive Load Theory and the Format of Instruction , 1991 .

[13]  Patricia Haden,et al.  Parson's programming puzzles: a fun and effective learning tool for first programming courses , 2006 .

[14]  Petri Ihantola,et al.  Two-Dimensional Parson's Puzzles: The Concept, Tools, and First Observations , 2011, J. Inf. Technol. Educ. Innov. Pract..

[15]  R. Pea Practices of distributed intelligence and designs for education , 2018 .

[16]  George M. Bodner,et al.  Making sense of the arrow-pushing formalism among chemistry majors enrolled in organic chemistry , 2008 .

[17]  Lynda Thomas,et al.  Scaffolding with object diagrams in first year programming classes: some unexpected results , 2004, SIGCSE '04.

[18]  Robert S. Rist Schema Creation in Programming , 1989, Cogn. Sci..

[19]  Matthew Hertz,et al.  Trace-based teaching in early programming courses , 2013, SIGCSE '13.

[20]  Lynda Thomas,et al.  Scaffolding with object diagrams in first year programming classes: some unexpected results , 2004 .

[21]  Robert McCartney,et al.  Questions, annotations and institutions: observations from a study of novice programmers , 2004 .

[22]  Sally Fincher,et al.  Computer Science Curricula 2013 , 2013 .

[23]  Barbara Ericson,et al.  Georgia Computes! An Intervention in a US State, with Formal and Informal Education in a Policy Context , 2014, TOCE.

[24]  Marc Roper,et al.  Investigating and improving the models of programming concepts held by novice programmers , 2011, Comput. Sci. Educ..

[25]  Juha Sorva,et al.  Notional machines and introductory programming education , 2013, TOCE.

[26]  Juhani Tuovinen,et al.  Optimising student cognitive load in computer education , 2000, ACSE '00.

[27]  Mark Guzdial,et al.  Subgoals, Context, and Worked Examples in Learning Computing Problem Solving , 2015, ICER.

[28]  Mark Guzdial,et al.  Developing a validated assessment of fundamental CS1 concepts , 2010, SIGCSE.

[29]  Robert McCartney,et al.  Naturally occurring data as research instrument: analyzing examination responses to study the novice programmer , 2010, SGCS.