An investigation into professional programmers' mental representations of variables

Very little is known about professional programmers' mental representations of variables, yet this information is vital in designing effective tools for program comprehension. In order to find out what types of information programmers have about variables and their relations, we conducted a knowledge elicitation study where professional programmers studied programs and the resulting mental representations were elicited using card sorting and interviews. The mental representations were based on fourteen principles that can be organized in four main categories: domain-based, technology-based, execution-based, and strategy-based. Most frequent information types dealt with two execution-based criteria: behavior and utilization.

[1]  David J. Gilmore,et al.  Are Objects That Important? Effects of Expertise and Familiarity on Classification of Object-Oriented Code , 1995, Hum. Comput. Interact..

[2]  David J. Gilmore,et al.  Are objects that important? effects of expertise and familiarity on classification of object-oriented code , 1995 .

[3]  Mordechai Ben-Ari,et al.  Roles of Variables From the Perspective of Computer Science Educators , 2003 .

[4]  J. Quesada,et al.  The role of working memory on measuring mental models of physical systems , 2001 .

[5]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[6]  Scott P. Robertson,et al.  Common Cognitive Representations of Program Code Across Tasks and Languages , 1990, Int. J. Man Mach. Stud..

[7]  Robert S. Rist Knowledge Creation and Retrieval in Program Design: A Comparison of Novice and intermediate Student Programmers , 1991, Hum. Comput. Interact..

[8]  Elizabeth S. Cordingley,et al.  Knowledge elicitation techniques for knowledge-based systems , 1989 .

[9]  Kate Ehrlich,et al.  An empirical investigation of the tacit plan knowledge in programming , 1984 .

[10]  Andrew Walenstein,et al.  Observing and measuring cognitive support: steps toward systematic tool evaluation and engineering , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[11]  Jianming Dong,et al.  A user input and analysis tool for information architecture , 2001, CHI Extended Abstracts.

[12]  Harry M. Sneed,et al.  Program comprehension for the purpose of testing , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[13]  Jorma Sajaniemi,et al.  An empirical analysis of roles of variables in novice-level procedural programs , 2002, Proceedings IEEE 2002 Symposia on Human Centric Computing Languages and Environments.

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

[15]  Ruven E. Brooks Towards a theory of the cognitive processes in computer programming , 1999, Int. J. Hum. Comput. Stud..

[16]  Anneliese Amschler Andrews,et al.  Industrial experience with an integrated code comprehension model , 1995, Softw. Eng. J..

[17]  Robert S. Rist Plans in programming: definition, demonstration, and development , 1986 .