Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №6/2009


Предлагаю коллегам

КуМир вернулся!

Более 20 лет назад авторам данной статьи посчастливилось принять участие в разработке, реализации и внедрении учебной программной системы КуМир, которая оказалась весьма успешной и в свое время получила широкое распространение. В этой статье мы попытались разобраться, почему эта система оказалась успешной, а также объяснить читателям, почему мы сочли необходимым потратить три года, пытаясь возродить КуМир.

КуМир — практикум по основам алгоритмизации, реализованный в СССР в 90-х годах прошлого столетия, — до сих пор не забыт системой школьного образования России в первую очередь благодаря тому, что целое семейство КуМиров было реализовано и эксплуатировалось практически на всем “зоопарке” вычислительной техники, попавшей в школы СССР.

Две модели японской Zilog-машины Yamaha, массово производимые отечественные Корвет и УКНЦ, другие мини- и микрокомпьютеры на процессорах архитектуры PDP-11, Apple Macintosh, бесконечные клоны IBM PC... Это далеко не полный список вычислительной техники, на которой функционировал практикум КуМир. В организованном вице-президентом АН СССР Е.П. Велиховым ВНТК “Школа-1” было разработано несколько успешных практикумов, но КуМир, без сомнения, имел самое массовое распространение в СССР, а затем и в России.

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

Подобный подход позволил не только иметь единый комплект документации и методических материалов, но и упрощал для ученика, учителя и методиста переход с одного школьного компьютера на другой. Другие практикумы, разрабатываемые тем же коллективом, в том числе и текстовый редактор МикроМир, имели аналогичный интерфейс. Простые практикумы (“Резчик металла” — практикум по составлению линейных программ, клавиатурный тренажер, “Стековый калькулятор”) предваряли работу учащихся с КуМиром, попутно снимая непроизводительные расходы, связанные с изучением клавиатуры и команд, так как команды во всех практикумах были идентичны.

Представление системой КуМир и сопутствующими практикумами единого интерфейса на всем ряду разнородной вычислительной техники было важной, но не единственной причиной популярности КуМира. Второй причиной была востребованность. К моменту появления на свет предтечи Кумира — Е-практикума — во всех старших классах СССР преподавался так называемый безмашинный курс информатики, и параллельно в школы и педвузы стала поступать вычислительная техника. Так что, как это ни парадоксально, основной задачей КуМира была программная поддержка на школьных машинах безмашинного курса информатики. В основе безмашинного курса информатики лежал предложенный академиком А.П. Ершовым школьный алгоритмический язык с русской лексикой, включающий основные управляющие конструкции алгоритмических языков высокого уровня. Е-практикум поддерживал первые учебники А.П. Ершова с соавторами, а КуМир поддерживал ставший самым массовым учебник ОИВТ А.Г. Кушниренко, Г.В. Лебедева и Р.А. Свореня.

Третьей причиной успешности КуМира было использование уже отработанных к тому времени на мехмате МГУ идеи редактирования-компиляции и метафоры “полей программы”, дающих колоссальное повышение производительности труда обучаемого во вводном курсе программирования.

Таким образом, КуМир работал на любой мыслимой и немыслимой вычислительной технике со стандартизованным клавиатурным интерфейсом, КуМир поддерживал массовый учебник, КуМир был удобен и...

Тут по законам жанра хотелось бы сказать “КуМир победил всех конкурентов”, но никаких конкурентов, кроме Basic’a, фактически не было.

Распространение IBM PC-подобных клонов в конце XX века вытеснило с рынка или свело к минимуму практически все не Windows-ориентированные системы. Разработанная в начале 90-х годов версия КуМира для системы MS DOS была практически лишена программных ошибок и была так близка к идеалу школьного ПО, что просуществовала в школьных классах достаточно долго (более 10 лет). Однако за 10 лет первые две причины успешности КуМира стали исчезать.

Появилась оконная система MS Windows-95, затем MS Windows-98 и т.д. Запускать и эксплуатировать КуМир с каждым годом становилось труднее. DOS-ориентированный чисто клавиатурный интерфейс КуМира также выходил из моды. Человечество стало редактировать тексты с использованием мышки и оконных систем.

Учебники А.Г. Кушниренко также стали выходить из моды, однако изложенный в этих учебниках школьный алгоритмической язык продолжает жить в методических материалах, в частности, в задачах ЕГЭ.

Что же касается эффективности КуМира в начальных курсах программирования, то в этом отношении ему по-прежнему нет равных.

По инициативе Г.В. Лебедева авторы статьи встречались с ним в начале 2004 года и обсуждали будущее КуМира. Идея Лебедева состояла в том, что КуМиру и методике проведения начального курса программирования на его основе нужно дать в России шанс на конкуренцию с другими подходами и другими программными системами, дать шанс занять свою нишу. К сожалению, Г.В. Лебедев погиб в мае 2004 года и не увидел свою идею реализованной.

Итак, чтобы сделать КуМир конкурентоспособным, нужно было прежде всего сделать его интерфейс привычным для пользователя: погрузить в стандартную многооконную систему. Далее нужно было обеспечить возможность его установки на всех мыслимых платформах: Linux, Windows, MacOS, etc. Для решения этих задач было решено использовать систему Qt фирмы Troll Tech.

К 2005–2006 гг. в НИИСИ РАН по заказу Российской академии наук был начат проект по созданию новой многоплатформенной системы КуМир. К концу 2008 года такая система была разработана. Она распространяется свободно на условиях лицензии GNU 2.0. Данная лицензия разрешает бессрочно использовать КуМир на любом количестве компьютеров в любых целях без оформления каких-либо дополнительных документов.

В системе КуМир используется школьный алгоритмический язык с русской лексикой и встроенными исполнителями Робот и Чертежник.

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

При выполнении программы в пошаговом режиме КуМир выводит на поля результаты операций присваивания и значения логических выражений. Это позволяет ускорить процесс освоения азов программирования. Новый КуМир полностью поддерживает учебники ОИВТ Кушниренко — Лебедев — Сворень и ОИВТ Кушниренко — Лебедев — Зайдельман: все алгоритмы из этих учебников и решения всех задач выполнимы в КуМире.

Новый КуМир предоставляет новые возможности по работе с исполнителями.

1. Три исполнителя — Робот, Чертежник, Файловая система — жестко встроены в систему КуМир. Для того чтобы активизировать соответствующий встроенный исполнитель, нужно в начале КуМир-программы добавить команду использовать… и имя нужного исполнителя.

Номенклатура этих исполнителей определена заранее. Расширение списка встроенных исполнителей возможно только путем изменения исходного кода.

2. Для подключения исполнителей “сторонних” производителей, написанных, например, на языке С, создан дополнительный механизм подключения таких исполнителей. За счет этого КуМир получает возможность управлять не только программными исполнителями, но и реальными, например, “настоящим” роботом LEGO Mindstorm, используя канал bluetooth.

3. В КуМире пользователь может создавать собственные исполнители.

Для этого в языке предусмотрена конструкция исп — кон исп.

КуМир-исполнители могут быть расположены либо в файле вместе с основной программой, либо в отдельном файле. КуМир-исполнители доступны редактированию и выполнению в пошаговом режиме, как и обычная КуМир-программа. Таким образом, КуМир предоставляет базу для перехода от изучения основ объектно-ориентированного программирования в учебной среде к изучению производственных языков ООП. Той же цели служит и препроцессор КуМир --> С++: написав и отладив программу на КуМире, обучаемый может нажатием одной кнопки создать из КуМир-программы без ошибок работающую программу на С++. Причем текст последней программы окажется очень похожим на исходную программу на алгоритмическом языке.

Многое сделано в КуМире для облегчения труда преподавателя.

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

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

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

Ан. Ге. Кушниренко ;
Ал. Ге. Леонов

TopList