2. Импорт и экспорт воросов

2.2. Формат GIFT для импорта/экспорта тестовых заданий

В предыдущем разделе подробно рассматривались средства системы Moodle для создания тестовых заданий разных типов. Учитывая, что хороший Банк тестовых заданий по учебному курсу должен содержать сотни вопросов, его наполнение может потребовать от разработчика достаточно большого времени. В ряде случаев, например при создании большого количества однотипных тестовых заданий, может оказаться более производительным использование имеющихся в Moodle средств импорта/экспорта тестовых заданий представленных в текстовом формате GIFT.

Описания вопросов могут создаваться преподавателем в текстовом редакторе с соблюдением требований формата  GIFT, при этом большое количество вопросов разного типа может объединяться в одном файле. Затем этот файл может быть быстро за один сеанс импорта загружен в конкретные категории Банка тестовых заданий Moodle или в элемент «Лекция».

Выгрузка (экспорт) уже существующих вопросов в файл GIFT может оказаться полезной, например, при переносе тестовых заданий из одного курса в другой и на другой сайт Moodle. Иногда может оказаться более удобным осуществлять проверку описаний вопросов, представленных вместе в одном текстовом файле, а не по одному через стандартный описанный выше интерфейс создания/редактирования вопросов.

Общие инструкции по формату GIFT

Описания конкретного вопроса в GIFT не должно содержать пустых строк. Напротив, между описаниями вопросов должна быть, по крайней мере, одна пустая строка.

Для выделения пустой строки можно использовать символ начала новой строки «\n».

В простейшем случае вначале описания вопроса следует его формулировка, затем список ответов, который открывает фигурная скобка «{», и закрывает «}». Знак «=» (равно) предваряет правильный ответ(ы), а знак «~» (тильда) неправильный ответ(ы). Символ  решетка «#» предваряет текст отзыва или ответ в числовом вопросе. У ответов на вопрос можно указывать их вес, использую знаки процента (%..%) вокруг числа, обозначающего вес. Комментарии в описании вопроса предваряются двойным слэшем «//» и при обработке системой в Банк вопросов не импортируются.

Любой GIFT-файл должен быть представлен в кодировке UTF-8. Для редактирования GIFT-описаний вопросов можно использовать текстовый редактор Microsoft Notepad, который может сохранять файл в кодировке UTF-8.

Ниже приведены простые примеры представления вопросов в формате GIFT.

// Вопрос типа «верно/неверно» («истина/ложь», «true/false)

::Q1:: 1+1=2 {T}

 // «Множественный выбор» с отзывами для правильных и неправильных ответов

::Q2:: Где всходит солнце?

{ =на востоке #правильно, отлично ~на западе #неправильно, на востоке ~на севере #неправильно, на востоке ~на юге #неправильно, на востоке }

 

// Вопрос «Заполнить пропуски»

::Q3:: Два плюс {=два =2} равно четырем.

 

// Вопрос «На соответствие»

::Q4:: Укажите столицы стран? { =Россия->Москва =Испания-> Мадрид =Италия->Рим }

 

// «Числовой» с указанием диапазона чисел

::Q5:: Укажите число 1 to 5? {#3:2}

 

// «Числовой» с указанием границ интервала чисел

::Q6:: Укажите число 1 to 5? {#1..5}

// вопрос импортируется точно так же, как и предыдущий Q5, но является недоступным интерфейс создания вопросов Moodle

 

// Множественные числовые ответы с указание частичных оценок и отзывов

::Q7:: В каком году была летняя олимпиада в России?

   {#

   =1980:0     #Правильно! Получаете максимальный балл.

   =%50%1980:2 #Не точно, в 1980-м. Оценка – половина баллов.

   }

 

// «Эссе»

::Q8:: Привет. Как дела? {}

 

//Строка комментариев

::Q8 Наименование вопроса

::Текст вопроса {

=Правильный ответ

#Отзыв для правильного ответа

~Неправильный ответ 1

#Отзыв для неправильного ответа 1

~Не правильный ответ 2

# Отзыв для неправильного ответа 2

~Не правильный ответ 3

# Отзыв для неправильного ответа 3

~Не правильный ответ 4

# Отзыв для неправильного ответа 4

}

 

Кратчайший формат вопроса с множественным выбором выглядит так.

Вопрос{=Правильный ответ ~Неправильный ответ 1 ~Неправильный ответ 2 ~ Неправильный ответ 3 }

 

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

Типы вопросов

Вопрос типа «Множественный выбор» с одним правильным ответом

В этом вопросе для выбора правильного ответа используются радио-кнопки. Неправильные ответы отмечаются в вопросе символом «~» (тильда), а единственный правильный символом «=» (равно).

Пример простого вопроса этого типа.

Столица России? { =Москва ~Париж ~Рим ~Токио ~Пекин }

Пример вопроса этого типа, использующий большинство элементов GIFT-формата.

// Пример более полного вопроса

::Столица России::Какой город является столицей России?

{

=Москва

~Париж

#Это столица Франции

~Рим

#Это столица Италии

~Токио

#Это столица Японии

~Пекин

#Это столица Китая

}

Вопрос «Множественный выбор» с несколькими правильными ответами

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

Какие из перечисленных городов находятся в России?

{

   ~%-100%Ни один

   ~%50%Москва

   ~%50%Санкт-Петербург

   ~%-100%Париж

   ~%-100%Рим

}

Вопрос типа «Пропущенное слово»

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

Пример GIFT представления такого вопроса.

Столица России {~Париж =Москва ~Рим ~Токио } расположена в центральной части страны.

Более сложный пример вопроса с двумя пропущенными словами

Город Санкт-Петербург был основан

{

~Екатериной II

~Александром I

=Петром I

~Николаем II

}

в { ~1812 =1703 ~1861 ~1786 } году.

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

Вопрос типа «Короткий ответ»

Все ответы в вопросе «Короткий ответ» начинаются знаком «=» (равно), показывающим правильный ответ. Не должно быть ответов, содержащих знак «~» (тильда).

Примеры.

Какая страна расположена и в Европе и в Азии?

{=Россия =Турция}

Два плюс два равно {=четыре =4}.

Если в вопросе «Короткий ответ» указывается только ОДИН правильный ответ, то он может быть написан без знака равенства.

Вопрос типа «Верно/Неверно»

В этом типе вопроса необходимо указать, является ли утверждение верным или неверным. Ответ должен быть написан как {TRUE} или {FALSE}, или сокращенно {T} или {F} (TRUE  истина, FALSE ложь).

//Вопрос, использующий стиль «Истина»

Солнце встает на Востоке.{T}

//Вопрос, использующий стиль «Ложь»

Солнце встает на Западе.{F}

Вопрос «На соответствие»

В вопросе «На соответствие» сочетающиеся пары начинаются знаком «=» и разделяются знаком «->». Должно быть как минимум три сочетающиеся пары.

Примеры.

Укажите столицы государств:

{

=Россия -> Москва

=Италия -> Рим

=Япония -> Токио

=Франция -> Париж

}

Вопросы на соответствие не поддерживают отзывы и процентное оценивание частично правильных ответов.

Вопрос типа «Числовой»

Ответ в числовом вопросе должен начинаться с символа «#» (решетка). Числовые ответы могут включать указание на величину погрешности ответа, которая пишется после правильного ответа и отделяется от него двоеточием. Например, если правильный ответ находится в диапазоне от 1.5 до 2.5, тогда ответ должен быть написан так: {#2:0.5}. Эта запись обозначает, что правильный ответ равен «2» с погрешностью ±0.5 (т.е. диапазон от 1.5 до 2.5). Если погрешность в ответе не указана, то по умолчанию подразумевается, что она равна нулю.

Пример.

Чему равно значение числа π (пи) с точностью 3 знака после запятой? {#3,14159:0,0005}.

Ответ на этот вопрос 3,141 будет засчитан, как неправильный, а ответ 3,142 как правильный.

Диапазон правильных ответов может быть также задан в таком виде: {#Минимальное значение..Максимальное значение}

Обратите внимание на то, что между значениями границ диапазона находятся ДВЕ точки.

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

Чему равно значение числа π (пи) с точностью 3 знака после запятой? {#3,141.. 3,142}.

Формат GIFT позволяет создавать множественные числовые ответы Это удобно для определения нескольких интервалов правильных ответов и для их процентного оценивания. Если используются множественные числовые ответы, то они разделяются знаком равенства (подобно вопросу типа короткий ответ).

Пример.

Чему равно значение числа π (пи)?

{#=3,14159:0 =%75%3,14159:0,0005 0=%50%3,14159:0,005}.

В этом примере, если студент ответит 3,14159, то он получит максимальную оценку, если 3,142, то 0,75 от максимальной, а при ответе 3,14 его оценка составит половину от максимальной.

Вопрос типа «Эссе»

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

Пример.

Напишите краткую биографию А.С. Пушкина {}.

Вопрос типа «Описание»

Строго говоря, этот тип вопроса не является тестовым заданием. Он просто показывает студенту какой-то текст без требования от него ответа.  На самом деле это скорее метка, чем тип вопроса.

Пример.

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

Дополнительная информация

Дополнительно к приведенному описанию GIFT-формата базовых типов вопросов этот формат предлагает еще следующие возможности.

Строка комментариев

Все строки, которые начинаются с двойного слеша «//» считаются комментариями и при импорте GIFT-файла пропускаются и не обрабатываются. Они используются для обеспечения удобочитаемости текста с вопросами.

Например.

// Далее следуют вопросы числового типа:

Сколько будет 2+2? {#4}

При экспорте вопросов из Moodle в файл GIFT-формата в комментарий вопроса включается уникальный системный идентификатор вопроса

// question: 914  name: Сколько будет 2+2?

:: Сколько будет 2+2?::Сколько будет два плюс два? {#=4:0#}

Название вопроса:

Название вопроса может быть задано перед текстом вопроса и обрамляется с обеих сторон двойными двоеточиями «::».

::Столица России::Назовите столицу России? {=Москва}

 

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

Отзывы на варианты ответов

В тексте вопроса для каждого варианта ответа могут быть включены отзывы. Текст отзыва на вариант ответа пишется сразу же после самого ответа и предваряется знаком «#» (решетка).

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

Выберите правильный вариант ответа

{

~неправильный ответ #отзыв к неправильному ответу

~другой неправильный ответ #отзыв к другому неправильному ответу

=правильный ответ #Очень хорошо!

}

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

Какая страна расположена и в Европе и в Азии?

{

=Россия #отличный ответ!

=Турция #отличный ответ!

}

Для вопросов типа «верно/неверно» может быть два разных отзыва для случая, когда студент отвечает «Верно», и для ответа «Неверно» (первым находится комментарий для ответа «Верно»).

Украина находится в Азии.

{FALSE#Неправильно, Украина расположена в Европе.#Правильно.}

Процентное оценивание ответов

Процентные веса ответов могут использоваться в вопросах «Множественный выбор» и «Короткий ответ». Значения веса задаются после знака «~» (тильда) (для вопросов «Множественный выбор») или знака равенства (для вопроса «Короткий ответ»). Значение веса с обеих сторон заключается в знак процента «%» (например, %50%).

Пример.

Сложный вопрос:{~неправильный ответ ~%50%ответ, оцениваемый в половину =правильный, полностью оцениваемый ответ}

Процентный вес может быть скомбинирован с комментариями для вариантов ответов.

::Город Иисуса::Иисус Христос из:

{

~Иерусалима#Это важный город, но ответ неправилен.

~%25%Вифлеема#Он родился там, но вырос в другом городе.

~%50%Галилея#Вы должны быть более точным.

=Назарета#Да! Это правильный ответ!

}

или

::Город Иисуса:: Иисус Христос из:

{

=Назарета#Да! Это правильный ответ!

=%75%Назерета#Правильно, но допущена орфографическая ошибка.

=%25%Вифлеема#Он родился там, но вырос в другом городе.

}

Заметим, что последние два примера представляют одинаковые вопросы, но первый вопрос Множественный выбор, а второй Короткий ответ.

Определение форматирования текста для вопроса

Для форматирования текста доступны следующие форматы: moodle (авто‑формат Moodle),  html (HTML-формат), простой (Простой текстовый формат) и markdown (Markdown-формат).

Формат задается в квадратных скобках перед текстом вопроса.

Например

[markdown]Православное Рождество отмечают

{ ~пятого ~двадцать пятого =седьмого } января.

Множественные ответы

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

Например

Где расположена Россия?

{

~в Америке

~%50%в Европе

~%50%в Азии

~в Африке

}

Заметьте, что сумма процентных весов ответов обязательно должна составлять 100%, иначе Moodle выдаст сообщение об ошибке. Для предотвращения этого необходимо внимательно проверять сумму весов.

Можно включать отрицательные веса в неправильные варианты ответов.

Например.

Где расположена Россия?

{

~%-50%в Америке

~%50%в Европе

~%50%в Азии

~%-50%в Африке

}

Специальные символы «~», «=», «#», «{», «}», «:»

Символы «~», «=», «#», «{», «}», «:» контролируются фильтром при импорте вопросов из GIFT-формата и, поэтому, не могут быть использованы в тесте вопроса. Они участвуют в разделении частей вопроса, и называются управляющие или специальные символы. Но иногда все же возникает необходимость использования таких символов в тексте вопроса, например, в математических формулах. Путем для решения таких проблем является «пропуск» управляющих символов. Для этого перед таким символом управления необходимо поставить обратный слеш «\».

Например:

Какое из выражений равняется 5?

{

~ \= 2 + 2

= \= 2 + 3

~ \= 2 + 4

}

или

::Символы управления GIFT::

Какой из перечисленных символов не является символом управления GIFT-формата?

{

~ \~ # \~ это символ управления.

~ \= # \= это символ управления.

~ \# # \# это символ управления.

~ \{ # \{ это символ управления.

~ \} # \} это символ управления.

= \ # Правильно! \(обратный слеш) это не символ управления. Он используется для ПРОПУСКА последующих символов.

}

При обработке вопроса в Moodle обратный слеш удаляется и не отображается.

Определение категорий

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

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

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

Для включения модификатора категории необходимо включить в файл специальную строку (выделенную с обеих сторон пустыми строками):

$CATEGORY: Том/Дик/Джерри

или

$CATEGORY: моя категория

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