ABSTRACT

Our goal in this chapter is to describe and illustrate a developmental approach to programming knowledge. We argue that the prevailing practice of making binary novice-expert comparisons is of little value in the psychology of programming. We argue instead for a constructivist developmental approach, which uses Piagetian structural interviews and longitudinal tape diaries to gather information, and which builds multiple-level sequence models to describe the development of programming skill. With clinical interviews, we have elicited information about the learning histories of expert programmers. With tape diaries, we have followed the course of learning by individual programmers for up to 2 months. From these sources, we propose a developmental sequence of types of problems that programmers try to solve when learning the Smalltalk language.