Solving Programming Problems in
Intelligent Programming Tutors for
Teaching the Object
School of Geological and Computer
University of Natal
Natal, South Africa
Problems experienced by novice
Intelligent Tutoring Systems:
PROUST (Johnson et. al. 1990)
Molehill (Singley et. al. 1991)
The Lisp Tutor ( Anderson et. al. 1985)
Pascal Loop Tutor (Wood et. al. 1996)
Intellitutor (Ueno 1991)
High developmental costs (Suthers 1996 and
Proposed Generic Architecture
Surveys were conducted to determine:
The facilities that should be provided by an
intelligent programming tutor.
The shortcomings of existing programming tutors
in order to ensure that these shortcomings are not
replicated in the generic architecture.
The domain is restricted to hybrid object
oriented languages which combine the
procedural and object
Topics covered : object
single inheritance, composition, abstract and
concrete methods and polymorphism.
Overview of the Proposed Architecture
Types of Programming
Debugging of learner programs (Du Boulay
Inducing solutions to programming problems.
Solve a programming problem by reusing
existing classes (Singley et. al. 1991). The
Expert Module must be capable of choosing
suitable components from the Domain
Module for reuse.
Developing algorithms for each method.
Developing algorithms for the driver
Convert the algorithms to a particular
oriented design: Includes an
inheritance hierarchy and induced
oriented design and driver program.
Entity: Attributes, procedures which take
the entity as input or output.
Procedure: Destination, source, and test
A listing containing all the classes and
abstract classes and their
corresponding attributes and
An inheritance hierarchy.
An algorithm for each method and driver
program (if applicable) in the form of a
The Knowledge Base and Object
Conceptual graphs are used to represent the
application domain and program goal/s.
Three data dictionaries: the entity, type and
procedure dictionary are maintained.
The projection matching procedure defined
by Sowa (1984) is used to generate the
An extraction process is applied to the
graphs to determine super classes and
abstract super classes.
Genetic programming (Koza, 1992) is used for
the purposes of algorithm induction.
Create an initial population.
Evaluate each individual in the population.
Select individuals to apply the genetic operators to.
Create new individuals by application of the genetic
Until the termination criterion has been met.
Converting algorithms to a particular