This paper describes the design and implementation of an intelligent t
utoring system for the Dijkstra-Gries programming methodology as defin
ed by Gries in ''The Science of Programming'' [12]. The first part of
the paper identifies the requirements of intelligent tutoring systems
in general and those of the methodology in particular. It shows the su
itability of the Smalltalk environment for developing expandable intel
ligent systems and the compatibility of Smalltalk's object-oriented pa
radigm with the Gries methodology's goal/plan approach to programming.
We then describe how these requirements are met: an overview of the s
ystem's support of the methodology and the modules that enable the sys
tem to respond intelligently. As an example, a reusable tutorial part
is presented, first from a student's perspective, then from an author'
s perspective. Finally the results of an evaluation of the system draw
n from actual student experience are presented.