Knowledge (XXG)

TUTOR

Source 📝

280:(CMI) (in computer programs called "lessons") and has many features for that purpose. For example, TUTOR has powerful answer-parsing and answer-judging commands, graphics, and features to simplify handling student records and statistics by instructors. TUTOR's flexibility, in combination with PLATO's computational power (running on what was considered a supercomputer in 1972), also made it suitable for the creation of games — including flight simulators, war games, dungeon style multiplayer role-playing games, card games, word games, and medical lesson games such as 1169:
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. cT was a derivative of TUTOR and microTutor developed at Carnegie Mellon which allowed programs to run without change in windowed GUI environments on Windows, Mac, and Unix/Linux systems.
562:
erased so that the response to the new answer can be computed. The mechanism by which the display screen rolls back to its previous state varies from implementation to implementation. Early implementations operated by switching the terminal into erase mode and re-executing the entire case that had matched. Some later implementations buffered the output produced during judging so that this output could be erased.
47: 778:, 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. This makes the construct more powerful than in other languages, because any line of the inner loop could terminate or reloop several outer loops with one statement. 903:
command. Each lesson could have an unnamed temporary common block containing variables shared by all users of that lesson. Such blocks were created when a lesson came into use and deallocated when the lesson became inactive. In contrast, named common blocks were associated with a block of a lesson
820:
were valid, with the values 99 and 15.9, respectively (op cit). This feature was seen as essential. 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
620:
Fine coordinates were specified as X and Y coordinates relative to the lower left corner of the screen. The fine coordinate 0,511 specified the upper left corner of the screen, while 0,496 was equivalent to the coarse 101, allowing for the 16 pixel height of a character and the fact that characters
325:
Through the 1970s, the developers of TUTOR took advantage of the fact that the entire corpus of TUTOR programs were stored on-line on the same computer system. Whenever they felt a need to change the language, they ran conversion software over the corpus of TUTOR code to revise all existing code so
1168:
The microTutor language was developed in the PLATO project at UIUC to permit portions of a lesson to run in terminals that contained microcomputers, with connections to TUTOR code running on the mainframe. The microTutor dialect was also the programming language of the Cluster system developed at
1164:
There has been a sizable family of TUTOR-related languages, each similar to the original TUTOR language but with differences. In particular, TUTOR was a component of a system (the PLATO computer-based education system) that ran on particular CDC mainframe hardware. For efficiency, there were some
561:
In the event that the student inputs "square" or "a square", the answer is judged to be incorrect, and the text "A square has four sides." is output starting at line 15 column 1 on the screen. This output remains on the screen until the student begins to enter a new answer, at which point, it is
450:
command also prompts for input, with the special arrow character (resembling "▷") displayed as a prompt at the indicated screen coordinates. In effect, a judging block can be thought of as a backtracking control structure where the student may make multiple attempts to answer a question until a
569:
command was a unique form of subroutine call. It was defined as being equivalent to textual substitution of the body of the joined unit in place of the join command itself. As such, a joined unit could contain part of a judging block. Thus, while the judging block is conceptually an
677:
Text rendered in size zero rotation zero used the built-in character rendering hardware of the PLATO terminal, while rendering with nonzero size and rotation was done with line segments and therefore significantly slower due to the speed of the communication link to the terminal.
317:
gives a snapshot of TUTOR from shortly before PLATO IV was operational. Core elements of the language were present, but commands were given in upper case, and instead of using a general mechanism, support for alternative character sets was through special command names such as
498:
This would match answers such as "it is a right triangle" or "it's a triangular figure" or just "rt triangle". It would not match "sort of triangular" because the words "sort of" are not listed as ignored, and it would not match "triangle, right?" because the order is wrong.
517:
between the two bit vectors was used as a measure of the degree of difference between the words. Bit vectors were typically 60 or 64 bits long, with fields for letter presence, letter pair presence, and the first letter. As a result, the number of one bits in the
616:
Coarse coordinates were specified in terms of the rows and columns of text. The coarse coordinate 1501, for example, was a reference to line 15 character 1, where the upper left character on the screen was at location 101 and the lower right character was at
1059:. The byte size and whether or not the array elements were to be treated as signed or unsigned were entirely under user control. Arbitrary text manipulation could be done by setting the byte size to the machine byte size, 6 bits on implementations using 721:
if n8<4 . write first branch . calc n9⇐34 elseif n8=4 . write second branch . do someunit else . write default branch . if n8>6 . . write special branch . endif endif
1165:
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.). Also, TUTOR was designed before the advent of the windows-oriented graphical user interface (GUI).
879:
The private memory region of each process consisted of 150 words each, referred to as student variables; the values of these variables were persistent, following the individual user from session to session. These were addressed as
843:
were approximately equal. This simplified life for mathematically naïve developers of instructional lessons, but it occasionally caused headaches for developers of numerically sophisticated code because it was possible that both
1099:
command are simply the defined names for statically allocated global variables. The semantics of parameter passing was given as being equivalent to assignment at the time of the control transfer to the destination unit, and if
672:
unit title size 9.5 $ $ text 9.5 times normal size rotate 45 $ $ text rotated 45 degrees at 2519 write Latin size 0 $ $ return to normal writing rotate 0 at 3125 write Lessons on Verbs
417:
TUTOR contained a number of 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.
605:
to emulate the plasma panel. The built-in character set had 4 sets of 63 characters, each 8 by 16 pixels, half of these were fixed, half were programmable. The Tutor language provided complete support for this terminal.
753:
loop n8<10 . write within loop . sub1 n8 reloop n8≥5 . write still within loop . do someunit outloop n8<3 . write still within loop endloop write outside of loop
1127:
unit someu NAME1,NAME2,NAME3(SIZE) NAME4=CONSTANT floating:NAME5,NAME6,NAME7(SIZE) integer, NUM BITS:NAME8,NAME9 integer, NUM BITS,signed:NAME10 integer:NAME11
1015:
Later in the development of TUTOR, with the introduction of multiple named sets of definitions, the programmer was given explicit control over which sets of definitions were currently in force. For example,
860:
As an authoring language, TUTOR began with only minimal memory resources and only the crudest tools for manipulating them. Each user process had a private data segment of 150 variables, and shared
660:
Hand composing draw commands is difficult, so a picture editor was included in the PLATO system by 1974 to automate this work. This could only deal with drawing commands with constant coordinates.
927:
command to create an additional private memory segment of up to 1000 words. This segment existed in swap space only, but it could be mapped to student variables or common variables. For example
973:
directive. This was the only way to associate mnemonic names with variables. It was up to the programmer to statically allocate memory and assign names to variables. Consider this example:
1087:
define radius=v1,x=v2,y=v3 unit vary do halfcirc(100,150,300) do halfcirc(50) * unit halfcirc(radius, x,y) circle radius, x,y,0,180 draw x-radius, y;x+radius, y
326:
that it conformed with the changes they had made. As a result, once new versions of TUTOR were developed, maintaining compatibility with the PLATO version could be very difficult.
300:
for designing instructional lessons, and its evolution into a general purpose programming language was unplanned. The name TUTOR was first applied to the authoring language of the
1944: 509:
The pattern matching algorithms used by various TUTOR implementations varied in detail, but typically, each word in the input text and each word in the pattern were converted to
288:). TUTOR lives on today as the programming language for the Cyber1 PLATO System, which runs most of the source code from 1980s PLATO and has roughly 5000 users as of June 2020. 1868: 824:
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
356:
where each unit begins with the presentation of information and progress from one unit to the next is contingent on correctly answering one or more questions. As with
642:
command. This allows unambiguous use of comma-separated fine coordinates. Normally, the draw command connects consecutive points with line segments, but by putting
383:
First, TUTOR is a fixed format language. Each line begins with a command name, which must fit within a fixed 8-character field. The arguments to that command (the
463:
commands, each of which introduces a (possibly empty) block of commands to be executed if that pattern matches. The two most common pattern matching commands were
502:
The pattern matching subsystem recognized spelling errors, so the words "triangel" or "triangl" would match the example pattern. The lesson author could use the
601:, line drawing, and text display. Each pixel on the PLATO IV terminal was either orange or black. The CDC PLATO V terminal used a monochrome black and white 734:
statement is not rendered correctly in some browsers. It appears similar to <= but as one character. It had a dedicated key on the PLATO IV keyboard.)
530:
All early presentations of the control structure of a TUTOR judging block were confusing. In modern terms, however, a judging block can be described as an
1123:
command to declare the size of the buffer used for local variables, up to 128 words. Having done so, a unit using local variables could begin as follows:
1949: 1044:
define segment, name=starting var, num bits per byte, s array, name(size)=starting var array, name (num rows, num columns)=starting var
265: 182: 828:
could be used to calculate the area of a circle, using the built-in π constant, implicit multiplication and exponentiation indicated by a superscript.
360:
paragraphs, control may enter a TUTOR unit from the preceding unit and exit into the next, but units are also callable as subroutines using the
1736:
Curtin, Constance; Clayton, Douglas; Finch, Cheryl; Moor, David; Woodruff, Lois (1972). "Teaching the Translation of Russian by Computer".
657:
command give the radius and fine coordinates of the center. Additional tags could specify starting and ending angles for partial circles.
1040:
to move a string from memory to memory. By 1975, more general tools for arrays of integers and packed arrays were added. For example:
215: 993:. Put all your definitions at the very beginning of the lesson where you will have ready reference to which variables you are using." 387:) begin at the 9th character. Although a tab key was used to get to the 9th column, it generated spaces as PLATO had no tab character. 812:, but in a more radical departure from the conventions established by FORTRAN, it allowed implicit multiplication, so the expressions 375:
unit math at 205 write Answer these problems 3 + 3 = 4 × 3 = arrow 413 answer 6 arrow 613 answer 12
130: 68: 61: 332:(CDC), by 1981, had largely expunged the name TUTOR from their PLATO documentation. They referred to the language itself as the 550:. All output produced by the body of the judging loop in the previous cycle is erased from the screen prior to the next cycle. 821:
the formula and check that it was numerically equivalent (or within the floating point roundoff error) to the correct answer.
1056: 727: 711: 273: 397:
Screen coordinates are presented as single numbers, so 205 refers to line 2 column 5, and 413 refers to line 4 column 13.
1101: 1092: 1080: 277: 1738: 1703:(3rd ed.), Urbana, Illinois: PLATO Publications / Computer-Based Education Research Lab, University of Illinois, 790:, nor was it limited by poorly designed character sets of the era. For example, the PLATO IV character set included 111: 1152:, but the forms illustrated here all automatically bind names to locations in the block of memory allocated by the 1119:
were added to TUTOR some time around 1980. Lesson authors wishing to use local variables were required to use the
83: 57: 1028:
The original TUTOR tools for text manipulation were based on commands for specific text operations, for example,
1008:
of TUTOR were pure "definition before use" with no provisions for local definitions. Thus, the formal parameter
795: 575: 535: 534:
that exits when the student input is judged correct. The body of this control structure consists of a series of
394:
command above, the tag may consist of multiple lines. Continuation lines are either blank or have a leading tab.
236: 1666: 964: 775: 329: 304:
in the later days of Plato III. The first documentation of the language, under this name, appears to have been
90: 582:
command, conformed to the usual semantics associated with subroutine calls in other programming languages.)
522:
of two such bit vectors approximated the extent of the phonetic difference between the corresponding words.
344:
survived, however, as the name of the type of file used to store text written in the PLATO Author Language.
261: 1172:
The Pterm terminal emulator developed by Cyber1 supports the microTutor language starting with version 6.
1108:
command above, the effect was to leave the prior values of the corresponding formal parameters unchanged.
158: 154: 35: 706:
sections. The semantics of these control structures was routine, but the syntax inherited the mandatory
1797:, Urbana, Illinois: PLATO Publications / Computer-Based Education Research Lab, University of Illinois, 494:
answer <it, is,a, it's, figure, polygon> (right, rt) (triangle, triangular)
97: 257: 149: 1810: 1141: 1071:
implementations. Note the lack of any specification of array dimensionality for segmented arrays.
1005: 240: 1724:(10th ed.), Urbana, Illinois: Computer-Based Education Research Lab, University of Illinois, 269: 79: 1763: 791: 297: 176: 1156:
command. The available TUTOR documentation does not discuss how local variables are allocated.
714:
and adding a unique nonblank indent character to distinguish indenting from continuation lines.
490:
commands consisted of lists of optional, required and alternative words. consider this example:
1687:, Urbana, Illinois: Computer-Based Education Research Lab, University of Illinois, March 1973, 578:, this block may be arbitrarily broken into subroutines. (An alternative subroutine call, the 1798: 1755: 1725: 1704: 1688: 610: 1884:, Computer-Based Education Research Laboratory, University of Illinois at Urbana, Report X-35 232: 1775: 1747: 602: 539: 514: 460: 17: 899:
A TUTOR lesson could attach a single region of up to 1500 words of shared memory using the
804:
The character set also included the conventional symbols for multiplication and division,
166: 996:
Functions could be defined, with macro-substitution semantics, as in this illustration:
1925: 1116: 1068: 598: 594: 557:
wrong <it, is,a> square at 1501 write A square has four sides.
1938: 749:
in conventional programming languages. This is illustrated in the following example
634:
draw 1812;1852;skip;1844;1544 circle 16,344,288 draw 1837;1537;1535;1633;1833
690:
was rather sparse. In the mid 1970s, this shortcoming was addressed by introducing
1060: 970: 707: 687: 519: 301: 104: 1789: 1716: 1679: 204: 46: 1899: 1779: 746: 571: 531: 510: 401:
What may not be apparent is the control structure implicit in this unit. The
1759: 1701:
PLATO User's Memo, Number One: Summary of TUTOR Commands and System Variables
668:
The following example illustrates some of the text rendering tools of Tutor.
30:
This article is about the programming language. For the type of teacher, see
987:
there should not be any v3's or v26's anywhere in your lesson except in the
864:
could be attached, allowing inter-user communication through shared memory.
513:. To see whether a word of student input matched a word of the pattern, the 1928:. Center for Design of Educational Computing at Carnegie Mellon University. 871:
family of computers. Some later implementations changed this to 64 bits.
1032:
to place a packed character string into consecutive variables in memory,
868: 686:
Aside from its unique answer judging mechanisms, TUTOR's original set of
1825: 1916: 787: 1767: 1083:
mechanism was added to TUTOR early in the PLATO IV era. For example:
1845: 923:
Where 150 student variables was insufficient, a lesson could use the
638:
Note the use of semicolons to separate successive coordinates on the
1924:
Andersen, David; Sherwood, Bruce; Sherwood, Judith; Whitley, Kevin.
630:
The following example illustrates some of Tutor's drawing commands.
1802: 1751: 1729: 1708: 1692: 985:
defining three floating point variables. Users were advised that "
1816: 1781:
Run Time Support for the TUTOR Language on a Small Computer System
1144:. Conventional definitions in terms of student variables such as 1064: 798:, and TUTOR used these for exponentiation. Consider this command 591: 506:
command to set how pedantic the system was about spelling errors.
357: 31: 379:
Several things should be immediately apparent from this example.
867:
On the PLATO IV system, words were 60 bits, in keeping with the
977:
define mynames first=v1, second =v2 result=v3
471:. These had identical pattern matching semantics except that 40: 786:
TUTOR's expression syntax did not look back to the syntax of
475:
judged a student response to be correct if it matched, while
268:
beginning in roughly 1965. TUTOR was initially designed by
409:
This control structure is one of TUTOR's unique features.
1200: 1136:
command given above are taken to be lines of an implicit
1256: 1219: 1521: 1331: 1316: 1288: 1272: 650:
command could be made to conceptually lift its pen.
430:
in TUTOR is a control structure that begins with an
306:
Avner, Richard Allen; Tenczar, Paul (January 1969),
296:
TUTOR was originally developed as a special purpose
226: 213: 203: 188: 175: 165: 148: 1926:"The cT Programming Language (derived from TUTOR)" 1012:used above must not have any previous definition. 1812:Forward progress with full backward compatibility 621:were plotted relative to their lower left corner. 1020:would discard all definitions in the named set. 904:(a disk file). Shared memory was addressed as 590:The PLATO IV student terminal had a 512 by 512 315:Teaching the Translation of Russian by Computer 1718:Summary of TUTOR Commands and System Variables 717:This is illustrated in the following example: 1303: 1036:to search for one string within another, and 459:Each judging block consists of a sequence of 322:for "write using the Russian character set." 8: 1945:Computer-based Education Research Laboratory 1024:Arrays, packed arrays, and text manipulation 931:common 1000 storage 75 stoload vc1001,1,75 143: 1900:"A personal evaluation of the PLATO system" 1846:"MicroTUTOR with Pterm: A brief user guide" 479:judged a student response to be incorrect. 266:University of Illinois at Urbana-Champaign 183:University of Illinois at Urbana-Champaign 142: 896:when used to hold floating point values. 710:of the Tutor Language, presaging that of 352:A TUTOR lesson consists of a sequence of 131:Learn how and when to remove this message 1681:TUTOR user's memo: Introduction to TUTOR 1600: 1574: 1550: 1537: 1508: 1495: 1483: 1459: 1435: 1396: 1383: 1371: 1358: 1231: 1187: 981:This creates a set of definitions named 943:as a shared unnamed common block, while 888:when used to hold integer values, or as 831:In TUTOR, the floating-point comparison 451:correct answer allows forward progress. 1180: 766:commands are somewhat analogous to the 1882:Spelling, Word and Concept Recognition 1809:Sherwood, Bruce Arne (April 9, 2000), 1674:, Control Data Corporation, April 1981 1649: 1637: 1346: 1055:, were comparable to packed arrays in 67:Please improve this article by adding 1625: 1612: 1587: 1562: 1471: 1447: 1422: 1409: 1243: 7: 1898:Denenberg, Stewart A. (April 1978). 745:blocks with semantics comparable to 1095:listed in the argument list to the 1788:Sherwood, Bruce Arne (June 1974), 25: 1950:Educational programming languages 1930:(no longer supported as of 2002). 1919:. Control Data Education Company. 774:statements of languages based on 308:The TUTOR Manual. CERL Report X-4 171:Paul Tenczar & Richard Blomme 963:command was very similar to the 852:could be true at the same time. 405:command marks the entrance to a 45: 1819:), Python IDLE-dev mailing list 1699:Avner, Elaine (November 1975), 1536:Underlining from the original, 1104:were omitted, as in the second 1000:define cotan(a)=cos(a)/sin(a) 434:command and ends with the next 1880:Tenczar, Paul; Golden (1972), 1867:Stifle, Jack (November 1974), 1498:, pp. X-1 to X-3 and X-6. 1201:"Cyber1 PLATO Computer System" 1148:could be used in such a local 1132:The continuation lines of the 920:(for floating point numbers). 1: 1870:The Plato IV Student Terminal 1715:Avner, Elaine (August 1981), 835:was defined as being true if 737:The same syntax was used for 274:computer assisted instruction 69:secondary or tertiary sources 1826:"Release Notes for Pterm v6" 1577:, pp. VII-52 to VII-55. 597:, with hardware support for 586:Graphic and display commands 278:computer managed instruction 18:TUTOR (programming language) 1844:Sinder, Dale (2018-03-26). 1739:The Modern Language Journal 1051:, defined with the keyword 532:iterative control structure 390:In some cases, such as the 348:Structure of a TUTOR lesson 1966: 1018:define purge, setname 801:circle (41+72.6),100,200 526:Judging control structures 29: 1304:Tenczar & Golden 1972 796:subscript and superscript 371:Here is an example unit: 260:developed for use on the 231: 221: 1915:Sherwood, Bruce (1977). 1125: 1085: 1042: 998: 975: 929: 751: 719: 670: 632: 555: 492: 455:Judging pattern matching 373: 330:Control Data Corporation 1486:, pp. IV-2, IX-17. 1063:, 8 bits on some later 1004:Unlike C, the original 955:Defining symbolic names 664:Text rendering commands 553:Consider this example: 538:, each introduced by a 292:Origins and development 875:Basic memory resources 574:enclosing a series of 482:The tag fields on the 56:relies excessively on 36:Tutor (disambiguation) 34:. For other uses, see 1824:Sinder, Dale (n.d.). 1160:Other implementations 951:are private storage. 935:This example defines 698:blocks with optional 334:PLATO Author Language 254:PLATO Author Language 1917:"The TUTOR Language" 595:plasma display panel 258:programming language 27:Programming language 1140:command with local 189:First appeared 181:Paul Tenczar & 145: 1904:ACM SIGCUE Outlook 1791:The TUTOR language 1668:PLATO user's guide 1258:PLATO user's guide 1255:See, for example, 1220:Curtin et al. 1972 912:(for integers) or 792:control characters 688:control structures 682:Control structures 611:coordinate systems 298:authoring language 222:TUTOR, Micro-TUTOR 1776:Jones, Douglas W. 1523:TUTOR user's memo 1333:TUTOR user's memo 1318:TUTOR user's memo 1290:TUTOR user's memo 1274:TUTOR user's memo 1102:actual parameters 1093:formal parameters 1081:parameter passing 1075:Parameter passing 856:Memory management 782:Expression syntax 342:TUTOR lesson file 247: 246: 205:Typing discipline 141: 140: 133: 115: 16:(Redirected from 1957: 1929: 1920: 1911: 1885: 1876: 1875: 1863: 1861: 1859: 1850: 1840: 1838: 1836: 1820: 1805: 1796: 1784: 1771: 1732: 1723: 1711: 1695: 1686: 1675: 1673: 1653: 1647: 1641: 1635: 1629: 1622: 1616: 1610: 1604: 1597: 1591: 1584: 1578: 1572: 1566: 1560: 1554: 1547: 1541: 1534: 1528: 1518: 1512: 1505: 1499: 1493: 1487: 1481: 1475: 1469: 1463: 1457: 1451: 1445: 1439: 1432: 1426: 1419: 1413: 1406: 1400: 1393: 1387: 1381: 1375: 1368: 1362: 1356: 1350: 1344: 1338: 1329: 1323: 1313: 1307: 1301: 1295: 1285: 1279: 1269: 1263: 1253: 1247: 1241: 1235: 1229: 1223: 1217: 1211: 1210: 1208: 1207: 1197: 1191: 1185: 1155: 1151: 1147: 1139: 1135: 1122: 1107: 1098: 1091:Notice that the 1054: 1049:Segmented arrays 1039: 1035: 1031: 1019: 1011: 991:statement itself 990: 984: 969: 962: 950: 946: 942: 938: 926: 919: 915: 911: 907: 902: 895: 891: 887: 883: 851: 847: 842: 838: 834: 827: 819: 815: 811: 807: 773: 769: 765: 761: 744: 740: 733: 705: 701: 697: 693: 656: 653:The tags on the 649: 646:in the tag, the 645: 641: 626:Drawing commands 581: 568: 549: 545: 542:command such as 540:pattern matching 515:Hamming distance 505: 489: 485: 478: 474: 470: 466: 461:pattern matching 449: 445: 441: 437: 433: 404: 393: 367: 363: 321: 310: 252:, also known as 199: 197: 167:Designed by 146: 136: 129: 125: 122: 116: 114: 73: 49: 41: 21: 1965: 1964: 1960: 1959: 1958: 1956: 1955: 1954: 1935: 1934: 1933: 1923: 1914: 1897: 1893: 1891:Further reading 1888: 1879: 1873: 1866: 1857: 1855: 1848: 1843: 1834: 1832: 1823: 1808: 1794: 1787: 1774: 1735: 1721: 1714: 1698: 1684: 1678: 1671: 1665: 1661: 1656: 1648: 1644: 1636: 1632: 1623: 1619: 1611: 1607: 1603:, p. IV-10 1598: 1594: 1585: 1581: 1573: 1569: 1561: 1557: 1548: 1544: 1535: 1531: 1519: 1515: 1506: 1502: 1494: 1490: 1482: 1478: 1470: 1466: 1462:, p. IX-3. 1458: 1454: 1446: 1442: 1433: 1429: 1420: 1416: 1407: 1403: 1394: 1390: 1386:, p. II-9. 1382: 1378: 1374:, p. II-11 1369: 1365: 1361:, p. II-1. 1357: 1353: 1345: 1341: 1330: 1326: 1314: 1310: 1302: 1298: 1286: 1282: 1270: 1266: 1254: 1250: 1242: 1238: 1230: 1226: 1218: 1214: 1205: 1203: 1199: 1198: 1194: 1186: 1182: 1178: 1162: 1153: 1149: 1145: 1137: 1133: 1130: 1129: 1120: 1117:Local variables 1114: 1112:Local variables 1105: 1096: 1089: 1088: 1077: 1052: 1046: 1045: 1037: 1033: 1029: 1026: 1017: 1009: 1002: 1001: 988: 982: 979: 978: 967: 960: 957: 948: 944: 940: 936: 933: 932: 924: 917: 913: 909: 905: 900: 893: 889: 885: 881: 877: 858: 849: 845: 840: 836: 832: 825: 817: 813: 809: 805: 802: 784: 771: 767: 763: 759: 756: 755: 742: 738: 731: 724: 723: 703: 699: 695: 691: 684: 675: 674: 666: 654: 647: 643: 639: 636: 635: 628: 609:There were two 588: 579: 566: 559: 558: 547: 543: 528: 503: 496: 495: 487: 483: 476: 472: 468: 464: 457: 447: 443: 439: 435: 431: 424: 415: 413:Unique features 402: 391: 377: 376: 365: 361: 350: 319: 305: 294: 241:Regency Systems 216:implementations 195: 193: 137: 126: 120: 117: 74: 72: 66: 62:primary sources 50: 39: 28: 23: 22: 15: 12: 11: 5: 1963: 1961: 1953: 1952: 1947: 1937: 1936: 1932: 1931: 1921: 1912: 1894: 1892: 1889: 1887: 1886: 1877: 1864: 1841: 1821: 1806: 1785: 1772: 1752:10.2307/324788 1733: 1712: 1696: 1676: 1662: 1660: 1657: 1655: 1654: 1642: 1630: 1617: 1605: 1592: 1579: 1567: 1555: 1553:, p. IX-2 1542: 1540:, p. IV-5 1529: 1513: 1511:, p. X-11 1500: 1488: 1476: 1464: 1452: 1440: 1438:, p. IV-1 1427: 1414: 1401: 1399:, p. II-3 1388: 1376: 1363: 1351: 1339: 1324: 1322:, Exercise 4-1 1308: 1296: 1294:, Exercise 4-1 1280: 1264: 1262:, p. 4-56 1248: 1246:, Section 7.2. 1236: 1224: 1212: 1192: 1179: 1177: 1174: 1161: 1158: 1126: 1113: 1110: 1086: 1076: 1073: 1069:extended ASCII 1043: 1025: 1022: 999: 976: 956: 953: 930: 876: 873: 857: 854: 800: 783: 780: 758:Note that the 752: 720: 683: 680: 671: 665: 662: 633: 627: 624: 623: 622: 618: 599:point plotting 587: 584: 556: 527: 524: 493: 456: 453: 423: 422:Answer judging 420: 414: 411: 399: 398: 395: 388: 374: 349: 346: 336:. The phrase 293: 290: 282:Bugs and Drugs 245: 244: 229: 228: 224: 223: 219: 218: 211: 210: 207: 201: 200: 190: 186: 185: 179: 173: 172: 169: 163: 162: 152: 139: 138: 53: 51: 44: 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 1962: 1951: 1948: 1946: 1943: 1942: 1940: 1927: 1922: 1918: 1913: 1909: 1905: 1901: 1896: 1895: 1890: 1883: 1878: 1872: 1871: 1865: 1854: 1847: 1842: 1831: 1827: 1822: 1818: 1814: 1813: 1807: 1804: 1800: 1793: 1792: 1786: 1783: 1782: 1777: 1773: 1769: 1765: 1761: 1757: 1753: 1749: 1746:(6): 354–60. 1745: 1741: 1740: 1734: 1731: 1727: 1720: 1719: 1713: 1710: 1706: 1702: 1697: 1694: 1690: 1683: 1682: 1677: 1670: 1669: 1664: 1663: 1658: 1651: 1646: 1643: 1639: 1634: 1631: 1627: 1621: 1618: 1615:, p. C3. 1614: 1609: 1606: 1602: 1601:Sherwood 1974 1596: 1593: 1589: 1583: 1580: 1576: 1575:Sherwood 1974 1571: 1568: 1565:, p. 15. 1564: 1559: 1556: 1552: 1551:Sherwood 1974 1546: 1543: 1539: 1538:Sherwood 1974 1533: 1530: 1526: 1524: 1517: 1514: 1510: 1509:Sherwood 1974 1504: 1501: 1497: 1496:Sherwood 1974 1492: 1489: 1485: 1484:Sherwood 1974 1480: 1477: 1473: 1468: 1465: 1461: 1460:Sherwood 1974 1456: 1453: 1450:, p. C5. 1449: 1444: 1441: 1437: 1436:Sherwood 1974 1431: 1428: 1424: 1418: 1415: 1411: 1405: 1402: 1398: 1397:Sherwood 1974 1392: 1389: 1385: 1384:Sherwood 1974 1380: 1377: 1373: 1372:Sherwood 1974 1367: 1364: 1360: 1359:Sherwood 1974 1355: 1352: 1348: 1343: 1340: 1337:, p. 21. 1336: 1334: 1328: 1325: 1321: 1319: 1312: 1309: 1305: 1300: 1297: 1293: 1291: 1284: 1281: 1277: 1275: 1268: 1265: 1261: 1259: 1252: 1249: 1245: 1240: 1237: 1233: 1232:Sherwood 2000 1228: 1225: 1221: 1216: 1213: 1202: 1196: 1193: 1189: 1188:Sherwood 1974 1184: 1181: 1175: 1173: 1170: 1166: 1159: 1157: 1143: 1124: 1118: 1111: 1109: 1103: 1094: 1084: 1082: 1074: 1072: 1070: 1066: 1062: 1058: 1050: 1041: 1023: 1021: 1013: 1007: 997: 994: 992: 974: 972: 966: 954: 952: 928: 921: 897: 874: 872: 870: 865: 863: 862:common blocks 855: 853: 829: 822: 799: 797: 793: 789: 781: 779: 777: 750: 748: 735: 730:arrow in the 729: 718: 715: 713: 709: 689: 681: 679: 669: 663: 661: 658: 651: 631: 625: 619: 615: 614: 613: 612: 607: 604: 600: 596: 593: 585: 583: 577: 573: 563: 554: 551: 541: 537: 533: 525: 523: 521: 516: 512: 507: 500: 491: 480: 462: 454: 452: 446:command. The 429: 428:judging block 421: 419: 412: 410: 408: 407:judging block 396: 389: 386: 382: 381: 380: 372: 369: 359: 355: 347: 345: 343: 339: 335: 331: 327: 323: 316: 311: 309: 303: 299: 291: 289: 287: 283: 279: 275: 271: 267: 263: 259: 255: 251: 242: 238: 234: 230: 225: 220: 217: 212: 208: 206: 202: 191: 187: 184: 180: 178: 174: 170: 168: 164: 160: 156: 153: 151: 147: 135: 132: 124: 113: 110: 106: 103: 99: 96: 92: 89: 85: 82: –  81: 77: 76:Find sources: 70: 64: 63: 59: 54:This article 52: 48: 43: 42: 37: 33: 19: 1907: 1903: 1881: 1869: 1856:. Retrieved 1852: 1833:. Retrieved 1829: 1811: 1790: 1780: 1743: 1737: 1717: 1700: 1680: 1667: 1645: 1633: 1628:, p. C2 1620: 1608: 1595: 1590:, p. 14 1582: 1570: 1558: 1545: 1532: 1527:, p. 17 1522: 1516: 1503: 1491: 1479: 1467: 1455: 1443: 1430: 1425:, p. S6 1417: 1412:, p. S5 1404: 1391: 1379: 1366: 1354: 1342: 1332: 1327: 1317: 1311: 1299: 1289: 1283: 1273: 1267: 1257: 1251: 1239: 1227: 1215: 1204:. Retrieved 1195: 1190:, p. 4. 1183: 1171: 1167: 1163: 1131: 1115: 1090: 1078: 1061:display code 1048: 1047: 1027: 1014: 1003: 995: 986: 980: 971:preprocessor 958: 934: 922: 898: 878: 866: 861: 859: 830: 823: 818:3.4+5(2-3)/2 803: 785: 757: 736: 725: 716: 685: 676: 667: 659: 652: 637: 629: 608: 589: 564: 560: 552: 529: 520:exclusive or 508: 501: 497: 481: 458: 427: 425: 416: 406: 400: 384: 378: 370: 353: 351: 341: 337: 333: 328: 324: 314: 313:The article 312: 307: 302:PLATO system 295: 285: 281: 270:Paul Tenczar 262:PLATO system 253: 249: 248: 127: 118: 108: 101: 94: 87: 75: 55: 1638:Sinder 2018 1347:Stifle 1974 1278:, p. 5 1006:scope rules 747:while loops 708:indentation 511:bit vectors 272:for use in 1939:Categories 1910:(2): 3–10. 1659:References 1650:Sinder n.d 1626:Avner 1981 1613:Avner 1981 1588:Avner 1975 1563:Avner 1975 1472:Jones 1976 1448:Avner 1975 1423:Avner 1981 1410:Avner 1981 1244:Jones 1976 1206:2020-06-06 1079:A general 959:The Tutor 814:(4+7)(3+6) 728:assignment 368:commands. 338:TUTOR file 276:(CAI) and 227:Influenced 159:procedural 155:imperative 121:April 2010 91:newspapers 58:references 1760:1540-4781 1176:Citations 177:Developer 1803:ED124149 1778:(1976), 1730:ED208879 1709:ED124130 1693:ED078665 916:through 908:through 892:through 884:through 869:CDC 6600 768:continue 572:iterator 440:endarrow 340:or even 150:Paradigm 1053:segment 983:mynames 968:#define 925:storage 788:FORTRAN 764:outloop 743:endloop 264:at the 256:, is a 233:TenCORE 194: ( 105:scholar 80:"TUTOR" 1853:cyber1 1830:cyber1 1801:  1768:324788 1766:  1758:  1728:  1707:  1691:  1150:define 1138:define 1057:Pascal 1034:search 989:define 961:define 949:nc1075 945:nc1001 941:nc1000 918:vc1500 910:nc1500 901:common 846:x<y 806:× 760:reloop 712:Python 700:elseif 655:circle 544:answer 484:answer 473:answer 465:answer 214:Major 107:  100:  93:  86:  78:  1874:(PDF) 1858:4 May 1849:(PDF) 1835:4 May 1817:Email 1795:(PDF) 1764:JSTOR 1722:(PDF) 1685:(PDF) 1672:(PDF) 1624:From 1599:From 1586:From 1549:From 1520:From 1507:From 1434:From 1421:From 1408:From 1395:From 1370:From 1315:From 1287:From 1271:From 1154:lvars 1142:scope 1121:lvars 1065:ASCII 772:break 726:(The 696:endif 617:3264. 592:pixel 576:cases 548:wrong 536:cases 504:specs 488:wrong 477:wrong 469:wrong 448:arrow 436:arrow 432:arrow 403:arrow 392:write 358:COBOL 354:units 320:WRUSS 250:TUTOR 144:TUTOR 112:JSTOR 98:books 32:Tutor 1860:2024 1837:2024 1799:ERIC 1756:ISSN 1726:ERIC 1705:ERIC 1689:ERIC 1525:1973 1335:1973 1320:1973 1292:1973 1276:1973 1260:1981 1146:n150 1134:unit 1097:unit 1067:and 1038:move 1030:pack 894:v150 886:n150 848:and 839:and 816:and 808:and 794:for 770:and 762:and 739:loop 732:calc 704:else 702:and 648:draw 644:skip 640:draw 567:join 565:The 486:and 467:and 444:unit 366:join 209:none 196:1969 192:1969 84:news 1748:doi 947:to 939:to 937:nc1 914:vc1 906:nc1 850:x≥y 833:x=y 603:CRT 546:or 442:or 385:tag 364:or 286:BND 237:USE 60:to 1941:: 1908:12 1906:. 1902:. 1851:. 1828:. 1762:. 1754:. 1744:56 1742:. 1106:do 890:v1 882:n1 826:πr 741:, 694:, 692:if 580:do 438:, 426:A 362:do 235:, 71:. 1862:. 1839:. 1815:( 1770:. 1750:: 1652:. 1640:. 1474:. 1349:. 1306:. 1234:. 1222:. 1209:. 1010:a 965:C 841:y 837:x 810:÷ 776:C 284:( 243:) 239:( 198:) 161:) 157:( 134:) 128:( 123:) 119:( 109:· 102:· 95:· 88:· 65:. 38:. 20:)

Index

TUTOR (programming language)
Tutor
Tutor (disambiguation)

references
primary sources
secondary or tertiary sources
"TUTOR"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Paradigm
imperative
procedural
Designed by
Developer
University of Illinois at Urbana-Champaign
Typing discipline
implementations
TenCORE
USE
Regency Systems
programming language
PLATO system
University of Illinois at Urbana-Champaign
Paul Tenczar
computer assisted instruction

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.