ABSTRACT
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.
- Aschwanden, C. and Crosby, M. 2006. Code Scanning Patterns in Program Comprehension. Symposium on Skilled Human-Intelligent Agent Performance. Measurement, Application and Symbiosis. Hawaii International Conference on Systems Science (2006).Google Scholar
- Bednarik, R. and Tukiainen, M. 2006. An eye-tracking methodology for characterizing program comprehension processes. Proceedings of the 2006 symposium on Eye tracking research & applications (San Diego, California, 2006), 125--132. Google ScholarDigital Library
- Bednarik, R. and Tukiainen, M. 2005. Effects of display blurring on the behavior of novices and experts during program debugging. CHI '05 extended abstracts on Human factors in computing systems (Portland, OR, USA, 2005), 1204--1207. Google ScholarDigital Library
- Bednarik, R. and Tukiainen, M. 2008. Temporal eye-tracking data: evolution of debugging strategies with multiple representations. Proceedings of the 2008 symposium on Eye tracking research & applications (Savannah, Georgia, 2008), 99--102. Google ScholarDigital Library
- Bednarik, R. and Tukiainen, M. 2004. Visual attention tracking during program debugging. Proceedings of the third Nordic conference on Human-computer interaction (Tampere, Finland, 2004), 331--334. Google ScholarDigital Library
- Bente, G. 2004. Erfassung und Analyse des Blickverhaltens. Lehrbuch der Medienpsychologie. R. Mangold, P. Vorderer, and G. Bente, eds. Hogrefe Verlag für Psychologie. 297--324.Google Scholar
- Block, A. 2002. Die Blickregistrierung als psychophysiologische Untersuchungsmethode: Grundlagen, Anwendung und technische Realisierung. Verlag Dr. Kovač.Google Scholar
- Carreiras, M. 2004. On the On-Line Study of Language Comprehension. The On-line Study of Sentence Comprehension: Eyetracking, ERPs and Beyond. M. Carreiras, C. Clifton, Jr., and C. Clifton, Jr., eds. Psychology Press. 1--14.Google Scholar
- Christmann, U. 2004. Lesen. Lehrbuch der Medienpsychologie. R. Mangold, P. Vorderer, and G. Bente, eds. Hogrefe Verlag für Psychologie. 419--442.Google Scholar
- Crosby, M. E. and Stelovsky, J. 1990. How do we read algorithms? A case study. Computer. 23, 1 (1990), 24--35. Google ScholarDigital Library
- Crosby, M. E., Scholtz, J. and Wiedenbeck, S. 2002. The Roles Beacons Play in Comprehension for Novice and Expert Programmers. 14th Workshop of the Psychology of Programming Interest Group (2002), 58--73.Google Scholar
- Galley, N. 2001. Physiologische Grundlagen, Meßmethoden und Indikatorfunktion der okulomotorischen Aktivität. Grundlagen und Methoden der Psychophysiologie. F. Rösler, ed. Hogrefe Verlag für Psychologie. 237--316.Google Scholar
- Guéhéneuc, Y.-G 2006. TAUPE: Towards Understanding Program Comprehension. Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research (Toronto, Ontario, Canada, 2006), 1--13. Google ScholarDigital Library
- Kerkau, F. 2009. Usability-Testing zur Qualitätssicherung von Online-Lernangeboten. Online-Lernen: Handbuch für Wissenschaft und Praxis. L. J. Issing and P. Klimsa, eds. Oldenbourg Verlag. 329--337.Google Scholar
- Letovsky, S. 1987. Cognitive Processes in Program Comprehension. Journal of Systems and Software. 7, 4 (Dec. 1987), 325--339. Google ScholarDigital Library
- Lister, R., Clear, T., Simon, Bouvier, D. J., Carter, P., Eckerdal, A., Jacková, J., Lopez, M., McCartney, R., Robbins, P., Seppälä, O. and Thompson, E. 2010. Naturally occurring data as research instrument: analyzing examination responses to study the novice programmer. SIGCSE Bull. 41, 4 (2010), 156--173. Google ScholarDigital Library
- Lopez, M., Whalley, J., Robbins, P. and Lister, R. 2008. Relationships between reading, tracing and writing skills in introductory programming. Proceeding of the Fourth international Workshop on Computing Education Research (Sydney, Australia, 2008), 101--112. Google ScholarDigital Library
- von Mayrhauser, A. and Vans, A. M. 1994. Program Understanding - A Survey. Colorado State University Computer Science Technical Report CS-94-120. (1994).Google Scholar
- R Development Core Team 2011. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing.Google Scholar
- Rayner, K. and Pollatsek, A. 1989. The Psychology of Reading. Prentice Hall.Google Scholar
- Soloway, E. and Ehrlich, K. 1984. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering. 10, 5 (1984), 595--609.Google ScholarDigital Library
- TIOBE Software: Tiobe Index: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html. Accessed: 2011-06-30.Google Scholar
- Uwano, H., Nakamura, M., Monden, A. and Matsumoto, K.-ichi 2006. Analyzing Individual Performance of Source Code Review Using Reviewers? Eye Movement. Proceedings of the 2006 symposium on Eye tracking research & applications (2006), 133--140. Google ScholarDigital Library
- Uwano, H., Nakamura, M., Monden, A. and Matsumoto, K.-ichi 2007. Exploiting Eye Movements for Evaluating Reviewer's Performance in Software Review. IEICE Transactions on Fundamentals of Electronics Communications and Computer Sciences E Series A. 90, 10 (2007), 317--328. Google ScholarDigital Library
- Venables, A., Tan, G. and Lister, R. 2009. A closer look at tracing, explaining and code writing skills in the novice programmer. Proceedings of the fifth international workshop on Computing education research workshop (Berkeley, CA, USA, 2009), 117--128. Google ScholarDigital Library
- Wittmann, M. and Pöppel, E. 2001. Neurobiologie des Lesens. Handbuch Lesen. B. Franzmann, K. Hasemann, D. Löffler, and E. Schön, eds. Schneider Verlag Hohengehren. 224--239.Google Scholar
- Yusuf, S., Kagdi, H. and Maletic, J. I. 2007. Assessing the Comprehension of UML Class Diagrams via Eye Tracking. Proceedings of the 15th IEEE International Conference on Program Comprehension (2007), 113--122. Google ScholarDigital Library
Index Terms
- Analysis of code reading to gain more insight in program comprehension
Recommendations
The use of code reading in teaching programming
Koli Calling '13: Proceedings of the 13th Koli Calling International Conference on Computing Education ResearchProgramming is an intertwined process of reading and writing. So far, computing education research has often focused on the writing part. This paper takes a further look into the role of reading source code in learning to program. In order to complement ...
Eye tracking analysis of computer program comprehension in programmers with dyslexia
This paper investigates the impact of dyslexia on the reading and comprehension of computer program code. Drawing upon work from the fields of program comprehension, eye tracking, dyslexia, models of reading and dyslexia gaze behaviour, a set of ...
Eye Movements in Code Reading: Relaxing the Linear Order
ICPC '15: Proceedings of the 2015 IEEE 23rd International Conference on Program ComprehensionCode reading is an important skill in programming. Inspired by the linearity that people exhibit while natural language text reading, we designed local and global gaze-based measures to characterize linearity (left-to-right and top-to-bottom) in reading ...
Comments