The Role of Notation and Knowledge Representation in the Determination of Programming Strategy: A Framework for Integrating Models of Programming Behavior

A number of accounts of expert programming behovior have been advanced. These models of the programming activity have served to highlight the range of factors that ore thought to underpin programming strategy. However, such accounts have tended to emphasize elfher the effects of the organization of the programmer’s knowledge representation or the role played by features of the notation of the task language on the emergence, development, and support of particular forms of strategy. Such work has neglected to (a) provide on account of the way in which these factors might interact to determine programming strategy, and (b) shed light upon the nature of the development of particular strategies as programming skill increases. This article presents the results of an empirical analysis of the strategies employed by programmers of varying skill levels using different programming longuages. The development of particular forms of strategy is hypothesized to be related both to the development of systematic asymmetries in programmers’ generic plan-based representotions of programming knowledge and to the way in which features of the notation of particular programming languages might differentially support particular strategies. However, the results of the study reported here suggest that these effects must be interpreted within a broad developmental context. Hence, as programming skill develops, it appears that the notation of the task language tends to take precedence as a determinant of strategy, but has less relevance at beginning stages of skill development ond within the context of expert performance. This finding would not be predicted by current models of the programming activity because such models suggest that any notational effects will tend to be consistent regardless of the skill level aitained by the programmer. This article endeavors to extend current models of

[1]  John R. Anderson,et al.  Change-episodes in coding: when and how do programmers change their code? , 1987 .

[2]  Scott P. Robertson,et al.  Planning units in text editing behavior , 1983, CHI '83.

[3]  B. Adelson Problem solving and the development of abstract categories in programming languages , 1981, Memory & cognition.

[4]  D J Gilmore Structural visibility and program comprehension , 1986 .

[5]  Simon P. Davies,et al.  Plans, goals and selection rules in the comprehension of computer programs , 1990 .

[6]  Judith S Reitman,et al.  Organization revealed by recall orders and confirmed by pauses , 1980, Cognitive Psychology.

[7]  Robin Jeffries,et al.  The Processes Involved in Designing Software. , 1980 .

[8]  John R. Anderson Acquisition of cognitive skill. , 1982 .

[9]  Martin Kay,et al.  Parsing in functional unification grammar , 1986 .

[10]  J. Reitman,et al.  Knowledge organization and skill differences in computer programmers , 1981, Cognitive Psychology.

[11]  Thomas R. G. Green,et al.  The generalized unification parser: Modelling the parsing of notations , 1990, INTERACT.

[12]  Stephen J. Payne,et al.  COMPLEX PROBLEM SPACES: MODELLING THE KNOWLEDGE NEEDED TO USE INTERACTIVE DEVICES , 1987 .

[13]  Elliot Soloway,et al.  A Goal/Plan Analysis of Buggy Pascal Programs , 1985, Hum. Comput. Interact..

[14]  Ruven E. Brooks,et al.  Towards a Theory of the Comprehension of Computer Programs , 1983, Int. J. Man Mach. Stud..

[15]  Laura Marie Leventhal DISCOURSE RULES IN PROGRAM COMPREHENSION: EMERGENCE OF A CONSTRUCT AFFORDANCES RULE? , 1987 .

[16]  Donald A. Norman,et al.  Accretion, tuning and restructuring: Three modes of learning , 1976 .

[17]  Colin J. Theaker,et al.  Human-Computer Interface Recording , 1988, Comput. J..

[18]  H. Simon,et al.  Perception in chess , 1973 .

[19]  Simon P. Davies,et al.  The Nature and Development of Programming Plans , 1990, Int. J. Man Mach. Stud..

[20]  Carl Martin Allwood,et al.  Error Detection Processes in Statistical Problem Solving , 1984, Cogn. Sci..

[21]  Willemien Visser,et al.  Towards Modelling the Activity of Design: An Observational Study on a Specification Stage , 1988 .

[22]  Elliot Soloway,et al.  Preprogramming Knowledge: A Major Source of Misconceptions in Novice Programmers , 1985, Hum. Comput. Interact..

[23]  Simon P. Davies Skill levels and strategic differences in plan comprehension and implementation in programming , 1990 .

[24]  Susan Weidenbeck,et al.  Processes in computer program comprehension , 1986 .

[25]  Barbara Hayes-Roth,et al.  A Cognitive Model of Planning , 1979, Cogn. Sci..

[26]  D. Rumelhart NOTES ON A SCHEMA FOR STORIES , 1975 .

[27]  Woodrow Barfield,et al.  Expert-novice differences for software: implications for problem-solving and knowledge acquisition , 1986 .

[28]  Simon P. Davies,et al.  Characterizing the program design activity : neither strictly top-down nor globally opportunistic , 1991 .

[29]  D. Bobrow,et al.  Representation and Understanding: Studies in Cognitive Science , 1975 .

[30]  David J. Gilmore,et al.  Programming Plans and Programming Expertise , 1988 .

[31]  Robert S. Rist Plans in programming: definition, demonstration, and development , 1986 .

[32]  Elliot Soloway,et al.  PROUST: Knowledge-Based Program Understanding , 1984, IEEE Transactions on Software Engineering.

[33]  Karl Haberlandt,et al.  Story grammar and reading time of story constituents , 1980 .

[34]  Ben Shneiderman,et al.  Empirical Studies of Programmers: First Workshop , 1987 .

[35]  David J. Gilmore,et al.  Expert Programming Knowledge: A Strategic Approach , 1990 .

[36]  Andrew Howes,et al.  The Nature of Device Models: The Yoked State Space Hypothesis and Some Experiments With Text Editors , 1990, Hum. Comput. Interact..

[37]  Jean-Michel Hoc Planning and Direction of Problem Solving in Structured Programming: An Empirical Comparison between Two Methods , 1981, Int. J. Man Mach. Stud..

[38]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[39]  Bill Curtis,et al.  Breakdowns and processes during the early activities of software design by professionals , 1987 .

[40]  Susan Wiedenbeck,et al.  Novice/Expert Differences in Programming Skills , 1985, Int. J. Man Mach. Stud..

[41]  Raymonde Guindon Designing the design process: exploiting opportunistic thoughts , 1990 .

[42]  John B. Black,et al.  Scripts in memory for text , 1979, Cognitive Psychology.

[43]  Susan Wiedenbeck,et al.  Beacons: a knowledge structure in program comprehension , 1989 .

[44]  Thomas R. G. Green,et al.  Cognitive dimensions of notations , 1990 .

[45]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[46]  A. D. D. Groot Thought and Choice in Chess , 1978 .

[47]  Dan N. Stone,et al.  The Impact of Pascal Education on Debugging Skill , 1990, Int. J. Man Mach. Stud..

[48]  Susan Wiedenbeck,et al.  Beacons in Computer Program Comprehension , 1986, Int. J. Man Mach. Stud..

[49]  Allan G. Bateson,et al.  Cognitive Processing Differences Between Novice and Expert Computer Programmers , 1987, Int. J. Man Mach. Stud..

[50]  T.R.G. Green,et al.  Programming Languages as Information Structures , 1990 .

[51]  R. Glaser,et al.  Expertise in a complex skill: Diagnosing x-ray pictures. , 1988 .

[52]  Jawed I. A. Siddiqi,et al.  An Empirical Investigation into Problem Decomposition Strategies Used in Program Design , 1985, Int. J. Man Mach. Stud..

[53]  Kate Ehrlich,et al.  Knowledge and processes in the comprehension of computer programs. , 1988 .

[54]  Robert S. Rist Schema Creation in Programming , 1989, Cogn. Sci..

[55]  F. Detienne,et al.  Program understanding as an expectation-driven activity , 1989 .

[56]  Linda Flower,et al.  The Dynamics of Composing : Making Plans and Juggling Constraints , 1980 .

[57]  Raymonde Guindon The process of knowledge discovery in system design , 1989 .