Обзор генераторов и методов генерации учебных заданий

Обзор генераторов и методов генерации учебных заданий

Посов Илья Александрович к.т.н., асистент кафедры Высшей Математики 2, Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»

им. В.И. Ульянова (Ленина), г. Санкт-Петербург, ул. Профессора Попова, д.5, 197376, +7 (812) 346-44-87

iposov@gmail.com

к.т.н., старший преподаватель кафедры информационных систем в искусстве и гуманитарных науках, факультет искусств, Санкт-Петерургский государственный университет, г. Санкт-Петербург, Университетская наб., д. 7-9, 199034, +7 (812) 328-20-00

i.posov@spbu.ru

Аннотация

В статье производится обзор инструментов генерации многовариантных учебных заданий. Многовариантные задания имеют несколько вариантов условия и могут использоваться преподавателями во время контрольных работ для защиты от «списывания». Учащиеся могут использовать многовариантные задания для тренировки в решении задач по определенной теме. Особый упор при обзоре сделан на общедоступные инструменты генерации, т.е. те, которые можно найти в Интернете и использовать. Также внимание уделено методам генерации и редакторам генераторов — инструментам, которые позволяют создавать генераторы. В заключении после подведения итогов кратко описан один из ведущихся в данный момент проектов, цель которого создать базу генерируемых заданий с редакторами генераторов, позволяющими создавать генераторы широкому кругу преподавателей с разным уровнем владения компьютером.

The paper presents a review of software tools that support generation of multivariant problems. Multivariant problems are problems that have multiple variants of their statements. They may be used by teachers to prevent "cheating" during tests, and students may use such problems to practice in a certain topic. The review is made with a special emphasis on public tools, i.e., that may be found on Internet and used. Attention in the paper is also paid to generation methods and generators editors, i.e., to software allowing for creation of generators. In conclusion a project that is currently being developed is briefly discussed. It is aiming to create a collection of generable multivariant problems with a number of generators editors, that allow for creation of editors for a wide range of teachers with different level of computer skills.

Ключевые слова

генерация учебных заданий, методы генерации учебных заданий, многовариантная задача, редакторы генераторов

educational problems generation, methods of educational problems generation, multivariant problem, generators editors

Введение

Преподаватели в школах и вузах выдают своим ученикам задания. Они позволяют ученикам разобраться в изучаемой теме, а преподаватели с их помощью оценивают успехи учеников. Особый вид заданий — это многовариантные задания, они имеют несколько вариантов условий, которые отличаются исходными данными или деталями постановки вопроса. Чаще всего многовариантные задания используются во время контрольных работ и других мероприятий, тестирующих знания, каждый учащийся получает свой вариант условия. Это затрудняют совместное решение заданий участниками, в более простой формулировке — это затрудняет «списывание». Многовариантные задания являются одним из наиболее эффективных способов защиты от списывания. В некоторых ситуациях при использовании таких заданий преподаватели могут позволить себе проводить тестирование даже без контроля процесса решения, т.е. удаленно или выдавая задания на дом.

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

Еще одно применение, не менее важное чем предыдущие, это тренировка в решении и закрепление навыков за счет решения большого количества заданий на определённую тему.

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

На рисунке 1 приведён пример многовариантной контрольной работы, состоящей из трёх многовариантных заданий.

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

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

генераторы становятся открыты и доступны в Интернете всем, кто в них заинтересован.

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

1. Расставить пределы интегрирования в интеграле

Я 1(х,у)ёхёу, где Л(0,0), В{-2,0), С(0, -3).

£\АВС

2. Расставить пределы интегрирования в интеграле

Я /(Х,у)(1хс1у, где А(-5,-2), В(-2,3), <7(0,-4).

±АВС

3 1

3. Вычислить J dx J ( — 4х3у — ху2)с1у

1 -1

4. Вычислить Я ХУ4 <1х где А - треугольник,

д

ограниченный прямыми х = 5, у = — 1 и 2х — у = 9.

5. Вычислить Яе~5~'С ~У <}х<1у, где И — часть круга

и

х2 + у2 ^ 16, лежащая в 2-й четверти.

Вар. 4

1. Расставить пределы интегрирования в интеграле

Я f(x,y)dxdy, где А(0,0), В(—1,0), <7(0, -3).

л ABC

2. Расставить пределы интегрирования в интеграле Я f(x,y)dxdy, где Д - треугольник, ограниченный д

прямыми З.г — у = 2, 2х — Ъу = 10 и — 4х — 3у = —20. 2 i

3. Вычислить J dx J ( — х3у — 5xy2)dy

-i -i

4. Вычислить Я x3ydxdy, где А(—3,0), В{0,2),

A ABC

С( 0,0).

5. Вычислить Я s^n(f(x2+y2))dxdy, где D — часть

D

круга х2 + у2 ^ 16, лежащая в 1-й четверти.

Рис. 1. Пример многовариантной контрольной работы.

Типы инструментов генерации заданий

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

Первое различие существующих инструментов — это формат выдачи задания учащемуся. Принципиально существую два формата: на экране компьютера и на бумаге. Задания на экране компьютера имеют преимущество, что обычно и ввод ответа производится на компьютере, это позволяет проверить ответ автоматически, провести тестирование удалённо или воспользоваться другими особенностями

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

Второе различие — это предметы, которые покрывают генераторы. Наиболее популярной является генерация математических заданий, но существуют генераторы и для гуманитарных дисциплин, чаще всего такие задания предлагают ученику закрытые вопросы с выбором вариантов ответа, сопоставлением списков и т.п.

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

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

Многовариантное задание

Рис. 2. Генераторы и редакторы генераторов.

Уточним в этом месте термины, связанные с настройкой и созданием генераторов. Как было написано ранее, генератор — это программа, создающая условия некоторого многовариантного задания. Параметры генерации — это дополнительная информация, необходимая для работы генератора, которую указывает пользователь. Например, в задаче про поиск определителя матрицы в параметрах генерации пользователю можно предоставить возможность выбрать размер матрицы и количество нулевых элементов. В задаче на сложение чисел параметром генерации может быть диапазон значений генерируемых чисел. Рисунок 2 демонстрирует сказанное.

Редактор генераторов — это программа, которая позволяет пользователю вводить и редактировать описание генератора, и которая использует полученное описание для создания генератора. В рамках данной статьи будет корректно говорить, что редактор позволяет редактировать описание генератора (или короче: редактировать генератор) и что редактор генераторов создает генераторы.

Если параметры генерации могут только незначительно влиять на получаемое многовариантное задание, то описание генератора полностью определяет создаваемое им многовариантное задание. В граничном случае описанием генератора можно считать код программы на языке программирования общего назначения (C++, Pascal и т.п.), а редактором генератора — редактор для написания кода вместе с компилятором для этого языка. Безусловно, существуют более удобные и более специализированные редакторы, позволяющие сделать создание генераторов доступным не только для программистов, они будут рассмотрены в статье.

На Интернет странице [1] преподаватель приводит исходные коды нескольких своих генераторов. Они демонстрируют, что для генератора недостаточно запрограммировать алгоритм генерации, сам алгоритм занимает меньше половины исходного кода, требуется достаточно много усилий потратить на инфраструктурные вопросы, в частности на то, чтобы оформить полученные задания для печати на бумаге. Редактор генераторов должен брать эти вопросы на себя.

Очень небольшое количество существующих инструментов поддержки генерации предоставляет возможность создать собственный генератор, т.е. предоставляет свой редактор. Причина в том, что создание генераторов является сложной задачей. В общем случае необходимо умение программировать и хорошее понимание лежащих в основе технологий. Чтобы продемонстрировать, что иногда без программирования обойтись невозможно, приведём пример задачи на вычисление наибольшего общего делителя. При генерации важно проследить за тем, чтобы сложность всех вариантов заданий была одинаковой. Сложность поиска НОД соответствует количеству шагов, которые должен сделать ученик в алгоритме Евклида. Следовательно, генератор должен самостоятельно провести алгоритм Евклида, узнать количество шагов и, если оно слишком большое или слишком маленькое, сгенерировать другой вариант задания. Автору генератора всё равно придётся реализовывать алгоритм Евклида, какой бы удобной система создания генераторов ни была.

Разработки преподавателей

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

Иногда преподаватели выкладывают в общий доступ созданные ими генераторы, остановимся на этих материалах подробней.

На Интернет странице [9] http://kpolyakov.spb.ru/school/ege/sofl.htm в разделе «программы» есть несколько генераторов заданий для ЕГЭ по математике: типы B4 и C2. В результате генерации получаются текстовые файлы, цель этих генераторов — тренировка за счет решения большого количества задач.

Сайт [10] http ://kpolyakov. spb.ru/school/e ge/soft.htm предлагает набор генераторов заданий, реализованные с помощью макросов Microsoft Word. Генераторы отрываются в Word, они выглядят как шаблоны заданий, состоящие из текста условия с некоторым количеством переменных. При генерации все переменные заменяются на конкретные числа или слова. Информация на сайте подробно описывает запуск генераторов и самостоятельное создание новых, т.е. пользователь может не только исправить уже существующие задания, но и даже создать свои. Здесь Word выступает в роли редактора генераторов. Интересной особенностью является то, что не смотря на использование Microsoft Word, условия заданий можно получить и в формате LaTeX.

На сайте [11] http://generatorzadach.narod.ru предлагается еще один бесплатный набор генераторов заданий. По утверждению на главной странице «В настоящее

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

Последний набор генераторов, который будет упомянут, находится на сайте [12] http://vuz.exponenta.ru. Загрузить предлагается генератор задач по механике и математике и генератор задач по статистике. Судя по всему, генераторы бесплатны, но их придётся регистрировать, направив запрос авторам. Генераторы создают условия в формате LaTeX, т.е. сгенерированные задания необходимо печатать на бумаге.

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

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

Укажем здесь еще одну ссылку на скачиваемую систему генерации: [14] http://www. schoolhousetech. com, хотя она формально не подходит в этот раздел, потому что не является разработкой одного преподавателя. Это коммерческий продукт иностранной компании. Судя по изображениям на сайте, система генерирует красочные задания для разных предметов и разных возрастов учеников. Основными ее отличиями от рассмотренных систем является то, что она не бесплатна, и то, что задания генерируются на английском языке, хотя для заданий без текста это не актуально. Искать другие подобные программы можно в поисковых системах по запросам «math worksheet generator» или «math quiz generator».

Системы генерации на кафедрах и в университетах

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

Система, упоминаемая в [15], установлена на кафедре высшей математики 2 Санкт-Петербургского государственного электротехнического университета «ЛЭТИ». На кафедре работает более пятидесяти сотрудников, и большинство из них использует систему для генерации заданий. Набор существующих генераторов покрывает многовариантными заданиями большинство читаемых кафедрой курсов.

В отличие от использования, разрабатывать новые задания способны не более трех преподавателей. Для создания генератора необходимо подготовить шаблон задачи — тексты условия и ответа, внутри которых встречаются переменные, и программу, которая при запуске создает файл со сгенерированными значениями переменных. Программу можно реализовывать на любом языке программирования, сейчас они в основном они реализованы на Pascal, C++, некоторые генераторы написаны на Java. Результаты генерации компилируются и отображаются на бумаге с помощью системы компьютерной верстки LaTeX, это позволяет создавать задания со сложными математическими формулами. Приведенный на рисунке 1 пример многовариантной контрольной работы создан с помощью этой системы.

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

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

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

Некоторое время назад в системе появился редактор генераторов на основе предметно-ориентированного языка. Язык основан на шаблонах, т.е. позволяет описать требуемую задачу в виде неизменяемого текста, в некоторые места которого вставлены переменные. Переменные могут представлять собой случайные числа, многочлены, прямые и другие математические объекты. Язык позволяет его автору значительно ускорить процесс реализации генераторов, но он недостаточно прост, чтобы подключить к процессу других преподавателей.

Еще одна не общедоступная, но активно используемая система генерации внедрена в Томском межвузовском центре дистанционного образования (ТМЦДО). Она генерирует задания для дистанционной тестирующей системы, т.е., в отличие от большинства рассмотренных ранее систем, предлагает решать задания, отображаемые на экране компьютера, и автоматически проверяет ответы. Система описана в монографии [16] и других статьях этого автора. Генераторы пишутся на языке программирования С++. Разработкой тестов и заданий занимается программисты, дизайнеры и методисты из лаборатории инструментальных систем моделирования и обучения, т.е. создание тестов централизовано, и преподаватели заполняют заявки, если им необходимо новое задание или тест. В 2003 году, когда вышла монография [16], количество контрольных работ и экзаменов превышало 350.

Генерация в режиме on-line

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

Начнем с очень простого сайта [17] http://abak.pozitiv-r.ru/math/191-generator-zadanij-onlajn. Он генерирует задания на арифметические вычисления. Учитель может установить ряд параметров генерации: выбрать, разрядность чисел, какие именно арифметические операции использовать, сколько должно быть операций, генерировать ли скобки. Этот сайт сам по себе вряд ли будет полезен широкому кругу преподавателей, потому что других генераторов на нём нет, но он лишний раз демонстрирует актуальность обсуждаемой темы: преподаватели приходят к генерации независимо друг от друга и считают её хорошей идеей, достаточно почитать эмоциональное описание генератора на указанном сайте.

Более серьезные разработки можно найти в англоязычном Интернете. Вот несколько сайтов, позволяющих генерировать задания не выходя из браузера: [18 -20] http://www.math-aids.com, http://mytestbook.com,

http://www.makeworksheets.com/platinum/samples/math/index.html. Последний сайт, в отличие от первых двух, платен. Наборы заданий на всех сайтах ограничены, т.е., если необходимого задания нет, сгенерировать его не получится. Еще один недостаток — это английский язык условий, хотя среди задач встречается много задач без текста. Ну а очевидное достоинство сайтов — красочный результат. В заданиях используются рисунки, и всё это аккуратно расположено на листе. Как

было написано ранее, искать аналогичные сервисы можно запросами «math worksheet generator» или «math quiz generator».

С недавнего времени онлайн генераторы заданий появились и на сайте [21] http://wolframalpha.com. Сайт Wolfram|Alpha создан компанией Wolfram, являющейся одним из лидером математического и научного программного обеспечения, в частности, самым известным их продуктом является система компьютерной алгебры Mathematica. Wolfram|Alpha позволяет пользователям задавать вопросы на английском языке на любую тему, и отвечает на них на основе большого количества баз по разным областям знаний и вычислительного движка системы Mathematica. Например, на запрос «How many Mondays were in 1984?» (сколько понедельников было в 1984 году?) система выдает ответ «53 Mondays» (53 понедельника) и добавляет информацию о 1984 году, включая некоторые знаменательные события. Тем, кто подписывается на использование расширенной версии сервиса Wolfram|Alpha, дополнительно предоставляется возможность генерации заданий с помощью Wolfram Problem Generator [22] http://wolframalpha.com/pro/problem-generator, реклама этой возможности расположена на заглавной странице. Генератор позволяет решать задания прямо на сайте или печатать их на бумаге. Кроме правильного ответа сервис способен показать пошаговые решения. К сожалению, набор предлагаемых задач сильно ограничен. Задач всего около 80, и они достаточно простые, даже задачи по таким темам как Статистика предлагают всего-лишь посчитать среднее значение элементов списка.

Создавать свои генераторы на сайте Wolfram|Alpha нельзя, но это можно делать с помощью системы Mathematica, на которой он основан. Отвлечемся и остановимся на этом подробнее, потому что эту систему можно считать популярным способом создания генераторов. Разработчики Mathematica уже давно предлагают использовать эту систему для генерации. Около 10 лет назад она имела редакцию для учителей (Mathematica Teachers Edition), содержащую возможности генерации, сейчас этот продукт закрыт [23]. На семинарах и мастер-классах по Mathematica ведущие демонстрируют возможности создания генераторов, чтобы заинтересовать преподавателей этим достаточно дорогим продуктом. Действительно, Mathematica кроме того, что реализует все алгоритмы, которые могут использоваться в задачах школьных и университетских математических курсов, способна красиво оформить результат для печати или отображения на экране. Поэтому, её одной для создания генераторов достаточно, и нет необходимости сочетать разные технологии.

Приведем пример того, как может выглядеть генератор одной задачи на языке Mathematica.

((x-#1)(x-#2)//Expand//Together//Numerator) == 0 & @@ Divide @@ RandomChoice[Join[#, -#]&@Range@10, {2, 2}] // TraditionalForm

Этот код генерирует задачу на решение квадратного уравнения с рациональными корнями. Например, один запуск такой программы может выдать уравнение 80x2 - 58x + 5 = 0 с ответами x1 = 1/10 и x2 = 5/8. Во второй строке программы выбираются два рациональных корня с числителями и знаменателями в диапазоне от -10 до 10. В первой строке раскрываются скобки в выражении (x -x1) (x - x2) командой Expand, далее всё приводится к общему знаменателю (Together), и у результата берется числитель (Numerator). Последняя строчка (TraditionalForm) записывает уравнение в традиционной форме, как бы оно выглядело, написанное человеком. Код этого генератора записан кратко, поэтому выглядит загадочно, Mathematica поддерживает и более привычные стили программирования. К приведенному коду необходимо добавить запуск генератора несколько раз и оформление листа с условиями.

Вернёмся к возможности генерации заданий с помощью сайта. Портал «ЯКласс» [24] http://www.yaklass.ru, предлагающий школьникам решать генерированные задания и проверять свои ответы, прославился тем, что получил $450 тыс. инвестиций на развитие продаж и выход на международный уровень [25]. «ЯКласс» предлагает школьникам задачи практически по всем темам школьного курса алгебры, математики и некоторых других предметов. Задачи решаются прямо на компьютере, у каждой задачи есть один или несколько вопросов, на каждый вопрос нужно ввести ответ, после чего ответы автоматически проверяются и ученик сразу узнает, сколько он получил баллов. Просматривать задачи можно без регистрации, решать только после регистрации, а платная подписка дополнительно позволяет узнавать правильный ответ, если задача решена неверно, и позволяет просмотреть пошаговое решение задачи. Вероятно, у платной подписки есть и другие возможности, но описание на сайте недостаточно подробно, чтобы о них узнать.

Создать собственный генератор на этом сайте нельзя, но можно оставлять пожелания об интересующих задачах и сообщения о найденных в задачах ошибках. Авторами генераторов являются работающие над проектом преподаватели, для которых разработан удобный редактор. Этот редактор генераторов — редкий, если не единственный, пример редактора генераторов, доведенный до коммерческого продукта, и такой, что им может пользоваться широкий круг преподавателей. Посмотреть на процесс создания генераторов с его помощью можно, например, в видео [26] http://www.youtube.com/watch?v= iY6et6u9-g и других видео с канала GenExis Education. У проекта GenExis есть сайт [27], который рассказывает о проекте, в частности, он упоминает, что аналогичные «ЯКласс» порталы уже запущены в других странах: в Литве [28], Украине [29]. Так же сайт предлагает загрузить свою версию редактора, рассказывает о его возможностях. Кроме онлайн заданий с его помощью можно создавать и варианты для печати на бумаге. К сожалению, на сайте недостаточно информации о том, как и на каких условиях можно пользоваться редактором.

Из недостатков проекта можно отметить то, что с помощью редактора генераторов получаются только простые генераторы, в математических задачах в основном варьируются только числа. Это хорошо видно, если пролистать предлагаемые на сайте задачи. Задачи больше подходят для индивидуализации, чем для тренировки навыков решения, хотя позиционируются как последнее. Такое ограничение сложности задач — это следствие необходимости сделать редактор простым и доступным для широкого круга учителей.

Обзор методов создания генераторов

Как было замечено в начале статьи, создание генераторов является сложной работой и в общем случае требует программирования и реализации алгоритмов, это было продемонстрировано на примере задачи о вычислении НОД. Тем не менее, некоторые приведенные выше примеры демонстрируют, что подключить к процессу создания генераторов можно преподавателей и методистов, не требуя от них навыков программирования. Например, это получилось сделать в проекте GenExis. Идея основана на разделении труда между программистами и преподавателями, первые готовят редактор генераторов, а вторые с его помощью готовят описания генераторов. Такой подход называется предметно ориентированным программированием, а используемый язык описания генераторов — языком предметной области (domain specific language, DSL [30]).

Каждая редактор генераторов основан на некотором методе создания генераторов. Метод характеризует структуру описания генератора и алгоритм превращения этого описания в сам генератор. Методы всегда ограничивают класс

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

Например, если редактором генераторов считать систему Mathematica, то с её помощью можно создать генератор любого задания, но для этого преподавателю потребуется изучение этой системы и ее языка программирования.

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

Наиболее полный обзор методов генерации можно найти в монографиях [16,31]. Монографию [31] можно считать фундаментальным трудом по генерации учебных заданий. Кроме классификации методов она, в частности, предлагает классификацию генераторов по тому, какая именно часть учебного задания генерируется. Тринадцать предложенных классов демонстрируют, насколько разнообразными теоретически могут быть генерируемые задания.

Генерация на основе шаблонов

Первый метод генерации — это использование шаблонов. Учебное задание представляется в виде текста, в некоторых местах которого поставлены переменные. Пример шаблона условия и ответа: «Сколько будет [А] + [В]? Ответ: [А] + [В] = [С]». Здесь переменными являются [А], [В] и [С], первые две выбираются случайно, третья вычисляется на основе предыдущих. Кроме написания шаблона преподавателю или методисту необходим указать, как генерируются значения переменных, например, из каких диапазонов и по какому распределению выбираются числа; как вычисляются переменные, зависящие от других; какие есть ограничения на значения переменных. Например, если добавить ограничение, что 9 < С < 100, то генерации задания будет происходить до тех пор, пока это условие не выполнится, т.е. пока сумма не станет двузначной. Из упомянутых ранее систем параметризация используется в [7,10,15,26]. Этот подход к генерации можно считать одним из самых естественных и поэтому распространенных.

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

Обобщением генерации на основе шаблонов является генерация с помощью вывода текста условия в контекстно-свободной грамматике (КС-грамматике). Это обобщение возникает, если предположить, что каждая переменная в шаблоне сама генерируется с помощью шаблона. Т.е. переменные являются нетерминальными символами грамматики, а разные варианты выбора значений для переменных соответствуют различным правилам грамматики для этого нетерминала. Генерация задания означает выбор случайного вывода в грамматике. Наиболее подробно это направление разработано в [6].

В [16,32] описано дерево И/ИЛИ, которое является более простой версией КС-грамматики для генерацией заданий. В деревьях И/ИЛИ невозможны зацикливания вывода, т.е. ни из какого нетерминала нельзя вывести самого себя, применив одно или несколько правил вывода. Благодаря простоте объекта «дерево И/ИЛИ» для них существуют алгоритмы вычисления общего количества возможных выводов и получения вывода с заданным номером, т.е. описав задание с помощью дерева

И/ИЛИ, можно сразу узнать, сколько вариантов задания может быть сгенерировано, и получить алгоритм генерации варианта по его номеру. При этом, не смотря на свою простоту, деревья И/ИЛИ способны описать и, как следствие, сгенерировать любой базовый комбинаторный объект.

Генерация математических выражений

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

Генерировать математические выражения можно с помощью шаблонов. Например, выражение [A]*sqrt([B] x + [C]) + [D] с числовыми переменными задаёт функцию, которую можно использовать в задачах на поиск корней или исследование функции. Как видно на этом примере, шаблоны не позволяют делать математические выражения разнообразными.

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

В [34] предлагается метод генерации математических выражений, основанный на том, какие преобразования выражений должен уметь совершать учащийся. Например, для задачи на поиск корней известно, что посчитать корни функции f(x)n или exp(f(x)) - 1 можно, если уметь считать корни функции f(x). Правило про exp можно не использовать, если экспонента еще не была изучена в курсе. В статье и на указанной в ней Интернет-странице авторы демонстрируют, что они получают действительно разнообразные и непохожие друг на друга функции, подходящие в качестве условий соответствующих задач. Онлайн демонстрация, упомянутая в статье, в которой можно управлять набором функций и количеством действий, к сожалению, не работает.

Еще один способ генерации математических выражений предложен в [35,36]. Исследователи из Microsoft Research предлагают преподавателю написать всего-лишь одно выражение, чтобы программа на его основе автоматически сделала обобщение и сгенерировала набор аналогичных заданий. Например, если написать уравнение 2*x + 3 = 0, система сама поймет, что требуется генерировать задачу про корни линейной функции, и сделает ряд аналогичных заданий. Программа умеет обобщать и более сложные выражения, например, с тригонометрическими функциями и интегралами. Кроме этого, она умеет генерировать задачи на доказательство, например, обобщено будет даже такое равенство J cosec(x)(cosec(x) -ctg(x))dx = cosec(x) - ctg(x), при этом получится ряд аналогичных равенств, например, J tg(x)(cos(x) - sec(x))dx = sec(x) - cos(x). Все предложенные выражения так же будут верными, т.е. будут подходить в качестве задачи на доказательство. Реализующий это инструмент Math Worksheet Generator может быть загружен с сайта [37] http://www.pil-network.com/Resources/Tools/Details/852875ce-b376-4b49-8f79-41c5cd75b067 (кнопка «Get it now» в правой части экрана).

Генерация на основе баз знаний

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

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

Примером неструктурированных знаний может являться текст главы учебника, по которому необходимо задавать вопросы обучаемому. Идеальная система генерации сама читает учебник и придумывает, какие на её основе можно задать вопросы. Систем генерации, напрямую реализующих этот подход, конечно, не создано, но некоторые попытки воспользоваться текстом напрямую, существуют. В основном они предполагают поиск предложений определенных типов, которые можно удачно переформулировать, или в которых можно закрыть слово и попросить тестируемого его восстановить. [31, 38, 39]. Замены слов в предложении могут использоваться для генерации заданий по грамматике [40].

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

Наиболее простая форма представления знаний — табличная [16]. В таблице можно хранить набор терминов и их определений. Это позволяет задавать вопросы на выбор правильного определения термина из нескольких определений, правильного термина для некоторого определения, можно просить сопоставить несколько терминов и их определений.

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

В [41,42] для целей генерации предлагается хранить знания на основе понятийно-тезисной модели. Преподавателю необходимо определить ряд понятий, которые будут фигурировать в тестовых вопросах, а в тексте учебника ему необходимо выделить предложения (тезы), дающие какую-либо информацию о понятиях. Например, предложения «поставляется в составе MDAC», «более широко интерпретирует понятия «данные» по сравнению с BDE» относятся к понятию «ADO». Набор понятий и тез позволят формировать вопросы на выбор одного понятия, подходящего к тезе, тезы, подходящей к понятию. Понятийно-тезисная модель имеет ряд обобщений, расширяющих возможности генерации. [43], и это, в сочетании с простотой подготовки данных, в целом кажется перспективным методом создания генераторов. Сайт лаборатории SetLab [44] http ://www. setlab.net предлагает загрузить программный продут EduManager, демонстрирующий работу модели.

Генерировать задания можно и на основе классических методов представления знаний, например, онтологий и семантических сетей [13,45-47].

Заключение

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

statement = "Сколько будет $%a + %b$?"; answer = "$%a + %b = %c$";

a = rnd(10,99); b = rnd(10,99); c = a + b;

assert(c <= 99);

assert(a % 10 + b % 10 > 9);

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

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

Данный проект частично поддержан программой развития СПбГУ.

Данный проект профинансирован при поддержке Европейской Комиссии в рамках программы Темпус (№ гранта: 543851-TEMPUS-1 -2013-1-DE-TEMPUS-JPCR). Эта публикация отражает исключительно взгляды авторов. Комиссия не несет ответственности за любое использование информации, содержащейся здесь.

This project has been funded with support from the European Commission. This publication [communication] reflects the views only of the author, and the Commission cannot be held responsible for any use which may be made of the information contained therein.

Литература

1. Шестаков А. П. Генерация дидактических материалов по математике. 2000. URL: http://comp-science.narod.ru/matem/matem.html

2. Амзараков М. Б. Автоматическая генерация вариантов педагогического теста // Информационные технологии в образовании

3. Гагарина Д. А. Разработка тестирующих систем для гуманитарного образования // Интернет и современное общество: труды IX Всероссийской объединенной конференции. (Филологический ф-т СПбГУ, СПб, 14-16 ноября 2006 г.). СПб, 2006. - С. 59-60.

4. Беляев К. В. Об автоматической генерации закрытых тестовых заданий // Обозрение прикладной и промышленной математики, М.: Издательство «ТВП». 2005. Т. 12. С. 912-913.

5. Ашкинази Л. А., Гришкина М. П. Генератор задач по физике // Информационные технологии в образовании

6. Сергушичева А. П. Метод и алгоритмы автоматизированного построения компьютерных тестов контроля знаний по техническим дисциплинам: диссертация на соискание ученой степени канд. техн. наук. СПб, 2007. - 18 с.

7. Левинская М. А. Автоматизированная генерация заданий по математике для контроля знаний учащихся // Международный электронный журнал "Образовательные технологии и общество (Educational Technology & Society)". -2002. - Т. 5. - № 4. - С. 214-221. - ISSN 1436-4522.

8. Кулик А.С., Чухрай А.Г. и др. Формализация генерации заданий для комплекса интерактивных web-тестов по математике // Модель-орieнтованi технологи розробки та верифжацп. - 2010. - № 7. - C. 86-89.

9. Поляков К. Генератор задач типа B4, Генератор заданий типа C2. URL: http://kpolyakov.spb.ru/school/ege/soft.htm

10. Некин Л. Универсальный генератор задач Math-o-Gen. URL: http://nekin.info/math/n003.htm

11. Финогенов А. Генератор задач. URL: http://generatorzadach.narod.ru

12. Кирсанов М. Н. Генератор задач по механике и математике, генератор задач по статистике. URL: http://vuz.exponenta.ru, раздел Download.

13. Alsubait T., Parsia B., Sattler U. Generating Multiple Choice Questions From Ontologies: How Far Can We Go? // Educational Knowledge Management (EKM 2014): Proceedings from the First International Workshop [под ред. Lahoud I.,

Ahrenberg L.]

14. Printable Worksheets, Activities, and Tests for the Differentiated Classroom, SchoolHouse technologies, URL: http://www.schoolhousetech.com

15. Степанов А. В. Система компьютерной генерации заданий по математике // Компьютерные инструменты в образовании. - 2000. - № 3/4. - С. 28-31.

16. Кручинин В. В. Генераторы в компьютерных учебных программах. Томск: изд-во Том. Ун-та, 2003. — 200 с.

17. Генератор заданий для школы онлайн. URL: http://abak.pozitiv-r.ru/math/191-generator-zadanij-onlajn

18. Dynamically Created Math Worksheets. URL: http://www.math-aids.com

19. Printable worksheets for teachers, automatic worksheet generator tool. URL: http://mytestbook.com

20. Math Worksheet Maker, URL: http://www.makeworksheets.com/platinum/samples/math/index.html

21. Wolfram|Alpha, computational knowledge engine. URL: http://wolframalpha.com

22. Wolfram Problem Generator. URL: http://wolframalpha.com/pro/problem-generator

23. About Mathematica Teacher's Edition // Wolfram Mathematica Documentation Center. URL:

http://reference.wolfram.com/legacy/teachersedition/GettingStarted/AboutTeachersEdi tion.html

24. Портал ЯКласс. URL: http://www.yaklass.ru

25. Стартап «ЯКласс» получил $450 тыс. Инвестиций // Интернет-издание о высоких технологиях CNews. http://gov.cnews.ru/news/top/index.shtml72014/02/17/560889

26. GenExis, Редактор — два плюс два // Видео с канала GenExis Education, YouTube. http://www.youtube.com/watch?v= iY6et6u9 -g

27. Transfer of Innovation project 'Computer based Exercise Generation and Evaluation System for Mathematics, Physics and Chemistry Subjects - GenExis'. URL: http://www.genexiseducation.com/

28. Labakais paligs macibas skoleniem, skolotajiem un vecakiem. URL: http://www.uzdevumi.lv

29. Портал ЯКлас, URL: http://www.yaklas.com.ua

30. Фаулер М. Предметно-ориентированные языки программирования. М.: Вильямс, 2011. - C. 576.

31. Башмаков А. И., Башмаков И. А. Разработка компьютерных учебников и обучающих систем. М.: Издательский дом «Филинъ», 2003. - С. 616.

32. Кручинин В. В. Методы построения алгоритмов генерации и нумерации комбинаторных объектов на основе деревьев И/ИЛИ. Томск: Изд-во «В-Спектр», 2007. - С. 200.

33. Посов И.А., Автоматизация процесса разработки и использования многовариантных учебных заданий: диссертация на соискание ученой степени канд. техн. наук. Спб, 2012 . - 134 с.

34. Tomás A. P., Leal J. P. A CLP-Based Tool for Computer Aided Generation and Solving of Maths Exercises // Practical Aspects of Declarative Languages: 5th International Symposium, PADL 2003, (New Orleans, LA, USA, январь 13-14,

2003), Proceedings. Vol. 2562. Springer, 2002. С. 223-240. URL: http://dl.acm.org/citation.cfm?id=645773.668094

35. Syngh R., Gulwani S., Rajamani S., Automatically Generating Algebra Problems // AAAI-12: proceedings of the Twenty-Sixth Conference on Artificial Intelligence (Toronto, Ontario, Canada 22-26 июля 2014 г.). URL:

http://research.microsoft.com/en-us/um/people/sumitg/pubs/aaai12-full.pdf

36. Automated Problem Generation for Education // Microsoft Research. URL http://research.microsoft.com/en-us/proiects/problem-generation

37. Math Worksheet Generator // Microsoft

38. Heilman M., Smith N. A. Good question! statistical ranking for question generation //Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics. - Association for Computational Linguistics, 2010. - С. 609-617. URL:

http://www.cs.cmu.edu/~nasmith/papers/heilman+smith.naacl10.pdf

39. Ali H., Chali Y., Hasan S. A. Automation of question generation from sentences //Proceedings of QG2010: The Third Workshop on Question Generation. - 2010. - С. 58-67. URL: http://oro.open.ac.uk/22343/1/QG2010-Proceedings.pdf#page=63

40. Chen C. Y., Liou H. C., Chang, J. S. FAST: an automatic generation system for grammar tests // Proceedings of the COLING/ACL on Interactive presentation sessions, Association for Computational Linguistics.

41. Титенко С.В. Генеращя тестових завдань у системi дистанцшного навчання на основi моделi формалiзацii дидактичного тексту // Науковi вгсп НТУУ "КП1". -№1. - 2009. - С. 47-57.

42. Титенко С.В., Побудова дидактичноi онтологп на основi аналiзу елеменпв понятiйно-тезисноi' моделi // Науковi вюп НТУУ "КП1". - №1. - 2010. - С. 82-87.

43. Петрова Л.Г., Петров С.О., Конопленко А.В. Використання модифiкованоi понятшно -тезисно! моделi для автоматизованого формування бази тестових запитань в системах комп'ютеризацп освгги // 1нформацшш технологи i засоби навчання. - ISSN 2076-8184. - 2012. - №4 (30). URL:

http://iournal.iitta.gov.ua/index.php/itlt/article/view/648/517

44. Дослщження, статп, розробки // Лабораторiя СЕТ, Науково-технiчна лабораторiя новiтнiх iнформацiйних технологiй. URL: http://www.setlab.net

45. Титенко С.В., Гагарш О.О. Проблема моделювання знань в штелектуальних навчальних Web-системах // Интеллектуальный анализ информации ИАИ-2009: IX международная научная конференция имени Т.А. Таран [под ред. С.В. Сирота и др.], (Киев, 19-22 мая 2009 г.). - К.: Просвта, 2009. - С. 384-390.

46. Al-Yahya M. OntoQue: A Question Generation Engine for Educational Assesment Based on Domain Ontologies // 11th IEEE International Conference on Advanced Learning Technologies (ICALT): proceedings of the conference (Athens, GA, 6-8 июля 2011 г.). - ISBN: 978-1-61284-209-7. - С. 393 - 395.

47. Мельник А.М., Автоматична генеращя тестових завдань рiзних титв // Вюник Хмельницького нацюнального ушверситету. - №4. - 2010 г. - С. 124-129.

48. Посов И. А. Автоматическая генерация задач // Компьютерные инструменты в образовании. - 2007. - № 1. - С. 54-62.

49. Посов И. А. Программирование генераторов задач // Компьютерные инструменты в образовании. - 2010 г. - № 3. - С. 19-31.

50. Посов И. А. Web-сайт для создания и обмена генерируемыми задачами по математике // Международный электронный журнал "Образовательные технологии и общество

51. Посов И. А. Использование систем компьютерной алгебры при автоматической генерации индивидуальных заданий по математике // Дистанционное обучение — образовательная среда XXI века: материалы VII международной научно-методической конференции, Минск. - 2011. - С. 293-294.