As mentioned above, the present scripts try at most to follow a three-track theory. Thus little of the potential complexity of the possible directed graph is employed, since care must be taken in lesson construction to see that every necessary fact is presented in every possible path through the units. In addition, it is desirable that every unit have alternate successors to deal with student errors.
In most existing courses, the first few lessons are devoted to checking prerequisites. For example, before the student is allowed to proceed through the editor script the script verifies that the student understands files and is able to type. It is felt that the sooner lack of student preparation is detected, the easier it will be on the student. Anyone proceeding through the scripts should be getting mostly correct answers; otherwise, the system will be unsatisfactory both because the wrong habits are being learned and because the scripts make little effort to deal with wrong answers. Unprepared students should not be encouraged to continue with scripts.
There are some preliminary items which the student must know before any scripts can be tried. In particular, the student must know how to connect to a UNIXsystem, set the terminal properly, log in, and execute simple commands (e.g., learn itself). In addition, the character erase and line kill conventions (# and @) should be known. It is hard to see how this much could be taught by computer-aided instruction, since a student who does not know these basic skills will not be able to run the learning program. A brief description on paper is provided (see Appendix A), although assistance will be needed for the first few minutes. This assistance, however, need not be highly skilled.
The first script in the current set deals with files. It assumes the basic knowledge above and teaches the student about the ls, cat, mv, rm, cp and diff commands. It also deals with the abbreviation characters *, ?, and [ ] in file names. It does not cover pipes or I/O redirection, nor does it present the many options on the ls command.
This script contains 31 lessons in the fast track; two are intended as prerequisite checks, seven are review exercises. There are a total of 75 lessons in all three tracks, and the instructional passages typed at the student to begin each lesson total 4,476 words. The average lesson thus begins with a 60-word message. In general, the fast track lessons have somewhat longer introductions, and the slow tracks somewhat shorter ones. The longest message is 144 words and the shortest 14.
The second script trains students in the use of the UNIXcontext editor ed, a sophisticated editor using regular expressions for searching. ritchie thompson unix seventh edition 1978 %O See section ed (I). All editor features except encryption, mark names and `;' in addressing are covered. The fast track contains 2 prerequisite checks, 93 lessons, and a review lesson. It is supplemented by 146 additional lessons in other tracks.
A comparison of sizes may be of interest. The ed description in the reference manual is 2,572 words long. The ed tutorial kernighan editor tutorial 1974 is 6,138 words long. The fast track through the ed script is 7,407 words of explanatory messages, and the total ed script, 242 lessons, has 15,615 words. The average ed lesson is thus also about 60 words; the largest is 171 words and the smallest 10. The original ed script represents about three man-weeks of effort.
The advanced file handling script deals with ls options, I/O diversion, pipes, and supporting programs like pr, wc, tail, spell and grep. (The basic file handling script is a prerequisite.) It is not as refined as the first two scripts; this is reflected at least partly in the fact that it provides much less of a full three-track sequence than they do. On the other hand, since it is perceived as ``advanced,'' it is hoped that the student will have somewhat more sophistication and be better able to cope with it at a reasonably high level of performance.
A fourth script covers the eqn language for typing mathematics. This script must be run on a terminal capable of printing mathematics, for instance the DASI 300 and similar Diablo-based terminals, or the nearly extinct Model 37 teletype. Again, this script is relatively short of tracks: of 76 lessons, only 17 are in the second track and 2 in the third track. Most of these provide additional practice for students who are having trouble in the first track.
The -ms script for formatting macros is a short one-track only script. The macro package it describes is no longer the standard, so this script will undoubtedly be superseded in the future. Furthermore, the linear style of a single learn script is somewhat inappropriate for the macros, since the macro package is composed of many independent features, and few users need all of them. It would be better to have a selection of short lesson sequences dealing with the features independently.
The script on C is in a state of transition. It was originally designed to follow a tutorial on C, but that document has since become obsolete. The current script has been partially converted to follow the order of presentation in The C Programming Language, ritchie kernighan programming 1978 prentice hall but this job is not complete. The C script was never intended to teach C; rather it is supposed to be a series of exercises for which the computer provides checking and (upon success) a suggested solution.
This combination of scripts covers much of the material which any UNIXuser will need to know to make effective use of the system. With enlargement of the advanced files course to include more on the command interpreter, there will be a relatively complete introduction to UNIXavailable via learn. Although we make no pretense that learn will replace other instructional materials, it should provide a useful supplement to existing tutorials and reference manuals.