GIFT-формат файлів імпорту

GIFT-формат файлів імпорту

GIFT - формат розмічування тексту, який дозволяє імпортувати у Moodle тестові завдання за допомогою текстового файлу. Він підтримує тестові завдання закритої та відкритої форм таких типів, як: вибір з множини, вірно-невірно, коротка відповідь, вибір відповідності, числова відповідь, а також завдання "пропущене слово" (______). Крім того, GIFT-формат дозволяє створювати коментарі до варіантів відповідей, назви тестових завдань, вагові коефіцієнти оцінювання варіантів відповідей та інше.

Усі типи тестових завдань можуть бути зібрані в один текстовий файл. Текст файлу імпорту повинен мати кодування юнікод UTF-8 (якщо ви використовуєте не ASCII символи).

Загальні правила формату GIFT

Тестове завдання складається, як правило, з питання та варіантів відповідей до нього. Варіанти відповідей відокремлюються від питання фігурними дужками ({}). Текст окремого тестового завдання у файлі не повинен вміщувати порожніх рядків. Відокремлення завдань один від одного здійснюється порожнім рядком (подвійне натискання клавіші ENTER). Якщо при написанні питання тестового завдання потрібно перейти на НОВИЙ РЯДОК, необхідно використовувати комбінацію символів \n (прямий слеш, латинська буква n). Якщо необхідно вставити у файл рядок з коментарем, він повинен починатися з двох зворотних слешів (//). Коментарі можна робити в будь-якому місці файлу.

Типи тестових завдань

Тестове завдання "Вибір з множини"

Для тестових завдань "вибір з множини" невірні варіанти відповідей відмічаються символом "тильда" (~), а вірні символом "знак рівняння" (=).

Приклад
Хто написав роман "Война и мир"? { ~Пушкін О.С. ~Лермонтов Ю.М. =Толстой Л.М. ~Толстой О.К. }

Тестове завдання "Пропущене слово"

Це різновид тестового завдання "вибору з множини". При показі тестового завдання слово, вибір варіанту якого необхідно здійснити, автоматично замінюється символами підкреслення (_____). Для розмічення завдання такого типу варіанти відповідей необхідно размістити у тому місці, де повинно розміщуватися "пропущене слово".

Приклад
C/C++ є мовою програмування {~низького =високого ~нульового} рівня.

Якщо варіанти відповідей розміщенні перед останнім символом пунктуації питання завдання, то в цьому місці завжди будуть вставлені символи "пропущеного слова". Усі типи тестових завдань можуть бути написані за допомогою "пропущеного слова".

Для ясності варіанти відповідей можуть бути записані в окремих рядках і навіть із абзацним відступом:

Приклад
C/C++ є мовою програмування
{
~низького
=високого
~нульового
} рівня.

Хто написав роман "Война и мир"?
{
~Пушкін О.С.
~Лєрмонтов Ю.М.
=Толстой Л.М.
~Толстой О.К.
}

Тестове завдання "Коротка відповідь"

Відповіді у цьому типі тестових завдань завжди починаються з префіксу "знак рівняння" (=). Таке розмічування означає, що всі відповіді вірні. В цьому типі тестових завдань не повинно бути варіантів відповідей з префіксом "тильда" (~).

Приклад
Хто написав роман "Война и мир"?
{
=Толстой
=Толстой Л.М.
=Лев Толстой
}

Два плюс два дорівнює: {=4 =чотири}.

Якщо встановлюється тільки один варіант вірної короткої відповіді, то відповідь може бути записана без префіксу "знак рівняння" (=). Треба підкреслити, що у цьому випадку тестове завдання можна сплутати з тестовим завданням "вірно-невірно".

Тестове завдання "Вірно-невірно"

На тестове завдання цього типу необхідно дати однозначну відповідь - вірне ствердження, чи ні. Вірне ствердження записується як {TRUE} або {T}, а невірне як {FALSE} або {F}.

Приклад
Лев Миколайович Толстой автор роману "Война и мир"? {T}

Мова програмування C/C++ є мовою низького рівня? {F}

Тестове завдання "Вибір відповідності"

Розмічування відповідних пар починається з символу рівняння (=), а підпитання і вірна відповідь відокремлюються двома символами "->". Треба зауважити, що у тестовому завданні такого типу повинно бути не менше трьох відповідних пар.

Приклад
Питання про відповідність?
{
=підпитання1 -> відповідь1
=підпитання2 -> відповідь2
=підпитання3 -> відповідь3
}

Вкажіть столиці нижче вказаних країн:
{
=Канада -> Отава
=Україна -> Київ
=Італія -> Рим
=Японія -> Токіо
}

Тестові завдання "вибір відповідності" не підтримують методичних вказівок та вагових коефіцієнтів оцінювання варіантів відповідей.

Тестове завдання "Числова відповідь"

Вірна відповідь в тестовому завданні "числова відповідь" повинна починатися зі знаку "номера" (#). Розділювачом між цілою та дробовою частинами числа є крапка (.). Опис числової відповіді може містити величину похибки, у межах якої відповідь вважатиметься за вірну. Вірна відповідь та похибка повинні бути відокремленні двокрапкою ( : ). Так, наприклад, якщо вірною відповіддю є величина, що знаходиться у межах від 1.5 до 2.5, то опис правильної відповіді повинен мати вигляд {#2:0.5}. Останнє означає, що вірною відповіддю є число 2±0.5. Якщо похибка не вказана, то її розмір вважається нульовим.

Приклад
У якому році народився Тарас Шевченко? {#1814}

Яке значення має число Pi (до 4-х знаків після десяткової крапки)? {#3.1415:0.005}.

Крім того, числова відповідь може бути задана наступним чином {#МінімальнеЗначення..МаксимальнеЗначення}. Розділювачом між максимальним та мінімальним значеннями припустимої межі вірної відповіді є подвійна крапка( .. ).

Приклад
Яке значення має число Pi (до 3-х знаків після десяткової крапки)? {#3.141..3.142}.

У Moodle можливе створення тестового завдання вибору з множини числових відповідей. Цей варіант може бути використано, наприклад, для комбінації множини числових відповідей з ваговими коефіцієнтами оцінювання вірних відповідей. Множина числових відповідей повинна бути відокремлена знаком "рівняння" (=), як це робиться при розмічуванні тестових завдань "короткої відповіді".

Приклад
Яке значення має число Pi (до 4-х знаків після десяткової крапки)?
{#
=3.1415:0
=%50%3.1415:0.002
=%25%3.1415:0.004
}

Тестове завдання "Есе"

Тестове завдання "Есе" це питання з пустим текстовим полем для відповіді. Розмічення цього типу завдання має фігурні дужки без змісту.

Приклад
Напишіть коротку біографію Т.Г. Шевченко.
{
}

Тестове завдання "Нотатка"

Тестове завдання "нотатка" не має варіантів відповідей і грає роль пояснень на сторінках показу тестових завдань - сторінках тесту.

Приклад
Наступні тестові завдання вміщують арифметичні операції.

Додаткові можливості

У доповненні до вище означеного GIFT-формат дозволяє створювати у файлі імпорту рядки коментарів, назви тестових завдань, методичні вказівки до варіантів відповідей, вагові коефіцієнти варіантів відповідей у відсотках.

Рядкові коментарі

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

Рядок з коментарем починається з подвійного зворотного слешу (//), котрий не повинен бути розділеним пробілом або табуляцією. При імпортуванні рядки з коментарями ігноруються.

Приклад
// Тестове завдання "Вірно-невірно"

Мова програмування C/C++ є мовою низького рівня? {F}

Назва тестового завдання

Кожне тестове завдання має обов'язковий елемент - назву. Для розмічення назви використовують дві подвійні двокрапки ( ::назва:: ), між якими знаходиться текст назви. Місцезнаходження назви - перший рядок тестового завдання.

Приклад
::Твори Л.М.Толстого::
Хто написав роман "Война и мир"?
{
~Пушкин А.С.
~Лермонтов Ю.М.
=Толстой Л.М.
~Толстой О.К.
}

::Столиці світу::
Вкажіть столиці нижче вказаних країн:
{
=Канада -> Оттава
=Україна -> Київ
=Італія -> Рим
=Японія -> Токіо
}

::Завдання 01_01::
Мова програмування C/C++ є мовою низького рівня? {F}

Якщо назву не вказано, то замість назви буде використовуватись сам текст тестового завдання (небажаний варіант).

Методичні вказівки

Методичні вказівки та пояснення до варіантів відповідей можуть входити до складу кожного тестового завдання. Вставка цих елементів здійснюється за допомогою знаку "номеру" (#) і тексту самої вказівки або пояснення.

Приклад
С/C++ є мовою програмування
{
~низького#Уважно перечитай розділ підручника.
=високого#Відмінно!
~нульового#Дуже погано. Такого рівня для мов програмування не існує.
} рівня.

Хто написав роман "Війна та мир"?
{
=Толстой#Молодець! Вірно.
=Толстой Л.М.#Молодець! Вірно.
=Лев Толстой#Молодець! Вірно.
}

Мова програмування C/C++ є мовою низького рівня? {F#Вибач! Але мова C/C++ не є мовою низького рівня.#Молодець! Вірно.}

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

Вагові коефіцієнти оцінювання

Ваговий коефіцієнт оцінювання варіанту відповіді доступний для двох типів завдань: "Вибір з множини" та "Коротка відповідь". Вставка значення вагового коефіцієнту у текст імпорту тестового завдання здійснюється за допомогою символу процента (%значення%) після тильди (~) для завдань "Вибір з множини" або після знаку рівняння (=) для завдань "Коротка відповідь". Ця процедура може бути доповнена вставкою методичної вказівки чи пояснення.

Приклад
Складне питання.
{
~невірна відповідь
~%50%частково вірна відповідь
=вірна відповідь
}

Множинні відповіді

Множинні відповіді використовуються у тестових завданнях "Вибору з множини", коли дві або більше відповідей повинні бути обрані для повної відповіді на поставлене питання.

Приклад
Хто створював прототипи попередників сучасних комп'ютерів?
{
~ Рузвельт#Не вірно
~%50%Бебідж
~%50%Нейман
~ Біл Гейтс#Не вірно
}

Зверніть увагу, перед жодною відповіддю не стоїть знак рівняння (=) і тому сумарна оцінка повинна дорівнювати 100%. Якщо це не так, то система покаже помилку.

Для завдань такого типу існує проблема, коли студент, обравши усі варіанти відповідей, автоматично отримує оцінку у 100%. Для уникнення цієї проблеми бажано вводити від'ємні вагові коефіцієнти для невірних відповідей.

Приклад
Хто створював прототипи попередників сучасних комп'ютерів?
{
~%-50%Рузвельт#Не вірно
~%50%Бебідж
~%50%Нейман
~%-50%Біл Гейтс#Не вірно
}

Особливості форматування тексту

Текст питання тестового завдання (лише він) може бути розміченим відповідно до вимог форматування web-сторінок. Доступними форматами є системний формат Voodle (Moodle Auto-Format), HTML (HTML-format), формат звичайного тексту (Plain text format) та markdown (Markdown format). Вибір формату визначається у квадратних дужках ([]) на початку тексту питання тестового завдання. Більше інформації про форматування текстів можна переглянути тут.

Приклад
[markdown]С++ є мовою програмування високого рівня? {T}

::Тестове завдання 01::
[html]Хто створював прототипи попередників сучасних комп'ютерів?
{
~%-50%Рузвельт#Не вірно
~%50%Бебідж
~%50%Нейман
~%-50%Біл Гейтс#Не вірно
}

Спеціальні символи ~ = # {}

Символи ~ = # { } мають спеціальне призначення і тому не можуть використовуватися як звичайні символи тексту питань або відповідей. Системні фільтри стежать за такими символами і виконують відповідні до них дії. Ці символи називають ще "контрольними символами". Якщо Вам потрібно використати ці символи у тестовому завданні, наприклад, для cn створення математичної формули, то для запобігання появи помилок перед контрольним символом ставиться зворотній слеш(\).

Приклад
Яка сума дорівнює 5-ти?
{
~ \= 2 + 2
= \= 2 + 3
~ \= 2 + 4
}

::Спеціальні символи GIFT-формату::
Які символи з наведеного переліку НЕ є спеціальними символами формату імпорту GIFT?
{
~ \~    # \~ є спеціальним символом.
~ \=    # \= є спеціальним символом.
~ \#    # \# є спеціальним символом.
~ \{    # \{ є спеціальним символом.
~ \}    # \} є спеціальним символом.
= \     # Вірно! \ (backslash) НЕ є спеціальним символом.
}

Тестові завдання за розділами

У форматі GIFT існує можливість встановлення розділів, до яких будуть імпортовані тестові завдання з файлу. Встановлення розділу виконується за допомогою модифікатору ( $CATEGORY: ). У файлі можна встановити будь яку кількість модифікаторів. Модифікатор у файлі відокремлюється порожніми рядками. Усі тестові завдання після модифікатора (до наступного модифікатора) будуть віднесені до вказаного розділу. Якщо категорія не вказана, то тестові завдання будуть імпортовані у розділ вищого рівня банку тестових завдань.

Приклад
$CATEGORY: Філософія/Тема_01 або $CATEGORY: Тема_01

У цьому випадку завдання будуть імпортовані у розділ Тема_01. Якщо розділу, який вказаний у файлі імпорту, не існує у банку тестових завдань, то він буде створений автоматично.

Інші функції

Завдання з короткими відповідями можуть бути оформлені по принципу вибору з "0" або "1", як у прикладі:

Приклад
$питання->usecase = 0; // вибір ігнорується
Zuletzt geändert: Friday, 14. March 2014, 10:49