РЕпетитор
Парадигма | императивный ( процессуальный ) |
---|---|
Разработано | Пол Тензар и Ричард Бломм [1] |
Разработчик | Пол Тензар и Университет Иллинойса в Урбана-Шампейн |
Впервые появился | 1969 |
Дисциплина набора текста | никто |
Основные реализации | |
РЕпетитор, Микро-репетитор | |
Под влиянием | |
TenCORE , USE ( Regency Systems ) |
TUTOR , также известный как PLATO Author Language , — это язык программирования , разработанный для использования в системе PLATO в Университете Иллинойса в Урбана-Шампейн примерно в 1965 году. Первоначально TUTOR был разработан Полом Тенчаром для использования в компьютерном обучении (CAI). и инструкции, управляемые компьютером (CMI) (в компьютерных программах, называемых «уроками»), и имеет множество функций для этой цели. Например, TUTOR имеет мощные команды для анализа и оценки ответов, графику и функции, упрощающие работу преподавателей и статистические данные учащихся. Гибкость TUTOR в сочетании с вычислительной мощностью PLATO (работавшей на том, что в 1972 году считалось суперкомпьютером) также сделала его подходящим для создания игр, включая авиасимуляторы, военные игры, многопользовательские ролевые игры в стиле подземелий, карточные игры, словесные игры. игры и игры по медицинским урокам, такие как «Ошибки и лекарства» ( BND ). TUTOR существует и сегодня как язык программирования для системы Cyber1 PLATO. [2] который использует большую часть исходного кода PLATO 1980-х годов и по состоянию на июнь 2020 года имеет около 5000 пользователей.
Истоки и развитие
[ редактировать ]TUTOR изначально разрабатывался как авторский язык специального назначения для разработки учебных уроков, и его эволюция в язык программирования общего назначения была незапланированной. Название TUTOR впервые было применено к авторскому языку системы PLATO в последние дни Платона III. Первая документация языка под этим названием, по-видимому, была Авнер, Ричард Аллен; Тенчар, Пол (январь 1969 г.), Руководство для наставника. Отчет CERL X-4
Статья Обучение переводу русского языка с помощью компьютера [3] дает снимок TUTOR, сделанный незадолго до того, как PLATO IV был введен в эксплуатацию. Присутствовали основные элементы языка, но команды вводились в верхнем регистре, и вместо использования общего механизма поддержка альтернативных наборов символов осуществлялась через специальные имена команд, такие как WRUSS
за «писать, используя русскую кодировку».
В 1970-х годах разработчики TUTOR воспользовались тем фактом, что весь корпус программ TUTOR хранился в режиме онлайн в одной и той же компьютерной системе. Всякий раз, когда они чувствовали необходимость изменить язык, они запускали программное обеспечение для преобразования корпуса кода TUTOR, чтобы пересмотреть весь существующий код, чтобы он соответствовал внесенным ими изменениям. [4] В результате после разработки новых версий TUTOR поддерживать совместимость с версией PLATO может быть очень сложно. [5]
Корпорация Control Data (CDC) к 1981 году практически удалила название TUTOR из своей документации PLATO. Сам язык они называли авторским языком PLATO . Однако фраза « файл TUTOR» или даже «файл урока TUTOR» сохранилась как название типа файла, используемого для хранения текста, написанного на авторском языке PLATO. [6]
Структура репетиторского занятия
[ редактировать ]Урок TUTOR состоит из последовательности модулей , каждый из которых начинается с представления информации, а переход от одного модуля к другому зависит от правильного ответа на один или несколько вопросов. Как и в параграфах COBOL , элемент управления может войти в модуль TUTOR из предыдущего модуля и выйти в следующий, но модули также можно вызывать как подпрограммы с использованием do
или join
команды.
Вот пример единицы: [7]
unit math
at 205
write Answer these problems
3 + 3 =
4 × 3 =
arrow 413
answer 6
arrow 613
answer 12
Из этого примера должно быть сразу понятно несколько вещей.
- Во-первых, TUTOR — это язык фиксированного формата. Каждая строка начинается с имени команды, которое должно помещаться в фиксированное 8-значное поле. Аргументы этой команды ( тег ) начинаются с 9-го символа. Хотя для перехода к 9-му столбцу использовалась клавиша табуляции, она создавала пробелы, поскольку в PLATO не было символа табуляции.
- В некоторых случаях, таких как
write
приведенной выше команды, тег может состоять из нескольких строк. Строки продолжения либо пусты, либо имеют начальный табулятор. - Координаты экрана представлены в виде отдельных чисел, поэтому 205 относится к строке 2 столбца 5, а 413 относится к строке 4 столбца 13.
Что может быть неочевидно, так это структура управления, заложенная в этом блоке. arrow
Команда отмечает вход в судейский блок. Эта структура управления является одной из уникальных особенностей TUTOR.
Уникальные возможности
[ редактировать ]TUTOR содержал ряд уникальных функций. Следующий список не заменяет руководство TUTOR, а просто выделяет наиболее интересные, инновационные, а иногда и запутанные особенности языка.
Ответить, оценивая
[ редактировать ]Судейский блок в TUTOR — это структура управления, которая начинается с arrow
команда и заканчивается следующей arrow
, endarrow
или unit
команда. arrow
Команда также запрашивает ввод, при этом специальный символ стрелки (напоминающий «▷») отображается в виде подсказки в указанных координатах экрана. По сути, блок оценки можно рассматривать как структуру управления возвратом, в которой учащийся может делать несколько попыток ответить на вопрос, пока правильный ответ не позволит продвинуться вперед.
Оценка соответствия шаблону
[ редактировать ]Каждый блок оценки состоит из последовательности команд сопоставления с образцом , каждая из которых представляет (возможно, пустой) блок команд, которые должны быть выполнены, если этот шаблон соответствует. Двумя наиболее распространенными командами сопоставления с образцом были answer
и wrong
. Они имели идентичную семантику сопоставления с образцом, за исключением того, что answer
считал ответ ученика правильным, если он совпадал, в то время как wrong
посчитал ответ ученика неверным.
Поля тегов на answer
и wrong
команды состояли из списков необязательных, обязательных и альтернативных слов. рассмотрим этот пример: [8]
answer <it, is,a, it's, figure,
polygon>
(right, rt) (triangle, triangular)
Это будет соответствовать таким ответам, как «это прямоугольный треугольник», «это треугольная фигура» или просто «rt треугольник». Оно не будет соответствовать слову «вроде треугольника», поскольку слова «вроде как» не указаны как игнорируемые, и оно не будет соответствовать слову «треугольник, верно?» потому что заказ неправильный.
Подсистема сопоставления шаблонов распознала орфографические ошибки, поэтому слова «triangel» или «triangl» будут соответствовать образцу примера. Автор урока может использовать specs
команда, чтобы указать, насколько педантично система относится к орфографическим ошибкам.
Алгоритмы сопоставления с образцом, используемые в различных реализациях TUTOR, различались в деталях, но обычно каждое слово во входном тексте и каждое слово в шаблоне преобразовывались в битовые векторы . Чтобы увидеть, соответствует ли слово, введенное учеником, слову шаблона, расстояние Хэмминга между двумя битовыми векторами использовалось как мера степени различия между словами. Битовые векторы обычно имели длину 60 или 64 бита и имели поля для присутствия буквы, наличия пары букв и первой буквы. В результате количество одного бита в исключительном или двух таких битовых векторах аппроксимировало степень фонетической разницы между соответствующими словами. [9]
Оценка структур управления
[ редактировать ]Все ранние презентации структуры управления судейским блоком TUTOR были запутанными. Однако, говоря современным языком, блок оценки можно описать как итеративную структуру управления , которая завершает работу, когда входные данные учащегося считаются правильными. Тело
Эта структура управления состоит из ряда случаев , каждый из которых вводится командой сопоставления с образцом, такой как answer
или wrong
. Весь вывод, выдаваемый телом цикла оценки в
предыдущий цикл удаляется с экрана перед началом следующего цикла.
Рассмотрим этот пример: [10]
wrong <it, is,a> square
at 1501
write A square has four
sides.
В случае, если учащийся вводит «квадрат» или «квадрат», ответ считается неправильным и появляется текст «У квадрата четыре стороны». выводится, начиная со строки 15 столбца 1 на экране. Этот вывод остается на экране до тех пор, пока студент не начнет входить. новый ответ, после чего он стирается, чтобы можно было вычислить ответ на новый ответ. Механизм возврата экрана дисплея в предыдущее состояние варьируется от реализации к реализации. Ранние реализации работали путем переключения терминала в режим стирания и повторного выполнения всего совпавшего случая. Некоторые более поздние реализации буферизировали выходные данные, полученные во время оценки, чтобы их можно было стереть.
The join
команда была уникальной формой вызова подпрограммы. Это было определено как эквивалент текстовой замены тела присоединяемого модуля вместо самой команды соединения. [11] Таким образом, объединенный блок может содержать часть судейского блока. Таким образом, хотя блок оценки концептуально представляет собой итератор, охватывающий серию случаев , этот блок может быть произвольно разбит на подпрограммы. (Альтернативный вызов подпрограммы, do
команда, соответствующая обычной семантике, связанной с вызовами подпрограмм в других языках программирования.)
Графические и отображающие команды
[ редактировать ]Студенческий терминал PLATO IV [12] размером 512 на 512 пикселей имел плазменную панель , с аппаратной поддержкой построения точек , рисования линий и отображения текста. Каждый пиксель на терминале PLATO IV был либо оранжевым, либо черным. В терминале CDC PLATO V использовался монохромный черно-белый ЭЛТ для имитации плазменной панели. Встроенный набор символов имел 4 набора по 63 символа, каждый размером 8 на 16 пикселей, половина из них была фиксированной, половина — программируемой. Язык Tutor обеспечил полную поддержку этого терминала.
Было две системы координат. [13]
- Грубые координаты задавались в виде строк и столбцов текста. Например, грубая координата 1501 была ссылкой на символ 1 строки 15, где верхний левый символ на экране находился в позиции 101, а нижний правый символ - в позиции 3264.
- Точные координаты задавались в виде координат X и Y относительно левого нижнего угла экрана. Точная координата 0,511 задавала верхний левый угол экрана, а 0,496 была эквивалентна грубой координате 101, что учитывало высоту символа в 16 пикселей и тот факт, что символы отображались относительно их нижнего левого угла.
Команды рисования
[ редактировать ]Следующий пример иллюстрирует некоторые команды рисования Tutor. [14]
draw 1812;1852;skip;1844;1544
circle 16,344,288
draw 1837;1537;1535;1633;1833
Обратите внимание на использование точек с запятой для разделения последовательных координат на draw
команда. Это позволяет однозначно использовать точные координаты, разделенные запятыми. Обычно команда рисования соединяет последовательные точки отрезками линий, но, помещая skip
в теге, draw
можно заставить команду концептуально поднять перо.
Теги на circle
Команда дает радиус и точные координаты центра. Дополнительные теги могут указывать начало и
конечные углы для частичных кругов.
Составление команд рисования вручную затруднено, поэтому к 1974 году в систему PLATO был включен редактор изображений для автоматизации этой работы. [15] Это могло касаться только команд рисования с постоянными координатами.
Команды рендеринга текста
[ редактировать ]В следующем примере показаны некоторые инструменты рендеринга текста Tutor. [16]
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
Текст, отображаемый с нулевым размером и вращением, использовал встроенное оборудование для рендеринга символов терминала PLATO, тогда как рендеринг с ненулевым размером и вращением выполнялся с помощью сегментов линий и, следовательно, значительно медленнее из-за скорости канала связи с терминалом.
Структуры управления
[ редактировать ] TUTOR Если не считать уникальных механизмов оценки ответов, первоначальный набор управляющих структур был довольно скудным. В середине 1970-х годов этот недостаток был устранен путем введения if
, endif
блоки с дополнительным elseif
и else
разделы. Семантика этих управляющих структур была рутинной, но синтаксис унаследовал обязательные отступы языка Tutor, предвосхищая синтаксис Python и добавляя уникальный непустой символ отступа, чтобы отличать отступы от строк продолжения.
Это проиллюстрировано в следующем примере: [17]
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
( Стрелка назначения в calc
оператор отображается неправильно в некоторых браузерах. Он похож на <=, но состоит из одного символа. На клавиатуре PLATO IV у него была специальная клавиша.)
Тот же синтаксис использовался для loop
, endloop
блоки с семантикой, сравнимой с циклами while в обычных языках программирования. Это проиллюстрировано в следующем примере [18]
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
Обратите внимание, что reloop
и outloop
команды чем-то аналогичны continue
и break
операторы языков, основанных на C , за исключением того, что они должны находиться на уровне отступов изменяемого ими цикла, и у них есть тег условия, который указывает, когда должна произойти указанная передача управления. Это делает конструкцию более мощной, чем в других языках, поскольку любая строка внутреннего цикла может завершить или повторно зациклить несколько внешних циклов одним оператором.
Синтаксис выражения
[ редактировать ]Синтаксис выражений TUTOR не был похож на синтаксис FORTRAN и не был ограничен плохо спроектированными наборами символов той эпохи. Например, набор символов PLATO IV включал управляющие символы для нижнего и верхнего индекса , и TUTOR использовал их для возведения в степень. Рассмотрим эту команду [19]
circle (412+72.62)1/2,100,200
Набор символов также включал традиционные символы умножения и деления. ×
и ÷
, но в более радикальном отходе от соглашений, установленных ФОРТРАНом, он допускал неявное умножение, поэтому выражения (4+7)(3+6)
и 3.4+5(23-3)/2
были действительными со значениями 99 и 15,9 соответственно (цит. выше). Эта функция считалась важной. Когда учащиеся вводили числовой ответ на вопрос, они могли использовать операторы и переменные, а также стандартные алгебраические обозначения, а программа использовала команду «вычислить» TUTOR для компиляции и запуска формулы и проверки ее числового эквивалента (или внутри заданных значений). ошибка округления с плавающей запятой) к правильному ответу.
Язык включал заранее определенную константу, названную греческой буквой пи (π) и имеющую соответствующее значение, которое можно было использовать в расчетах. Таким образом, выражение πr2
может использоваться для вычисления площади круга, используя встроенную константу π, неявное умножение и возведение в степень, обозначенные верхним индексом.
В TUTOR сравнение чисел с плавающей запятой x=y
определялось как истинное, если x
и y
были примерно равны. [20] Это упрощало жизнь математически наивным разработчикам учебных уроков, но иногда вызывало головную боль у разработчиков сложного численного кода, поскольку было возможно, что оба x<y
и x≥y
может быть правдой одновременно. [21]
Управление памятью
[ редактировать ]Как авторский язык, TUTOR начинался с минимальных ресурсов памяти и только самых грубых инструментов для управления ими. Каждый пользовательский процесс имел частный сегмент данных из 150 переменных, и к ним можно было присоединять общие общие блоки , что позволяло осуществлять взаимодействие между пользователями через общую память.
В системе PLATO IV слова имели длину 60 бит, что соответствовало CDC 6600 семейству компьютеров . В некоторых более поздних реализациях это значение было изменено на 64 бита. [22]
Основные ресурсы памяти
[ редактировать ]Частная область памяти каждого процесса состояла из 150 слов каждое, называемых переменными студента; значения этих переменных были постоянными и следовали за отдельным пользователем от сеанса к сеансу. Они были адресованы как n1
через n150
когда используется для хранения целочисленных значений или как v1
через v150
при использовании для хранения значений с плавающей запятой. [23]
Урок TUTOR может прикрепить одну область общей памяти объемом до 1500 слов, используя common
команда. Каждый урок может иметь безымянный временный общий блок, содержащий переменные, общие для всех пользователей этого урока. Такие блоки создавались, когда урок начинал использоваться, и удалялись, когда урок становился неактивным. Напротив, именованные общие блоки были связаны с блоком урока (файлом на диске). Общая память рассматривалась как nc1
через nc1500
(для целых чисел) или vc1
через vc1500
(для чисел с плавающей запятой). [24]
Если 150 переменных учащихся недостаточно, на уроке можно использовать
storage
команда для создания дополнительного сегмента частной памяти объемом до 1000 слов. Этот сегмент существовал только в пространстве подкачки, но его можно было сопоставить с переменными ученика или общими переменными. Например [25]
common 1000
storage 75
stoload vc1001,1,75
Этот пример определяет nc1
к nc1000
как общий безымянный общий блок, в то время как nc1001
к nc1075
являются частным хранилищем.
Определение символических имен
[ редактировать ]Репетитор define
команда была очень похожа на C #define
директива препроцессора . Это был единственный способ связать мнемонические имена с переменными. Программист должен был статически выделять память и присваивать имена переменным. Рассмотрим этот пример: [26]
define mynames
first=v1, second =v2
result=v3
Это создает набор определений с именем mynames
определение трех переменных с плавающей запятой. Пользователям было сообщено, что « на вашем уроке не должно быть никаких версий v3 или v26, кроме define
само заявление . Поместите все свои определения в самом начале урока, где у вас будет готовая ссылка на то, какие переменные вы используете». [27]
Функции могут быть определены с семантикой макроподстановки, как показано на этом рисунке: [28]
define cotan(a)=cos(a)/sin(a)
В отличие от C, исходные правила области действия TUTOR были чистым «определением перед использованием» без каких-либо положений для локальных определений. Таким образом, формальный параметр a
используемый выше, не должен иметь какого-либо предыдущего определения.
Позже в разработке TUTOR, с введением нескольких именованных наборов определений, программист получил явный контроль над тем, какие наборы определений действуют в данный момент. Например, define purge, setname
отбросит все определения в именованном наборе. [29]
Массивы, упакованные массивы и манипуляции с текстом
[ редактировать ]Оригинальные инструменты TUTOR для манипулирования текстом были основаны на командах для определенных текстовых операций, например, pack
поместить упакованную строку символов в последовательные переменные в памяти, search
для поиска одной строки внутри другой и move
для перемещения строки из памяти в память. [30] К 1975 году были добавлены более общие инструменты для массивов целых чисел и упакованных массивов. Например: [31]
define segment, name=starting var, num bits per byte, s
array, name(size)=starting var
array, name (num rows, num columns)=starting var
Сегментированные массивы , определяемые ключевым словом segment
были сравнимы с упакованными массивами в Паскале . Размер байта и то, следует ли рассматривать элементы массива как знаковые или беззнаковые, полностью контролировались пользователем. Произвольные манипуляции с текстом можно выполнить, установив размер байта равный машинному размеру байта: 6 бит в реализациях, использующих код отображения , 8 бит в некоторых более поздних ASCII и расширенных реализациях . Обратите внимание на отсутствие какой-либо спецификации размерности для сегментированных массивов.
Передача параметров
[ редактировать ]Общий механизм передачи параметров был добавлен в TUTOR в начале эпохи PLATO IV. Например: [32]
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
Обратите внимание, что формальные параметры, перечисленные в списке аргументов unit
Команда — это просто определенные имена для статически выделенных глобальных переменных. Семантика передачи параметров задавалась как эквивалентная присвоению в момент передачи управления целевому блоку, а если фактические параметры были опущены, как во втором do
приведенной выше команды, в результате предыдущие значения соответствующих формальных параметров остались неизменными.
Локальные переменные
[ редактировать ]Локальные переменные были добавлены в TUTOR примерно в 1980 году. Авторы уроков, желающие использовать локальные переменные, должны были использовать lvars
команда для объявления размера буфера, используемого для локальных переменных, до 128 слов. [33] Сделав это, модуль, использующий локальные переменные, может начинаться следующим образом: [34]
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
Линии продолжения unit
приведенная выше команда воспринимается как строки неявного define
команда с локальной областью действия . Традиционные определения в терминах переменных студента, таких как n150
можно использовать в таком локальном define
, но все показанные здесь формы автоматически привязывают имена к местам в блоке памяти, выделенном lvars
команда. В доступной документации TUTOR не обсуждается, как распределяются локальные переменные.
Другие реализации
[ редактировать ]Существует значительное семейство языков, связанных с TUTOR, каждый из которых похож на исходный язык TUTOR, но имеет различия. В частности, TUTOR был компонентом системы (компьютерной образовательной системы PLATO), которая работала на определенном аппаратном обеспечении мэйнфрейма CDC. Для повышения эффективности в TUTOR были некоторые элементы, специфичные для аппаратного обеспечения (например, переменные, которые представляли собой 60-битные слова, которые можно было использовать как массивы по 60 бит или как 10 шестибитных символов и т. д.). Кроме того, TUTOR был разработан до появления графического пользовательского интерфейса (GUI), ориентированного на Windows.
Язык microTutor был разработан в рамках проекта PLATO в UIUC, чтобы позволить выполнять части урока на терминалах, содержащих микрокомпьютеры, с подключением к коду TUTOR, работающему на мэйнфрейме. Диалект microTutor также был языком программирования системы Cluster, разработанной в UIUC и лицензированной для TDK в Японии; Кластерная система состояла из небольшой группы терминалов, подключенных к мини-компьютеру, который обеспечивал хранение и компиляцию. Tencore Language Authoring System — это производная версия TUTOR, разработанная Полом Тенчаром для ПК и продаваемая Computer Teaching Corporation. cT был производным от TUTOR и microTutor, разработанных в Карнеги-Меллоне, которые позволяли программам запускаться без изменений в оконных средах графического интерфейса в системах Windows, Mac и Unix/Linux.
Эмулятор терминала Pterm, разработанный Cyber1, поддерживает язык microTutor, начиная с версии 6. [35] [36]
Цитаты
[ редактировать ]- ^ Шервуд 1974 , с. 4.
- ^ «Компьютерная система Cyber1 PLATO» . Проверено 6 июня 2020 г.
- ^ Кертин и др. 1972 год .
- ^ Шервуд 2000 .
- ^ Джонс 1976 , раздел 7.2.
- ^ См., например, руководство пользователя PLATO 1981 г. , стр. 4-56
- ^ Из памятки пользователя TUTOR 1973 , с. 5
- ^ Из памятки пользователя TUTOR 1973 г. , упражнение 4-1.
- ^ Тензар и Голден 1972 .
- ^ Из памятки пользователя TUTOR 1973 г. , упражнение 4-1.
- ^ Памятка пользователя TUTOR 1973 , с. 21.
- ^ Задушить 1974 .
- ^ Шервуд 1974 , с. II-1.
- ^ Из Шервуда 1974 , с. II-11
- ^ Шервуд 1974 , с. II-9.
- ^ Из Шервуда 1974 , с. II-3
- ^ Из Авнера 1981 , S5.
- ^ Из Авнера 1981 , с. S6
- ^ Из Шервуда 1974 , с. IV-1
- ^ Авнер 1975 , стр. C5.
- ^ Шервуд 1974 , с. IX-3.
- ^ Джонс 1976 .
- ^ Шервуд 1974 , стр. IV-2, IX-17.
- ^ Шервуд 1974 , стр. от X-1 до X-3 и X-6.
- ^ Из Шервуда 1974 , с. Х-11
- ^ Из памятки пользователя TUTOR 1973 , с. 17
- ^ Подчеркивание из оригинала, Шервуд 1974 , с. ИВ-5
- ^ Из Шервуда 1974 , с. IX-2
- ^ Авнер 1975 , стр. 15.
- ^ Шервуд 1974 , стр. с VII-52 по VII-55.
- ^ Из Авнера 1975 , стр. 14.
- ^ Из Шервуда 1974 , с. ИВ-10
- ^ Авнер 1981 , стр. C3.
- ^ Из Авнера 1981 , стр. C2.
- ^ Синдер 2018 .
- ^ Синдер без даты.
Ссылки
[ редактировать ]- Руководство пользователя PLATO (PDF) , Control Data Corporation, апрель 1981 г.
- Памятка для пользователя TUTOR: Введение в TUTOR (PDF) , Урбана, Иллинойс: Исследовательская лаборатория компьютерного образования, Университет Иллинойса, март 1973 г., ЭРИК ED078665
- Авнер, Элейн (ноябрь 1975 г.), Памятка для пользователя PLATO, номер один: Краткое изложение команд TUTOR и системных переменных (3-е изд.), Урбана, Иллинойс: Публикации PLATO / Исследовательская лаборатория компьютерного образования, Университет Иллинойса, ЭРИК ED124130
- Авнер, Элейн (август 1981 г.), Краткое описание команд и системных переменных TUTOR (PDF) (10-е изд.), Урбана, Иллинойс: Исследовательская лаборатория компьютерного образования, Университет Иллинойса, ЭРИК ED208879
- Кертин, Констанс; Клейтон, Дуглас; Финч, Шерил; Мур, Дэвид; Вудрафф, Лоис (1972). «Обучение переводу русского языка с помощью компьютера». Журнал современного языка . 56 (6): 354–60. дои : 10.2307/324788 . ISSN 1540-4781 . JSTOR 324788 .
- Джонс, Дуглас В. (1976), Поддержка языка TUTOR во время выполнения в небольшой компьютерной системе
- Шервуд, Брюс Арне (июнь 1974 г.), Язык TUTOR (PDF) , Урбана, Иллинойс: Публикации PLATO / Исследовательская лаборатория компьютерного образования, Университет Иллинойса, ЭРИК ED124149
- Шервуд, Брюс Арне (9 апреля 2000 г.), Прогресс вперед с полной обратной совместимостью ( электронная почта ), список рассылки Python IDLE-dev
- Синдер, Дейл (nd). «Примечания к выпуску Pterm v6» . кибер1 . Проверено 4 мая 2024 г.
- Синдер, Дейл (26 марта 2018 г.). «MicroTUTOR с Pterm: Краткое руководство пользователя» (PDF) . кибер1 . Проверено 4 мая 2024 г.
- Стифл, Джек (ноябрь 1974 г.), Студенческий терминал Платона IV (PDF)
- Тенчар, Пол; Голден (1972), Орфография, распознавание слов и понятий , Исследовательская лаборатория компьютерного образования, Университет Иллинойса в Урбане, Отчет X-35
Дальнейшее чтение
[ редактировать ]- Дененберг, Стюарт А. (апрель 1978 г.). «Личная оценка системы ПЛАТО» . ACM SIGCUE Перспективы . 12 (2): 3–10.
- Шервуд, Брюс (1977). «Репетитор по языку» . Образовательная компания Control Data.
- Андерсен, Дэвид; Шервуд, Брюс; Шервуд, Джудит; Уитли, Кевин. «Язык программирования cT (на основе TUTOR)» . Центр проектирования образовательных вычислений при Университете Карнеги-Меллон. (больше не поддерживается с 2002 г.).