Helping programmers understand computer programs: the use of metacognition

  • Authors:
  • Teresa M. Shaft

  • Affiliations:
  • The University of Tulsa

  • Venue:
  • ACM SIGMIS Database
  • Year:
  • 1995

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.