Analysis of code reading to gain more insight in program comprehension

Code reading, although an integral part of program comprehension, is rarely reflected. In this paper, we want to argue for a research approach and direction exploiting the potential that lies in the analysis of reading processes. Based on the vast experience compiled in psychology and some studies in computing, eye tracking and think aloud were elaborated as a viable research instrument for code reading studies. We conducted a feasibility study, designed to examine the actual process of code reading as the sensory starting point of comprehension. Computational and statistical tools were developed to facilitate data capture and analysis for eye tracking experiments. Results do not just provide proof of concept but already emphasize differences between reading natural language text and source code, as well as a distinct attention allocation within different code elements like keywords and operators. In conclusion we suggest a combination of theory-driven selected stimuli material, a carefully designed procedure of eye tracking, complemented with suitable post-tests on comprehension as well as retrospective think aloud in order to obtain additional information on the linking process between perception and comprehension. As an addition to other research approaches this should most certainly help us to improve our knowledge of comprehension within an educational research framework.

[1]  Martha E. Crosby,et al.  How do we read algorithms? A case study , 1990, Computer.

[2]  Markku Tukiainen,et al.  An eye-tracking methodology for characterizing program comprehension processes , 2006, ETRA.

[3]  Markku Tukiainen,et al.  Effects of display blurring on the behavior of novices and experts during program debugging , 2005, CHI Extended Abstracts.

[4]  Akito Monden,et al.  Analyzing individual performance of source code review using reviewers' eye movement , 2006, ETRA.

[5]  Akito Monden,et al.  Exploiting Eye Movements for Evaluating Reviewer's Performance in Software Review , 2007, IEICE Trans. Fundam. Electron. Commun. Comput. Sci..

[6]  Stanley Letovsky,et al.  Cognitive processes in program comprehension , 1986, J. Syst. Softw..

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

[8]  K. Rayner,et al.  The psychology of reading , 1989 .

[9]  Anne Venables,et al.  A closer look at tracing, explaining and code writing skills in the novice programmer , 2009, ICER '09.

[10]  Markku Tukiainen,et al.  Visual attention tracking during program debugging , 2004, NordiCHI '04.

[11]  Yann-Gaël Guéhéneuc,et al.  TAUPE: towards understanding program comprehension , 2006, CASCON.

[12]  Jonathan I. Maletic,et al.  Assessing the Comprehension of UML Class Diagrams via Eye Tracking , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[13]  Markku Tukiainen,et al.  Temporal eye-tracking data: evolution of debugging strategies with multiple representations , 2008, ETRA.

[14]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

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

[16]  C. Clifton,et al.  The On-line Study of Sentence Comprehension: Eyetracking, ERPs and Beyond , 2004 .