Научная статья для MEDIAS

Мы делаем лучше!
Список всех наших услуг >>

Научная статья для MEDIAS

Создание интерактивных 3d интерфейсов для систем управления обучением
В статье представлен способ интеграции систем поддержки обучения с открытым исходным кодом (на примере СУО Moodle) с системами виртуальной реальности с поддержкой 3d-стерео графикой (на примере трехмерного интерактивного движка Quest3d
Огурцов Александр, Пустовой Тарас, Шведков Илья, Яганов Роман
Москва, ОАО НИИТеплоприбор
Система управления обучением (СУО) — основа системы управления учебной деятельностью (англ. Learning Management System, LMS), используется для разработки, управления и распространения учебных онлайн-материалов с обеспечением совместного доступа. Создаются данные материалы в визуальной учебной среде с заданием последовательности изучения. В состав системы входят различного рода индивидуальные задания, проекты для работы в малых группах и учебные элементы для всех студентов, основанные как на содержательной компоненте, так и на коммуникативной.

Введение
История персональных компьютеров, ставших общедоступными, ведет отсчет уже третьего своего десятилетия, однако обучение с помощью компьютерных технологий начало развиваться гораздо позже. Попытки дополнить традиционную модель заочного образования решениями на базе CD-ROM вылились со временем в целую индустрию дистанционного обучения. Для обозначения этой модели обучения все чаще используется емкий термин e-Learning. Европейская комиссия определяет e-Learning как "использование новых технологий мультимедиа и Internet для повышения качества обучения за счет улучшения доступа к ресурсам и сервисам, а также удаленного обмена знаниями и совместной работы". На данный момент система управления обучения является передовой технологией в образовательной сфере. Оставив позади CD-ROM носители, мультимедийный контент, неизбежно перекочевал либо в локальную, либо в глобальную сеть в зависимости от требований конечных пользователей, со всеми своими плюсами и минусами. Если говорить о WEB ориентированных СУО, то тут можно выделить Open Source LMS Moodle, которая широко известна в мире, используется более чем в 100 странах. LMS Moodle распространяется в открытом исходном коде - это дает возможность "заточить" систему под особенности конкретного образовательного проекта, а при необходимости и встроить в нее новые модули.
В последнее время в учебном процессе активно используются материалы в формате 3d со стерео графикой, поскольку такой подход является очень эффективным в обучающем процессе, была поставлена задача объединить удобства использования систем управления обучения с современным средством вывода учебных материалов. Так как аналогичных систем не было обнаружено, принято решено разработать собственный механизм. В статье рассказано как расширить возможности мультимедийного контента LMS Moodle с помощью трехмерного интерактивного игрового движка Quest3d. Поставленная задача позволит в итоге обучаемым использовать в полном объеме все возможности движка Quest3d. Выделим основные требования к нашей разработке:

  1. Поддержка 3d/стерео режимов в учебных материалах
  2. Возможности по формированию учебных курсов
  3. Возможности получения различных видов отчетов преподавателем об успеваемости и результатах обучения обучаемых
  4. Возможность выполнения базовых операций по редактированию и перекомпоновки учебных курсов Заказчиком или его представителями самостоятельно
  5. Возможности по резервному копированию и восстановлению учебной и административной информации, а также возможность вернуться к «режиму заводских настроек» – состоянию в котором система передается Заказчику

Все эти функции возможно реализовать на платформе Quest3d, но по опыту можно сказать, что это процесс достаточно трудоемкий и требует от заказчика дополнительного вложения средств и времени. По этому было принято решение применить новый подход, заключающийся в интеграции системы управления обучением – LMS (Learning Management System) в трехмерный движок Quest3d.
Сформируем главную задачу разработки: реализовать двухстороннюю передачу данных между LMS Moodle и Quest3d.

Система управления обучением
Технологии электронного обучения.  Технически e-Learning решение строится на основе целого ряда программных продуктов.
Средство разработки учебного контента (Authoring Tool) Система управления обучением (Learning Management System) — принятый в России термин — Система Дистанционного Обучения (СДО) Система обмена информацией. Система управления контентом / учебным порталом. Система дистанционного обучения является основой любой e-Learning системы. Система управления обучением реализует следующие функции:

  1. Учет слушателей, персонализация, разграничение прав доступа.
  2. Управление процессом обучения, учет результатов обучения и тестирования.
  3. Интеграция с механизмами синхронного и асинхронного общения.
  4. Подготовка аналитической отчетности.
  5. Интеграция с внешними информационными системами (например, с системой кадрового учета).

С помощью средств разработки учебного контента создаются учебные материалы и тесты, которые затем помещаются в базу данных системы управления обучением. Через нее слушатели получают доступ к учебным материалам. Система обмена информацией позволяет учащимся, преподавателям, экспертам и другим участникам учебного процесса обмениваться информацией между собой как в режиме реального времени (синхронно) так и асинхронно. Web"=интерфейс системы управления обучением, как правило, строится на основе средств управления контентом. Учебный контент может быть статическим (HTML страницы, тексты) и интерактивным, с элементами анимации и голосовым сопровождением. Для создания статического контента можно использовать стандартные редакторы, такие как Microsoft Word. Интерактивный контент создается с помощью специальных программных продуктов. Модуль обмена информацией системы е-Learning позволяет реализовать следующие функции (в зависимости от выбранного программного обеспечения): Асинхронное общение — форумы, доски объявлений, электронная почта Синхронное общение — голосовой и компьютерный чат, видеоконференции, совместное использование программных продуктов, виртуальная аудитория.
Основные типы ПО для создания e-learning решений.  Чтобы дистанционное обучение (ДО) было эффективным, используемая в нем технология должно обладать такими характеристиками, чтобы оно доставляло удовольствие и обучаемому и преподавателю. Ничто так не гасит энтузиазм новоявленных учеников, как технические проблемы, создаваемые сложным в использовании программным обеспечением. Рассмотрим основные технологические решения, используемые для электронного обучения (e-learning solutions). Спектр программного обеспечения для ДО очень широк. На одном краю этого спектра — простые программы, выполненные в HTML, на другом — сложные системы управления обучением и учебным контентом (Learning Content Management Systems), использующиеся в корпоративных компьютерных сетях. Среди основных типов программного обеспечения для создания e-Learning решений можно выделить:

  1. авторские программные продукты (Authoring Packages);
  2. системы управления обучением (Learning Management Systems — LMS);
  3. системы управления контентом (Content Management Systems — CMS);
  4. системы управления учебным контентом (Learning Content Management Systems — LCMS).

истема LMS, в идеале, должна предоставлять каждому студенту персональные возможности для наиболее эффективного изучения материала, а менеджеру учебного процесса - необходимые инструменты для формирования учебных программ, контроля их прохождения, составления отчетов о результативности обучения, организации коммуникаций между студентами и преподавателями. Студент получает от LMS возможности доступа к учебному порталу, который является отправной точкой для доставки всего учебного контента, выбора подходящих учебных треков на основе предварительного и промежуточных тестирований, использования дополнительных материалов с помощью специальных ссылок.
LMS обеспечивает и механизмы защиты, необходимые для сетевой среды e-Learning, а также, в случае масштабных учебных проектов, поддерживает интеграцию с системами планирования ресурсов предприятия и LMS, являясь решением для управления учебным процессом, поддерживает, как управления персоналом, минимум, использование электронных курсов из различных источников; наиболее развитые системы предлагают специальные модули для разработки собственного учебного контента. Для того чтобы LMS-платформы имели возможность "проигрывать" разные готовые курсы, созданы стандарты интероперабельности. Так, Airline Industry CBT Committee описывает взаимодействие компьютерных тренингов с системами управления и служит основой для развития аналогичных стандартов интероперабельности для Web-курсов.
Традиционными лидерами западного рынка LMS являются решения компаний Saba Software, Docent, WBT Systems, Click2Learn, IBM. Свои предложения есть и на отечественном рынке, среди них — система дистанционного тренинга Redclass (совместная разработка компании Redlab и учебного центра Redcenter) "Прометей" производства НИЦ АСКБ, e-Learning компании "ГиперМетод", распространяемая в открытых кодах система NauLearning от компании Naumen и др.
Преимущества Open Source LMS Moodle. Open Source LMS Moodle широко известна в мире, используется более чем в 100 странах. По уровню предоставляемых возможностей Moodle выдерживает сравнение с известными коммерческими LMS, например с вышеупомянутой IBM Lotus Learning Management System, в то же время выгодно отличается от них тем, что распространяется в открытом исходном коде - это дает возможность "заточить" систему под особенности конкретного образовательного проекта, а при необходимости и встроить в нее новые модули. Moodle ориентирована на коллаборативные технологии обучения - позволяет организовать обучение в процессе совместного решения учебных задач, осуществлять взаимообмен знаниями.
Широкие возможности для коммуникации — одна из самых сильных сторон Moodle. Система поддерживает обмен файлами любых форматов — как между преподавателем и студентом, так и между самими студентами. Сервис рассылки позволяет оперативно информировать всех участников курса или отдельные группы о текущих событиях. Форум дает возможность организовать учебное обсуждение проблем, при этом обсуждение можно проводить по группам. К сообщениям в форуме можно прикреплять файлы любых форматов.
Есть функция оценки сообщений — как преподавателями, так и студентами. Чат позволяет организовать учебное обсуждение проблем в режиме реального времени. Сервисы "Обмен сообщениями", "Комментарий" предназначены для индивидуальной коммуникации преподавателя и студента: рецензирования работ, обсуждения индивидуальных учебных проблем. Сервис "Учительский форум" дает педагогам возможность обсуждать профессиональные проблемы. Важной особенностью Moodle является то, что система создает и хранит портфолио каждого обучающегося: все сданные им работы, все оценки и комментарии преподавателя к работам, все сообщения в форуме.
Преподаватель может создавать и использовать в рамках курса любую систему оценивания. Все отметки по каждому курсу хранятся в сводной ведомости.
Moodle позволяет контролировать "посещаемость", активность студентов, время их учебной работы в сети.
Причины, по которой, был выбран именно этот инструмент:

  1. Наличие программных интерфейсов(API) позволяющих создавать дополнительные модули для системы управления обучением, которые могут реализовывать необходимую функциональность;
  2. Широкое распространение и поддержка большим количеством разработчиков по всему миру;
  3. Открытость программного кода, позволяющая при необходимости провести полный аудит на предмет безопасности;
  4. Наличие базовой необходимой функциональности по организации учебного процесса;
  5. Совместимость с большим количеством образовательных стандартов, в том числе и со форматов распространения учебного контента SCORM;
  6. Высокие возможности по доработке и темизации пользовательского интерфейса, под конкретные предметные области.

Благодаря развитой модульной архитектуре, возможности Moodle могут легко расширяться сторонними разработчиками. Помимо языковой поддержки и шаблонов оформления, Moodle позволяет подключать различные типы модулей. В связи с выше изложенным был выбран именно этот продукт в качестве СУО.
3d стерео и Quest3d. LMS Moodle имеет один недостаток - это отсутствие поддержки 3d-стерео графики в обучаемых материалах. Для решения этой задачи решено подобрать инструмент, с помощью которого можно реализовать этот функционал. Рассмотрев программные продукты, был выделен трехмерный многофункциональный движок Quest3d.
Quest3d это многофункциональная система для разработки real-time-приложений. Гибкость и управляемость системы позволяет использовать ее в любых областях, наиболее распространенные из них: архитектурные визуализации, презентации объектов и технологий, образовательные программы, виртуальный туризм, игры и многие другие.
Уникальный метод визуального программирования, простой и понятный интерфейс программы Quest3d, визуальный интерфейс программирования, помогает разработчикам не знакомому с программированием быстро освоить продукт и добиться результатов и в сжатые сроки создавать собственные приложения. Встроенные технологии и методы позволяют добиться результата схожего с самыми передовыми игровыми движками.
В качестве системы для создания виртуального окружения и обеспечения взаимодействия с обучаемым в режиме обучения выбран Quest3D. Эта система виртуальной реальности отличается рядом важных преимуществ:

  1. средства визуального программирования, которые позволяют менять параметры и оценивать изменения в режиме реального времени;
  2. широкие возможности по расширяемости, за счет компонентов. Система имеет комплект средств разработки – SDK (от англ. software development kit), который позволяет создавать модули на языке C++;
  3. импорт 3D моделей из большого количества форматов, а именно DXF, 3DS, OBJ, DAE, FBX и формат MAX различных версий;
  4. ряд высоко реалистичных инструментов для моделирования природного окружения (воды, погодных условий, земной поверхности, и т.д.)
    высокая скоростью просчета и отрисовки сцен;

Описание процесса разработки
Разработка общего протокола для связи. Задача заключалась в наиболее оптимальном варианте объединения двух систем Quest3d и Moodle, которые были разработаны в различных (гетерогенных) средах. Для начала необходимо было определить каким способом можно осуществить передачу данных. И с помощью какого формата программы (системы) могли "общаться". Было предложено два варианта. Первый заключался в написании дополнительной программы средствами С++, который связывал бы LMS Moodle и Quest3d, являясь неким шлюзом (мостом), как показано на рисунке 1:

Рис. 1. Вариант 1. Разработать связующую программу
Для обеспечения возможности взаимодействия различных компонентов СУО между собой был разработан специальный протокол. Этот протокол является производным от XML-RPC протокола и позволяет описывать команды передаваемые сервису доступа к системе управления обучением, и возможные варианты ответов этого сервиса, о котором рассказывается ниже. Но проработав это вариант, было принято решение миновать связующую программу. Напоминаем, что Quest3d это многофункциональная система для разработки real-time-приложений с визуальным языком программирования. Процесс разработки приложений в этой среде заключается в логическом соединении связей между каналами (channels). Quest3d, в своем арсенале имеет ограниченный набор каналов. Но благодаря встроенному пакету SDK для разработчиков, можно этот набор пополнять. Так для текущей задачи средствами Visual C++ и Quest3d SDK был написан новый канал для связки Quest3d и Moodle. Второй вариант выглядит как показано на рисунке 2:

Рис. 2. Вариант 2. Дописать канал для Quest3d - HttpPageChannel (HPC)
Описание разработанного нами канала "HttpPageChannel", который изображен на рисунке 3:

Рис. 3. Канал "HttpPageChannel" разработанный нами для Quest3d
Описание: канал вызывается один раз в Quest3d по какому либо событию.

  1. Set Query (тип данных - Text) -  Выбор метода передачи данных (GET/POST)
  2. Set Url (тип данных - Text) - УРЛ для отправки запроса
  3. Set Data (тип данных - Text) - Параметры запроса
  4. Get Status (тип данных - Text) - Отчет о состоянии запроса
  5. Get Data (тип данных - Text) - Ответ
  6. Get Count (тип данных - Value) - Кол-во символов в ответе (для отладки)

Разработка общих команд. Была разработана связь и возможность отправлять сообщения методом POST (запрос-ответ) между двумя системами. Следующим шагом являлось разработка набора команд понятных для обеих сторон.

Рис. 4. UML диаграмма последовательностей для пользователя ПК
На рисунке 4 показано, что изначально команды отправляются от программы Quest3d, в ответ Moodle передает результат выполненной команды. Далее был разработан набор команд, для взаимодействия этих двух систем. Вот некоторые из них:

  1. CheckLogin - Проверяет имеет ли пользователь с указанными данными авторизации права на работу в системе
  2. GetCoursesList - Запрашивает у системы обучения список курсов
  3. GetTopicsList - Запрашивает у системы обучения список разделов в данном курсе
  4. GetTopicElementsList - Запрашивает список учебных материалов и активностей в рамках выбранного раздела
  5. GetTopicElement - Запрашивает определенный учебный материал или сценарий определенной активности в определенном разделе

Этот запрос в виде XML отправляется в СУО Moodle из интерфейса созданного с помощью средств Quest3d тогда, когда пользователь запрашивает лекцию №2 (см. рисунок 5):

Рис. 5. Пример запроса лекции
В следующем примере показан ответ в виде XML (см. рисунок 6):

Рис. 6. Пример ответа на запрос
Далее стандартными средствами Quest3d, XML-текст с командами переводился в понятный код и выводил материал на экран как показано на рисунке 7:

Рис. 7. Вывод результата системой виртуального окружения
Способы обеспечения качества разработки программного обеспечения
Разработка через тестирование. Разработка через тестирование (test-driven development, TDD) — техника разработки программного обеспечения, которая основывается на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, затем пишется код, который позволит пройти тест и под конец проводится рефакторинг нового кода к соответствующим стандартам.
Разработка через тестирование поощряет простой дизайн и внушает уверенность. Тест — это процедура, которая позволяет либо подтвердить, либо опровергнуть работоспособность кода.
Когда программист проверяет работоспособность разработанного им кода, он выполняет тестирование вручную. В данном контексте тест состоит из двух этапов: стимулирование кода и проверки результатов его работы. Автоматический тест выполняется иначе: вместо программиста стимулированием кода и проверкой результатов занимается компьютер, который отображает на экране результат выполнения теста: код работоспособен или код неработоспособен. Методика разработки через тестирование позволяет получить ответы на вопросы об организации автоматических тестов и выработке определенных навыков тестирования. Основными преимуществами использования подхода «разработка через тестирование» являются:

  1. Использование тестов для приемки позволяют точно зафиксировать факт наличия нужной функциональности и осуществить принятие решения о готовности программного продукта
  2. При использовании тестирования, уменьшается количество ошибок и улучшается качество кода
  3. Модульное тестирование способствует формированию четких и небольших интерфейсов, что снижает зависимость между классами и облегчает дальнейшую разработку и последующие изменения
  4. Тесты позволяют  проводить рефакторинг кода без риска изменения его функциональности, способствуя улучшению архитектуры
  5. Тесты могут использоваться в качестве документации, оставаясь всегда в актуальном состоянии, в отличии от документации

В рамках проекта использовались подходы автоматического тестирования, для этих целей была разработана платформа для запуска автоматических текстов и написаны автоматические тесты для ключевых команд протокола, позволяющие проверить  правильность интеграции компонентов системы.
Использование паттернов проектирования. В разработке программного обеспечения, шаблон проектирования или паттерн (англ. design pattern) — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. Обычно шаблон не является законченным образцом, который может быть прямо преобразован в код; это лишь пример решения задачи, который можно использовать в различных ситуациях. Объектно-ориентированные шаблоны показывают отношения и взаимодействия между классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться. «Низкоуровневые» шаблоны, учитывающие специфику конкретного языка программирования, называются идиомами. Это хорошие решения проектирования, характерные для конкретного языка или программной платформы, и потому не универсальные. На наивысшем уровне существуют архитектурные шаблоны, они охватывают собой архитектуру всей программной системы. Главная польза каждого отдельного шаблона состоит в том, что он описывает решение целого класса абстрактных проблем. Также тот факт, что каждый шаблон имеет свое имя, облегчает дискуссию об абстрактных структурах данных (ADT) между разработчиками, так как они могут ссылаться на известные шаблоны. Таким образом, за счёт шаблонов производится унификация терминологии, названий модулей и элементов проекта.
Использование стандартных библиотек. Важным элементом обеспечения качества разработки является использование открытых библиотек и решений, которые приобрели популярность в среде профессиональных разработчиков и стали «де-факто» стандартными, в тех местах, где это возможно. Основными преимущества использования стандартных открытых библиотек и решений являются:

  1. хорошая документация и справочная информации, позволяющая быстрее находить ошибки и реагировать на нештатные ситуации
  2. высокое качество кода популярных открытых библиотек и решений, которое было многократно апробировано и доработано профессиональным сообществом
  3. возможность ознакомления с кодом на предмет поиска «закладок» и других потенциальных проблем, которые могут повлечь нарушении безопасности и уязвимости в создаваемых продуктах
  4. постоянная доработка и развитие библиотек и решений, что позволяет в дальнейшем расширять возможности без значительных усилий по доработке ПО

Библиотеки и решения, которые были использованы при разработке:

  1. jQuery - библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax. Это продукт с открытым кодом, который может использоваться в любых видах продуктов
  2. Twitter Bootstrap – библиотека для реализации элементов пользовательского интерфейса. Это продукт с открытым кодом, который может использоваться в любых видах продуктов

Выводы
В данном докладе показано, как можно объединить две системы разработанных в различных средах средствами универсальных протоколов. Таким образом, было рассмотрено 2 системы – Quest3d и Moodle, и способ их интеграции. Объединение системы поддержки обучения с системой виртуального окружения является наиболее оптимальным решением для поставленной задачи. На основе стерео 3d виртуального окружения и автоматизированной системой обучения, был разработан универсальный обучающий комплекс. Подобное объединение двух разных систем, обеспечивает новый, современный подход к самому процессу разработки и эксплуатации учебных курсов и материалов в формате стерео 3d. Система управления обучением, на современном этапе развития информационных систем и технологии, распространяются без специально-созданных интерактивных 3d интерфейсов. Именно поэтому мы разработали качественно новое решение.

Литература

  1. www.rupx.ru — сайт посвящен системам виртуальной реальности.
  2. www.coolreferat.com — курсовая на тему Системы управления обучения LMS
  3. Бобков А. Е., Казанский И. П., Клименко С. В. — Разработка инструментария для показа стерео презентации из файлов в KML-формате // Труды международной научной конференции. Город: Лимассол, 2010.— С. 41–46.