The why and wherefore of the Cornell Program Synthesizer

Abstract
The Cornell Program Synthesizer is a syntax-directed programming environment that has been used in introductory programming courses since June, 1979. We present our experience with the Synthesizer by introducing its main features, by presenting our basic principles of design, and by discussing important design decisions.