Software Engineering Techniques for CAL

The development of Computer Aided Learning software (CAL) calls for a large scale project if one does not want to limit oneself to lessons of purely personal utility. In our opinion, the development of such software is a team effort. The most common approach in this field is to use authoring languages, imposing a rather rigid framework on their users. As opposed to this approach, we have chosen to use a very simple formalism for the specification of the lessons and a general purpose programming language to implement these specifications. A whole development environment has therefore been developed to run on a graphic workstation, in order to ease the translation of the specifications into programs that could run on different target machines. This development environment includes, among other tools, a graphic script editor, an automatic program generator and a synchronous multi-window editor to hand-code the parts of the CAL program not generated automatically.