The influence of structure on computer program comprehension (original) (raw)
Related papers
Individual Differences in Program Comprehension Strategies in Unfamiliar Programming Systems
International Conference on Program Comprehension, 2003
This study examines the effect of individual differences on the program comprehension strategies of users working with an unfamiliar programming system. Participants of varying programming expertise were given a battery of psychological tests, a brief introduction to a statistical programming environment, and a 20-minute debugging task. Our data show that while there were distinct comprehension strategies that were related to programming experience, no strategy had an advantage in debugging performance. Rather, individuals with stronger domain knowledge for specific bugs tended to succeed.
A Theory of Program Comprehension
2005
Abstract There exists an extensive literature on vision science, on the one hand, and on program comprehension, on the other hand. However, these two domains of research have been so far rather disjoint. Indeed, several cognitive theories have been proposed to explain program comprehension. These theories explain the processes taking place in the software engineers' minds when they understand programs.
Object-Oriented Program Comprehension: Effect of Expertise, Task and Phase
Empirical Software Engineering, 2002
The goal of our study is to evaluate the effect on program comprehension of three factors that have not previously been studied in a single experiment. These factors are programmer expertise (expert versus novice), programming task (documentation versus reuse), and the development of understanding over time (phase 1 versus phase 2). This study is carried out in the context of the mental model approach to comprehension based on van Dijk and Kintsch's model [(1983) Strategies of Discourse Comprehension. New York: Academic]. One key aspect of this model is the distinction between two kinds of representation the reader might construct from a text: (1) the textbase, which refers to what is said in the text and how it is said, and (2) the situation model, which represents the situation referred to by the text. We have evaluated the effect of the three factors mentioned above on the development of both the textbase (or program model) and the situation model in object-oriented program comprehension. We found a four-way interaction of expertise, phase, task and type of model. For the documentation group we found that experts and novices differ in the elaboration of their situation model but not their program model. There was no interaction of expertise with phase and type of model in the documentation group. For the reuse group, there was a three-way interaction between phase, expertise and type of model. For the novice reuse group, the effect of the phase was to increase the construction of the situation model but not the program model. With respect to the task, our results show that novices do not spontaneously construct a strong situation model but are able to do so if the task demands it.
Through (Tracking) Their Eyes: Abstraction and Complexity in Program Comprehension
ACM Transactions on Computing Education, 2022
Previous studies on writing and understanding programs presented evidence that programmers beyond a novice stage utilize plans or plan-like structures. Other studies on code composition showed that learners have difficulties with writing, reading, and debugging code where interacting plans are merged into a short piece of code. In this article, we focus on the question of how different code-composition strategies and the familiarity with code affect program comprehension on a more abstract, i.e., algorithmic level. Using an eye-tracking setup, we explored how advanced students comprehend programs and their underlying algorithms written in either a merged or abutted (sequenced) composition of code blocks of varying familiarity. The effects of familiarity and code composition were studied both isolated and in combination. Our analysis of the quantitative data adds to our understanding of the behavior reported in previous studies and the effects of plans and their composition on the pr...
Cognitive processes in program comprehension
Journal of Systems and Software, 1987
This paper reports on an empirical study of the cognitive processes involved in program comprehension. Verbal protocols were gathered from professional programmers as they were engaged in a program-understanding task. Based on analysis of these protocols, several types of interesting cognitive events were identified. These include asking questions and conjecturing facts about the code. We describe these event types and use them to derive a computational model of the programmers' mental processes.
Program Comprehension Technique in Teaching and Leaning: A Cognitive Perspective
International Journal of Academic Research in Progressive Education and Development, 2021
In studying about programming languages, the important part is to understand the language itself. Learners need to be able to comprehend a program that is completed with syntax, semantic and program flow. Most learners especially the novices face a lot of problems when trying to learn a program. Many studies have been conducted to observe the process on how learners understand the program source code. Usually, the study of program comprehension focuses on the combination of two important characteristics: theories and tools. The theories that provide how to improve program comprehension and tools that can implement the theories. These two characteristics will change the way programmers understand the program codes. Many researchers review some of the key theories of program comprehension and discusses on how these theories are related to tools that support it. Thus, the aim of this study is to explore the evolution of the three predominant approaches of program comprehension in the aspect of cognitive theory which are: bottom-up, top-down and the integrated approach. This study also considers the important of cognitive model to make the effective learning process. Therefore, this paper can provide the intuitive environment for the process of learning especially for novice learners.
Designing your Next Empirical Study on Program Comprehension
15th IEEE International Conference on Program Comprehension (ICPC '07), 2007
The field of program comprehension is characterized by both the continuing development of new tools and techniques and the adaptation of existing techniques to address program comprehension needs for new software development and maintenance scenarios. The adoption of these techniques and tools in industry requires proper experimentation to assess the advantages and disadvantages of each technique or tool and to let the practitioners choose the most suitable approach for a specific problem. The objective of this working session is to encourage researchers and practitioners working in the area of program comprehension to join forces to design and carry out studies related to program comprehension, including observational studies, controlled experiments, case studies, surveys, and contests, and to develop standards for describing and carrying out such studies in a way that facilitates replication of data and aggregation of the results of related studies.
Toward authentic measures of program comprehension
2003
This paper describes an analysis scheme which was developed to probe the comprehension of computer programming languages by students learning to program. The scheme operates on free-form program summaries, i.e. textual descriptions of a program which are produced in response to minimal instructions by the researcher/experimenter. The scheme has been applied to descriptions of programs written in various languages, and it is felt that the scheme has the potential to be applied to languages of markedly different types (e.g. procedural, objectoriented, event-driven). The paper first discusses the basis for the scheme, before describing the scheme in detail. It then presents examples of the scheme's application, and concludes with a discussion of some open issues.
Towards authentic measures of program comprehension
2003
This paper describes an analysis scheme which was developed to probe the comprehension of computer programming languages by students learning to program. The scheme operates on free-form program summaries, i.e. textual descriptions of a program which are produced in response to minimal instructions by the researcher/experimenter. The scheme has been applied to descriptions of programs written in various languages, and it is felt that the scheme has the potential to be applied to languages of markedly different types (e.g. procedural, objectoriented, event-driven). The paper first discusses the basis for the scheme, before describing the scheme in detail. It then presents examples of the scheme’s application, and concludes with a discussion of some open issues.