Генератор экзаменционных билетов

20
Доклад К конференции ICMC 2005 По проекту Генератор экзаменационных билетов. Авторы: Голубев А Кулев М. Кишинёв 2005 1

Upload: alexandr-golubev

Post on 17-Mar-2016

274 views

Category:

Documents


2 download

DESCRIPTION

Генератор экзаменционных билетов

TRANSCRIPT

Page 1: Генератор экзаменционных билетов

Доклад К конференции

ICMC 2005

По проекту

Генератор экзаменационных билетов.

Авторы:Голубев А Кулев М.

Кишинёв 2005

1

Page 2: Генератор экзаменционных билетов

ВведениеCоставление экзаменационных билетов является важной частью учебно-

методической деятельности преподавателя любого учебного заведения. Для

любого предмета имеющего теоретическую основу требуется составление

экзаменационных вопросов и упражнений для проверки знаний полученных

студентами во время курса обучения. Для того чтобы правильно

проэкзаменовать студента необходимо чтобы подборка вопросов была

случайной и разной для каждого студента. Поэтому качественное

составление экзаменационных билетов представляет собой сложный и

трудоёмкий процесс.

Программное обеспечения генератор экзаменационных билетов

разработано для преподавателей с целью облегчения процесса составления

экзаменационных и может быть использовано для автоматизации подготовки

различных комплектов экзаменационных билетов по различным

дисциплинам на компьютере.

Преподавателю необходимо внести вопросы и присущие им

атрибуты(тема и сложность). По этим вопросам программа может

предоставить различные варианты обработки и последующей генерации с

выводом результатов на печать. :

• С разрешением случайного повторения

• С распределением вопросов в билете по уровням сложности

При этом возможна выборка вопросов по уровню сложности и теме вопроса,

что делает процесс генерации билетов более гибким и многогранным.

Имеется также возможность соотнести к вопросу соответствующий

ответ. В таком случае появляется дополнительная опция для генерации

электронных тестов на экране монитора с проверкой результата. И

возможность генерации билетов с ответами с последующей выдачей на

печать.

2

Page 3: Генератор экзаменционных билетов

О разработке программы.Проект разработан на языке С++, используя среду разработки С++

Builder 6. В программе используются базы данных. СУБД - PARADOX 7. В

ходе разработки был использованы запросы SQL.

Программа состоит из .ехе файла

Exam_cards_generator.exe – около 4 МБ

Трёх таблиц данных входящих в базу данных Ехаm_cards

Answers.DB

Bilets.db

Questions.DB

B текстового фаила содержащего пароль для обнуления баз дынных

System.psr

Так как работа с базами данных реализована с помощью BDE(Borland

Database Engine) то для работы данной программе необходим BDE

Administrator С установленным псевдонимом базы данных Ехаm_cards

содержащем путь к

Answers.DB

Bilets.db

Questions.DB

Всё это уже включено в файл инсталляции Ехаm_cards.ехе. При его

распаковке автоматически устанавливается BDE а также ярлыки программы

в меню Пуск и на рабочем столе.

Программа состоит из 3-х основных режимов.

3

Page 4: Генератор экзаменционных билетов

Режим ввода вопросов

В этом режиме можно ввести в базу данных вопрос тему вопроса и уровень

сложности. А также добавить ответы к тому или иному вопросу. При этом

имеется возможность использования функции удаления вопроса.

4

Page 5: Генератор экзаменционных билетов

Режим поиска и удаления вопросов

Поиск вопросов может быть организован по различным критериям, таким

как:

* слово или какая-то фраза из вопроса (поиск текста в тексте)

* тема вопроса

* уровень сложности вопроса

Обеспечить вывод сразу всех результатов поиска на экран сложно, так как

вопрос представляет собой как правило набор строк причём число строк

может быть достаточно большим. Поэтому результаты поиска выводятся

последовательно. Если все вопросы удовлетворяющие условиям поиска

просмотрены выдаётся соответствующее сообщение.

В данном режиме также можно удалять вопросы или добавлять ответы

используя контекстное меню.

5

Page 6: Генератор экзаменционных билетов

Режим создания билетов

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

вопросов. Опции расположены в 4-х панелях

• Количество вопросов в билете

• Информация об учебном заведении

• Дополнительные настройки

• Уровень сложности

В верхнем правом углу расположен индикатор количества доступных

билетов с выбранными параметрами.

После задания соответствующих опций имеется возможность вывода билетов

или на экран или на печать.

Вывод на экран создаёт отдельную форму- тест с возможными вариантами

ответов.

6

Page 7: Генератор экзаменционных билетов

При выводе на печать будет запущен предварительный просмотр QReport где

можно сохранить отчёт или вывести его на печать

7

Page 8: Генератор экзаменционных билетов

8

Page 9: Генератор экзаменционных билетов

Развитие программы

Каждый преподаватель имеет свои индивидуальные учебно-

методические критерии к составлению билетов. Поэтому данное ПО должено

как можно лучше удовлетворять потребности каждого преподавателя. Для

этого в ПО введено достаточное количество опций. Что позволяет

достаточно гибко выбирать вопросы для формирования билетов, это

позволит преподавателю выбрать только лиши необходимые вопросы.

То есть первый критерий данной программы это гибкая система

выборки вопросов, а также удобная система поиска и редактирования

вопросов и ответов.

В этой области были разработаны следующие возможности:

Одной из задач при составлении билетов является 2-х одинаковых

вопросов в одном билете, так как в этом случае этот билет уже не может

считаться корректным. Конечно если билеты составляются на бумаге от руки

такое практически невозможно. Но в электроном варианте это возможно

поэтому необходимо такую возможность полностью исключить.

Но тогда ставится вопрос возможно ли повторение части вопросов в

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

предусмотрены оба варианта.

Установив по умолчанию не включенную галочку Разрешение

случайного повторения вопросов в разных билетах в закладке создание

билетов на панели дополнительные настройки

9

Page 10: Генератор экзаменционных билетов

Разрешение случайного повторения вопросов в разных билетах(галочка включена)

Запретить случайное повторение вопросов в разных билетах(галочка отключена)

Вы получаете возможность при относительно небольшом количестве

вопросов (для программы достаточно чтобы их количество хотя бы

совпадало или было больше чем кол-во вопросов в одно билете)

сгенерировать большее количество билетов

То есть общее количество вопросов не имеет значение, при этом их число

должно быть больше чем число вопросов в одном билете. Если данная опция

отключена то количество вопросов должно быть не менее числа билетов

умноженное на число вопросов в билете. Включение и отключение данной

опции соответствует двум различным вариантам работы программы. Если

при включении опции Вопрос маркируется в случае использования и далее в

процессе генерации не участвует (это исключает возможность повторения

вопросов в билете), однако при генерации следующего билета все маркеры

обнуляются и вопрос может быть использован ещё раз. В то время как при

отключенной опции Вопрос маркируется в случае использования и далее в

процессе генерации не участвует.

Эта опция весьма удобна и интересна. С её помощью можно при

небольшом количестве вопросов сгенерировать большое количество билетов

при этом билеты могут полностью не совпадать. А если при этом не хватает

нескольких вопросов для генерации необходимого количества билетов, то

10

Колл-во вопросов

Необходимое кол-во вопросов = (Кол-во вопросов в билете)*( Кол-во билетов)

Необходимое кол-во вопросов = (Кол-во вопросов в билете)

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

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

Page 11: Генератор экзаменционных билетов

вероятность «похожих» билетов ничтожно мала. Таким образом если,

подборка таких билетов вручную очень трудоёмкая и сложная задача то

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

Многие преподаватели предпочитают в один билет включать вопросы

различной сложности причём чаще всего сложность задания в билете зависит

от номера вопроса в билете( первые вопросы лёгкие последние сложные). Из-

за помимо вопроса в базу данных должен быть введён и уровень сложности.

Во время генерации билетов можно задать необходимый уровень

сложности, или указать на закладке «Создание билетов» на панели «Уровень

сложности» что уровень сложности не имеет значения( по умолчанию).

Или указать соответствующий интервал уровня сложности. Рядом

указаны максимальный и минимальный уровни сложности в вашей базе

данных.

Чтобы иметь возможность создавать билеты в которых уровень

сложности соответствует номеру вопроса билете(по возрастанию), Тоесть

первому поросу самый лёгкий вопрос и далее сложнее существует опция

Распределить вопросы в билете по уровню сложности.

11

Page 12: Генератор экзаменционных билетов

Но если для обычной генерации билетов не важен уровень сложности

вопроса, что существенно расширяет рамки выборки, то при включенной

данной опции у пользователя должно быть достаточное количество вопросов

всех уровней. В частности если необходимо создать 6 билетов с интервалом

уровней с 1 до 6 без повторений. то пользователь должен иметь

6 вопросов 1-го уровня

6 вопросов 2-го уровня

6 вопросов 3-го уровня

6 вопросов 4-го уровня

6 вопросов 5-го уровня

6 вопросов 6-го уровня

Если достаточного количества вопросов не найдено то выдаётся

соответствующее сообщение и таблица с уведомлением вопросов какого

уровня и сколько не хватает.

12

Page 13: Генератор экзаменционных билетов

Также при генерации можно выбрать тему вопросов

Каждый вопрос может содержать несколько вариантов ответов. Добавить

ответы можно как при вводе вопроса так и после в режиме поиска и

редактирования.

Если вы не добавили ответов то количество ответов к этому вопросу – 0, и

при выводе тестов или при включенной галочке

«Добавить в вопросы ответы» эти вопросы учитываться не будут.

Выбор нумерации ответов в билете остаётся за пользователем. Это могут

быть

• Арабские цифры

• Римские цифры

• Буквы русского алфавита

13

Page 14: Генератор экзаменционных билетов

Пользователь также имеет возможность изменять «шапку» на билете указав

Информацию об учебном заведении.

Второй проблемой с которую необходимо учесть это скорость

генерации. Не следует забывать что обрабатываются массивы строк. Поэтому

прямой перебор и выборка представляют собой долгий процесс. Следует

отметить в первые версиях программы процесс генерации 100

Билетов занимал около 5-10 минут в зависимости от выбранных опций.

Ускорить процесс можно использованием SQL запросов и встроенной в

Builder функции к таблице базы данных Filter. Но в данном случае вписывать

в качестве критерия поиска весь вопрос неэкономично да и вообще поиск по

символьным строкам очень долгий процесс. Поэтому появилась

необходимость присвоить каждому билету свой индивидуальный номер. Это

значительно ускоряет процесс поиска вопроса.

14

Page 15: Генератор экзаменционных билетов

Введения номера вопроса (идентификатора) решило и проблему связи

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

разных таблицах данных. То есть у каждого вопроса есть номер и в другой

базе данных такой-же номер присваивается каждому ответу к этому вопросу.

NumQ

Номер

вопроса Quak

Вопрос

Subject

Тема

Tipar

Кол-во

СтрокSloj

Сложность

Otv

Кол-во

ответов

Помимо этого идентификатор выводит процесс генерации на абсолютно

новый уровень. То есть сгенерировав псевдослучайное число n самый

простой способ найти по этому числу нужный вопрос это n раз перескочить

от начала базы данных на следующую позицию. Но так как база данных

содержит много дополнительных данных вовсе не нужных при генерации

или нужных исключительно уже после нахождения вопроса то не было

необходимости тащить все эти данные при поиске.

Исходя из этих соображений был создан класс генерации экзаменационных

билетов.

15

NumQ

Номер

ответа

Answ

Ответ

Rim

Нуме

рация

Arab

Нуме

рация

Bukv

Нуме

рация

IsПравильность

ответа-0

неправильный

NumQ

Номер

ответа

Answ

Ответ

Rim

Нуме

рация

Arab

Нуме

рация

Bukv

Нуме

рация

IsПравильность

ответа-0

неправильный

NumQ

Номер

ответа

Answ

Ответ

Rim

Нуме

рация

Arab

Нуме

рация

Bukv

Нуме

рация

IsПравильность

ответа-0

неправильный

Page 16: Генератор экзаменционных билетов

Класс Bilets. – при помощи связанного списка динамически записывает

результаты выборки для генерации билетов. А именно

• NumQ – уникальный номер вопроса

• Sloj – сложность вопроса

• Is – индикатор показывающий использовался ли данных билет при

генерации ранее.

Основные требования к классу

1. Подсчёт всех свободных вопросов

2. Подсчёт всех свободных вопросов с учётом уровня сложности

3. Тотальное очищение индикатора использования

4. Возвращение номера свободного вопроса находящегося по

заданному номеру не превышающего общее количество записей.

5. Возвращение номера свободного вопроса находящегося по

заданному номеру не превышающего общее количество записей,

учитывая уровень сложности вопроса.

6. Ввод данных в класс

7. Очистка памяти.

Использование этого класса значительно упрощает код программы так как

самая большая функция – генерации билетов, отдаёт часть кода на обработку

классу Bilets. Но самое главное код программы стал более понятным и имеет

большую возможность к модификации. То есть включает в себя прелести

объектно-ориентированного программирования, объект Cards занимается

проверкой однократного использования вопросов и прочими

вспомогательными действиями, в то время как возвращенный номер

локализуется в базе данных и полученные вопросы распределяются по

необходимым каналам.

Для контроля уникальности номеров вопросов, вставки новых и удаления

необходимых номеров также следит класс Tik. В данных класс при открытии

программы записываются все номера, и в процессе работы этот класс

необходимым образом определяет наиболее подходящий пустующий номер

16

Page 17: Генератор экзаменционных билетов

для записи. При этом нет необходимости искать этот номер в самой базе

данных.

В результате использования SQL запросов и встроенной в Builder функции к

таблице базы данных Filter, а также классов, скорость многократно возросла.

На данный момент программа генерирует 1000 билетов по 6 вопросов за 40

секунд.

Дополнительные возможности

Основной задачей проекта было создание Печатной версии набора билетов

для классического экзамена. Но помимо этого была создана возможность

вывода вопросов не только на печать, но и создание электронных тестов с

проверкой результата. При разработке данного возможности возник вопрос о

целесообразности создания пакетов программы 2-х типов.

• Программа преподавателя к которой будут подключены базы данных,

и которая будет иметь возможность выдавать билеты на печать или в

виде электронного теста.

• Программа студента которая не будет иметь доступ ко всем базам

данных а лишь к тем данным которые ей сможет передать программа

преподавателя, и которая после окончания теста передаст результаты

теста программе преподавателя.

Для преподавателя совсем необязательно будет пользоваться только своими

вопросами и своими локальными базами данных. Можно объединить все

вопросы занесенные преподавателями в общую базу данных и разместить её

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

следующим образом.

17

Page 18: Генератор экзаменционных билетов

Сервер с общей базой данных

Компьютеры преподавателей в компьютеризированных аудиториях

Рабочие станции учеников. Рабочие станции учеников.

Причём следует отметить что для роли компьютеров преподавателей должен

послужить относительно мощный компьютер, так как все вычисления и

преобразования реализуются на нём.А для рабочих станций студентов

достаточно компьютера поддерживающего операционную систему win 9x

или выше.

Использование сервера возможно не только как хранилище общих данных

внутри учебного заведения.

18

Page 19: Генератор экзаменционных билетов

• Эти данные с единого сервера можно публиковать на электронном

сайте. Для информирования учащихся о возможных предстоящих

вопросах на экзамене.

• Также сервер можно использовать как хранилище данных о

результатах тестов. Таких как

o Время решения теста

o Хранение полученных от студента ответов

o Полученная учащимся оценка в результате сопоставления этих

ответов с правильными.

Всё это позволит сделать процессы обучения и успеваемость более

наглядными.

Конечно использование совместных данных может привести и к

негативным сторонам этого вопроса. Ведь если каждый преподаватель будет

вносить свои вопросы а генерироваться вопросы будут из общей базы то

возможно в билеты попадутся и нежелательные вопросы, ведь у каждого

преподавателя свой подход .

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

Возможно создание текстового файла содержащего номера выбранных

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

в генерации билетов а не выбранные при помощи опций на панели Создание

билетов. Это позволит также группировать вопросы из разных тем и

предметов. Но главное преподаватель сможет переносить этот фаил на

любом носителе и на любом ком-ре на котором будет установлена программа

генерации экзаменационных билетов и будет доступ к общей базе данных

сможет открыть этот фаил и сгенерировать нужный комплект билетов.

Если преподавателю понравился определенный набор

сгенерированных билетов то он может сохранить его в форме отчёта с

последующей возможностью загрузки и печати. Эта возможность уже

включена в программу.

19

Page 20: Генератор экзаменционных билетов

Данная программа может контактировать с какими-то внешними данными.

Например данные о результатах тестов должны в какой-то мере объединятся

с данными об учащихся в данном учебном заведении.

Наборы вопросов с информацией о преподавателях Заключение

В заключение необходимо отметить, что данный программный продукт

предназначен для гибкой и полнообьёмной реализации потребностей как

большого преподавательского коллектива, или даже индивидуального

преподавателя, так и потребности большой организации.

При единой базе данных в среде одного учебного заведения молодые

преподаватели смогут использовать готовые вопросы более опытных коллег.

При этом сгенерированные ими вопросы не будут походи на билеты других

преподавателей.

Результаты тестов могут быть автоматически занесены в единую базу

школы или вуза, а возможно и базу министерства образования. При этом

пользователь с необходимым уровнем доступа(декан, проректор и т.д.)

сможет за несколько секунд получить информацию об успеваемости и

конкретных контрольных работах отдельного студента.

Данная программа может быть связанна с другими базами данных как

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

Информация о возможных вопросах, может легко быть выставлена на

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

информированным и в полной мере подготовиться к экзамену.

С другой стороны такой с помощью данной программы можно

генерировать всё более новые комплекты билетов не меняя при этом старую

базу вопросов. Это позволит предоставлять учащимся более качественные и

всеобьемлющие билеты.

20