MediawikiQuizzer
MediawikiQuizzer — расширение MediaWiki для проведения проверочных тестов.
Позволяет:
- Создавать тесты как обычные вики-страницы на обычном русском (или английском, или любом другом) языке.
- Проводить тестирование через веб-интерфейс.
- Просматривать результаты тестов.
- Создавать печатные версии тестов — листы вопросов и ответов.
Contents
Mediawiki4Intranet и дистанционное обучение
Mediawiki4Intranet является очень удачной (близкой к идеальной) технологией дистанционного обучения — то есть с учетов всевозможных расширений, в Mediawiki4Intranet можно использовать и удобную для ручного ввода WikiWiki-разметку, HTML-код (то есть можно использовать HTML-ресурсы), и даже LateX-верстку, что дает неограниченные возможности в представлении математики. Также можно размещать изображения, включая векторные.
Для получения полноценной системы дистанционного обучения, необходимо лишь дополнить Mediawiki4Intranet средствами контроля представленных знаний. Наиболее распространенная IT-технология контроля знаний — это тесты, то есть набор сформулированных вопросов, снабженных вариантами ответа, часть из которых являются правильными, а часть — нет. Это дает максимальное удобство для тестируемого, так и точность проверки.
Проектировщику обучающих материалов нужно только сформулировать проверочную структуру — набор вопросов, каждый из которых имеет варианты правильных и неправильных ответов, и возможно разьяснение.
Технология будет удачной и используемой, если все это (редактирование структуры, формулировка вопросов) будет удобной — тогда написание тестов можно сделать обязательным для любого обучающего материала, как написание тестов для программного кода.
Установка MediaWikiQuizzer
Как обычно с расширениями MediaWiki, нужно скопировать исходники в поддиректорию extensions/mediawikiquizzer/ вашей установки MediaWiki, добавить в LocalSettings.php несколько строчек и запустить скрипт php maintenance/update.php.
В LocalSettings.php:
$egMWQuizzerAdmins = array('WikiSysop'); require_once('extensions/mediawikiquizzer/mediawikiquizzer.php'); MediaWikiQuizzer::setupNamespace(104); // 104 - свободный индекс пространства имён
Но есть нюанс!
В связи со спецификой расширения, а именно в связи с тем, что все вопросы и правильные варианты ответов для удобства создаются и сохраняются на обычных вики-страницах в отдельном пространстве имён Quiz, требуется защита от просмотра его обычными пользователями. Однако в рамках MediaWiki это проблема: система изначально рассчитана на открытый доступ. Единственным расширением, которое способно надёжно защищать вики-страницы от просмотра, является HaloACL, и не все пользователи mediawikiquizzer’а захотят устанавливать и настраивать HaloACL, учитывая то, что оно имеет большое число проблем и багов.
Поэтому есть второй способ, более простой: создать рядом с уже установленной MediaWiki ещё одну, полностью закрытую (например, HTTP-авторизацией) и воспользоваться фичей MediaWiki под названием «Разделяемые таблицы БД». То есть, прописать следующее в её LocalSettings.php:
$wgSharedDB = 'original_wiki'; // база данных основной wiki $wgSharedTables = array('user', 'mwq_choice', 'mwq_choice_stats', 'mwq_question', 'mwq_question_test', 'mwq_test', 'mwq_ticket'); $wgSharedPrefix = ''; // или префикс, используемый основной wiki
Таким образом получится, что дополнительная вики будет использовать ту же базу данных пользователей и ту же базу данных вопросов/ответов/тестов/результатов тестирования MediaWikiQuizzer’а, но именно на её страницах будут располагаться исходники самих тестов, и поэтому они будут закрыты от обычных пользователей.
Создание и редактирование тестов
Для ведения проверочной структуры тестов применяется человеческий язык :)
Тесты
Отдельный тест описывается отдельной невложенной вики-страницей в пространстве имён Quiz. Например, Quiz:Тест задаёт тест. Quiz:Тест/Вопросы не задаёт тест.
Тест состоит из:
- Параметров теста
- Вопросов и вариантов ответов
И то, и другое описывается по-человечески и может включаться с других вики-страниц обычными вики-включениями {{:ИмяСтраницы}}. То есть, например, можно создавать библиотеки вопросов, а потом, набирая разные вопросы, формировать разные тесты.
Обновление теста происходит при пересохранении страницы теста или любой статьи пространства имён Quiz, включаемой в страницу теста.
Параметры теста
Параметры теста описываются обычным списком определений в вики-синтаксисе со специальными именами «терминов». А именно:
- Название
- Основы SQL
Просто некий заголовок. Если этого пункта нет, в качестве заголовка будет взято название вики-страницы. - Введение
- Данный тест позволит вам проверить базовы навыки в области языка запросов SQL.
Этот текст будет показан в режиме тестирования над тестом. Если для введения мало одной строчки, в начале страницы можно создать подраздел с заголовком == Введение ==, и его содержимое будет принято за этот текст. - Режим
- TUTOR
Возможные значения: TEST или TUTOR. Подробнее см. #Обучающие тесты - Число вопросов
- 10
Если на странице много вопросов, а тестировать нужно только по части из них, здесь задаётся размер этой части. - Переставлять вопросы
- да
Если «да», то вопросы теста будут случайным образом переставлены. Если при этом задано «Число вопросов» равное, к примеру, 10, то будет выбрано 10 случайных вопросов из всех доступных. - Переставлять ответы
- да
Если «да», то варианты ответа на каждый вопрос также будут случайным образом переставлены. - Процент завершения
- 80
Требуемый % правильных ответов для того, чтобы результат был признан успешным прохождением теста. - Мин. попыток слишком простых вопросов
- 5
См. подробнее #Автоудаление простых вопросов - % успехов слишком простых вопросов
- 90
См. подробнее #Автоудаление простых вопросов
В качестве примера секции параметров можете взять код этой секции, убрав из него весь курсив.
Вопросы
Каждый вопрос задаётся отдельной секцией статьи («подзаголовком» статьи) и имеет:
- Текст вопроса.
- Текст объяснения для режима обучающего теста. Этот текст будет показан в результатах тестирования, если человек ответит на вопрос неправильно. Подробнее см. #Обучающие тесты.
Объяснение задаётся секцией с названием == Объяснение ==. - Метку для проверяющего. Эта метка будет показываться в печатных проверочных листах и может использоваться, например, проверяющим, чтобы сразу понять, для тестирования какой темы добавлен этот вопрос.
Метку можно задать в заголовке секции вопроса или отдельной подсекцией с заголовком == Метка ==. - Комментарии к вопросу. Эти комментарии понимаются как комментарии в языке программирования — при обработке теста они просто вырезаются.
Комментариями считается всё, что располагается в секциях с названием == Комментарии ==. - Варианты ответа.
Чтобы секция была принята за вопрос, её заголовок должен называться == Вопрос == или == Вопрос: метка вопроса ==. Уровень заголовка роли не играет.
Ответы
Варианты ответа можно задать двумя способами:
1. Одной секцией с названием == Ответы == или Варианты ответа, содержащей в себе нумерованный (*) или маркированный (#) список, каждый элемент которого будет признан отдельным вариантом ответа. При этом правильными вариантами будут признаны те, в начале текста которых есть слова Правильный ответ: (далее текст ответа).
== Вопрос: кролики == Как быстро кролики размножаются? === Ответы === * Медленно * Правильный ответ: Быстро * Очень быстро * Феерически быстро
2. Если на текст варианта ответа недостаточно одной строчки, его можно задать отдельной секцией с названием == Ответ == или == Правильный ответ ==. В принципе, оба способа задания можно также и смешивать.
== Вопрос: кролики == Как быстро кролики размножаются? === Ответ === Медленно ''y = kx'' === Правильный ответ === Быстро ''y = k<sup>x</sup>''
Лог разбора страницы
После сохранения вверху страницы каждого теста можно увидеть ссылку «[+] Показать лог разбора страницы теста». Если на неё кликнуть, будет показана некоторая отладочная информация, по которой можно понять, как mediawikiquizzer разбирал страницу теста. Зелёные маркеры говорят о том, что всё ОК, жёлтые — о возможной ошибке, красные — о явной ошибке. Явной ошибкой является, к примеру, вопрос без единого правильного варианта ответа.
Тестирование
После сохранения вверху страницы каждого теста можно увидеть также и две ссылки:
- Пройти тест «Название теста»
- Версия для печати
Как несложно догадаться, первая служит для перехода на саму страницу тестирования, а вторая — для вывода печатной версии теста.
Каждый раз при тестировании или выводе печатной версии генерируется новый вариант теста. Вариант теста, по сути, есть выборка из его вопросов и ответов, по которой в будущем можно восстановить, как именно был перемешан тест при показе пользователю. Реальные номера вопросов и ответов пользователь увидеть не может. Для удобства вариант теста характеризуется некоторой 32-битной цифрой, по этой цифре можно искать результаты на странице просмотра результатов (см. #Просмотр результатов).
После выбора вариантов ответа и их отправки на сервер пользователь увидит свой результат. Это будут две цифры:
- Правильные ответы — количество правильных ответов.
- Очки — (количество правильных ответов) минус (сумма отношений числа правильных ответов к числу неправильных ответов для каждого ответа). То есть то же значение минус штраф за неправильные ответы. Невыбранный ответ не считается неправильным. При случайном выборе «очки» имеют матожидание, равное нулю :)
Печатная версия теста
Печатная версия теста включает в себя три части, разделённые разрывами страниц:
- Лист вопросов — просто список вопросов, выведенных друг под другом.
- Форма для тестирования — таблица с номерами вопросов и пустыми клетками для вписания ответов и примечаний.
- Проверочный лист — похожая таблица с номерами вопросов, номерами правильных ответов, статистикой правильных ответов по каждом вопросу и метками вопросов. Кстати, если на ссылку печатной версии теста попадёт пользователь, не имеющий доступа к странице — исходнику теста, и не являющийся одним из $egMWQuizzerAdmins (см. #Установка MediawikiQuizzer), проверочный лист ему показан не будет. Так как нечего подглядывать правильные ответы! :)
Обучающие тесты
Если задать для теста режим TUTOR (см. #Параметры теста), то тест станет «обучающим». Это означает, что после прохождения теста будет показан не только количественный результат правильных/неправильных ответов, но и будут перечислены вопросы, на которые человек ответил неправильно, причём будут показаны и тексты вопросов, и выбранные ответы, и правильные ответы, и объяснения к вопросам. Таким образом человек сможет учиться, или по крайней мере заучить правильные ответы, что тоже неплохо, если их много.
Автоудаление простых вопросов
Предположим, у вас есть куча вопросов, но какие-то из них, возможно, слишком простые и их в будущем хотелось бы удалить. А какие — неизвестно. С помощью MediawikiQuizzer’а можно воспользоваться статистическим методом их удаления :)
Нужно задать 2 параметра теста:
- Мин. попыток слишком простых вопросов
- N
- % успехов слишком простых вопросов
- M
Тогда вопросы, на которые ответило по меньшей мере N человек, и из них успешно ответило >= M процентов, будут признаны «слишком простыми» и в следующие варианты тестов не попадут.
Например, можно задать N=5, M=80.
Просмотр результатов
Для просмотра результатов используется служебная страница «Опросы MediaWiki».
Можно выбирать результаты по варианту, пользователю, времени начала/окончания тестирования; можно просматривать полученный список по страницами и выбирать количество записей на странице. Некоторые хитрые ссылки:
- В колонке «ID попытки» содержится ссылка на результат тестирования в том виде, в котором он был представлен пользователю.
- В колонке «Тест» содержится две ссылки — на страницу теста и на страницу прохождения теста заново.
- В колонке «Вариант» содержится ссылка на печатную версию именно того варианта теста, который проходил пользователь.
Обратите внимание — на печатной версии теста возле вопросов есть ссылки «править» (похожие на обычные вики-ссылки правки секций), которые направят вас сразу на редактирование нужного раздела нужной страницы! Это даёт возможность очень легкой отладки тестов: тестируемый пожаловался на ошибку в «вопросе таком-то, варианте таком-то», вы открываете просмотр результатов, открываете вариант и редактируете вопрос прямо оттуда!
Остальные колонки говорят сами за себя. Разве что ещё «Очки» и «Ответы» красятся в зелёный цвет, если попытка прохождения была засчитана успешной, и в красный, если нет.