Publications

Type of Publication: Article in Collected Edition

Understanding the Differences Between Novice and Expert Programmers in Memorizing Source Code

Author(s):
Kramer, M.; Barkmin, M.; Tobinski, D.; Brinda, T.
Editor:
Tatnall, A.; Webb, M.
Title of Anthology:
Tomorrow's Learning: Involving Everyone. Learning with and about Technologies and Computing 11th IFIP TC 3 World Conference on Computers in Education, WCCE 2017, Dublin, Ireland, July 3-6, 2017, Revised Selected Papers
pages:
630-639
Publisher:
Springer
Location(s):
Cham, Switzerland
Publication Date:
2018
ISBN:
978-3-319-74310-3
Language:
English
Keywords:
Assessment, Object-oriented programming, Working memory, Programming experience
Digital Object Identifier (DOI):
doi:10.1007/978-3-319-74310-3_63
Link to complete version:
https://doi.org/10.1007/978-3-319-74310-3_63
Citation:
Download BibTeX

Abstract

This study investigates the difference between novice and expert programmers in memorizing source code. The categorization was based on a questionnaire, which measured the self-estimated programming experience. An instrument for assessing the ability to memorize source code was developed. Also well-known cognitive tests for measuring working memory capacity and attention were used, based on the work of Kellog and Hayes. Thirty-eight participants transcribed items which were hidden initially but could be revealed by the participants at will. We recorded all keystrokes, counted the lookups and measured the lookup time. The results suggest that experts could memorize more source code at once, because they used fewer lookups and less lookup time. By investigating the items in more detail we found that it is possible that experts memorize short source codes in semantic entities, whereas novice programmers memorize them line by line. Because our experts were significantly better in the performed memory capacity tests, our findings must be viewed with caution. Therefore, there is a definite need to investigate the correlation between working memory and self-estimated programming experience.