In [1]:
from IPython import display

Quantifying Program Comprehension

Michael Hansen, Rob Goldstone, Andrew Lumsdaine

Percepts and Concepts Lab, Spring 2013

Outline

  • eyeCode Experiment
  • Participants and Response Data
  • Eye-tracking Analysis
  • Future Work

The eyeCode Experiment

Task

  • Predict printed output of 10 short Python programs
  • 2-3 versions of 10 programs, randomly assigned
  • Pre/post surveys

Goals

  • Small code changes = large effects?
  • Complexity is more than metrics
  • Eye-tracking data for modeling program comprehension

Home Screen

AOI Transitions

1
2
3
4
5
for i in [1, 2, 3, 4]:
    print "The count is", i 


    print "Done counting" 

Correct Trials

Incorrect Trials


Future Work

  • Collect more data
    • New programs
    • Chin rest for eye-tracker
  • Codify eye movements \(\rightarrow\) participant strategies
    • Differences between experts and novices
    • Implications for programming education
  • Model comprehension process
    • Qualitative theories to computational model
    • Active vision model with procedural/declarative/spatial memory
Thank you!
In []: