Механизм реализации шаблонов тестовых заданий в системе AcademicNT

МЕХАНИЗМ РЕАЛИЗАЦИИ ШАБЛОНОВ ТЕСТОВЫХ ЗАДАНИЙ

В СИСТЕМЕ ACADEMICNT

А.В. Ольшевская Научный руководитель - к.т.н., доцент А.В. Лямин

В данной статье отражены основные достоинства технологии создания шаблонов тестовых заданий. Рассмотрены наиболее заинтересовавшие аналоги. Показан механизм реализации шаблонов тестовых заданий в СДО AcademicNT. Рассмотрено DOM-представление XML-описания шаблонов. Представлен пример тестового задания, реализованного с помощью новой технологии.

Введение

В связи с повсеместным распространением систем дистанционного обучения (СДО) происходит все большая информатизация процесса обучения. На базе центра дистанционного обучения (ЦДО) Санкт-Петербургского государственного университета информационных технологий, механики и оптики (СПбГУ ИТМО) создана система AcademicNT, которая является сетевой информационной средой для организации и проведения учебного процесса средствами современных дистанционных технологий [1, 2]. Она способствует внедрению в учебный процесс современных компьютерных технологий. Основной целью использования данной системы является повышение качества обучения посредством активизации самостоятельной работы студентов.

Для проверки уровня подготовки обучаемых в системе AcademicNT предусмотрены виртуальные лаборатории, электронные тесты и практикумы [1-3]. Однако наиболее востребованными среди преподавателей являются электронные тесты, которые используются не только для проведения аттестаций и репетиций, но и для построения адаптивных обучающих диалогов, наиболее эффективного инструмента электронного обучения. Создание адаптивных обучающих диалогов является трудоемким процессом, занимающим порой длительное время.

Интенсивное развитие СДО приводит к появлению новых разработок, применение которых должно упростить процесс создания и расширить функциональные возможности электронных тестов. Для уменьшения трудозатрат, минимизации времени разработки, а также повышения точности педагогических измерений в СДО начали применять новую технологию создания тестовых заданий, в основе которой лежат понятия шаблона и обратной связи. Понятие шаблона и обратной связи, их формальное описание и примеры использования для построения адаптивных диалогов можно найти на сайте всемирного образовательного консорциума IMS (http://www.imsglobal.org/).

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

(1) механизмы реализации шаблонов в СДО AcademicNT;

(2) DOM-представление XML-описания шаблонов;

(3) примеры разработанных шаблонов для тестового задания, реализованного в СДО AcademicNT.

Механизмы реализации шаблонов в СДО AcademicNT

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

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

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

Анализатор - логическое выражение, предназначенное для анализа ответа пользователя.

Обратная связь - реакция системы на ответ пользователя.

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

Построение шаблонов в СДО АсаёешюКТ происходит с использованием переменных. Такими переменными можно заменять элементы всех структурных единиц тестового задания, будь то вопрос, ответ (варианты ответов) или вложения (например, рисунки). Механизм реализации шаблонов в СДО АсаёешюКТ можно проиллюстрировать алгоритмом, представленным на рис. 1.

(^Начало

Рис. 1. Алгоритм формирования задания и обработки ответа

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

;

Проверка условий правильности ответа происходит по схеме, представленной на рис. 2. Если Условие 1.1, Условие 1.2 и Условие 1.3 выполняются, то происходит вычисление переменных с последующим выходом из проверки. Если хотя бы одно из этих условий оказывается неверным, то осуществляется переход к другому блоку проверки, в котором происходит аналогичный процесс.

Рис. 2. Блок-схема анализатора ответа

Использование технологии построения шаблонов обеспечивает:

(1) индивидуальный подход к каждому обучающемуся;

(2) высокую надежность педагогических измерений;

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

DOM-представление XML-описания шаблонов

Для большей наглядности и иллюстрации иерархии объектов было разработано представление DOM (Document Object Model) XML-описания шаблонов, отдельные фрагменты которого представлены ниже.

Элемент <TestFrameVariables>, представленный на рис. 3, описывает переменные кадра. Он включает в себя один или несколько вложенных элементов <TestFrameVariable>, которые имеют атрибуты: TestFrameVariablelD - внутренний числовой иденти-

фикатор переменной; VariablelD - логическое имя переменной; Name - описание переменной. Элемент <TestFrameVariable> обязательно включает в себя один из элементов <Single> - простая переменная или <Multiple> - составная переменная. Также он содержит элемент <Comment> - комментарий, являющийся необязательным для использования.

Рис. 3. DOM-представление фрагмента, описывающего переменные

Элемент <Single> имеет атрибуты Value - значение переменной; Type - тип переменной, который может быть либо числовым (значение по умолчанию), либо строковым. Элемент <Multiple> включает в себя вложенный элемент <TestFrameVariable> -переменная кадра и обязательный атрибут Type, принимающий значение, используемое по умолчанию, Array (Массив) или значение Record (Запись).

Элемент <TestResponseProcessing>, представленный на рис. 4, описывает обработку результатов тестового задания. Он содержит произвольное количество элементов <TestResponseInit>, в которых происходит дополнительная инициализация переменных. Данный элемент не содержит данных, но имеет три обязательных атрибута: InitID -идентификатор инициализации, VariablelD - логическое имя инициализируемой переменной, Value - присваиваемое значение.

Рис. 4. йОМ-представление фрагмента, описывающего инициализацию переменных

Элемент <Те81Ке8роп8еСопёШоп>, представленный на рис. 5, также является вложенным в элемент <Те81Ке8роп8еРгосе88т§>. Он может встречаться один или более

раз. Элемент <TestResponseCondition> содержит произвольное количество вложенных элементов:

(1) <Command> - команда, инициализировавшая передачу реакции пользователя на сервер, имеет атрибут CommandID, принимающий одно из следующих значений: "Check" - проверка введенного пользователем ответа; "TimeOut" - время, отведенное на тест, вышло; "Forward" - переход к следующему кадру; "Backward" - переход к предыдущему кадру; "Skip" - пропуск кадра; "Refuse" - нет ответа; "Help" - вызов помощи;

(2) <TestResponseMatch> - элемент, описывающий сравнение переменной с эталонным значением;

(3) <TestResponseOutcome> - элемент, описывающий изменение значения переменной после выхода из кадра при выполнении условия.

Также он включает в себя следующие атрибуты:

(1) TestResponseConditionID - идентификатор условия;

(2) Output определяет правильность ответа (0 - ответ неверный, 1 - ответ верный);

(3) Message - сообщение, которое выдается после получения правильного ответа от пользователя;

(4) NextTestFrame - тест-кадр, на который осуществляется переход после выполнения условия;

(5) Time - время, которое отводится на проверку условия (если указано значение -1, то данный атрибут не указан);

(6) TimeScale - временная шкала, принимающая одно из следующих значений: Day"; "Hour"; "Minute"; "Second";

(7) TryNumber показывает количество попыток в обратной связи (если указано значение -1, то данный атрибут не указан).

Elencnt: Command

Rlt-nu- n1 : TcstRfspnnsfMati'h

t lenient: TcstRcspDiiscOntwinc

Attr: "1

Attn

Element: Element: T^lRt^pvn svCw niliLiu n Tli]u'

Attr: llmoSiflle

- Attr: TryNumk'r

Attr; Output

- Attr: NcM Ftst Frime

Attr: Message

Рис. 5. йОМ-представление фрагмента, описывающего условия проверки ответа

Элемент <Те81Ке8роп8еМа1сЬ>, представленный на рис. 6, описывает сравнение значения переменной, полученного после ее инициализации, с некоторым эталонным значением. Он включает в себя один из следующих вариантов сочетаний элементов, содержащих символьную информацию:

(1) <Pattern> - элемент, описывающий сравнение по шаблону (имеет атрибут Ordi-naryChars, устанавливающий знаки-разделители);

(2) <Value> - элемент, описывающий сравнение по определенному значению (употребляется с необязательным элементом <Error>);

(3) <Min> и <Max> - элементы, описывающие сравнение переменной с минимальным и максимальным допустимыми значениями;

(4) <Min> - элемент, описывающий сравнение по минимальному допустимому значению;

(5) <Max> - элемент, описывающий сравнение по максимальному допустимому значению,

а также два атрибута:

(1) VariableID - логическое имя проверяемой переменной;

(2) IsTrue - признак желаемого результата проверки, принимающий значение "Yes" (значение по умолчанию), если при успешной проверке происходит выполнение условия или "No", если проверка не прошла, но условие все равно выполняется.

Рис. 6. DOM-представление фрагмента, описывающего сравнения переменных

Рис. 7. йОМ-представление фрагмента, описывающего переменную после проверки

условий

Элемент <Те81Ке8роп8еОи1:соше>, представленный на рис. 7, задает значение переменной после выхода из кадра при выполнении условия. Включает в себя обязательные для использования атрибуты:

(1) OutcomeID - идентификатор;

(2) VariablelD - логическое имя переменной;

(3) Value - присваиваемое значение.

Примеры разработанных шаблонов для тестового задания, реализованного в СДО

AcademicNT

Использование шаблонов в системе AcademicNT можно рассмотреть на примере XML-описания тестового задания на вычисление корней квадратного уравнения: <TestFrameVariables> <TestFrameVariable

TestFrameVariableID=" 1"

VariableID="r1"

Name-'Корень"

>

<Single

Value=" round(dbms_random. value * 10)"

/>

</TestFrameVariable> <TestFrameVariable

TestFrameVariableID="2"

VariableID="r2"

Name="Корень"

>

<Single

Value="round(dbms_random.value* 10)+r1+1"

/>

</TestFrameVariable> <TestFrameVariable

TestFrameVariableID="3"

VariableID="a1"

Name="Коэффициент"

>

<Single

Value="-(r1 + r2)"

/>

</TestFrameVariable> <TestFrameVariable

TestFrameVariableID="4"

VariableID="a0"

Name="Коэффициент"

>

<Single

Value="r1 * r2"

/>

</TestFrameVariable> <TestFrameVariable

TestFrameVariableID=" 5" VariableID="num1" Name=" Ответ пользователя"

<Single Value="0"

/>

</TestFrameVariable> <TestFrameVariable

TestFrameVariableID="6" VariableID="num2" Name=" Ответ пользователя"

>

<Single Value="0"

/>

</TestFrameVariable> <TestFrameVariable

TestFrameVariableID="7" VariableID="dA1" Name="Погрешность"

>

<Single Value="0"

/>

</TestFrameVariable> <TestFrameVariable

TestFrameVariableID="8"

VariableID="dA0"

Name="Погрешность"

>

<Single Value="0"

/>

</TestFrameVariable> </TestFrameVariables>

В элементе <TestFrameVariables> определяются и инициализируются восемь переменных. Переменные с логическими именами r1 и r2 являются корнями квадратного уравнения. Их генерация происходит на основе псевдослучайного алгоритма. При генерации чисел для переменных r1 и r2 главным аспектом является их неравенство между собой. В случае совпадения этих двух значений квадратное уравнение будет иметь только один действительный корень, что значительно упростит задачу испытуемого. Переменные a1 и a0 - это коэффициенты квадратного уравнения, вычисляемые с использованием r1 и r2. Переменные num1 и num2, dA0 и dA1 используются во время анализа ответа. <Data> <!--

После записи ответа нажимайте кнопку "Ответ готов". Для окончания сеанса тестирования кнопку "Завершить".^^ ВЫЧИСЛИТЕ КОРНИ КВАДРАТНОГО УРАВНЕНИЯ:<ЬГ/> x<sup>2</sup>+<TestFrame Variable VariableID="a1"/>x+<TestFrameVariable

VariableID="a0"/>=0. -->

</Data>

В объекте <Data> расположен вопрос тестового задания, включающий в себя краткую инструкцию и само задание, в котором вместо коэффициентов квадратного уравнения используются переменные с логическими именами a1 и a0. <Open> <String

Format="x1 = DD, x2 = DD"

/>

</Open>

Тестовое задание, рассматриваемое в качестве примера, относится к открытому типу. Для его описания необходимо было применить элемент Open, который содержит информацию об ответе студента. В данном случае ответ студента предполагается получить в формате строки, поэтому использован вложенный объект String, включающий необязательный атрибут Format - маска, предоставляемая испытуемому в текстовом поле задания, пустые фрагменты которой ему необходимо заполнить, что делает невозможным пропуск любого из введенных ответов. <TestResponseProcessing> <TestResponseInit InitID=" 1" VariableID="num1"

Value="to_number(substr(Response,6,2))"

/>

<TestResponseInit InitID="2" VariableID="num2"

Value="to_number(substr(Response, 15,2))"

/>

<TestResponseInit InitID="3" VariableID="dA1" Value="- (num1 + num2) - a1"

/>

<TestResponseInit InitID="4" VariableID="dA0" Value="num1 * num2 - a0"

/>

<TestResponseCondition

TestResponseConditionID=" 1" Output=" 1"

>

<Command

CommandID=" Check"

/>

<TestResponseMatch VariableID="dA1"

>

<Value> <!-- 0 --> </Value> </TestResponseMatch> <TestResponseMatch

VariableID="dA0"

>

<Value> <!-- 0 --> </Value> </TestResponseMatch> </TestResponseCondition> <TestResponseCondition

TestResponseConditionID="2" 0utput="0"

>

<Command

CommandID=" Check"

/>

<TestResponseMatch VariableID="Response"

>

<Pattern> <!-- <*> --> </Pattern> </TestResponseMatch> </TestResponseCondition> </TestResponseProcessing>

Рис. 8. Тестовое задание на вычисление корней квадратного уравнения

В объекте <TestResponseProcessing> описывается процесс обработки результатов теста. Инициализация переменных с логическими именами: numl, num2, dA0, dA1 происходит в объектах <TestResponseInit>. На этом этапе каждой переменной присваивается новое значение. Response - фиксированная переменная, в которой хранится ответ пользователя. При разборе ответа пользователя находятся значения переменных numl и

num2, которые используются в дальнейшем для вычисления погрешностей ответов пользователя, переменных dA0, dAl. После проверки условия в атрибут Output заносится значение 0, если ответ неверный, и 1, если ответ верный. В объекте <TestRespon-seMatch> происходит сравнение переменной со значением, полученным из объекта <TestResponseInit>. В первом блоке проверки происходит сравнение переменных dA0 и dA1 с их эталонными значениями, которые указаны в соответствующих им атрибутах Value, а во втором используется проверка по шаблону <Pattern>, пропускающая в данном случае любой ответ. Подобная проверка может понадобиться, например, если правильный ответ так и не получен от испытуемого, а переход на следующий кадр или окончание теста необходимо осуществить.

Тестовое задание, фрагменты XML-описания которого были рассмотрены выше, представлено на рис. 8.

Заключение

В работе были рассмотрены механизмы реализации шаблонов в СДО Aca-demicNT; приведены и описаны DOM-представления XML-описания шаблонов, на основе которого были продемонстрированы примеры разработанных шаблонов для тестового задания, реализованного в СДО AcademicNT. Работа над темой продолжается, и новые результаты проделанной работы в скором будущем будут представлены.

Литература

1. Васильев В.Н., Лямин А.В., Чежин М.С. Система дистанционного обучения второго поколения // Научно-технический вестник СПбГУ ИТМО. - 2007. - Выпуск 45. Информационные технологии. - С.148-157.

2. Лямин А.В., Чежин М.С. Система дистанционного обучения СПбГУ ИТМО // Труды II Международной конференции «Информационные системы для HRM и обучения». - Санкт-Петербург, 2005. - С. 80-83.

3. Васильев В.Н., Лисицына Л.С., Лямин А.В. Технология проведения ЕГЭ по информатике в компьютерной форме // Научно-технический вестник СПбГУ ИТМО. - 2007. - Выпуск 45. Информационные технологии. - С. 126-143.