Литература
1. ФЦИОР http://fcior.edu.ru; Единая коллекция цифровых образовательных ресурсов http://school-collection.edu.ru; Единое окно доступа к образовательным ресурсам ttp://window.edu.ru/window; Портал Гуманитарное образование http://www.humanities.edu.ru; Сетевое объединение методистов. http://som.fio.ru; Педсоветю^ http://pedsovet.org .
2. Селеменев С. В. Информационные технологии в школе: проблемы и поиски решения // Информатика и образование. - 2005. - № 5. - C.97-100.
3. Селеменев С. В. Знаковая наглядность // Образование в современной школе. - 2003. - № 2. -С. 33-42.
4. Селеменев С.В. Мультимедийный учебник по истории // Школьные технологии. - 2003. - № 6. -С.183-193.
5. Селеменев С.В. Компьютер и текст (мобильность информации) // Открытое образование. - 2005. - № 6. - С.18-23.
МЕХАНИЗМ РЕАЛИЗАЦИИ ВИРТУАЛЬНЫХ ЛАБОРАТОРИЙ В ИНФОРМАЦИОННО-ОБРАЗОВАТЕЛЬНОЙ СРЕДЕ ACADEMICNT
О.Е. Вашенков, программист Тел.: (812) 232-5914; E-mail: vashenkov@cde.ifmo.ru А.В. Лямин, к.т.н., директор Тел.: (812) 232-5914; E-mail: lyamin@cde.ifmo.ru Центр дистанционного обучения Санкт-Петербургский государственный университет информационных технологий, механики и оптики http://www.ifmo.ru
The article describes technology of virtual laboratories in informational learning system AcademicNT. The main issues of the article are illustrated by «Multi-style editor of code» virtual laboratory. Answer checking components, algorithms and data transmition protocol are presented.
В статье рассматривается механизм построения виртуальных лабораторий в информационно-образовательной среде AcademicNT. Основные положения статьи проиллюстрированы на примере виртуальной лаборатории «Многостилевой редактор кода». Приведены описания модулей, участвующих в проверке ответа, разработанных алгоритмов проверки ответа и протокола передачи данных».
Ключевые слова: виртуальная лаборатория, информационно-образовательная среда, алгоритмы проверки ответов.
Keywords: virtual laboratory, informational learning system, testing algorithm.
Введение
Стремление учебных заведений к повышению качества подготовки выпускников обусловливает отказ от обучения в аудитории и стимулирует переход к индивидуальному обучению. Однако в условиях массового образования индивидуальное обучение становиться неэффективным. Решение проблемы - переход к обучению, которое реализуется в специализированной информационно-образовательной среде, системе дистанци-
онного обучения и основывается на использовании информационных технологий для представления и передачи учебного материала.
Для достижения наилучшего результата в среде должен использоваться комплексный подход к организации и оценке качества учебно-методических материалов, необходимо реализовать в рамках среды механизмы построения виртуальных лабораторий и тренажеров, адаптивных обучающих диалогов, усовершенствовать технологии мониторинга и оценивания результатов обучения, обеспечить широкие коммуникативные возможности участников учебного процесса [1, 2].
В рамках информационно-образова-
тельной среды виртуальные лаборатории необходимы для формирования и проверки креативных навыков. В отличие от электронных тестов задания виртуальных лабораторий имеют неразрешимое множество правильных ответов. Для таких заданий нельзя описать правильный ответ конечным множеством или формальным выражением, например, в виде регулярных выражений. Электронные задания, выполненные по технологии виртуальных лабораторий, используются в различных дисциплинах, позволяя проводить эксперименты и контролировать методику их выполнения [4, 5]. Ярким примером использования данной технологии стал многостилевой редактор кода, который предназначен для проверки навыков реализации алгоритмов с возможностью кодирования на наиболее распространенных языках программирования [5-7].
В общем случае ответ на задание виртуальной лаборатории содержит описание некоторой системы с определенным набором входов и выходов. Эта система конструируется в соответствии с заданием на специализированном виртуальном стенде из объектов и отношений предметной области. Знание о правильном ответе может быть представлено в виде пар эталонных наборов входных и выходных данных. Для оценки правильности ответа необходимо получить реакцию описанной системы на заданном наборе входных данных и сравнить ее с соответствующим эталонным набором выходных данных. Совпадение реакции системы с эталонным набором выходных данных будет свидетельствовать о правильности ответа. Для получения реакции системы, описанной в ответе, на заданном наборе входных данных используется специализированная виртуальная машина.
Организация взаимодействия виртуального стенда и виртуальной машины, входящих в состав лаборатории, формирование заданий, эталонных наборов входных и выходных данных, протоколирование выполненных действий и полученных результатов - функции информационно-образовательной среды. В статье предлагается и описывается оригинальный механизм построения виртуальных лабораторий в рамках информационно-образовательной среды, системы Аса-demicNT, разработанной в Санкт-Петербургском государственном университете информационных технологий, механики и оптики (СПбГУ ИТМО). Основные результаты статьи проиллюстрированы на
примере виртуальной лаборатории «Многостилевой редактор кода».
Общая схема взаимодействия
Реализация виртуальной лаборатории предусматривает взаимодействие между различными модулями информационно-образовательной среды AcademicNT. После запроса на получение задания виртуальной лаборатории среда передает клиенту интерактивный элемент - аплет. Аплет реализует функции виртуального стенда. После взаимодействия с аплетом пользователь отправляет ответ на сервер с помощью управляющих элементов HTML-страницы. При этом используется язык сценариев JavaScript для получения данных из аплета. Взаимодействие между клиентом и сервером организовано по протоколу HTTP, что накладывает ограничение на символы, используемые в ответе пользователя. Поэтому задача аплета -корректное экранирование ответа пользователя перед отправкой.
Сервер перенаправляет HTTP-запрос веб-приложению, выполненному по технологии Java Servlets. Сервлет организует вызов хранимой процедуры на стороне системы управления базами данных (СУБД) и передает ей ответ пользователя. Процедура вызывает команду на стороне сервлета для отправки XML-сообщения на проверяющий сервер, выполняющий роль виртуальной машины лаборатории. Сообщение содержит ответ пользователя и эталонные данные. Вместе с командой на проверку сервлету передается ряд дополнительных переменных и список процедур, которые требуется вызвать после проверки. Проверяющий сервер осуществляет проверку для каждой пары эталонных наборов и возвращает результат сервлету в форме XML-сообщения. Взаимодействие между сервлетом и проверяющим сервером происходит по протоколу RLCP (Remote Laboratory Control Protocol - протокол управления удаленной лабораторией) [7].
После получения ответа сервлет разбирает XML-ответ и последовательно вызывает хранимые процедуры для занесения результатов проверки. Связи между модулями представлены на рис. 1.
Рис. 1. Схема взаимодействия модулей информационно-образовательной среды
Алгоритмы проверки
Проверка ответов в реальном масштабе времени
Проверка в реальном масштабе времени может быть использована, когда требуется немедленно определить правильность ответа. Однако для заданий виртуальной лаборатории время выполнения проверки зависит от сложности представленного решения, что может привести к непрогнозируемому увеличению нагрузки на серверную часть системы. Диаграмма, иллюстрирующая алгоритм мгновенной проверки, представлена на рис. 2. Как видно из диаграммы, при отправке ответа и его проверке происходит достаточно много вызовов между модулями системы AcademicNT, что значительно снижает время отклика системы.
Проверка ответов по таблице расписания
В целях снижения пиковых нагрузок на серверах ответы сохраняются в базе данных, а в таблицу расписания заносится задание на их проверку. Диаграмма последовательности вызовов при проверке по таблице расписания представлена на рис. 3. В среде AcademicNT момент времени проверки заданий, занесенных в таблицу расписания, определяется на основе псевдослучайного алгоритма в заданном интервале. Таким образом, обеспечивается проверка заданий параллельно с выполнением других функций, но уменьшаются время отклика системы и нагрузка на серверы, задействованные в проверке.
Модуль выполнения задач («Планировщик») по таблице расписания является частью сервлета системы. Его задача - периодический просмотр таблицы расписания на предмет новых заданий, время выполнения которых уже наступило. Задачи выполняются последовательно, поэтому фактическое время выполнения может отличаться от
запланированного. Диаграмма последовательности действий при выполнении проверки по таблице расписания представлена на рис. 4.
Инициатором активности является «Планировщик», который выбирает новое задание с помощью функций СУБД. Описание заданий возвращается в формате XML и содержит все данные, необходимые для выполнения отложенной задачи. Этот модуль все время следит за выполнением задачи и, в случае ошибки, переносит выполнение задания на срок, указанный в конфигурации сервлета. Уведомление о задачах, в процессе выполнения которых происходят ошибки после заданного количества неудачных попыток, отправляется администратору системы.
Описание протокола RLCP
Взаимодействие с проверяющими серверами происходит по протоколу RLCP. Протокол был специально разработан для передачи данных, необходимых для проверки ответа или выполнения вычислений.
Последовательность действий для отправки запроса следующая:
1) установление TCP-соединения;
2) запрос от сервлета к проверяющему серверу;
3) получение ответа от проверяющего сервера;
4) разрыв TCP-соединения.
Запрос к проверяющему серверу состоит из двух частей: заголовка и тела RLCP-сообщения. Заголовок отделен от тела сообщения пустой строкой. В заголовке указываются режим работы (Check или Calculate), а также поля заголовка в соответствии с форматом: «Название поля»: «Значение». Описание полей представлено в табл. 1. Режим Check предназначен для проверки результатов выполнения заданий виртуальной лаборатории, а режим Calculate -для выполнения вычислений на сервере.
Рис. 2. Диаграмма последовательности вызовов при проверке ответа в реальном масштабе
времени
Веб- об оз ревател ь
Сервпет
Отправка ответа
HTML
е- -
Вьаов функции
Следующая страница
I I I -и
Рис. 3. Диаграмма последовательности вызовов при проверке ответа по таблице расписания
Сервпет
Планировщик
СУБД
Вызвать функцию
Получить задание
XML-ответ
Вызов функции
Запрос на проверку задания ----------j------------
I
RLCP-запрос
RLCP-ответ
--------,-----------
I
Внесение результата
Операция выполнена
Обновление статуса
Проверяющий сервер
Рис. 4. Диаграмма последовательности вызовов при выполнении задания из таблицы расписания
Таблица 1
Поля заголовка RLCP-сообщения
Название поля Пример Описание
urî nil: rlcp://test:test@ 127.0.0.1:2005 Указывает URL проверяющего сервера
cornent-length content-length: 12345 Указывает размер RLCP-сообщения (в байтах)
Ответ сервера также представляет собой КЬСР-сообщение. Полный формат ответа следующий:
1) строка состояния;
2) поля заголовка;
3) пустая строка;
4) тело сообщения.
Строка состояния описывает код ответа. Коды ответов представлены в табл. 2. Поля заголовка описывают содержание сообщения (табл. 3.)
Таблица 2
Коды ответов проверяющего сервера
Код ответа XXX Описание
100 Сервер продолжает обрабатывать запрос
200 Запрос успешно обработан: ив ответе передаются данные, \"казанныев запросе
300 Затребованный ресурс времени о изменил свой адрес
400 Некорректный XML-файл
401 Некорректный набор входных данных
402 Несуществующая комбинация имени и пароля
403 Неподдерживаемый метод в запросе
404 Отсутствует строка состояния или обязательные поля заголовка
405 Отсутствует значение поля заголовка
500 Затребованный ресурс времени о недоступен
501 Указанный метод поддерасивается протоколом: но данным сервером нет
Таблица 3
Поля заголовка RLCP-ответа
Название поля Описание
content-length Размер тела ответа (в байтах). Используется, если код ответа 200
location Указывает на реальное расположение ресурса (RLCP URL). Используется если код ответа 300 (перенаправление запроса)
Каждая строка в запросе и ответе должна заканчиваться последовательностью символов «возврат каретки» (код 13) и «перевод строки» (код 10).
КЬСР-сообщение включает идентификаторы эталонных наборов данных, время выполнения проверки, результат и оценку результата. Проверяющий сервер как полноценное приложение может взаимодействовать с внешними программами по произвольным протоколам.
XML-сообщения протокола RLCP для запроса и ответа имеют различную структуру. Описание элементов в запросе представлено в табл. 4. DTD-описание документа с запросом на проверку следующее: <!ELEMENT Output (#PCDATA)> <!ELEMENT Input (#PCDATA)> <!ELEMENT Request (Conditions, Instructions^
<!ELEMENT Conditions (ConditionForCalcu-lating | ConditionForChecking+)>
<!ELEMENT ConditionForChecking (Input, Output)>
<!ATTLIST ConditionForChecking id CDATA #REQUIRED Time CDATA #REQUIRED
put)>
>
<!ELEMENT ConditionForCalculating (In-
<!ATTLIST ConditionForCalculating Time CDATA #REQUIRED
>
<!ELEMENT Instructions (#PCDATA)>
Таблица 4
Назначение элементов в RLCP-запросе
Элемент Значение
Request Корневой элемент сообщения
Request/C on diti oils Элемент, инкапсулирующий эталонные наборы данных и параметры для проверки или вычисления
Request/C on diti ons/ ConditioiiForCheckdng/(2[id Идентификатор пары эталонных набор входных и выходных данных
Request/C onditions/ С onditi oni orClieckdng/@Time Ограничение по времени на выполнение проверки
Request/C onditions/ С onditioni orCliecking/Input С одержит эталонный набор входных данных
Request/C onditions/ С onditioni orCliecking/Outpiit С одержит эталонный н абор выходных данных
Request.''Conditi oils/ С onditi oni orC alculating/@Tim e Ограничение по времени на выполнение вычислений
Request/C onditions/ С onditioni orC alculating/Input Содержит набор входных данных дтя выполнения вычислений
Request;1nstructions Ответ пользователя
Описание XML-элементов в ответе представлено в табл. 5. DTD-описание XML-документа с ответом от проверяющего сервера следующее:
<!ELEMENT Response (CheckingResult+ | CalculationResult)>
<!ELEMENT CheckingResult (#PCDATA)> <!ATTLIST CheckingResult id CDATA #REQUIRED Time CDATA #REQUIRED Result (0 | 1) #REQUIRED
>
<!ELEMENT CalculationResult (#PCDATA)>
Таблица 5
Назначение элементов в RLCP-ответе
Элемент Значение
Response Корневой элемент сообщения
Respons е.'С heekingResult Эл емен т-кон тейн ер для результатов проверки по одному эталонному наберу данных
R е spoils е/С h eckingR e s ult /@i d Идентификатор исходного эталонного набора данных
Respons e/CheddngResult/@Time Время выполнения проверки сданным входным н абор ом
Respons e/CheckingResult/@Resalt Р езультат вып о лн енпя -признак совпадения эталонного выходного набора и сосгояния сервера после выполнения о тв ета п о льзов ателя
Respons e/CalculationResult Р езупьтат вып о лн ения вычи сл ений
Многостилевой редактор кода
Многостилевой редактор кода - это виртуальная лаборатория, которая была разработана для проверки навыков реализации алгоритмов с возможностью кодирования на
наиболее распространенных языках программирования: Basic, C, Pascal.
Аплет виртуальной лаборатории позволяет задать переменные, необходимые для работы программы, написать код программы, выбрать стиль кодирования и использо-
вать готовые конструкции выбранного стиля. Корректно написанные программы можно отлаживать в пошаговом режиме или выполнять с возможностью остановки. Внешний вид клиентской части приведен на рис. 5.
В верхней части окна представлен список переменных и кнопка «Редактировать», позволяющая переходить к диалоговому окну «Список переменных» для их редактирования. В центре окна представлена область для ввода кода программы.
Реализована подсветка синтаксиса на основе выбранного стиля кодирования. Справа представлена библиотека синтаксических конструкций для выбранного стиля. При двойном щелчке на элементе списка произойдет вставка соответствующей конструкции в область ввода кода. В нижней части окна расположена область сообщений, в которую выводятся ошибки компиляции, ошибки выполнения или статус при отладке. Список «Стиль кодирования» используется для смены стиля, что приводит к изменению списка подсвечиваемых ключевых слов и
обновлению древовидного списка операторов. Стиль «Свободный» позволяет кодировать на произвольном языке без возможности вставки готовых конструкций в область ввода кода, отладки и выполнения программы.
Справа внизу расположены кнопки для запуска программы в режиме отладки, выполнения следующей строчки кода, выполнения программы и останова. Во время отладки в списке переменных меняются значения. Кнопка для останова программы позволяет предотвратить зацикленные программы. На сервере за временем выполнения программы следит отдельный поток. В случае превышения лимита, установленного автором, ответ считается неправильным.
Переменные, используемые в программе, должны быть определены до выполнения и отладки программы. Если в процессе компиляции будет обнаружена переменная, не указанная в списке, в область сообщений будет выдана ошибка компиляции. Диалоговое окно для работы с переменными представлено на рис. 6.
Входные переменные Выходные переменные Внутренние переменные
Исходный код:
а[0]= ¿1[1]=У
¿12]=?
ГП-1/
1>[0]=1 1>[1]=А
1)[2]=5
ЬГП-П
¡=0
иог(1=0
¡50
Редактировать
1еп = 0; иоЕй = 1.;
5 = Ь
п = 50;
•гй1±1е(1 =5 -50) {
±1:(а[1] == "Н
1 | 50; }; el.se {
±1!(а!:х] == Щ И(таогЛ == 1){ 1еп = 1 - ];
11((1еп < И)«К* (1еп > 0)Ц К = ¿ЁП;
1:1
Библиотека
Г~| Управляющие конструкции Если
ЕслиМначе Цикл с постусловием Цикл с предусловием I I Оператор присваивания
" □:=
□ Арифметические операторы
□
□ / той
□ Логические операторы
□ и
О
□ не
□ Операторы сравнения
_.
Сообщения:
Стиль кодирования изменен на:-0
Стиль кодирования: С
т ц.
Рис. 5. Интерфейс пользователя виртуальной лаборатории
Переменные могут быть заданы как входные, выходные или внутренние. Входные и выходные переменные используются при автоматической проверке на сервере. Во входные переменные подставляются значения из эталонного входного набора. Значения выходных переменных сверяются с эталонным выходным набором. Внутренние переменные используются для реализации
алгоритмов и только в процессе выполнения программы пользователя.
Всего доступно пять типов переменных: целые числа, вещественные числа, массивы целых чисел, массивы вещественных чисел и массивы символов. Для массивов начальные значения задаются в диалоговом окне «Редактирование массива», которое представлено на рис. 7.
При несоответствии типов введенных значений выводится сообщение об ошибке. Если же при выполнении на сервере обна-
ружено несоответствие типов с эталонными наборами данных, программа считается неправильной.
Гписок переменных
□ □
□ □
□ □
□ □
□ □
□ □
Переменная Входная Выходная Уин О intari ay
Ob
Ga
О decarray О chararray Ostr
Уип |Щчальнй6 значение
Массив целых чисел l^-
Вещественное число g ixs
Целое число - 3
Массив вещественных чисел
Массив символов I-
Сцюка символов string
Добавить
Удалить
Сохранив
Рис. 6. Диалоговое окно для редактирования переменных
Рис. 7. Диалоговое окно для редактирования значений массива целых чисел
Особенности передачи данных
Виртуальная лаборатория по информатике «Многостилевой редактор кода» - один из примеров реализации виртуальной лаборатории. Она используется для проверки навыка разработки алгоритмов. От испытуемых требуется подготовить код программы, реализующей заданный алгоритм, определить входные и выходные переменные. Перед отправкой аплет кодирует ответ пользователя в виде ХМЬ-документа, который описывается следующим БТБ-определением:
<! ELEMENT ProgramEnvironment (Varia-ble+, Code)>
<!ELEMENT Variable (Name, Type, Val-ue+)>
<!ATTLIST Variable
input CDATA (true | false) "false" output CDATA (true | false) "false" inner CDATA (true | false) "true"
>
<!ELEMENT Type (#PCDATA)> <!ELEMENT Value (#PCDATA)> <!ATTLIST Value N CDATA #IMPLIED
>
<!ELEMENT Code (#PCDATA)>
<!ATTLIST Code
style CDATA #REQUIRED
>
Данные передаются в качестве комментариев в элементах Name, Type, Value, Code. Поэтому особое значение приобретают символы "-". При отсутствии экранирования происходят ошибки разбора
XML-документа и прекращение проверки.
При отправке ответа аплет экранирует специальные символы в элементах Name, Type, Value и Code. Символы преобразуются в сущности в порядке, представленном в табл. 6. Окончательный XML-документ также экранируется для передачи по протоколу HTTP. При обработке ответа на сервере требуется преобразование в обратном порядке.
Таблица 6
Специальные символы в XML ответе
JV§ Символ Сущность
1 & &атр;
2 <
3 > &gU
4 - Адтр minus;
5 11 ".
6 Переносы строки (одиночные символы и последовательности символов с кодами 10 и 13) &h:br.>:
Трудности с подготовкой данных для передачи связаны с необходимостью восстановления XML-ответа в нескольких случаях:
1) проверка ответа на сервере;
2) XSLT-преобразование ответа при генерации страницы с результатами, на которой требуется форматированный вывод программы и переменных;
3) восстановление исходного кода и переменных при повторном вызове задания.
Пример эталонных наборов
В качестве примера рассмотрим формат эталонных данных для виртуальной лаборатории по информатике «Многостилевой редактор кода». Входные данные описывают значения переменных, которые устанавливаются до запуска программы, описанной в ответе. Предполагается, что результатом работы программы будет набор выходных переменных, соответствующих по именам и значению выходному эталонному набору. Следовательно, формат записи эталонных наборов для данной лабораторной установки должен позволять описывать переменные простых типов, массивы и указывать допустимую точность ответа.
Контекстно-свободную грамматику эталонных данных можно представить в расширенной форме Бакуса-Наура следующим образом:
LETTER ::= 'A'. 'Z' |'a'..'z'
INT ::= '0'..'9'
DOUBLE ::= INT+ '.' INT+ SPACES ::= ' '
| V | V | '\t'
EQ ::= '='
symbol : := (LETTER | INT | '.' | ',' | '*' | '/ |
(V '"') | (V ''') | V | '{' | '}' | '+' | (V '[') | (V ']') | '<' | '>' | '=' | '-' | ':' | ';'
testSet ::= (answer ';' SPACES?))* answer answer ::= variable EQ
(array | value) variable ::= LETTER+
precision? precision ::= '{' DOUBLE+
value ::= INT | DOUBLE | (''' symbol+''') array ::= '[' (value ',')* Value ']'
В качестве примера эталонного выходного набора можно рассмотреть запись:
a = 2; b{20} = 1.1; c = ['a', b', 'c', 'd']; d = 1.1E+3;
В данном случае от испытуемого требуется подготовка пяти выходных переменных. Значения переменных, которые должны быть установлены после выполнения программы, представлены в табл. 7.
Заключение
Информационно-образовательная среда AcademicNT предназначена для организации и проведения учебного процесса. Одним из основных достоинств среды является нали-
чие встроенного механизма для построения виртуальных лабораторий, которые необходимы для формирования и проверки навыков. В данной статье описана схема взаимодействия модулей информационно-образовательной среды, приведены описания разработанных алгоритмов проверки ответов и протокола обмена данными. Ос-
новные результаты статьи проиллюстрированы на примере виртуальной лаборатории «Многостилевой редактор кода», которая предназначена для проверки навыков реализации алгоритмов с возможностью кодирования на наиболее распространенных языках программирования.
Таблица 7
Требуемые значения переменных после выполнения программы
JV- Имя Тип Значение Допустимая погрешность т
Целое число
1 а или вещественное число 2 0
2 Ъ Вещественное число 1.1 20
Массив
3 с символов из четырех элементов a b с d -
4 D Вещественное число 1100 0
В октябре 2008 года в рамках 10-го юбилейного Всероссийского форума «Образовательная среда-2008» проводился Всероссийский творческий конкурс научно-технических решений, образовательных продуктов и услуг в области информатизации образования. По результатам конкурса информационно-образовательная среда AcademicNT была признана победителем в номинации «Корпоративные системы дистанционного обучения».
Представленные в статье результаты прошли апробацию и продемонстрировали свою эффективность в ходе реализации следующих проектов:
• Система дистанционного обучения СПбГУ ИТМО (http://de.ifmo.ru);
• Методический Интернет-центр (http://ito-center.ifmo.ru);
• Система для проведения Интернет-олимпиад и экзаменов (http://de.ifmo.ru /exam).
Литература
1. Васильев В.Н., Лямин А.В., Чежин М.С. Система дистанционного обучения второго поколения // Научно-технический вестник СПбГУ ИТМО. - 2007. - Вып. 45. - С.148-157.
2. Васильев В.Н., Лямин А.В., Чежин М.С. Средства организации самостоятельной работы студентов в сетевой информационно-образовательной среде AcademicNT // Матер. межвуз. научн.-метод. конф. «Проблемы разработки учебно-методического обеспечения перехода на двухуровневую систему в инженерном образовании» / МИСиС. - М., 2008. - С.224-232.
3. Вашенков О.Е., Волкова А.А., Лямин А.В. Примеры реализации сетевых виртуальных лабораторий в среде системы дистанционного обучения // Научно-технический вестник СПбГУ ИТМО. - 2007. -Вып. 45. - С.157-164.
4. Вашенков О.Е., Лямин А.В., Тарлыков В.А. Оценивание результатов обучения в среде электронного учебно-методического комплекса по дисциплине «Когерентная оптика» // Конф. «Оптика и образование - 2006» / СПбГУ ИТМО. - СПб., 2006. - С.70-71.
5. Васильев В.Н., Лисицына Л. С., Лямин А.В. Технология проведения ЕГЭ по информатике в компьютерной форме // Научно-технический вестник СПбГУ ИТМО. - 2007. - Вып. 45. - С. 126-143.
6. Васильев В.Н., Лисицына Л.С., Лямин А.В. Сетевая технология проведения вступительных испытаний по информатике в режиме on-line // Сб. научн. тр. «Использование информационно-коммуникационных технологий в процессе оценки качества образования». - СПб., 2008. - С.55-70.
7. Вашенков О.Е., Лямин А.В. Технология разработки виртуальных лабораторий в информационно-образовательной среде AcademicNT на примере работы по информатике // Матер. межвуз. научн.-метод. конф. «Проблемы разработки учебно-методического обеспечения перехода на двухуровневую систему в инженерном образовании» / МИСиС. - М., 2008. - С.239-249.