ПРОГРАММНЫЕ ИСПОЛНИТЕЛИ В СИСТЕМЕ КУМИР

Леонов Александр Георгиевич

генеральный директор предприятия ИнфоМир,  зав.сектором Научно-исследовательского института системных исследований (НИИСИ РАН), к.ф.-м.н.

Возможности процедурных языков программирования традиционно расширяются за счет встроенных функций, внешних библиотек, пакетов программ и наборами классов  различной функциональности.

В школьном языке программирования КуМир также имеются стандартные (de facto) встроенные функции: sin, cos, etc. Кроме того, чтобы покрыть класс задач учебника А.Г.Кушниренко, Г.В.Лебедев, Я.Н.Зайдельман «Информатика. 7-9 клас-сы» в Кумире использовались программные исполнители Робот и Чертежник.

Не останавливаясь здесь на технологии построения новых исполнителей в си-стеме КуМир, аналогичных Роботу и Чертежнику, укажем лишь, что интегрирование подобных исполнителей в систему КуМир сильно перегружает учащегося (и педа-гога) информацией о предписаниях (методах) исполнителей, которые видит ученик в окне справки. Таким образом, было принято решение относительно встроенных программных исполнителей системы КуМир расширить язык  Кумир строкой

подключить <имя исполнителя>

Встроенные исполнители, такие как Робот, Чертежник, Файлы, сейчас жестко привязаны к системе Кумир, их номенклатура определена заранее и пользователь может только активировать/дезактивировать этих исполнителей, но не может к эксплуатируемой системе Кумир добавить новый встроенный исполнитель. 

К_У_МИР это Комплект Учебных МИРов и этих миров довольно много: Двуног, Вездеход, Строитель, Редактор. То есть со временем номенклатура встроенных исполнителей будет расти, но это, не приведет к усложнению интерфейса. Каждый из встроенных исполнителей, скажем с именем И, можно будет подключить либо явно на уровне одной программы, добавив строчку

подключить И

в начало программы, либо неявно, на некоторый период времени, включив такую строчку в параметры Кумира, в раздел строчек, добавляемых в начало каждой программы при загрузке программы. Последнее действие – изменение параметров Кумира – может быть проделано расстановкой галочек  в списке исполнителей, встроенных в систему Кумир, при этом в параметрах Кумира меняется  и список строк, добавляемых в начало программы и наоборот. Путем «расстановки галочек» мы управляем только исполнителями, встроенными в код Кумира, но не исполни-телями, реализованными на языке Кумир, и подгружаемыми из файлов.

При этом встроенные исполнители в систему КуМир являются внешними по отношению к системе КуМир, упрощенно те исполнители, чей текст-код никаким спо-собам не могут увидеть учащиеся и  учителя.

Такими же внешними исполнителями являются и Загружаемые  исполнители. Он реализуется на языке Кумир, размещается в отдельном файле и для использования действительно загружается из файла. «Внешность» такого исполнителя заключается в том, что при редактировании мы не видим его текста, а при выполнении мы счита-ем выполнение каждого алгоритма за 1 шаг. Никакого способа забраться внутрь внешнего исполнителя изнутри КуМира нет. Если надо залезть в загружаемый внеш-ний исполнитель – требуется открыть файл с исполнителем, например, средствами ОС.

Отдельного рассмотрения заслуживает механизм генерации в КуМире информа-ции об интерфейсе внешнего исполнителя, которая появляется в окне справки:

Тем самым, если есть строки дано-надо или комментарии выше нач, то все они попадут в доступную on-line информацию об интерфейсе данного алгоритма.

Для загружаемых исполнителей кроме типа аргументов и результатов каждого алгоритма в справочную информацию попадут еще и имена формальных парамет-ров, то есть возникнет некоторая избыточность. Но эта избыточность методологи-чески оправдана и пойдет на пользу. Сравним

запомнить (вещ, вещ, цел) и

алг запомнить (вещ х, вещ у, цел ключ)

Информацию по встроенным исполнителям дана в избыточной форме, с «инфо-рмативными» (т.е. самокомментируемыми) именами аргументов и результатов алго-ритмов.

Внутренними программные исполнители сможет создавать и ученик – это просто программно реализованные на языке Кумир исполнители с помощью конструкции испкон-исп, находящиеся в том же файле, что и основной алгоритм. «Вну-тренность» такого исполнителя заключается в том, что он доступен для редакти-рования средствами системы КуМир, мы видим его текст и при выполнении считаем выполнение каждой команды  алгоритма за 1 шаг.

Кроме того, аппарат программных исполнителей можно использовать для созда-ния обстановки, задания данных, а также, например, для проверки правильности программы ученика.

Так в КуМире имеется встроенный исполнитель, с фиксированными набором предписаний-программ: одна из которых исполняется перед выполнением програм-мы ученика, а другая, после ее окончания. Таким образом, педагог может задать раз-личные данные для групп учащихся или для индивидуально для каждого ученика, при этом обучающийся не только не сможет изменить заданные данные, но и даже увидеть их. Чтобы эффективно использовать время урока, по окончанию выпол-нения программы, можно автоматически проверить результат работы ученика, если написать на КуМире программу проверки и добавить ее к заданию. В предыдущем поколении системы КуМир эта функциональность инициировалась учеником по на-жатию Ctrl+T – (тест, проверка). В настоящей версии такая проверка может про-ходить автоматически по окончанию выполнения программы. При этом для верифи-кации результатов работы ученика можно использовать все функциональное богат-ство системы КуМир, создав программу проверки, непосредственно в задании или, например, переслать результаты работы ученика, включая программу и результаты, по сети учителю или внешней системе для оценки.

Такое расширение возможностей учебной системы КуМир получено благодаря объектному (исполнительскому) подходу к организации самой системы.

В прошлом хорошо зарекомендовали себя учебные гипертексты КуМир, кото-рые, правда, использовали собственный язык разметки (в связи с отсутствием в то время HTML) и определенные функции системы для создания демонстраций. В настоящей версии задания можно создавать на языке разметки HTML, а сама учеб-ная среда предоставляет учителю всю полноту своих возможностей: КуМир по сути сам является исполнителем, с набором команд-предписаний, которые предо-став-ляют набор функциональности, которые доступны и человеку при работе с ней. То есть, для создания примеров, уроков, задач и последующей проверки их, можно про-граммно управлять КуМир-системой из КуМир-программы, так же эффективно, как будто учитель расположен за экраном и делает это, используя клавиатуру и мышь. Чтобы богатые возможности системы не были одинаково доступны ученикам и учителю, в системе введен аппарат маскирования предписаний, зоны видимости и модифицируемости.

Учителю требуется возможность не только создавать демонстрационные при-меры, но и встраивать в задание части текста программ, которые не только не до-ступные для модификации обучаемому, но и невидимы, например, когда нужно со-средоточить внимание на определенном алгоритме, опустив некоторые промежу-точные операции или вычисления. Для достижения максимальной эффективности процесса обучения, в задание можно также встраивать видимые части алгоритма, созданные учителем, также не доступные для модификации ученику. При этом уче-ник дописывает недостающую часть алгоритма, видя перед собой правильно офор-мленную часть этой программы.