ФОРМИРОВАНИЕ АКТИВНЫХ СИСТЕМ ТЕСТИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ LATEX
, ,
Оренбургский государственный университет, Оренбург
Подготовка тестовых заданий для студентов различных специальностей ВУЗов и сотрудников организаций и предприятий является актуальной проблемой. В первую очередь это обусловлено большим количеством программных средств и технологий, предназначенных для создания наборов тестовых заданий. Среди многообразия программных продуктов можно выделить два основных вида – коммерческие и свободно распространяемые. С учетом тенденций развития современных информационных технологий, приоритетными являются свободно распространяемые программные продукты. Предлагаемый в работе подход использует свободно распространяемую настольную издательскую систему LaTex [1,2].
При подготовке контрольных и обучающих тестов, представленных сложным контентом, например, математическими выражениями, графиками, векторными изображениями, программным кодом и т. д., могут возникнуть трудности в оформлении заданий. Применение для формирования тестовых заданий издательской системы LaTeX позволяет использовать все ее возможности в оформлении сложного контента. Стоит отметить, что готовый документ системы LaTeX формируется в формате PDF, который является кроссплатформенным форматом, таким образом, тестовые задания могут использоваться на любой операционной системе, в которой может быть установлен Adobe Acrobat Reader.
Формат PDF имеет встроенную поддержку JavaScript [3]. Это позволяет использовать в тестовых заданиях различные активные элементы управления, такие как кнопки, меню и т. д., а так же выполнять подсчет верного количества ответов автоматически.
Реализацию поддержки JavaScript в издательской системе LaTex обеспечивает пакет insdljs. Преамбула документа LaTex с подключенным пакетом insdljs выглядит следующим образом:
\documentclass[12pt]{article}
\usepackage{ucs}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage[pdftex, unicode=true]{hyperref}
\usepackage[pdftex]{insdljs}
\usepackage{mathptmx}
\usepackage[cp1251]{inputenc}
\usepackage[russian]{babel}
\usepackage[pdftex, unicode=true]{eforms}
\usepackage{amssymb, amsmath}
\everyRadioButton{}
\pagestyle{empty}
Рассмотрим пример теста, подготовленного с использованием предложенной преамбулы документа. Пусть он будет состоять из трех вопросов ответы в которых необходимо указывать, используя выпадающее меню. Результат тестирования будет выведен на экран в виде сообщения. Для получения результатов тестирования в документе после тестов размещается кнопка с надписью «Результат». Содержание документа LaTex, реализующего данный тест, будет следующим:
\begin{center}
\title{\LARGE Тест 2}
\end{center}
\par\bigskip
1. В слоты расширения могут подключаться \dots
\par\bigskip
Выберите ответ:
\ChoiceMenu[combo, name=qque1, width=15em, height=0.2em, menulength=1, popdown=true, value=1, bordercolor={0}]{}{Видеокарты=1, Сканеры=2, Принтеры=3}
\par\bigskip
\medskip\hrule height 1pt\medskip
\par\bigskip
2. Очень короткая программа, которая находится в первом секторе системного диска, ~--- это \dots
\par\bigskip
Выберите ответ:
\ChoiceMenu[combo, name=qque2, width=15em, height=0.2em, menulength=1, popdown=true, value=1, bordercolor={0}]{}{Ядро операционной системы=1, Загрузчик операционной системы=2, Модуль операционной системы=3, BIOS=4}
\par\bigskip
\medskip\hrule height 1pt\medskip
\par\bigskip
3. Языком запросов к реляционным базам данных является \dots
\par\bigskip
Выберите ответ:
\ChoiceMenu[combo, name=qque3, width=15em, height=0.2em, menulength=1, popdown=true, value=1, bordercolor={0}]{}{FORTRAN=1, OLE=2, SQL=3, BIOS=4}
\par\bigskip
\medskip\hrule height 1pt\medskip
\par\bigskip
\pushButton[\CA{Результат} \A{/S/JavaScript/JS(
%подсчет результатов
var answers=[1,2,3];
var count=0;
for(var i=1;i<=answers. length;i++){
var selected = this. getField("qque"+i).value;
if (selected==answers[i-1]){
count++;
}
}
app. alert(String. fromCharCode(1042, 1077, 1088, 1085, 1099, 1093, 32, 1086, 1090, 1074, 1077, 1090, 1086, 1074, 58)+' '+count)
)}]{jsEx}{45bp}{11bp}
При организации теста возникает проблема, связанная с выводом русских букв. Она обусловлена различием кодировок в документе LaTex и в интегрированных скриптах. Для корректного вывода сообщений на русском языке использована команда String. fromCharCode.
После компиляции документа получаем PDF-документ следующего содержания (рисунок 1).

Рисунок 1 – Пример тестовых заданий
При нажатии на кнопку получения результата на экран выводится сообщение следующего содержания (рисунок 2).

Рисунок 2 – Окно вывода результата
Для оформления диаграмм и рисунков можно воспользоваться бесплатными пакетами расширения для издательской системы LaTex, например, для изображения диаграмм можно использовать пакет PGF/TikZ. С его помощью для тестовых заданий могут быть созданы высококачественные диаграммы (рисунок 3).

Рисунок 3 – Пример диаграммы, подготовленной с помощью пакета PGF/TikZ
Диаграмма, изображенная на рисунке 3, представлена в документе LaTex в виде графа со следующим описанием:
\begin{tikzpicture}[>=stealth', node distance=6.0em, on grid,
addc/.style={xshift=4em},
addr1/.style={yshift=4em},
addr2/.style={yshift=1.5em},
addr3/.style={yshift=2em},
addr4/.style={yshift=1.5em},
addr5/.style={yshift=1.5em},
bcent/.style={text height=1.5ex, text depth=.25ex},
bcentf/.style={text height=1.5ex, text depth=.25ex, fill=gray!20},
block/.style={rectangle, drop shadow, draw, minimum height=2.7em, minimum width=7.5em, align=center},
cyl1/.style={color=black, cylinder, draw, shape border rotate=90, aspect=0.15, left color=orange!70, right color=orange!80, middle color=white, outer sep=-0.5\pgflinewidth, minimum height=5em, align=center}]
\node[bcent](progr){\textbf{Программисты}};
\node[bcent, addc, right=of progr](user){\textbf{Пользователи}};
\node[bcent, addc, right=of user](adm){\textbf{Администраторы БД}};
\node[block, fill=cyan!20, addr1, below=of progr](pprog){Прикладные\\программы};
\node[block, fill=cyan!20, addr1, below=of user](sel){Запросы};
\node[block, fill=cyan!20, addr1, below=of adm](sbd){Схема базы\\данных};
\node[rectangle, rounded corners, draw=black, thick, dotted, fill=yellow!20, minimum height=8.4em, minimum width=33em, xshift=-2em, yshift=-0.5em, below=of sel](subd){};
\node[bcent, xshift=-8.5em, yshift=3em, left=of subd](subdt){\textbf{СУБД}};
\node[block, fill=cyan!20, addr2, below=of pprog](pdml){Препроцессор\\языка \textbf{DML}};
\node[block, fill=cyan!20, addr2, below=of sel](prsel){Процессор\\запросов};
\node[block, fill=cyan!20, addr2, below=of sbd](cdml){Компилятор\\языка \textbf{DDL}};
\node[block, fill=cyan!20, addr3, below=of pdml](ocp){Объектный\\код программы};
\node[block, fill=cyan!20, addr3, below=of prsel](kbd){Контроллер\\базы данных};
\node[block, fill=cyan!20, addr3, below=of cdml](ksl){Контроллер\\словаря};
\node[block, fill=cyan!20, addr4, below=of ocp](md){Методы\\доступа};
\node[block, fill=cyan!20, addr4, below=of kbd](kfile){Контроллер\\файлов};
\node[block, fill=cyan!20, addr5, below=of md](sbuf){Системные\\буферы};
\node[cyl1, xshift=14em, right=of sbuf](bd){\textbf{БД} и системный\\каталог};
\draw [->, very thick, red] (pprog) -- (pdml);
\draw [->, very thick, red] (sel) -- (prsel);
\draw [->, very thick, red] (sbd) -- (cdml);
\draw [->, very thick, red] (pdml) -- (ocp);
\draw [->, very thick, red] (prsel) -- (kbd);
\draw [->, very thick, red] (cdml) -- (ksl);
\draw [<->, very thick, red] (pdml) -- (prsel);
\draw [<->, very thick, red] (prsel. south east) -- (ksl. north west);
\draw [<->, very thick, red] (ocp) -- (kbd);
\draw [<->, very thick, red] (kbd) -- (ksl);
\draw [<->, very thick, red] (kbd) -- (kfile);
\draw [<->, very thick, red] (ksl. south) -- (kfile. east);
\draw [<->, very thick, red] (md) -- (kfile);
\draw [<->, very thick, red] (md) -- (sbuf);
\draw [<->, very thick, red] (sbuf) -- (bd);
\end{tikzpicture}
Проанализировав возможности настольной издательской системы LaTex и ее расширений можно сделать следующие выводы.
Тесты, подготовленные с помощью издательской системы LaTex, обладают высоким качеством оформления и могут быть использованы на большинстве современных операционных системах.
Расширения издательской системы LaTex обеспечивают дополнительные возможности при оформлении контента тестовых заданий, что может быть полезно при включении в контент графиков, математических выражений, диаграмм и других сложных объектов.
В качестве недостатка можно выделить высокую трудоемкость создания тестовых заданий.
Таким образом, использование издательской системы LaTex для подготовки тестовых заданий оправдывает себя в случае использования сложного контента в тестовых заданиях.
Список литературы
1. Гуссенс, М. Путеводитель по пакету LaTeX и его расширению LaTeX2ε / Ф. Миттельбах, А. Самарин — М.: Машиностроение, 1999. — 473 c.
2. Львовский, С. М. Набор и верстка в системе LATEX / — М.: МЦНМО, 2006. — 448 с.
3. Acrobat JavaScript Scripting Guide [Электронный ресурс] : электронная документация — Adobe : July 19, 2005 — Режим доступа :
http://partners. /public/developer/en/acrobat/sdk/AcroJSGuide. pdf. — 10.01.2012.


