Министерство образования и науки Российской Федерации 
Институт ЮНЕСКО по информационным технологиям в образовании
Институт проблем информатики Российской Академии наук
Федеральный институт развития образования
Академия повышения квалификации и профессиональной переподготовки работников образования
Автономная некоммерческая организация
«Информационные технологии в образовании»
Российский государственный гуманитарный университет
Международный институт новых образовательных технологий
III Международная научно-практическая конференция
«Инновации в информационных технологиях и образовании»
«ИТО-Москва-2014»
4 - 5 декабря 2014 года, г. Москва

Разработка программных средств мультиплатформенной поддержки интернет-олимпиады школьников по физике

Авторы: Максимов Максим Андреевич 1, Монахов Вадим Валериевич 2, Мартынюк Сергей Анатольевич  3, Монахова Елена Вадимовна 3, Кузьмин Николай Витальевич  3
1 ФБГОУ ВПО "Санкт-Петербургский Государственный Университет", 2 к. ф.-м. н., доцент каф. Вычислительной физики физического ф-та СПбГУ, 3 СПбГУ

В ряде предметных областей существуют особенности, которые делают неоправданным применение широко распространенных языков программирования. Обычно это приводит к тому, что программисты используют предметно-ориентированные языки программирования (Domain-Specific Languages) [1], сфокусированные каждый на конкретной области применения. Однимизтакихязыковпрограммированияявляется BARSIC – Business And Research Interactive Scientific Calculator [2]. Основным применением BARSIC является программная поддержка моделей Интернет-олимпиады школьников по физике [3-5]. Олимпиада предоставляет уникальные возможности проверки практического применения полученных в школе знаний. Это  достигается с помощью моделей виртуальных лабораторий по физике, имитирующих реальный физический эксперимент.

BARSIC является программным комплексом, предоставляющим развитые графические и математические возможности, используемые, в частности, при проведении массовых интернет-олимпиад по физике.  Интернет-олимпиада школьников по физике достигла большой массовости – около 40 тысяч участников в год,  и ежегодно проводится более чем в 20 странах [3]. Однако её дальнейшее развитие ограничивает то, что исполняющая среда BARSIC, под управлением  которой работают модели виртуальных лабораторий, предназначена для работы в MS Windows. Имеются следующие сложности при проведении интернет-олимпиад на компьютерах с другими операционными системами:

  • Отсутствует возможность  запустить модели виртуальных лабораторий на ряде популярных операционных систем (Android, iOS).
  • Необходимость выполнения дополнительных настроек при запуске на Linux(установка браузерного ядра Gecko, запуск BARSIC под управлением wine).
  • Отсутствует возможность запускать лаборатории в браузере. В настоящее время необходимо запускать отдельное настольное приложение.

Разработка приложений для ОС Android обычно ведется на языке Java, с последующей компиляцией в код виртуальной машины Dalvik, используемой в Android. В связи с этим нами разрабатывается система кросскомпиляции исходного кода программ, написанных на языке BARSIC, в исходный код Java, байт-код Javaи код для платформы Android.

Типы заданий интернет-олимпиады

В настоящее время основной методикой дистанционной проверки результатов обучения является проверка с помощью тестов – например, в системах дистанционного обучения Moodle, Sakai, BlackBoard и др. Такие типы заданий позволяют проверить знания и очень ограниченный набор умений и навыков. Однако в физике важную роль играет эксперимент, требующий специфических умений и навыков. Кроме того, тестовая форма проверки заметно отличается от традиционной письменной формы решения задач, и встает вопрос о создании компьютерного аналога задач, но с автоматической проверкой правильности их решения. Разработанный программный комплекс distolymp обеспечивает возможность проверки трех типов заданий: тестов, теоретических задач и заданий на основе виртуальных лабораторий по физике. Этот комплекс используется для проведения интернет-олимпиад школьников по физике [6].

Задания типа «тест»

Позволяют использовать тестовые задания с вариантом выбора одного ответа из нескольких, нескольких ответов из нескольких, ответа в виде числа, заданий с вводом пропущенных слов, заданий на установление соответствия. Задания мультиплатформенны – используется HTML и JavaScript.

Задания типа «теоретическая задача»

Задания данного типа состоят из нескольких вопросов, на которые необходимо дать числовой ответ. Параметры задач генерируются по специальным алгоритмам, и каждый учащийся получает задачу со своими условиями, отличающимися от других. Такие теоретические задания можно также повторно выполнять при наличии неверных ответов. Участник может сам решить, стоит ли ему переделывать задание. При повторном выполнении задания с него снимается часть баллов. Задания мультиплатформенны – используется HTML и JavaScript.

Задания на основе моделей

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

На рис.1 и рис.2 показаны примеры выполнения заданий на основе моделей BARSIC.  Эти модели в принципе могут быть мультиплатформенными при создании мультаплатформенной исполняющей среды  BARSIC. Однако после анализа сложности реализации программы для различных платформ нами было принято решение кросс-трансляции исходного кода программ с языка BARSIC в исходный код Java, и с возможностью в дальнейшем кросс-компиляции в байт-код Javaи код платформы Android.

Рис.1. Пример выполнения задания на основе модели “Наклонный рельс с лебёдкой - ускорение бруска и КПД системы”.

Рис.2. Пример выполнения задания на основе модели “Перегорание лампочек”.

Реализация кроссплатформенной компиляции

Модульная структура проекта JBARSIC

Одним из важнейших требований к системе были расширяемость и минимум дублирования кода для разных платформ.Проект JBARSICсостоит из нескольких подсистем (Maven-модулей). На рис.3 показана модульная структура проекта JBARSIC.

Рис. 3. Модульная структура проекта JBARSIC.


  • Модуль Coreсодержит базовую инфраструктуру и набор интерфейсов пакета BARSIC.
  • Модуль Langсодержит логику, связанную с языком BARSIC. Основные элементы -лексер, парсер, кодогенератор.
  • Модуль Math– основные математические функции.
  • Модуль UI– специфичные для каждой платформы базовые визуальные компоненты, а также компоненты научной графики

Модули используют интерфейсы, общие для всех платформ, а их специфические реализации зарегистрированы в IoC-контейнере.

Данная архитектура имеет множество достоинств:

  • Низкая связность (lowcoupling). Для этой цели был использован принцип инверсии управления.
  • Гибкость. Любой модуль может быть заменен на аналогичный с другой реализацией. Модуль также может иметь несколько реализаций и при необходимости подменятся в процессе выполнения.
  • Тестируемость. Каждый элемент модуля ссылается только на интерфейсы его зависимостей. Эти интерфейсы могут быть легко подменены тестовыми дублями.

Реализация парсера

В качестве парсер-генератора был выбран ANTLR. Он обладает следующими преимуществами [1]:

  • Алгоритм парсинга LL(*)
  • Ориентирован в первую очередь на Java.
  • Богатые возможности синтаксиса описания грамматики. В частности, наличие синтаксических предикатов, помогающих простым способом разрешить сложные проблемы реализации синтаксиса.
  • Имеет понятный исходный код парсер-генератора и сгенерированного кода.
  • Популярность (70 000 скачиваний в год), активно развивается c1989 года.
  • Встроенные средства для тестирования грамматики (gUnit)
  • Дополнительные средства разработки, такие как интегрированная среда разработки  ANTLR Works.
  • Множество продуктов, построенных с использованием ANLTR.

В проекте JBARSIC имеются две грамматики:

  • Barsic.g– комбинированная грамматика лексер-парсер
  • BarsicTreeWalker.g– грамматика для обхода абстрактного синтаксического дерева

Описание производилось в среде ANTLR Works. Общая схема разбора кода программ, написанных на языке BARSIC, приведена на рис. 7


Рис. 4.Схема процесса работы ANLTR на примере проекта JBARSIC

 

Реализация кодогенератора и загрузчика классов

В настоящее время нами разработано два кодогенератора – в исходный код Javaи байт-код  виртуальной Java-машины (JVM). Ведется работа по  созданию кодогенератора для платформы Android. При необходимости данная система может быть расширена и для других платформ, таких как JavaScript, Objective-C, Swift, .NET, Flash.

Для генерации class-файлов используется компилятор Jasmin. Он получает на вход описание Java-классов, описанных на ассемблероподобном синтаксисе, используя набор инструкций JVM.

Загрузка class-файлов

Имеются, по крайней мере, два способа загрузки бинарных class-файлов:

  • Статический – включение скомпилированных class-файлов в jar-архив приложения
  • Динамический – загрузка class-файлов посредством URLClassLoader, что создает богатые возможности для загрузки модулей.

Общий процесс исполнения программы, написанной на языке BARSICс использованием скомпилированных class-файлов, представлен на рис.5.

Рис. 5. Схема компиляции и исполнения инструкций BARSIC

Выводы

Разработана методика создания транслятора с языков высокого уровня в байт-код на основе применения технологий ANTLRv3-4, Jasmine.

Создана основа для создания мультиплатформенных приложений языка BARSIC, работающих на платформах Windows, Linux, MacOS, Android. Это дает возможность разрабатывать полностью переносимые приложения с графическим пользовательским интерфейсом, что особо важно для реализации виртуальных лабораторий интернет-олимпиад по физике.

Список использованных источников
  1. T.Parr. Language Implementation Patterns.The Pragmatic Bookshelf, ISBN:978-1-93435-645-6,с.84
  2. В.В.Монахов, А.В.Кожедуб, П.А.Науменко, Л.А. Евстигнеев, М. А. Крукелис, Д. В. Солодовников, И. Б. Керницкий. BARSIC: программный комплекс, ориентированный на физика-исследователя.Программирование. 2005, N3, сc.68-80.
  3. Интернет-олимпиада школьников по физике http://distolymp2.spbu.ru/olymp/.
  4. В.В.Монахов, С.К.Стафеев, В.Г.Парфенов, А.В.Кожедуб, Л.А.Евстигнеев, А.Ф.Кавтрев, А.И.Пономарев. Проведение дистанционных экспериментальных туров олимпиад по физике с использованием программного комплекса BARSIC.Компьютерные инструменты в образовании. 2005, сс. 5-15.
  5. В.В.Монахов, Н.К. Ханнанов. Сравнение интернет-олимпиады по физике с другими формами интеллектуальных состязаний//Дистанционное и виртуальное обучение. 2011, №4, сc. 4-19.
  6. Монахов В.В., Воропаев Р.А., Бушманова Е.А., Бушманова В.А., Фриш А.В. Особенности разработки компьютерных тестов, задач и виртуальных лабораторий.Компьютерные инструменты в образовании – 2013 - №2, сс. 28-39
Вид представления доклада  Публикация
Уровень  Компьютерные науки (информационные технологии и микроэлектроника)

В статусе «Черновик» Вы можете производить с тезисами любые действия.

В статусе «Отправлено в Оргкомитет» тезисы проходят проверку в Оргкомитете. Статус «Черновик» может быть возвращен тезисам либо если есть замечания рецензента, либо тезисы превышают требуемый объем, либо по запросу участника.

В статусе «Рекомендован к публикации» тезис публикуется на сайте. Статус «Черновик» может быть возвращен либо по запросу участника, либо при неоплате публикации, если она предусмотрена, либо если тезисы превышают требуемый объем.

Статус «Опубликован» означает, что издана бумажная версия тезиса и тезис изменить нельзя. В некоторых крайне редких ситуацих участник может договориться с Оргкомитетом о переводе тезисов в статус «Черновик».

Статус «Отклонен» означает, что по ряду причин, которые указаны в комментариях к тезису, Оргкомитет не может принять тезисы к публикации. Из отклоненных тезис в «Черновики» может вернуть только Председатель программного или председатель оргкомитета.