TUTOR

For example, TUTOR has powerful answer-parsing and answer-judging commands, graphics, and features to simplify handling student records and statistics by instructors.

The first documentation of the language, under this name, appears to have been Avner, Richard Allen; Tenczar, Paul (January 1969), The TUTOR Manual.

CERL Report X-4 The article Teaching the Translation of Russian by Computer[3] gives a snapshot of TUTOR from shortly before PLATO IV was operational.

[5] Control Data Corporation (CDC), by 1981, had largely expunged the name TUTOR from their PLATO documentation.

The arrow command marks the entrance to a judging block This control structure is one of TUTOR's unique features.

The following list is not intended as a substitute for a TUTOR manual, but merely highlights the most interesting, innovative, and sometimes confusing features of the language.

The tag fields on the answer and wrong commands consisted of lists of optional, required and alternative words.

The body of this control structure consists of a series of cases, each introduced by a pattern matching command such as answer or wrong.

Early implementations operated by switching the terminal into erase mode and re-executing the entire case that had matched.

The CDC PLATO V terminal used a monochrome black and white CRT to emulate the plasma panel.

Hand composing draw commands is difficult, so a picture editor was included in the PLATO system by 1974 to automate this work.

Aside from its unique answer judging mechanisms, TUTOR's original set of control structures was rather sparse.

This is illustrated in the following example[18] Note that the reloop and outloop commands are somewhat analogous to the continue and break statements of languages based on C, except that they must sit at the indenting level of the loop they modify, and they have a condition tag that indicates when the indicated control transfer is to take place.

Consider this command[19] The character set also included the conventional symbols for multiplication and division, × and ÷, but in a more radical departure from the conventions established by FORTRAN, it allowed implicit multiplication, so the expressions (4+7)(3+6) and 3.4+5(23-3)/2 were valid, with the values 99 and 15.9, respectively (op cit).

When students typed in a numeric answer to a question, they could use operators and variables and standard algebraic notation, and the program would use the TUTOR "compute" command to compile and run the formula and check that it was numerically equivalent (or within the floating point roundoff error) to the correct answer.

The language included a pre-defined constant named with the Greek letter pi (π), with the appropriate value, which could be used in calculations.

Thus, the expression πr2 could be used to calculate the area of a circle, using the built-in π constant, implicit multiplication and exponentiation indicated by a superscript.

[21] As an authoring language, TUTOR began with only minimal memory resources and only the crudest tools for manipulating them.

[23] A TUTOR lesson could attach a single region of up to 1500 words of shared memory using the common command.

[24] Where 150 student variables was insufficient, a lesson could use the storage command to create an additional private memory segment of up to 1000 words.

Consider this example:[26] This creates a set of definitions named mynames defining three floating point variables.

The byte size and whether or not the array elements were to be treated as signed or unsigned were entirely under user control.

A general parameter passing mechanism was added to TUTOR early in the PLATO IV era.

Conventional definitions in terms of student variables such as n150 could be used in such a local define, but the forms illustrated here all automatically bind names to locations in the block of memory allocated by the lvars command.

For efficiency, there were some hardware-specific elements in TUTOR (e.g. variables that were 60-bit words that could be used as arrays of 60 bits or as 10 six-bit characters, etc.).

The microTutor dialect was also the programming language of the Cluster system developed at UIUC and licensed to TDK in Japan; the Cluster system consisted of a small group of terminals attached to a minicomputer which provided storage and compilation.

The Tencore Language Authoring System is a TUTOR derivative developed by Paul Tenczar for PCs and sold by Computer Teaching Corporation.