Support Software for Computer Based Learning Materials
Augusto Chioccariello (augusto@itd.ge.cnr.it)
Stephen D. Franklin (franklin@uci.ededu)
Alfred Bork (bork@uci.edu)
Introduction
The
Educational Technology Center is a research and development group concerned
with the use of modern technology, particularly computers, to aid learning.
Over a sixteen year period, we have developed a full scale production process
for computer based learning materials.
This process follows the classic life cycle model for software development
and parallels that found in the design and production of high quality
educational materials in other media such as text and video.Key features of
this process are that it separates pedagogical and technical issues and that
different teams of specialists participate in the various stages of the
process. In particular, educational experts devote their full attention to
pedagogical issues, leaving technical concerns to others.
The pedagogical design issues and how this process addresses them are
discussed elsewhere (cf., A. Bork, Personal Computers for
Education, Harper & Row, 1985). This report presents the principal
software tools we have developed to facilitate the implementation of sound
educational design. This software is intended for use by coders not by the
pedagogical designers. Technical work such as these tools facilitate is best
left to competent coders. Authoring languages and systems which focus on
providing programming tools or environments to educational experts divert the
attention of these experts from issues of pedagogical design to technical "can
I do this?" or "how do I do this?" questions.
This report is presented in response to inquiries about the software
techniques we use in producing computer based learning materials. For us,
however, these tools have never been important as ends in themselves. We feel
that such technical tools must be evaluated in terms of the educational
software whose production they have facilitated. Many of their limitations are
deliberate, meant to encourage a particular style of coding or because there
was no practical need for anything more general.
Goals of the Software Tools
- These procedures are designed to help the coder to work more
efficiently. The coding should be done as rapidly and as error free
as is reasonably possible.
- Since most of our coders are undergraduates, often with only one or
two courses in programming when they begin, the procedures must be
relatively easy to use. At the same time, the software has to be
flexible and allow coders to achieve complex effects in a simple
fashion. Simple things should be easy; complex things possible.
- As with all good programming the code must be readable. This is
particularly important because over a period of time a number of
different people may work on the materials and one must always be
able to modify it based on experience gained by observing how
learners react to it.
- The code must be easy to transport to other machines. Rapidly
developing technology makes it likely that computer based learning
materials will need to be moved several times during their lifetimes.
This may include changing the programs to take advantage of new
capabilities not available when the material was first developed.
Overview of the Software
The software described in this document falls into three
generalcategories, each described in its own section. The
first section isconcerned with input and output on the
screen, both text and graphics.The second describes a
type of file, including tools for creating andaccessing such
files, designed to support separation of the algorithmic content of a program
from the data used by the program. The
third section covers a collection of
software tools which supports the answer processing, commonly needed for
computer based learning material.
Two important aspects of interactive computer-based educational materials
are the manner of displaying text (including spacing andtiming) and the way in
which textual responses are obtained from the user.The display routines must
allow flexibility in positioning and formatting text to enhance readability.
The routines for soliciting and accepting user input should be "friendly" to
the user and simple for the programmer. An integral part of any software
providing these facility must be tools which control timing of the display and
the time allowed for the user's responses.
Another important aspect of interactive learning modules is the use of
graphics. One needs a system of routines and data structures to simplify the
use of graphics. Since the details of graphics vary greatly between devices,
such a system must do as much as possible to free the programmer from concern
about the particular device being used.
The file system we have developed, referred to as keyed files, allows the
programmer to remove from a program most of the data it needs (other than that
supplied interactively by the user), and to keep it instead in files separate
from those that contain code expressing the logic of the program. This
separation reduces the size of the program(source and code), and facilitates
modification of the program. In particular, the use of keyed files makes it
easier to modify or varythe messages presented to the user, to add or change
strings that are recognized by the program in users' responses, and greatly
facilitates translating the entire program from one natural language to
another.It even allows a single program to run in different natural languages
simply by using different data files.
We use string matching to determine whether the input string, representing
the learner's response to a question, matches an expected response as specified
by the pedagogical design. The StringAnalysis unit supplies routines and data
structure for pattern matching. Rules used to analyze the answer to a given
question can be stored in a keyed file under a meaningful name and retrieved by
the answer analysis unit.
Implementation
The production of software to assist learning is a complex activity which
requires modern software engineering practice for large scale programming. The
programming environment for the coding of computer based material should
support a structured language with strong type checking, string manipulation
and separate compilation which maintains the type checking. The run time
environment should provide memory management, random access files and I/O
capabilities which allows a program full control of the interaction with the
user.
Since 1979, the Educational Technology Center has used UCSD Pascal(an
extension of Pascal commercially available on most inexpensive stand alone
systems) in its software development. Other computer languages such as Ada(tm)
or Modula-2 meet the requirements outlined above. The software tools described
in this document are currently implemented as "units" in UCSD Pascal. A "unit"
in UCSD Pascal is approximately equivalent to a "package" in Ada and a "module"
in Modula-2.
Acknowledgements
Our excellent undergraduate coders are responsible for most of the
implementation and have contributed to the design as well. Individual
contributions are given at the start of each section, but the following deserve
special mention: Stephen Bartlett, Adam Beneschan, Christi Genung,Martin Katz,
Alastair Milne, Naomi Salvadori, Tim Shimeall. As project mangers, Barry Kurtz
and David Trowbridge made valuable contributions to the design.
Cooperative efforts with our colleagues at the University of Geneva have
been very important. We have worked together on projects using this software,
they have used it extensively on projects of their own and their contributions
to its evolution have been invaluable. We particularly wish to thank Professor
Bernard Levrat and
Bertrand Ibrahim.
Finally we, as almost everyone using Pascal on personal computers,owe a
debt of gratitude to Professor Kenneth Bowles of the University of California
San Diego, who headed the project which developed UCSD Pascal.
UCSD Pascal" is a registered trade mark of the Regents of the University
of California. This document and the software it describes is copyright
1979, 1980, 1981, 1982, 1983, 1984, 1985 by the Regents of the University of
California. "p-System" is a trade mark of SofTech Microsystems Inc. "Ada"
is a registered trade mark of the US Government, Ada Joint Program Office.