Наука к Образование
МГТУ им. Н.Э. Баумана
Сетевое научное издание
ISSN 1994-0408 УДК 378; 378.145; 512.643; 519.6
Методические аспекты компьютерного генерирования заданий по математике
Коновалов Я. Ю.1, Соболев С. К.1'* *sergesobolev@.mail.ru
1МГТУ им. Н.Э. Баумана, Москва, Россия
В рамках международного научного конгресса "Наука и инженерное образование. SEE-2016", II международная научно-методическая конференция «Управление качеством инженерного образования. Возможности вузов и потребности промышленности» (23-25 июня 2016 г., МГТУ им. Н.Э. Баумана, Москва, Россия).
В статье рассматривается проблема автоматического генерирования контрольных заданий по математике для студентов высших учебных заведений. Анализируются различные подходы к построению таких генераторов, обсуждаются их достоинства и недостатки. Приведены примеры алгоритмов для генерирования задач из некоторых разделов линейной алгебры и математического анализ. Изложены некоторые общие методы построения таких алгоритмов. Анализируется опыт использования генераторов контрольных работ и домашних заданий на кафедре ФН-1 «Высшая математика» МГТУ им. Н.Э. Баумана.
Ключевые слова: генератор заданий, генератор контрольных работ, случайное число, ортогональная матрица, собственное значение, интегрирование, параметрическая схема, функциональная схема
Введение
В последнее время проблема автоматической генерации заданий для контрольных работ стала особенно актуальной. Современные мобильные телефоны, оснащенные камерами и большими экранами, позволяют студентам фотографировать варианты заданий и свои работы, а затем обмениваться ими через социальные сети и иные средства коммуникации. В результате значительная часть комплекта контрольных материалов и ответов к ним становится известной студентам сразу после первого применения. Административные и технические меры борьбы с этим явлением трудно применимы и не всегда эффективны. Поэтому наиболее простым решением этой проблемы с организационной точки зрения является частое обновление контрольных материалов. Однако создание нового комплекта контрольных заданий - кропотливая работа, требующая значительного времени. Но, поскольку комплекты контрольных заданий состоят, как правило, из однотипных задач, естественно переложить эту работу на компьютер. Работы по созданию автоматических генераторов заданий по математике и другим предметам ведутся во многих университетах России и мира [1-9].
Наука и Образование. МГТУ им. Н.Э. Баумана. Электрон. журн. 2016. № 07. С. 285-295.
Представлена в редакцию: 24.07.2016 Исправлена:
© МГТУ им. Н.Э. Баумана
В данной работе рассматриваются различные подходы к построению подобного генератора и описывается опыт разработки и применения генераторов контрольных заданий по аналитической геометрии, линейной алгебре и математическому анализу на кафедре ФН-1 «Высшая математика» МГТУ им. Н.Э. Баумана.
Наиболее простым в техническом плане является генератор, выбирающий задачи для комплекта из некоторой заранее заготовленной базы. Главное его преимущество в том, что база может содержать какие угодно вопросы и задачи по любой теме. Однако такое решение имеет серьезные недостатки. Если база невелика, студенты быстро заметят, что задачи повторяются. Создание же обширной базы задача трудоемкая. Кроме того, необходимы организационные и технические меры для ограничения доступа к базе во избежание ее порчи или хищения.
Свободным от перечисленных недостатков является генератор, составляющий задачи при помощи специальных алгоритмов с использованием случайных чисел. Такому генератору не нужна база. Более того, поскольку при каждом запуске генерируются новые задачи, конфиденциальность новых вариантов не нарушается даже в случае публикации не только ранее сгенерированных вариантов, но и самой программы. При автоматической генерации исключается возможность появления ошибок и опечаток. Также появляется возможность составить подробные ответы с указанием промежуточных результатов. Главным недостатком такого подхода является трудность построения алгоритмов генерирования заданий, обеспечивающих одновременно большое количество различных задач и их высокое качество. Далее будет изложен предложенный авторами подход к построению таких алгоритмов.
1. Генерирование задач по аналитической геометрии и линейной алгебре
Большинство задач линейной алгебры и аналитической геометрии сводится к сложению и умножению векторов и матриц, а также к решению систем линейных алгебраических уравнений (СЛАУ). Таким образом, для генерирования таких задач необходимо уметь составлять матрицы и СЛАУ заданного ранга, а также ортогональные матрицы.
1.1. Генерирование матриц с заданным определителем
Для генерирования целочисленной матрицы с заданным определителем ёе1;(А) = 8 Ф 0 поступим следующим образом. Рассмотрим верхне-треугольную матрицу, у которой один из диагональных элементов равен 8, а остальные 1 (звездочкой обозначены случайные числа). Ее определитель равен 8 .
(8 * * • • • * ^
0 1 * О 0 1
ООО
*
1
у ^
Применим к этой матрице несколько элементарных преобразований, прибавляя к случайно выбранной строке (столбцу) другую случайно выбранную строку (столбец), умно-
женную на случайный целый коэффициент. Такую операцию назовём перемешиванием. Получим заполненную матрицу А, определитель которой тоже равен 8. Отметим, что при таком способе построения может получиться матрица с большими элементами, блоком нулей или другими нежелательными особенностями. Поэтому полученную матрицу мы проверяем на выполнение ряда условий, и в случае их нарушения генерируем матрицу заново. Требования формируются исходя из соображений методического характера (чтобы задача не свелась к простому частному случаю) и относительной простоты, чтобы решение не требовало избыточно громоздких вычислений. Такая структура алгоритма позволяет легко реализовать генерирование условий задач, удовлетворяющих довольно жестким требованиям. Если генерирование и проверка осуществляются достаточно быстро, а вероятность создания приемлемой задачи не слишком мала, алгоритм оказывается эффективным.
Для генерирования условий задачи о нахождении объема параллелепипеда, заданного координатами некоторых своих вершин, достаточно построить случайную невырожденную квадратную матрицу А третьего порядка, столбцы которой являются координатами векторов, направленных по его рёбрам, и случайную точку (координаты одной из вершин). При этом от матрицы А требуется только, чтобы у неё были не очень большие коэффициенты (для упрощения вычисления ее определителя) и не слишком много нулей в строках и столбцах (чтобы это вычисление не было тривиальным). Практика показала, что иногда при вычислении определителя ёе1;(А) возникают большие числа даже при небольших коэффициентах матрицы А, что значительно затрудняет решение задачи. Поэтому в алгоритм генерации матрицы А была добавлена дополнительная проверка простоты вычисления определителя. В связи с этим отметим еще одно преимущество организации алгоритма по такой схеме. Если алгоритм дает недостаточно качественные задачи, вводим дополнительную проверку, вместо того чтобы создавать новый алгоритм.
1.2. Генерирование матричных уравнений
Для генерирования матричного уравнения вида АХ = В, где А и В - известные квадратные матрицы, а Х - искомая, на матрицу А (для которой надо будет найти обратную) накладываются более жесткие условия. Кроме вышесказанного, она должна быть несимметрична, а её определитель выбирается отличным от 1, чтобы студент, допустивший ошибки при отыскании А-1, не мог случайно получить правильный ответ. Матрицу - ответ Х составляем из случайных чисел, а матрицу В = АХ также необходимо проверить на наличие избыточно больших по модулю элементов.
1.3. Генерирование систем линейных уравнений
Похожим образом устроен алгоритм генерации задач на решение СЛАУ. Пусть требуется составить совместную СЛАУ из п уравнений и т неизвестных ранга г ( г < т, г < п ).
Для этого построим расширенную матрицу системы А в единично-ступенчатом виде, имеющее такое блочное представление:
А
Е\Б В ______1 — __ „
О О\03
где Е - единичная матрица порядка г, матрица В и столбец В состоят из случайных элементов и имеют размеры г х (т — г) и г х1 соответственно, а 01з О2 и О3 - нулевые матрицы размеров (п — г) х г, (п — г) х (т — г) и (п — г) х 1 соответственно (для однородной СЛАУ В = О )). Явный вид общего решения СЛАУ с такой матрицей известен, в матричном виде он выглядит так:
где У - столбец из г базисных, а 2 - столбец из (т — г) свободных неизвестных, С - столбец из (т — г) произвольных констант.
этом не изменится. Потом следует проверить, нет ли у полученной матрицы пропорциональных строк, а также избытка нулей. Исключив из рассмотрения столбец В, получим алгоритм генерации матриц с заданным рангом.
Для составления некоторых типов задач на квадратичные формы нужно уметь строить ортогональные матрицы, а также симметричные матрицы с заданным типом спектра. Построение таких матриц - более сложная задача. Существует «аналитический» подход к созданию таких матриц [10]. Это значит, что путем теоретического анализа строится матрица, удовлетворяющая требуемым условиям и зависящая от нескольких параметров, принимающих целые значения, а программа лишь генерирует случайные значения этих параметров и отсекает заведомо «плохие» получающиеся матрицы, например, с очень большими элементами. Подобные алгоритмы будем называть параметрическими схемами.
Для построения ортогональной матрицы третьего порядка проще всего взять два ортогональных вектора я, Ь, например, а = (а{; а2;± 1), Ъ = (Д; +(аА +^2^2)) и добавить к ним третий вектор с = [а х Ь], нормировать их, а затем взять в качестве соответственно первой, второй и третьей строки матрицы, однако этот способ часто приводит к большим коэффициентам в третьей строке.
Понятно, что для построения ортогональной матрицы достаточно построить матрицу с попарно ортогональными строками (или столбцами), в частности, такую матрицу А, для которой сумма квадратов элементов любой строки (и любого столбца) равна одному и тоТ т
му же числу s, т.е. АА = А А = sЕ . Такую матрицу А мы назовем полуортогональной, а число ¿и = \[э будем называть её нормой.
Подвергнем строки матрицы А перемешиванию. Ответ, т.е. решение системы, при
2. Генерирование матриц специального вида.
2.1. Аналитическое построение ортогональных матриц
Один из способов построения ортогональной матрицы с рациональными элементами дает простая теорема [10, 11]: пусть А - целочисленная антисимметричная матрица, Л -целое число, отличное от нуля. Тогда матрица В = А + ЛЕ обратима, а матрица
_1 т
Q = В 1Вт ортогональна.
С помощью этой теоремы можно построить ортогональную матрицу - схему п-го порядка с рациональными элементами, зависящими от нескольких параметров, для матриц третьего порядка потребуется четыре целочисленных параметра (к, I, т, п).
Q =
/\2 2 ; 2 2 12 + п _ к _ т
2(кп _ 1т)
2(к1 + пт)
_2(кп + 1т)
2 , 2 ; 2 ;2 г + т _ к _ 1
2(1п _ кт)
2(к1 _ пт) _2(кт + 1п)
2 2 2 72
2 + п _ т _ 1
Л
7 2 72 2 2
где ц = к +1 + т + п .
В частности, например, при к = 3, 1 = т = 1, п = 0, получим ортогональную матрицу
(_9 _2 6 ^ _2 _ 9 _6
Q=П
6 _6 7 У
Аналогично можно получить шаблон построения ортогональной матрицы любого порядка п. Если есть две ортогональные матрицы одного порядка, то из них можно составить ортогональную матрицу удвоенного порядка. А именно, если полуортогональные матрицы А и В порядка п имеют нормы а и (3 соответственно, а матрица ВАТ симмет-
А _В 1 порядка 2п также полуортогональна с нормой ^а2 + (2 .
рична, то матрица с =
Как следствие получаем ортогональную матрицу
^ а Ь с _й ^ Ь _а й с
А = 1 ц
V
_с й а Ь _й _с Ь _а
У
где ц = 4а2 + Ь2 + с2 + й2 , где а, Ь, с, й - произвольные целые числа.
Циклическая матрица пятого порядка, образованная элементами а, Ь, с, й, е будет полуортогональной, если выполняются равенства:
(еа + аЬ + Ьс + сй + йе = 0, \ай + Ье + ас + Ьй + се = 0,
например, при а = 6, Ь = _4, с = _ 1, й = 8, е = 2 . Соответствующая ортогональная матрица:
( 6 _ 4 _ 18 2 ^ 2 6 _ 4 _ 18 8 2 6 _ 4 _ 1 _ 1 8 2 6 _ 4
_ 4 _ 18 2 6
ч У
Вот еще один способ построения ортогональной симметричной матрицы любого порядка. Пусть Е - квадратная матрица порядка п, все элементы которой равны 1, Еп - еди-
2
ничная матрица того же размера. Тогда, как нетрудно показать, матрица Qn =— Еп _ Еп
Q=11
ортогональна.
2.2. Построение симметричных целочисленных матриц с целочисленным спектром заданного вида
При составлении задач на приведение квадратичной формы <р( х1,..., хп) с матрицей А к каноническому виду
Ф( Хп ) = + ... + ЛпХ1 с помощью подходящего ортогонального преобразования желательно, чтобы симметричная матрица А была целочисленна и имела собственные числа любых заранее указанных знаков и кратностей.
Здесь удобно начать с выбора какого-нибудь ортогонального базиса собственных векторов ¿>1, ¿2, ..., Ьп. Нормируем эти векторы, составляем соответствующую ортогональную матрицу перехода Q и записываем условия целочисленности всех элементов
т
матрицы А = QDQ , где В -диагональная матрица, на диагонали которой стоят собственные числа Лп. Получим систему сравнений по некоторому целому модулю, в общем решении которой числа Л, ..., Лп будут линейными комбинациями каких-то произвольных целых параметров. Комбинируя значения этих параметров, можно добиться, чтобы собственные числа имели любые наперед заданные знаки и кратности.
Пример. Пусть п = 3, возьмем какую-нибудь тройку попарно ортогональных векторов Ь = (1; 1; 2), ¿2 = (1; — 1; 0), ¿3 = (1; 1; — 1) . Тогда получим систему сравнений по модулю 6:
л1 — зл2 + 2Л3 = о Л + зл, + 2Л3 = о
4Л1 -2 2яз еЕ 0 2 Л — 2Л3 = 0
Её общее решение Л1 = т, Л2 = т + 2п + 2к, Л3 = т + 3к, где т, п, к - произвольные целые числа, а соответствующая матрица исходной квадратичной формы также зависит от тех же параметров:
( т + п + 2к —п —к Л
А(т, п, к) =
—п т + п + 2к —к —к —к т + к
У
Эта матрица имеет вышеуказанные собственные числа Л1, Л2, Л3, отвечающие заранее выбранным собственным векторам ¿1, ¿2, ¿3.
Если, например, желательно, чтобы \ < 0, Л2 = Л3 > 0, то это можно добиться, скажем, при т = —1, п = 1, к = 2. Тогда Лх = —1, Л2 = Л3 = 5 , и получим матрицу
А =
( 4 — 2 —2^ — 1 4 —2
V—2 —2 1 У
квадратичной формы < = 4 х + 4 у + г — 2ху — 4 хг — 4 ух, её канонический вид
2 2 2
—X + 5У + 5Z , который она будет иметь в ортонормированном базисе
е1 = Тб Ь1, е2 =Т2 ¿2, ^З =Тз ¿3 .
Достоинством этого метода является получение из одного шаблона достаточно большого количества различных симметричных матриц и соответствующих наборов собственных чисел, недостатком - необходимость решения системы сравнений «вручную» для каждого набора ортогонального базиса из собственных векторов. Кроме того, в случае если число рассмотренных базисов невелико, возникает риск того, что студенты заметят это и смогут находить ответы путем подстановки известных им векторов. В связи с этим, рекомендуется иметь большое количество различных базисов b^, b, b3, или наравне с вышеуказанным использовать другой алгоритм, например, описанный в [12].
Альтернативные алгоритмы генерации задач линейной алгебры и аналитической геометрии приведены в [12-14].
3. Генерирование задач на нахождение неопределенных интегралов и решение дифференциальных уравнений
3.1. Особенности генерировании заданий, требующих интегрирование
При генерировании заданий на интегрирование возникает ситуация, отличная от аналитической геометрии и линейной алгебры. Чтобы задать вектор или матрицу, достаточно указать несколько чисел. Но этого недостаточно, чтобы задать функцию произвольного вида. Мы можем лишь задать функцию заданного вида, например, f (x) = xa ■ ebx, с какими-нибудь случайными значениями параметров a и b.
При этом интегрирование функций - это, в отличие от механического дифференцирования, - творческая задача. Решение обыкновенных дифференциальных уравнений (за исключением линейных дифференциальных уравнений с постоянными коэффициентами и приводящих к ним) тоже сводится к интегрированию одной или нескольких функций [15]. В линейной алгебре, например, можно обратить любую невырожденную квадратную матрицу, и последовательность действий при решении одинакова для любой матрицы данного размера. Однако мы не можем проинтегрировать любую элементарную функцию. Например, нахождение неопределенного интеграла от функций fj(x) = cos3 x,
f2(x) = —x— и f3(x) = cosx - совершенно разные задачи, отличающиеся как по методу cos x x
решения, так и по сложности, а третий интеграл вообще не выражается в элементарных функциях.
Здесь возможны три подхода. Первый - большой банк готовых заданий. Достоинства и недостатки такого подхода рассматривались выше. Второй подход - параметрические схемы.
3.2. Параметрические схемы для неопределенных интегралов и дифференциальных уравнений.
Для каждого типа неопределенного интеграла или дифференциального уравнения создаются несколько шаблонов с произвольными числовыми параметрами. Условие и ответ
записываются через эти параметры. Особенно это удобно в случае, если подынтегральная функция содержит в себе многочлен. Отметим, что в зависимости от значений параметров могут возникать разные случаи, что усложняет конструирование схем. Например, для задачи о нахождении неопределенного интеграла вида
Ax + В
J=1-
-dx
x +аx + 3
( A Ф 0 ), ответ не трудно получить в общем виде:
A I 2 3 = — ■ 1П| x + ax +
р\ + ( В _ 1 Аа)■ Р (х), где
Р (х) =
1 .2х+а А
—;=arctg-если у> 0;
л/У 24у
2
2 х + а 1
, если у = 0;
2у/_У
1п
х +1 а_х1_
х +1 а + Л/_
если у < 0.
и у = р_1 а2.
В задаче на интегрирование правильной рациональной дроби с кубическим знаменателем в зависимости от вида простейших дробей возникает четыре случая знаменателя, не считая вырожденных. Приведем один случай, когда знаменатель имеет вид (х + а)(х + (3) . Задавая коэффициенты А, В, Б в числителях простейших дробей и приводя полученное выражение к общему знаменателю, легко получить следующую задачу:
с( А + В) х2 + (2 А( + Ва + В( + Б) х + Ар2 + Бар + Ба
х3 + (а + 2() х2 + (2а( + р2) х + ар2
-йх =
А
В
Б
х + а х + Р (х + Р)2
> Б
йх = А 1п | х + а | + В 1п | х + Р | _
х + р
+ С,
где коэффициенты А и Б отличны от нуля, а и р различны, С - произвольная постоянная.
Вот пример параметрической схемы для дифференциального уравнения второго порядка с начальными условиями:
\2
А (у')2 = У ■ у" , У (0) = а, у '(0) = р ( А, РФ 0, а > 0 ).
Рх
Ответ: у = а ■ е а , если А = 1; у = I а
_Г 1_А . р( А _ 1)х ^ 1_А
а
если АФ1.
3.3. Применение функциональных схем
Третьим способом создания задач по неопределенным интегралам или дифференциальным уравнениям является использование функциональных схем, содержащих несколько функциональных параметров /(х), Р(х), g(х), G(х),..., связанных условиями Р( х) = / (х), в'( х) = ^ х),....
Начнем с интегрированием подведением под знак дифференциала. Простейшая схема выгляди так:
Найти J = J f (G(Xx))g(Xx) dx . Ответ: J = j F (G(Xx)) + С .
А"
Для дифференциальных уравнений с разделяющимися переменными можно предложить такую функциональную схему:
g(F(ах)),/(ах) т
у=л—мм— (1)
с тремя числовыми параметрами а, Р, Л и тремя парами функциональных параметров. Общее решение уравнения (1 ) имеет вид:
H(Ру) = ЛР- G(F(аx)) + C .
Для построения задачи на однократное интегрирование по частям
J (ax + P)h(Xx) dx = g(Xx) - a f (Xx) + С
. g (Xx) a f (Xx) + (
X X2
нужна цепочка из трех функциональных параметров f (x), g(x), h(x) , таких, что f'(x) = g(x) и g'(x) = h(x). Поскольку автоматическое построение такой «хорошей» цепочки - задача относительно сложная, проще построить некоторый банк таких цепочек, в которых явно заданы функции f (x), g(x), h(x) , например, f (x) = -ln(cosx), g(x) = tgx,
h(x) = - V .
cos x
Вот функциональна схема для дифференциального уравнения типа Бернулли:
(1 -a)F ( x) y' + f ( x) y = g( x) ya где a ф 1; при a = 0 оно превращается в линейное дифференциальное уравнение. Его об-
i-a G( x) + С щее решение: y = ——.
Есть еще один способ составления дифференциальных уравнений первого порядка с
общим интегралом в виде F(G(x), H(y)) = С . Дифференцируя левую и правую часть по
х, получим дифференциальное уравнение
P (G(x), H (y)) g(x) + Q (G( x), H (y)) h( y) y = 0 (2)
д F д F
где P(x,y)=-дъТ, Q(x,y)=^57 •
Например, пусть общее решение дифференциального уравнения имеет вид:
H (y)=(G( x) )c о ms=с '
Дифференцирование по х дает после некоторых преобразований уравнение
^ g(x)H(y)ln(H(y)) y h(y)G(x)ln (G(x)) ,
которое решается разделением переменных. В общем случае уравнение (2) можно записать и решить, как уравнение в полных дифференциалах:
P (G( x), H (y)) g (x) dx + Q (G( x), H (y)) h( y) dy = 0.
Следует заметить, что метод функциональных схем пока не реализован авторами в виде действующей компьютерной программы.
Заключение
Мы рассмотрели несколько способов генерирования заданий по аналитической геометрии, линейной алгебре и математического анализа. Многие из них реализованы на кафедре ФН-1 МГТУ им. Н.Э. Баумана в виде эффективно действующих программ для создания вариантов контрольных работ или индивидуальных домашних заданий по аналитической геометрии, линейной алгебре и неопределенным интегралам, а также ответов к ним и даже кратких решений.
Список литературы
[1]. Карнаухов В.М., Русаков А.А. Компьютерный способ подготовки раздаточного материала контрольных работ по математике. // Материалы Междунар. науч.-практ. конф. «Информатизация образования-2012». Орел: ООО «Картуш». 2012. 368 с. С. 99-103.
[2]. Кручинин В.В., Морозова Ю.В. Технология построения генераторов тестовых заданий для промежуточного контроля знаний // Восьмая Международная научно-практическая конференция-выставка «Единая образовательная информационная среда: проблемы и пути развития» (17-19 сентября 2009 г.). Томск: Томский государственный университет. 2009. С. 75 - 76.
[3]. Singh R, Gulwani S, Rajamani S. Automatically Generating Algebra Problems. // Proceedings of the Twenty-Sixth AAAI Conference on Artificial Intelligence. (July 22-26, 2012, Toronto, Ontario, Canada). AAAI Press. 2012. P. 1620-1636.
[4]. Abe K., Cortez R., Vazhenin A. Task management strategies for automatic task generation and verification. // Awareness Science and Technology and Ubi-Media Computing (CAST-UMEDIA). 2013 International Joint Conference (2-4 Nov. 2013). IEEE. 2013. P. 601 - 606. DOI: 10.1109/ICAwST.2013.6765510
[5]. Jörg Vollrath. An open access minimum automatic task generation live feedback system for electrical engineering. // 2015 IEEE Global Engineering Education Conference (EDUCON 2015). (18-20 March 2015, Tallinn University of Technology, Tallinn, Estonia). IEEE. 2015. P. 494 - 498. DOI: 10.1109/EDUTON.2015.7096015.
[6]. Kravtsov D. Automatic Tests and Practical Tasks Generation in Distance Learning Systems. // PRICAI 2012: Trends in Artificial Intelligence - 12th Pacific Rim International Conference, Kuching, Malaysia, September 3-7, 2012. Proceedings. 2012. P. 347-358.
[7]. Minh Luan Nguyen, Siu Cheung Hui, Alvis Cheuk M. Fong. Large-Scale Multiobjective Static Test Generation for Web-Based Testing with Integer Programming. // IEEE Transactions On Learning Technologies. 2013. Vol. 6. No. 1. P. 46-59. DOI: 10.1109/TLT.2012.22
[8]. Minh Luan Nguyen, Siu Cheung Hui, Alvis C. M. Fong. Web-Based Mathematics Testing with Automatic Assessment // 12th Pacific Rim International Conference on Artificial Intelligence, Kuching, Malaysia, September 3-7, 2012. Proceedings. PRICAI 2012: Trends
in Artificial Intelligence, series Lecture Notes in Computer Science. Springer-Verlag Berlin Heidelberg. Vol. 7458. P. 347-358. DOI: 10.1007/978-3-642-32695-0_32
[9]. Карнаухов В.М. Приложение LATEX. Генератор вариантов контрольных работ. / Монография. Saarbrücken, Germany: LAMBERT Academic Publishing. 2012. 100 с.
[10]. Соболев С.К. Генерирование матриц специального вида: аналитический подход. // Инженерный журнал: наука и инновации. 2013. № 5(17). Режим доступа: http://engjournal.ru/catalog/pedagogika/hidden/745.html (дата обращения 05.12.2014).
[11]. Мальцев А.И. Основы линейной алгебры. / Сер. учебники для вузов. СПб.: Лань. 2009. 247 с.
[12]. Коновалов Я.Ю., Соболев С.К., Ермолаева М.А. Методические аспекты автоматической генерации задач по линейной алгебре // Инженерный журнал: наука и инновации. 2013. № 5(17). 14 с. Режим доступа: http://engjournal.ru/catalog/pedagogika/hidden/740.html (дата обращения: 05.12. 2014).
[13]. Коновалов Я.Ю., Соболев С.К. Генератор контрольных заданий по высшей математике: опыт создания и применения. // Инженерный вестник. Эл. журнал. МГТУ им. Н.Э. Баумана. 2015. № 4. С. 1045-1055. Режим доступа: http://engbul.bmstu.ru/doc/771442.html (дата обращения: 08.07.2016).
[14]. Кручинин В.В., Магазинников Л.И., Морозова Ю.В. Генератор контрольных работ по курсу «Высшая математика - 1. Линейная алгебра» // Материалы III Всероссийской научно-практической конференции-выставки «Единая образовательная информационная среда: проблемы и пути развития». (Омск. 14-17 сентября 2004 г.). Омск: ОмГУ. 2004. 330 с. С.159-160.
[15]. Сергеев И.Н. Дифференциальные уравнения. М.: Издательский центр «Академия». 2013. 288 с.