Выбрать главу

Программное обеспечение, используемое в образовательном процессе, можно условно разделить на две категории: специализированное ПО, ориентированное на обучение, и "обычный" софт. К первому классу, безусловно, относится система программирования "КуМир" ("Комплект учебных миров"). Разработанная еще в 80-х годах, она широко применялась для преподавания основ программирования в школах и вузах (в частности, на мехмате МГУ). Некоторые читатели, наверное, помнят, как в школьные или студенческие годы с помощью необычного "русского" языка программирования писали программы, например, проводившие виртуального робота по лабиринту. (Фраза, вынесенная в заголовок этой секции - вовсе не политический призыв, а отрывок из такой программы, процитированный на конференции одним из главных создателей "КуМира" А. Г. Кушниренко). Однако исходная DOS-реализация системы безнадежно устарела, и было решено переписать ее с нуля, сделать кроссплатформной и выпустить как свободное ПО под GPL. В настоящий момент доступны версии под Windows и Linux.

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

Говоря о специализированном обучающем ПО, нельзя не упомянуть проект OLPC, в рамках которого, помимо уникальных с "железной" точки зрения недорогих ноутбуков, разрабатывается принципиально новая программная среда, ориентированная на детей и при этом довольно далекая от привычных нам интерфейсных стереотипов. (Подробнее о среде OLPC Sugar см. "И пусть никто не уйдет обиженный", "КТ" #684.) Участники проекта OLPC из Медиалаборатории НГПУ рассказывали о летнем экологическом лагере, проведенном в августе прошлого года, где разные модели нетбуков (в том числе OLPC XO-1) использовались как основной творческий и рабочий инструмент школьников, а беспроводная сеть - как средство (само)организации небольшого исследовательского сообщества ("стаи"). Для совместного сбора и анализа информации применялись вики-среды, система разработки Scratch, ориентированная на детей, а также средства mindmapping’а (VYM) и анализа онтологий (Metamind).

Стоит отметить и некоторые примеры успешного использования ПО "общего назначения" для организации учебных курсов. Например, А. В. Хорошилов из ИСП РАН представил практикум по аналитической верификации программного обеспечения. Студенты учатся использовать инструменты, которые позволяют по тексту программы и ее формальным спецификациям строго доказать, что результат работы программы будет всегда правильным. В частности, в курсе использовалось семейство свободных инструментов верификации Why и система автоматизированного доказательства математических теорем PVS. Проверить таким образом весь код, скажем, ядра Linux совсем не просто (на верификацию нескольких десятков строк кода уходят недели, если не месяцы), но в критически важных областях подобные технологии иногда применяются, и навыки, полученные в ходе такого курса, весьма полезны.