4 ms·
This is an active area of CS research into what is called “tracing” - looking at a program and reasoning what it’s output would be. In a research study I was in
by primitivesuave 7y ago
This is an active area of CS research into what is called “tracing” - looking at a program and reasoning what it’s output would be. In a research study I was involved in 2 years ago, the efficacy of various teaching methods for introductory computer science were measured by student’s ability to trace program execution rather than by the ability to write code.
- jfarmer 7y agoThis is really interesting. Any links to relevant research? I'd love to read up.
- keithnz 7y agoI was interested in research on this as well, just googling I found http://www.it.uu.se/research/group/cetuss/Events/2005-12/program/Beth.pdf http://www.it.uu.se/research/group/cetuss/Events/2005-12/pro... which studies how students go about tracing a piece of code. It doesn't go into learning techniques, but categorizes the techniques first year students use to trace code (which they say is often poorly done). It seems interesting base level research to start with. It was kind of interesting to monitor my own mind when I traced the example code to see how I went about it also.
- primitivesuave 7y agoUnable to find the paper but can link you to the professor doing the research: https://publish.illinois.edu/glherman/conceptual-change-in-engineering-education/ https://publish.illinois.edu/glherman/conceptual-change-in-e... The paper linked adjacent to this comment looks interesting as well. What I gathered from the experience was that if you can capture student activity while they are tracing (e.g. eye tracking, recording incremental changes to a doodling interface and doing some pattern recognition on it, etc) you can fairly accurately and repeatably figure out their structural thinking ability.
- tunesmith 7y agoWe've started doing this in pair-programming too, without knowing a term for it. Make a change, then before running it, verbally state what we expect to happen. It seems to help a lot. It's turned into a regular habit for me when programming solo as well.
- marsrover 7y agoI do this daily because I’m too lazy to fire up the debugger.
- rytill 7y agoTracing was heavily used at Carnegie Mellon for code-related courses, as of 2013-17.