Pull to refresh

Система проверки знаний (тестирования) на одном лишь HTML

Изучение вопроса

В настоящее время особое значение приобретает дистанционное образование, e-learning, которое трудно, наверное, представить без средств контроля знаний обучающихся. Системы контроля знаний строятся, как правило, по принципу "клиент-серверных" систем. Такие системы достаточно удобны, однако не лишены ряда недостатков, одним из которых является зависимость от работы ПО на стороне сервера (например, php-интерпретатора).

В рамках дистанционного обучения через Интернет "клиент-серверные" системы тестирования могут дополняться возможностями JavaScript (JS), открывающего дополнительные пути визуализации интерфейса средствами браузера. К недостаткам JS относятся требование, чтобы браузер поддерживал его текущую версию.

Следует также отметить, что системы "клиент-сервер", основанные на специализированном ПО, являются зависимыми от ОС, установленной на стороне клиента, что не делает их универсальными, в отличие от технологий html/php/JS.

Таким образом, php и JS являясь, бесспорно, мощными инструментами создания систем тестирования обучающихся, не свободны от упомянутых выше недостатков.

Для решения некоторых несложных задач: создание небольших тестов для самопроверки по теме разделов, организация текущего контроля в локальной сети аудитории, возможно, будет оправдан подход, основанный на использовании исключительно технологии html, т.е. когда на сервере (а, возможно, и просто на локальной машине тестируемого) хранится набор html-страничек, связанных между собою гиперссылками. Переходя последовательно по ссылкам, каждая из которых соответствует определённому варианту ответа, тестируемый выходит на конечную страницу, содержащую результат прохождения теста.

Естественно, что создать вручную такой набор html-страниц для более или менее приличного теста не представляется возможным, и необходимо разработать специальное ПО, генерирующее данный набор, т.е. "генератор" теста.

Постановка задачи

Пусть V - вектор строк, каждая из которых соответствует определённому вопросу из общего их количества n. Пусть Q - матрица строк возможных ответов размерностью nxm, где m - количество вариантов ответов. Пусть T - матрица правильных ответов размерностью nxm, составленная из 0 и 1. Каждая строка такой матрицы соответствует номеру вопроса, а столбец - номеру варианта ответа на данный вопрос. Введём ещё матрицу фактических ответов A, элементы которой также могут принимать значения от 0 до 1 в зависимости от фактически данного ответа. При всех правильных ответах матрицы A и T совпадают.

Возникает задача при заданных V, Q и T построить набор html-файлов, реализующих систему тестирования "1 правильный из m".

Решение задачи

Выполняется на основе конструкции "вложенные циклы", псевдокод которой (для случая n = 5) представлен ниже:

for i1 = 1:m
    for i2 = 1:m
        for i3 = 1:m
            for i4 = 1:m
                for i5 = 1:m
                    %создание html-страницы с выводом результата,
                    %основанном на сравнении матриц A и T
                end
                % (1)создание html-страницы со ссылками на страницы результатов 
            end
            % (2) создание html-страницы со ссылками на страницы (1)
        end
        % (3) создание html-страницы со ссылками на страницы (2)
    end
    % (4) создание html-страницы со ссылками на страницы (3)
end
% (5) создание html-страницы со ссылками на страницы (4), т.е. страницы
с первым вопросом (index.html)

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

i1_i2_i3_i4_i5.html

i1_i2_i3_i4.html

i1_i2_i3.html

i1_i2.html

i1.html

index.html,

где все индексы пробегают значения от 1 до m.

По названию файла страницы можно определить, на какой стадии находится тестирование, и какие ответы были даны. Например, если в браузере тестируемого открыты страница 1_3_3_2_1.html, то это означает, что тестирование завершено, и выбраны следующие варианты ответов: на первый вопрос - 1, второй - 3, третий - 3, четвёртый -2, пятый - 1. Если открыта страница 1_3_2.html, то даны три ответа с вариантами 1, 3, 2 и т.д. При этом на последней странице выводится непосредственно результат тестирования.

Пример реализации

Приведённая выше логика (с параметрами n=5, m=3) была реализована в пакете MATLAB. M-файл с кодом можно найти по ссылке: https://yadi.sk/d/P_lCp88Bhx8F3w

"Живой" пример теста с теми же параметрами размещён на GitHub и доступен по следующему адресу: https://vitder.github.io/

Итоги

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

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

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

Дальнейшие разработки

Можно модернизировать страницы теста с возможностью возвращения к любому вопросу, просмотра ошибок и т.п. Также имеет смысл автоматизировать систему контроля выполнения теста на основе, например, журнала браузера, показывающего хронологию открытия страниц. Наконец, можно доработать ПО генерации теста с возможностью случайного перемешивания вопросов и вариантов ответов на них, создав несколько комплектов html-теста. Последние можно выдавать случайным образом на клиентские станции.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.