Processes in computer program comprehension
Papers presented at the first workshop on empirical studies of programmers on Empirical studies of programmers
Comprehension strategies in programming
Empirical studies of programmers: second workshop
Software maintenance: a key area for research
University Computing
IEEE Transactions on Software Engineering
The problem of statistical power in MIS research
MIS Quarterly
Program understanding: challenge for the 1990's
IBM Systems Journal
Approaches to program comprehension
Journal of Systems and Software - Special issue on software maintenance
Categories of programming knowledge and their application
International Journal of Man-Machine Studies - What programmers know
The initial stage of program comprehension
International Journal of Man-Machine Studies
Toward a taxonomy of software application domains: history
Journal of Systems and Software
Domain model-driven software reengineering and maintenance
Journal of Systems and Software - Special issue on object-orientation
Journal of Management Information Systems
Empirical evidence for the existence and uses of metacognition in computer science problem solving
Proceedings of the 41st ACM technical symposium on Computer science education
Robotran: evolution of an undergraduate software project
Journal of Computing Sciences in Colleges
Hi-index | 0.00 |
A large portion of computer programmers' efforts to maintain, test, and debug computer programs is spent understanding, or comprehending, the existing program. Current theories of program comprehension have not considered the circumstances that cause programmers to use different approaches to understanding programs. Metacognition may provide some insight into the comprehension process. Metacognition is a psychological terms that refers to "one's knowledge concerning one's own cognitive processes" (Flavell, 1976) and influences the execution of cognitive tasks. Through metacognition, a person confronting a cognitive task can select a strategy, and then monitor and regulate their progress on a task.This study investigates the use of metacognition by programmers to purposefully (deliberately) choose a comprehension strategy. The results of this study support the view that programmers use metacognition when studying computer programs. Specifically, two-thirds of the programmers indicated that, in general, they purposefully choose a comprehension strategy. When studying a computer program from an unfamiliar application domain, however, programmers who generally use metacognition had lower levels of comprehension than when working in a familiar domain or when compared to those programmers who do not use metacognition.These results suggest that programmers use metacognition during computer program comprehension and that the use of metacognition influences how well they understand a program. That metacognition reduces comprehension, but only in certain circumstances, leads to the speculation that programmers' metacognitive heuristics may be too general and that programmers need to develop more specific metacognitive heuristics to aid comprehension in a wider range of circumstances.