A number of accounts of expert programming behavior have been advanced. These models of the programming activity have served to highlight the range of factors that are thought to underpin programming strategy. However, such accounts have tended to emphasize either 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 an 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 languages. The development of particular forms of strategy is hypothesized to be related both to the development of systematic asymmetries in programmers' generic plan-based representations 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 and 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 attained by the programmer. This article endeavors to extend current models of programming by emphasizing the need to consider in detail not only the development of programming strategy, but also the way in which knowledge representation and features of the task langauge interact to give rise to particular forms of programming behavior. © 1991.
Davies, S. P. (1991). The role of notation and knowledge representation in the determination of programming strategy: A framework for integrating models of programming behavior. Cognitive Science, 15(4), 547–572. https://doi.org/10.1016/0364-0213(91)80018-Z