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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

1. Ports -- Screen Control, Input and Output.

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.

2. Keyed Files -- Separating Data from Algorithms.

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.

3. String Analysis -- Analyzing Learners' Responses.

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.