В начале ХХI века в отечественной научно-педагогической среде оформилось само понятие генератора, возникли первые классификации генераторов, анализировались подходы к построению таких программ. Можно выделить несколько направлений этой деятельности. Первое направление - это создание наборов задач и карточек контрольных работ для традиционного обучения [14, 15, 16, 17]. Автор статьи относит себя именно к этому направлению. Следует заметить, что цель автоматического обновления вариантов контрольных работ и экзаменационных билетов, формулируемая представителями направления, является не столь актуальной. Содержание классических математических дисциплин: «Алгебры», «Геометрии», «Математического анализа», «Теории вероятностей» остается стабильным в течение многих десятилетий. На рубеже веков автором данной статьи был разработан цикл контрольных работ по указанным дисциплинам [18]. Часть задач была сгенерирована на компьютере, но значительно большая часть составлялась творчески вручную. Каждая контрольная работа имела 100 и более вариантов. Работая на потоке, имеющем примерно 40 студентов, автор использует ежегодно лишь 50 вариантов каждой контрольной работы. На следующий год используются вторые 50 вариантов. Студенты не имеют возможности сфотографировать варианты и не знают, какой именно номер достанется им на очередной работе из-за перемешивания вариантов внутри текущего списка. В итоге создание подпольной базы решенных вариантов становится бессмысленной задачей. Таким образом, одни и те же варианты контрольной могут успешно использоваться десятки лет. При оформлении экзаменационных билетов в них следует указать просто тему задачи (задание) без конкретных данных. Данные задач выдаются преподавателем на экзамене из заранее заготовленных генератором наборов, но сами-то эти наборы достаточно создать один раз! Большое разнообразие задач экзамена и большой объем наборов задач у экзаменатора не позволяют студентам «отслеживать» решения. Повторная выдача той же самой задачи может состояться через 7-8 лет. Важным, на взгляд автора, является лишь обновление задач типовых расчетов, выдаваемых на дом. Такие задания следует обновлять ежегодно, но и это обновление не решает проблему. Вновь генерируемым задачам студенты успешно могут противопоставить обращение через Интернет к экспертам-решателям, которые выполнят за них работу качественно и в срок. О социальных и технологических проблемах первого направления речь пойдет также в отдельном разделе.
Второе направление считает своей целью создание специальных языков и систем разработки генераторов и распространение построенных генераторов через Интернет среди российских преподавателей [4, 19]. При активном создании и использовании генераторов такой подход перспективен. Разрабатывая свои первые программы-генераторы на языке QUICK BASIC, автор затрачивал на создание, отладку и интерфейс очередного генератора примерно три месяца. Таким образом, в год удавалось создавать не более трех-четырех генераторов, каждый из которых был способен порождать лишь одну задачу, пусть и с разнообразными версиями. Наличие языка разработки генераторов позволяет ускорить и частично автоматизировать процесс. Возможность получить готовые генераторы задач через Интернет также можно считать большим подарком для преподавателей. Проблема состоит в том, что многие из преподавателей не нуждаются в таком подарке и не сумеют им качественно воспользоваться.
Третье направление использует генераторы как вспомогательное оборудование при разработке кадровых компьютерных учебных программ (КУП) или при создании электронных учебников [7, 20]. В данном направлении происходит переход от собственно генераторов задач к программам самоподготовки студентов, имеющим встроенные генераторы и решатели. В рамках направления формулируется ряд важных свойств генераторов [1]. Мощность генератора - это общее количество различных задач, которые может породить генератор. Семантическое расстояние между порожденными задачами должно обеспечивать существенное различие формулировок задач и их ответов. Управление сложностью позволяет в рамках программы-генератора порождать более или менее сложные задания по одной и той же теме. Указанные свойства обеспечивают при каждом входе студента в обучающую программу новые версии стандартных заданий, а также настройку электронного учебника на уровень знаний студента, обнаруживаемый в процессе диалога с ним. Не со всеми положениями сторонников этого направления автор согласен. Важным достижением считается, например, устранение человека-преподавателя от процесса обучения. Здесь, по сути, все ставится с ног на голову. Квалифицированным преподавателем считается тот, кто может качественно обслуживать компьютерную систему, загружая ее адекватным наполнением. Гордиться подобными «достижениями» может разве что системный программист, никогда в жизни не занимавшийся реальной преподавательской деятельностью. Кстати, создание ярких, сложных и малополезных компьютерных презентаций не может считаться таковой деятельностью.
Четвертое направление сосредоточилось на создании компьютерных тестирующих систем (КТС) и компьютерных систем обучения (КСО) [10, 21]. При этом в последних двух направлениях зачастую генерируются уже не столько математические задачи, сколько разнообразные тесты, в том числе текстовые, графические или логические. В работе [21] предложены многочисленные критерии оценки качества генератора тестов. Часть из этих критериев может быть применена и к более простым генераторам задач. Рассматриваются вопросы мощности КТС (интегрированного понятия, в которое в качестве составляющей входит и мощность генераторов, используемых системой). Подвергнуты критике старые системы создания компьютерных тестов, например, популярная система дистанционного обучения MOODLE. В целом направление можно охарактеризовать как поднявшееся на качественно новый уровень дистанционное обучение.
Генераторы карточек контрольных работ и наборов математических задач
Работа многочисленных преподавателей по созданию систем генераторов математических задач привела к некоторому общему пониманию сути реализуемого процесса. Основой подхода является создание программируемых (алгоритмических) генераторов. При этом необходимыми оказались три основных элемента ПО. Первым таким элементом выступает некоторая система компьютерной математики или «продвинутый» калькулятор. Расточительно каждый раз программировать самому алгоритм решения математической задачи, когда эта проблема уже успешно решена в универсальных системах. Вторым элементом служит некоторый специальный язык разработки генераторов. Системы компьютерной математики - это лишь решатели задач. Порождение условий задач, а также процессы формирования вариантов контрольных работ, должны выполняться собственно в генераторе. Кроме того, алгоритмы многих специальных задач не реализованы в системах компьютерной математики и должны создаваться заново разработчиками генераторов. Наконец, результаты работы должны быть выданы в текстовой и графической форме и распечатаны на карточках. С этой целью применяются языки разметки, наиболее популярным из которых в настоящее время является LaTeX. Однако и в языке разметки могут отсутствовать многие необходимые символы или возможность изображения сложных графических структур. Эти составляющие системы генераторов приходится разрабатывать вручную. Кроме того, необходимо состыковывать и увязывать в единое целое все три вышеперечисленных элемента ПО. Таким образом, создание системы генераторов представляет собой сложную проблему. Решить такую проблему способен только преподаватель, являющийся одновременно программистом высокого уровня. Большинству преподавателей, являющихся лишь пользователями компьютера, эта задача не по плечу.
Особенности разработчиков генераторов породили и особое виденье ими проблем генерации. Частично они осознают, конечно, своеобразие проблемы. Например, в статье [22] по поводу генераторов отмечается, что «для большинства преподавателей требуется не какоелибо сверхсовременное программное обеспечение, на освоение которого будет потрачено немало времени и сил, а нечто весьма простое и функциональное, легкое в освоении и применении». Затем в той же статье описываются критерии выбора преподавателя: цена, доступность, простота, инструкции на русском языке, широта функционала, возможность расширения функционала. Из этого описания становится ясно, что под преподавателем понимается преподаватель-программист, а под выбором - выбор компонент исходной «триады» для последующей разработки систем генераторов. Но далеко не все преподаватели таковы. Здесь мы сталкиваемся с огромной социальной проблемой невостребованности передовых разработок (как программных, так и методических) в преподавательской среде.
Множество преподавателей можно условно разбить на три основных группы. Первую составляют немногочисленные преподаватели-виртуозы, работающие в рамках традиционных образовательных технологий и не понимающие, зачем вводить разнообразные новшества, лишь ухудшающие учебный процесс. Преподавателей этого типа отличает качественное чтение лекций с использованием доски, способность к построению на ней сложных картинок, актерская импровизация, тщательная подготовка практических занятий дома с разработкой своеобразных нестандартных задач, авторские находки в преподавании многих тем, резко отличающиеся от классических учебников. К сожалению, количество таких преподавателей постоянно уменьшается в процессе смены поколений. Вторую группу составляют преподаватели, активно применяющие современные технологии (и к месту, и не к месту) и пытающиеся решить проблемы обучения через компьютер. В этой постепенно увеличивающейся группе преподаватели-программисты, являющиеся разработчиками генераторов, образуют небольшую изолированную «элиту». Наиболее крупную группу составляют в настоящее время преподаватели-исполнители, заботящиеся в первую очередь о сохранении своего рабочего места, доходов и о формальном выполнении своих обязанностей. Такие преподаватели могут быть в числе первых при заполнении кафедральной документации или даже при написании научных статей, но в учебном процессе они участвуют «по минимуму», отрабатывая полученные деньги. Они не заинтересованы в реальных знаниях студентов, но заинтересованы в достаточно высоком формальном рейтинге этих студентов, который постоянно завышают. Некоторые из таких преподавателей умудряются договариваться со студентами и отменяют значительную часть аудиторных занятий «за ненадобностью». В условиях ослабленного контроля за ходом учебного процесса студенты и без занятий получат требуемые оценки, а преподаватель - свои деньги. Эта же группа порождает и коррупционную составляющую, выявляемую вновь и вновь в преподавательской среде.
Предположим, что некоторый преподаватель-программист разработал набор генераторов задач и предлагает его в качестве подарка сотрудникам своей кафедры. Какова будет их реакция? Преподаватель-виртуоз, узнав, что генерируемые задачи носят «шаблонный» характер, откажется от генератора, заявив, что у него уже имеются гораздо лучшие задачи, а при необходимости он разработает новые и без генератора. Преподаватель-компьютерщик заявит, что в любой момент найдет в Интернете какие угодно задачи в любом количестве и продолжит готовить презентации, глоссарии и тесты. Преподаватель-исполнитель после продолжительной с ним беседы заявит разработчику генератора следующее: «Ну ладно, сгенерируй мне по сто задач по этим трем темам и положи на стол». От него вряд ли можно ожидать чего-то иного при его потребительском отношении к жизни. Таким образом, колоссальная по объему и сложности работа создателя генераторов, описываемая, например, в работах [23, 24], проваливается в никуда, и такой «сценарий» достаточно распространен.
У разработчиков генераторов задач для традиционного обучения могут возникнуть и другие проблемы, например, технологического плана. В статье [16] описывается генерация задач по теме «Неопределенный интеграл». В качестве системы компьютерной математики для создаваемого генератора был выбрана система MatLab. Этот выбор был обусловлен жесткими требованиями администрации вуза. Лицензия стоила больших денег, и повсеместное использование приобретенного ПО было необходимо. Вообще-то задачи на неопределенные интегралы замечательно генерируются по шаблонам, которые можно взять из таблиц интегралов либо легко разработать самостоятельно. Неудачный же выбор системы компьютерной математики привел к крупным проблемам. К ним относились:
1. непривычная для России «англоязычная» запись математических формул;
2. применение в ответах гиперболических функций вместо экспонент;
3. комплексные решения при нахождении действительных интегралов;
4. неверная запись математических операций (нарушение порядка действий).
Указанные недостатки свели практическую ценность разработки к нулю. Разработчикам пришлось больше бороться с недостатками выбранного решателя, чем строить задачи на интегралы. Эта борьба состояла в массовой замене неверных математических выражений заново конструируемыми формулами. В процессе исправления сгенерированных задач и их ответов использовались традиционные «шаблоны». Применялись также процедуры редактирования формул.