MENTOR(ID:438/men005)


CAI language


References:
  • Silvern, G.M. et al, "Computer Assisted Instruction: Specification of Attributes for CAI Programs and Programmers" view details Abstract: Man's search for knowledge began in antiquity and led ultimately to the invention of the textbook. The first, a spelling book of 72 pages, was published in 15961. It contained spelling lessons and a smattering of arithmetic, history and a short catechism. The first American textbook was published in 1641. This is remarkable since it was printed on the first press in the colonies, assembled only a few years before, in 1639. Nearly 200 years elapsed before the blackboard appeared in the schools. The earliest known reference to the blackboard was in a publication on arithmetic in 1809. Those in computing will be pleased to learn that the blackboard was used almost exclusively for arithmetic and, at the U.S. Military Academy, for engineering problems.
    Extract: Lyric codes
    LYRIC (CAI Language) Operations are proposed for use by the instructional programmer in developing his course. Operation codes have been selected which closely resemble key words in the operations they represent. Since a typical instructional program will consist of thousands of statements, abbreviations in the form of mnemonic codes are proposed for the operations.
    These codes are used only by the instructional programmer or by a subordinate under his direction. A student, in interacting with the instructional program, would never see these codes and would not need to understand the operations they represent. The proposed codes, with descriptions of their operations, follow:
    PRE text
    Present the first line of information (text) in the new step. The PILE op code is used where no response is required from the student at the end of the step. The text which follows the op code is limited to that which will fit on a single line, but should not exceed 7 inches. For additional lines, see operation 1".
    1" text The 1' op code is used for each succeeding line of information (text) to be presented to the student after a PRE, PRO, GUD, BAD or UNX. If the text field is blank, a line is skipped.
    PRO text
    Problem's first line of information (text) for a new step. The PRO op code is used where a response is required from the student at the end of the step. 1" is used for additional lines of text in the step; these may provide information, ask a question, give multiple choices, etc.
    ANS
    The ANS op code is used where an answer is required from the student. The system should display a ? and a space, then wait for an input. The student input is limited to the number of characters which will fit on one line, but should not exceed 7 inches. A carriage return ends the student input. Consecutive ANS operations may be used where multiple-line student responses are required.
    PAC specified characters
    The PAC operation will remove specified punctuation, spaces and/or other characters from the student answer and compact it.
    GUD correct answer
    The correct answer following the GUD op code is for exact comparison with the student answer. If they match, the text of any following l"s is given for reinforcement, followed by the next step. If no match occurs, the next GUD, BAD, etc., is executed. There may be additional GUD's for alternate correct answers, l"s following the last GUD of a series also applies to previous GUD's having no ~'s of their own. If no text is provided, a match is followed by the next step. If PAC 'is used on a student answer, the correct answer must be given in similarly compacted form following the GUD op code.
    BAD predictable incorrect answer
    The answer following BAD is for exact comparison with the student answer. If they match, the text of the following q"s is given to the student as remedial instruction, followed by a GTO (go to) operation in which the instructional programmer signifies what follows. If no match occurs, the following BAD's and other matching operations are executed. If remedial instruction does not follow a BAD, information following a subsequent BAD in the same step is used. If no GTO follows a match, the program will continue with the next step.
    GTO label
    Go to the statement with the designated label, unconditionally. If PRO or ANS follows the GTO op code, the program will go to the previous PRO o1" ANS.
    KEY keyword, keyword,... ; order code; # of keywords, # of matches
    The designated keywords are scanned in the student answer (which may be in packed form if PAC was used). If more than one keyword, an order code is used to indicate if order of keywords is important, and the number of keywords is given together with the number of matches required for the test to be successful. The number of successful matches should be retrievable by the instructional programmer. If matches occur for the prescribed number of keywords, the system proceeds as for a successful GUD. Otherwise, it continues with any succeeding tests.
    PCT correct answer, %
    The correct answer, in packed form if PAC was used, is compared with the student answer, character by character. If the number of matches reaches the designated percent, the test is successful and the program proceeds as for a successful GUD. Otherwise, it continues with any succeeding tests.
    LIM lower limit, upper limit
    The LIM operation is used for numeric answers falling within a predictable range. If the student answer is between the numeric lower and upper limits indicated, the test is successful and the program proceeds as for a successful GUD. Otherwise, it continues.
    UNX number of repetitions
    The UNX operation provides for an unexpected or unpredicted student answer. Each step requiring a student response (PRO) must have at least one UNX at its end. The student answer may actually be acceptable without matching any of the previous correct answers provided in GUD's, KEY's or PCT's; it may be incorrect but different from any predicted incorrect answers in BAD's; or the student may have responded with something like "I don't know" or with just a carriage return, etc. UNX is followed by ~"s with comments or remedial instruction which the student is to receive after inputting an unexpected answer. A GTO should follow the last line of text after a UNX; if no GTO, the program continues with the next step. The number of repetitions indicated after the UNX op code is the number of times the group of 1' and GTO operations which follow this UNX are to be repeated for subsequent unexpected answers before the program goes to the next UNX or to the next step. Additional UNX's provide different texts for succeeding unexpected answers. The final UNX in a series should have one repetition and furnish the student with the correct answer, followed by the next step.
    ADD sign, constant, counter #
    The ADD op code is followed by a -~- (for add) or - (for subtract, then by a constant or a counter number (second argument) and then by a counter number. The constant or contents of the counter (in the second argument) are added to or subtracted from the contents of the counter (in the last argument), and the result is placed in the last counter. A counter may be cleared by subtracting its contents from itself. This instruction may be used wherever it is meaningful to count; for example, it may be used to count correct or incorrect responses.
    GTC counter #, initial value; label 1, label 2 , . . . , label n
    This conditional go to depends on the contents of the designated counter. If the counter contains the initial value indicated, the program will go to the first label; if one more, it will go to the second label; etc.
    SHO text, counter #, text
    Display (show) the contents of the counter indicated, embedded in the text given with the SHO op code. To output only the value contained in the counter, SHO is followed with a comma and counter #.
    MOD device code, control code(s)
    The MOD op code provides for several modes of input/output. If not used, the system provides for the standard I/O. MOD must precede the first output (or input) operation in that mode; succeeding operations continue in the same mode until a new MOD operation is given. The following are some of the possible device codes: TTY for teleprinted output (typeout); CRT for graplfic display with control codes to indicate erase, move up one line, move up x lines, position cursor, etc.; EAR for playback of pre-recorded audio; PIX for projection of slides, film or filmstrip; TYP for keyboard input; TYP with cursor position given for graphic display input; PEN for light pen input; SAY for recording audio input.
    END
    END is used after the final operation of the instructional program. It informs the system that the program input has been completed, and it causes a student to be signed off automatically.

          in [ACM] Proceedings of the 21st ACM National Conference 1966 view details
  • "Computer Systems for Teaching Complex Concepts", Report 1742, BBN, Mar 1969 view details
          in [ACM] Proceedings of the 21st ACM National Conference 1966 view details
  • Stock, Karl F. "A listing of some programming languages and their users" in RZ-Informationen. Graz: Rechenzentrum Graz 1971 151 view details Abstract: 321 Programmiersprachen mit Angabe der Computer-Hersteller, auf deren Anlagen die entsprechenden Sprachen verwendet werden kennen. Register der 74 Computer-Firmen; Reihenfolge der Programmiersprachen nach der Anzahl der Herstellerfirmen, auf deren Anlagen die Sprache implementiert ist; Reihenfolge der Herstellerfirmen nach der Anzahl der verwendeten Programmiersprachen.

    [321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know.  Register of the 74 computer companies;  Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented;  Sequence of the manufacturing firms after the number of used programming languages.]
          in [ACM] Proceedings of the 21st ACM National Conference 1966 view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 375 view details Abstract: PREFACE  AND  INTRODUCTION
    The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one.

    There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages.

    The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM.

    Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) .

    It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers.

    The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA).
    As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found.

    It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel.

    We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work.

    Graz / Austria, May, 1973
          in ACM Computing Reviews 15(04) April 1974 view details