Naive tools for studying compilation history

Full text available at http://www.cs.kent.ac.uk/pubs/2003/1588/index.html

First paragraph:

We are interested in assessing the impact of pedagogic programming
environments in the teaching of programming to novices. As part of
this work, we are interested in studying student compilation
histories—a sequence of snapshots of a student’s program taken each
time they compile. Much like a sequence of moving pictures imply
motion, we believe there is merit in studying the evolution of a
student’s program. A compilation history represents one aspect of a
solution trajectory, a sequence of observable (external) and mental
(internal) states that define a student’s path from problem start to
completion.

The 14-page paper raises the question about the delta between compiles
– what students change in between compilations. They use source
substitution to ignore minor changes in variable naming, and they try
to look at structural and type changes. They hope to be able to use
this to analyze how students rewrite programs.

Some questions:

- How can one measure the growing complexity of a program solution?

- How can one record the kind of bugs students encounter?

- Maybe it would be nice to record not only compilation bugs but also

logical ones…