Solving Programming Problems in Intelligent Programming Tutors for Teaching the Object-Oriented Programming Paradigm

courageouscellistAI and Robotics

Oct 29, 2013 (3 years and 9 months ago)

88 views

Solving Programming Problems in
Intelligent Programming Tutors for
Teaching the Object
-
Oriented
Programming Paradigm

Nelishia Pillay

School of Geological and Computer
Sciences

University of Natal


Durban, KwaZulu
Natal, South Africa

Introduction


Problems experienced by novice
programmers.


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
Murray 1996)


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
-
oriented programming
paradigms.


Topics covered : object
-
oriented design,
single inheritance, composition, abstract and
concrete methods and polymorphism.

Overview of the Proposed Architecture

Types of Programming
Problems


Debugging of learner programs (Du Boulay
1988)


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.


Solving Object
-
Oriented
Programming Problems


Object
-
oriented design.


Developing algorithms for each method.


Developing algorithms for the driver
program.


Convert the algorithms to a particular
programming language.

Input


Question


Object
-
oriented design: Includes an
inheritance hierarchy and induced
algorithms.


Object
-
oriented design and driver program.


Application Domain


Entity: Attributes, procedures which take
the entity as input or output.


Procedure: Destination, source, and test
cases .

Output


A listing containing all the classes and
abstract classes and their
corresponding attributes and
procedures.


An inheritance hierarchy.


An algorithm for each method and driver
program (if applicable) in the form of a
parse tree.

The Knowledge Base and Object
-
Oriented Design


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
inheritance hierarchy.



An extraction process is applied to the
graphs to determine super classes and
abstract super classes.

Algorithm Induction


Genetic programming (Koza, 1992) is used for
the purposes of algorithm induction.


Overall Algorithm


Create an initial population.


Repeat



Evaluate each individual in the population.



Select individuals to apply the genetic operators to.



Create new individuals by application of the genetic
operators.



Until the termination criterion has been met.

Discussion
and

Future Work


Structured Programs


Parsimonious programs


Modular programs


Problem types


Authoring components


Converting algorithms to a particular
language.


Object
-
oriented languages