This article explores the non-monotonic nature of the programmer learning that takes place during incremental program development. It uses a constructivist learning model that consists of four fundamental cognitive activities: absorption that adds new facts to the knowledge, denial that rejects facts that do not fit in, reorganization that reorganizes the knowledge, and expulsion that rejects obsolete knowledge. A case study of an incremental program development illustrates the application of the model and demonstrates that it can explain the learning process with episodes of both increase and decrease in the knowledge. Implications for the documentation systems are discussed in the conclusions.
Theory Of Constructivist Learning
The constructivist learning model is based on the work of Piaget (Piaget, 1954). The original aim of Piaget was to explain learning in children, but the constructivist theory extends to adult learning and to epistemology (von Glasersfeld, 1995). The theory assumes that the learners actively and incrementally construct their knowledge. They start from some preliminary knowledge, and they extend it by adding new facts to it; they may go through stages in which they may accept ideas that they will later discard as wrong. The two main activities are assimilation and accommodation, where assimilation describes how learners deal with new knowledge, and accommodation describes how learners reorganize their existing knowledge.