Конгресс конференций
"Информационные технологии в образовании"
Большой Московский семинар по методике раннего обучения информатике
("ИТО-РОИ")
http://ito.edu.ru/sp
СБОРНИК ТРУДОВ
ПРОГРАММНЫЕ ИСПОЛНИТЕЛИ В СИСТЕМЕ КУМИР
Леонов Александр Георгиевич
генеральный директор предприятия ИнфоМир, зав.сектором Научно-исследовательского института системных исследований (НИИСИ РАН), к.ф.-м.н.

Возможности процедурных языков программирования традиционно расширяются за счет встроенных функций, внешних библиотек, пакетов программ и наборами классов различной функциональности.
В школьном языке программирования КуМир также имеются стандартные (de facto) встроенные функции: sin, cos, etc. Кроме того, чтобы покрыть класс задач учебника А.Г.Кушниренко, Г.В.Лебедев, Я.Н.Зайдельман «Информатика. 7-9 клас-сы» в Кумире использовались программные исполнители Робот и Чертежник.
Не останавливаясь здесь на технологии построения новых исполнителей в си-стеме КуМир, аналогичных Роботу и Чертежнику, укажем лишь, что интегрирование подобных исполнителей в систему КуМир сильно перегружает учащегося (и педа-гога) информацией о предписаниях (методах) исполнителей, которые видит ученик в окне справки. Таким образом, было принято решение относительно встроенных программных исполнителей системы КуМир расширить язык Кумир строкой
подключить <имя исполнителя>
Встроенные исполнители, такие как Робот, Чертежник, Файлы, сейчас жестко привязаны к системе Кумир, их номенклатура определена заранее и пользователь может только активировать/дезактивировать этих исполнителей, но не может к эксплуатируемой системе Кумир добавить новый встроенный исполнитель.
К_У_МИР это Комплект Учебных МИРов и этих миров довольно много: Двуног, Вездеход, Строитель, Редактор. То есть со временем номенклатура встроенных исполнителей будет расти, но это, не приведет к усложнению интерфейса. Каждый из встроенных исполнителей, скажем с именем И, можно будет подключить либо явно на уровне одной программы, добавив строчку
подключить И
в начало программы, либо неявно, на некоторый период времени, включив такую строчку в параметры Кумира, в раздел строчек, добавляемых в начало каждой программы при загрузке программы. Последнее действие – изменение параметров Кумира – может быть проделано расстановкой галочек в списке исполнителей, встроенных в систему Кумир, при этом в параметрах Кумира меняется и список строк, добавляемых в начало программы и наоборот. Путем «расстановки галочек» мы управляем только исполнителями, встроенными в код Кумира, но не исполни-телями, реализованными на языке Кумир, и подгружаемыми из файлов.
При этом встроенные исполнители в систему КуМир являются внешними по отношению к системе КуМир, упрощенно те исполнители, чей текст-код никаким спо-собам не могут увидеть учащиеся и учителя.
Такими же внешними исполнителями являются и Загружаемые исполнители. Он реализуется на языке Кумир, размещается в отдельном файле и для использования действительно загружается из файла. «Внешность» такого исполнителя заключается в том, что при редактировании мы не видим его текста, а при выполнении мы счита-ем выполнение каждого алгоритма за 1 шаг. Никакого способа забраться внутрь внешнего исполнителя изнутри КуМира нет. Если надо залезть в загружаемый внеш-ний исполнитель – требуется открыть файл с исполнителем, например, средствами ОС.
Отдельного рассмотрения заслуживает механизм генерации в КуМире информа-ции об интерфейсе внешнего исполнителя, которая появляется в окне справки:
Тем самым, если есть строки дано-надо или комментарии выше нач, то все они попадут в доступную on-line информацию об интерфейсе данного алгоритма.
Для загружаемых исполнителей кроме типа аргументов и результатов каждого алгоритма в справочную информацию попадут еще и имена формальных парамет-ров, то есть возникнет некоторая избыточность. Но эта избыточность методологи-чески оправдана и пойдет на пользу. Сравним
запомнить (вещ, вещ, цел) и
алг запомнить (вещ х, вещ у, цел ключ)
Информацию по встроенным исполнителям дана в избыточной форме, с «инфо-рмативными» (т.е. самокомментируемыми) именами аргументов и результатов алго-ритмов.
Внутренними программные исполнители сможет создавать и ученик – это просто программно реализованные на языке Кумир исполнители с помощью конструкции исп – кон-исп, находящиеся в том же файле, что и основной алгоритм. «Вну-тренность» такого исполнителя заключается в том, что он доступен для редакти-рования средствами системы КуМир, мы видим его текст и при выполнении считаем выполнение каждой команды алгоритма за 1 шаг.
Кроме того, аппарат программных исполнителей можно использовать для созда-ния обстановки, задания данных, а также, например, для проверки правильности программы ученика.
Так в КуМире имеется встроенный исполнитель, с фиксированными набором предписаний-программ: одна из которых исполняется перед выполнением програм-мы ученика, а другая, после ее окончания. Таким образом, педагог может задать раз-личные данные для групп учащихся или для индивидуально для каждого ученика, при этом обучающийся не только не сможет изменить заданные данные, но и даже увидеть их. Чтобы эффективно использовать время урока, по окончанию выпол-нения программы, можно автоматически проверить результат работы ученика, если написать на КуМире программу проверки и добавить ее к заданию. В предыдущем поколении системы КуМир эта функциональность инициировалась учеником по на-жатию Ctrl+T – (тест, проверка). В настоящей версии такая проверка может про-ходить автоматически по окончанию выполнения программы. При этом для верифи-кации результатов работы ученика можно использовать все функциональное богат-ство системы КуМир, создав программу проверки, непосредственно в задании или, например, переслать результаты работы ученика, включая программу и результаты, по сети учителю или внешней системе для оценки.
Такое расширение возможностей учебной системы КуМир получено благодаря объектному (исполнительскому) подходу к организации самой системы.
В прошлом хорошо зарекомендовали себя учебные гипертексты КуМир, кото-рые, правда, использовали собственный язык разметки (в связи с отсутствием в то время HTML) и определенные функции системы для создания демонстраций. В настоящей версии задания можно создавать на языке разметки HTML, а сама учеб-ная среда предоставляет учителю всю полноту своих возможностей: КуМир по сути сам является исполнителем, с набором команд-предписаний, которые предо-став-ляют набор функциональности, которые доступны и человеку при работе с ней. То есть, для создания примеров, уроков, задач и последующей проверки их, можно про-граммно управлять КуМир-системой из КуМир-программы, так же эффективно, как будто учитель расположен за экраном и делает это, используя клавиатуру и мышь. Чтобы богатые возможности системы не были одинаково доступны ученикам и учителю, в системе введен аппарат маскирования предписаний, зоны видимости и модифицируемости.
Учителю требуется возможность не только создавать демонстрационные при-меры, но и встраивать в задание части текста программ, которые не только не до-ступные для модификации обучаемому, но и невидимы, например, когда нужно со-средоточить внимание на определенном алгоритме, опустив некоторые промежу-точные операции или вычисления. Для достижения максимальной эффективности процесса обучения, в задание можно также встраивать видимые части алгоритма, созданные учителем, также не доступные для модификации ученику. При этом уче-ник дописывает недостающую часть алгоритма, видя перед собой правильно офор-мленную часть этой программы.