Введение 3
1. Существующие системы управления обучением и основные
технологии серверной разработки программного комплекса distolymp ... 5
1.1. Существующие системы управления обучением и виртуальные
лаборатории 5
1.2 Основные технологии, используемые при разработке серверной
части программного комплекса distolymp 7
1.2.1. Слой клиента 8
1.2.2. Слой логики 10
1.2.3. Слой управления данными 11
Выводы по главе 1 13
2. Программный комплекс distolymp 15
2.1. PHP-версия программного комплекса distolymp 15
2.2. База данных программного комплекса distolymp 16
2.3. Программный комплекс BARSIC 17
2.4. Структура Java-версии программного комплекса distolymp 17
Выводы по главе 2 19
3. Полученные результаты и их обсуждение 21
3.1. Создание актуальной схемы базы данных 21
3.2. Реализация справочников 24
3.2.1. Справочник классов (параллелей) обучения участников
олимпиады 24
3.2.2. Справочник городов 27
3.3. Реализация модуля решения задач 29
3.4. Реализация модуля выполнения моделей BARSIC 38
3.5. Модуль выполнения тестов 46
3.5.1. Создание редактора тестов 46
3.5.2. Реализация модуля выполнения тестов 50
3.6. Обсуждение результатов 58
Выводы по главе 3 59
Выводы 61
Литература 62
Приложение 65
С 2005 года СПбГУ совместно с Национальным исследовательским университетом Информационных Технологий, Механики и Оптики (Университетом ИТМО) проводит интернет-олимпиаду школьников по физике для учащихся 7-11 классов. Олимпиада позволяет проверять не только знания школьников в области физики, но и их практические умения. Диплом заключительного тура данной олимпиады даёт существенные льготы при поступлении в ведущие вузы страны, например, 100 баллов ЕГЭ по физике или поступление в вуз без вступительных испытаний [1].
В физике важно не только обладать теоретическими знаниями, но и уметь применять их на практике в физическом эксперименте, поэтому олимпиада имеет несколько типов заданий, которые проверяют оба этих фактора. При прохождении олимпиады школьники решают три типа заданий: задачи, которые являются полным аналогом обычных школьных задач по физике; тесты; виртуальные лабораторные работы, максимально приближённые к реальным лабораторным работам. Задачи и тесты осуществляют проверку теоретических знаний, а виртуальные лаборатории — практических умений и навыков. Также виртуальные лаборатории хороши тем, что они бесплатные, одинаковые для всех участников, не требуют обустройства лаборатории и абсолютно безопасны для учащихся.
Для проведения интернет-олимпиады школьников был разработан программный комплекс distolymp (разработчики: В. В. Монахов, Л. А. Евстигнеев). Помимо этого, данный программный комплекс также используется преподавателями физического факультета СПбГУ для проведения занятий. На данный момент серверная часть этого комплекса работает на программном обеспечении LAMP (Linux, Apache, MySQL, PHP). Виртуальные лаборатории выполняются с помощью программного комплекса BARSIC [2] (Business And Research Scientific Interactive Calculator) (разработчики: В. В. Монахов, А. В. Кожедуб, Л. А. Евстигнеев) [3]. Так как связка данного программного обеспечения имеет существенные недостатки при разработке крупных проектов [4], В. В. Монаховым было принято решение разработать аналог серверной части комплекса distolymp на языке программирования Java.
Разработка Java-версии distolymp началась в 2017 году студентом Д. А. Тимашовым [5]. В 2020 году Д. С. Усова выбрала более современный набор технологий, используемых при веб-разработке на Java, и новую архитектуру приложения [6]. Эти технологии и архитектура использованы в данной работе.
Одними из ключевых модулей в программном комплексе distolymp являются модули выполнения заданий (задач, моделей и тестов). Поэтому их реализация в Java-версии приложения является первостепенной задачей. В связи с этим целью данной работы является разработка модулей задач, моделей и тестов на языке программирования Java. Для достижения поставленной цели решались следующие задачи:
• установка и анализ PHP-версии программного комплекса distolymp;
• анализ структуры существующей базы данных;
• изучение технологий, используемых при веб-разработке на Java;
• разработка справочников городов и классов (параллелей) обучения участников олимпиады;
• разработка модуля решения задач;
• разработка модуля выполнения моделей BARSIC;
• разработка редактора тестов;
• разработка модуля выполнения тестов.
• В результате проведённого анализа структуры имеющейся базы данных программного комплекса distolymp разработана новая схема структуры базы данных, которая используется Java-версией комплекса.
• Реализованы справочники городов и классов (параллелей) обучения. Модернизирован имевшийся в PHP-версии комплекса справочник классов (параллелей) обучения.
• Реализована и значительно улучшена по сравнению с PHP-версией комплекса вся функциональность, отвечающая за управление задачами, моделями BARSIC и тестами.
• Разработан и внедрён в программный комплекс distolymp редактор тестов.
• Для дальнейшей разработки Java-версии программного комплекса предложено разработать и внедрить систему тестирования и документации кода.