Knowledge creation and retrieval in program design: a comparison of novice and intermediate student programmers

  • Authors:
  • Robert S. Rist

  • Affiliations:
  • Department of Computer Science, University of Technology, New South Wales, Australia

  • Venue:
  • Human-Computer Interaction
  • Year:
  • 1991

Quantified Score

Hi-index 0.00

Visualization

Abstract

Program design, from initial idea to executable code, was studied in a group of novice (first programming course) and a group of intermediate (second course) student programmers. The approach of the intermediate students could usually be described as forward and top-down design, but the behavior of the novices could not be so easily captured. Top-down design depends on both the expertise of the programmer and the difficulty of the problem. When faced with a difficult problem, even the expert has to build up a solution from simple pieces. In the approach adopted here, top-down design is based on the refinement of a known solution or schema that is retrieved and expanded at progressively greater levels of detail. If the expert knows all the required abstract and detailed schemas, then the design shows a pattern of top-down and forward expansion at all levels. When a schema cannot be retrieved and has to be created, top-down design breaks down and is replaced by bottom-up design. At the extreme, a rank novice has to create all the required plans, and design then shows consistent bottom-up and backward solution development. Separating plan retrieval from plan creation has three important consequences. First, a model of plan creation shows how knowledge, in the form of plan schemas, is created during the process of program design. Second, plan creation reveals the internal structure of a schema that is hidden in the final program code. Third, the behavior of designers, described as top-down or bottom-up design, may be explained as a result of specific knowledge that is used to design a program.