Towards a programming apprentice

Abstract
The Planner Project is constructing a programming apprentice to assist in knowledge based programming. The programming apprentice is designed for interactive use by expert programmers in the meta-evaluation of implementations in the context of their contracts and background knowledge. Meta-evaluation produces a justification which makes explicit exactly how the module depends on the contracts of other modules and on the background knowledge. The justification is used in answering questions on the behavioral dependencies between modules and in analyzing the implications of perturbations in specifications and/or implementation.