Characterizing the program design activity: neither strictly top-down nor globally opportunistic
- 1 May 1991
- journal article
- research article
- Published by Taylor & Francis in Behaviour & Information Technology
- Vol. 10 (3) , 173-190
- https://doi.org/10.1080/01449299108924281
Abstract
Early studies of programming and of other more general planning and problem-solving activities emphasized the hierarchical nature of such tasks. For instance, the dominant approach to problem-solving and planning views such processes as top-down focused activities which start from high level goals that are in turn decomposed into achievable actions via a successive refinement process. Similarly, empirical studies of the programming activity have highlighted such top-down and breadth-first decomposition strategies. These processes are also clearly mirrored in prescriptive accounts of the programming task. More recent characterizations of the programming activity present an alternative view—one which emphasizes the broadly opportunistic nature of the programming process. From this perspective, program design is seen to deviate from the top-down, breadth-first model proposed by previous studies. Here, program design is viewed as opportunistic in the sense that elements of the design can be created asynchronously at any level of abstraction within the solution space. Hence, the program design process is seen to be neither decompositionally nor hierarchically levelled, but mediated by the serendipitous and opportunistic discovery of new knowledge and design constraints and so on. The paper presents empirical support for a model of the program design activity which suggests that the programming process can neither be viewed as strictly top-down nor as globally opportunistic. Rather, it is shown that while opportunistic episodes may occur at any point in the evolution of a program, the programming activity itself is hierarchically structured and proceeds in a largely top-down fashion. Program design is seen as a hierarchical goal-directed task with random opportunistic excursions caused largely by simple cognitive failures.Keywords
This publication has 27 references indexed in Scilit:
- Planning for conjunctive goalsArtificial Intelligence, 1987
- A Cognitive Model and Computer Tutor for Programming RecursionHuman–Computer Interaction, 1986
- A Goal/Plan Analysis of Buggy Pascal ProgramsHuman–Computer Interaction, 1985
- From Problems to Programs via Plans: The Content and Structure of Knowledge for Introductory LISP ProgrammingJournal of Educational Computing Research, 1985
- The speaker’s linearization problemPhilosophical Transactions of the Royal Society of London. B, Biological Sciences, 1981
- Expert and Novice Performance in Solving Physics ProblemsScience, 1980
- Aspects of Solution Structure in Design Problem SolvingThe American Journal of Psychology, 1980
- The role of short-term working memory in mental arithmeticCognitive Psychology, 1978
- Planning in a hierarchy of abstraction spacesArtificial Intelligence, 1974
- Program development by stepwise refinementCommunications of the ACM, 1971