Since their early age, people
have been interested in using computers for education. The hope was that
computers could offer individual teaching and free
up the time of the human educator. Computer assisted education has
long been an interdisciplinary
field, involving teachers, computer scientists, psychologists,
and artificial intelligence researchers.
Research in this field has faced many of the difficult problems of artificial intelligence, including natural language processing, heuristic search, and knowledge representation.
The evolution and progress of computer assisted education can be traced through implemented systems which are well described in a work by Etienne Wenger (1987). In his book Wenger shows the evolution from the early work in the field, the so called Computer-Aided Instruction (CAI) systems to the more recent Intelligent Tutoring Systems (ITS).
Traditional CAI systems of the early 70's,
are often described as simple frame-based programs were
the path of instruction was completely determined in advance
by the programmer.
Wenger compares CAI programs to sophisticated books, which could be intricate, well-planned and entertaining. However, these system were completely static and could only give the specified pre-programmed responses to previously anticipated student inputs. They did not have the possibility to generate new problems for the student and analyse the student's response. Wenger also points out that early Computer-Aided Instruction programs didn't not make any attempt to separate domain knowledge and pedagogical knowledge.
Later on, the Intelligent Tutoring Systems made an attempt to focus on incorporating the ideas and methods of Artificial Intelligence. The general idea is that rather than hard-coding responses to a student's possible actions, the program is instead given enough knowledge, both about the domain and about the act of teaching itself, to act, so to speak, "autonomously".
A general model of many Intelligent Tutoring Systems includes three basic modules: domain knowledge, student model, and tutor. Using their domain knowledge, ITS should be able to solve the problems the pedagogical module puts to the students. The tutor module controls the interaction with the student, based on its own knowledge of teaching and comparisons between the student model and the domain knowledge.
The range of programs that qualify as Intelligent Tutoring Systems is vast and it can vary from primitive to extremely sophisticated programs. For instance, the interface to the student can range from a command line interface or a graphical user interface to an interface capable of natural language processing. The tutoring aspect can be implemented in various ways ranging from simple man-machine dialog to a discovery companion, where the computer learns the material along with the student.
BUGGY was developed in 1975 by J. S. Brown and R. R. Burton, (described in
). It begun with the study of
protocols produced by students involved in algebraic operation such as the
subtraction of multi digit numbers.
The early studies of students performing algebra, revealed the need for a special representation scheme which could represent each mislearned procedural skill indipendently. This scheme allowed the design of a diagnostic model which would reflect the student's understanding of the skills and sub skills involved in a task.
The knowledge representation model for this study was the procedural network, which was an attempt to break down the larger task into a number of related subtasks. The modeling scheme involved substituting buggy variants of individual sub skills into the procedural network in an attempt to reproduce the behavior of the student.
Rather than providing BUGGY with the tutorial
skills needed to recognise and counter-act student mistakes,
the developers of BUGGY focused on developing a complete
diagnostic model of the student. They attempted to enumerate the
different possible procedural bugs students might acquire
while trying to solve math problems.
In a reversal of the usual roles of ITS, teacher and student, BUGGY used its student model to simulate a student with "buggy" thinking. The educator then diagnosed the student bug based on BUGGY's examples. Using its catalog of possible bugs, BUGGY could generate general diagnostic tests to identify students' mistakes, such as "the student subtracts the smaller digit in each column from the larger digit regardless of which is on top."
BUGGY's diagnostic model was a milestone in the research on student modeling.
BUGGY provided researchers and teachers with a
specific diagnosis of a student's knowledge and capabilities on specific
Although BUGGY required an initial library of buggy procedures, it's diagnoses appeared to be extremely helpful. Certainly, building the enumeration of bugs required considerable effort thus somehow restricting the use of BUGGY to well defined procedural domains. The use of a fixed library of bugs also restricted the power of the system to already known errors.
To overcome these limitations, Burton (1982)  described DEBUGGY: a "sophisticated diagnostic system extending the BUGGY model" wich introduced the notion of coercion. A coercion brings knowledge about frequent irregularities in the student's behaviour and it is used in the treatment of "noisy data".
The most fundamental limitation of the BUGGY paradigm lays in its inability to explicitly represent the semantic nature of a bug or to explain how a bug was generated.These limitations led to the formulation of a couple of other theories of bugs, the REPAIR theory and the STEP theory. These systems took a more psychological approach in their attempt to explain the generation of bugs. With their model that included both problem solving repairs and learning mechanisms, these theories led to the postulation of principles regarding the way the mind learns and interprets procedures.