Spatial skills and navigation of source code

Learning to program is a difficult process, and students that perform well in other subjects may not produce comparable results in programming. Evidence suggests that some programmers are inherently more skilled than others, and one individual difference that has been shown to be important is spatial ability. This cognitive characteristic is implicated in successful real-world navigation. It is also important for navigating within hypertext, and there is a growing recognition that it has a part to play in program comprehension and development, with navigation of source code considered similar to navigating in the real world. Little research has been carried out to study the navigational patterns of programmers with differing spatial skills. In this study, 24 students enrolled on a Masters in IT course at a University in the UK were given a code comprehension exercise. Various measures were made of time taken and movement around the code. Those with high spatial ability completed the task in shorter time, spent less time searching around deciding where to go next, and jumped more frequently within and between class files. Strong relations were also found between spatial ability and results in programming modules, with much weaker relations with non-programming modules. This paper discusses the implications of these results in relation to the accessibility of programming to learners with low spatial ability.

[1]  Raymond Lister,et al.  Programmed to succeed?: A multi-national, multi-institutional study of introductory programming courses , 2005 .

[2]  A. Marie Vans,et al.  Program understanding behavior during debugging of large scale software , 1997, ESP '97.

[3]  Andy Cockburn,et al.  Hidden messages: evaluating the efficiency of code elision in program navigation , 2003, Interact. Comput..

[4]  Paul J. Layzell,et al.  Spatial measures of software complexity , 1999, PPIG.

[5]  Anthony Cox,et al.  Theoretical Considerations on Navigating Codespace with Spatial Cognition , 2005, PPIG.

[6]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[7]  José J. Cañas,et al.  Mental models and computer programming , 1994, Int. J. Hum. Comput. Stud..

[8]  G. Burnett,et al.  Give the girls a chance: should spatial skills training be incorporated into the curriculum? , 2006 .

[9]  Margaret Hamilton,et al.  Do map drawing styles of novice programmers predict success in programming?: a multi-national, multi-institutional study , 2006 .

[10]  D. Halpern Sex Differences in Cognitive Abilities , 1986 .

[11]  Susan Wiedenbeck,et al.  Navigation and comprehension of programs by novice programmers , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[12]  Pat Byrne,et al.  The effect of student attributes on success in programming , 2001, ITiCSE '01.

[13]  M. Casey,et al.  The Influence of Spatial Ability on Gender Differences in Mathematics College Entrance Test Scores across Diverse Samples. , 1995 .

[14]  Karin Schweizer,et al.  Spatial Cognition: The Role of Landmark, Route, and Survey Knowledge in Human and Robot Navigation , 1997, GI Jahrestagung.

[15]  Richard Keeble,et al.  Assistant agents for the world wide web intelligent interface design challenges , 2000, Interact. Comput..

[16]  S. Vandenberg,et al.  Mental Rotations, a Group Test of Three-Dimensional Spatial Visualization , 1978, Perceptual and motor skills.

[17]  J. E. Sammet,et al.  Software psychology: human factors in computer and information systems , 1983, SGCH.

[18]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[19]  Kate Ehrlich,et al.  Information retrieval using a hypertext-based help system , 1989, TOIS.

[20]  Lin Zhao,et al.  Using Sex Differences to Link Spatial Cognition and Program Comprehension , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[21]  Hausi A. Müller,et al.  Cognitive design elements to support the construction of a mental model during software exploration , 1999, J. Syst. Softw..

[22]  M. Crosby,et al.  Code Scanning Patterns in Program Comprehension , 2005 .

[23]  Ben Shneiderman,et al.  Software psychology: Human factors in computer and information systems (Winthrop computer systems series) , 1980 .