СПИСОК ТЕРМИНОВ 3
ВВЕДЕНИЕ 4
1. ОБУЧАЮЩИЕ СИСТЕМЫ 6
1.1 Сравнение систем дистанционного обучения 6
1.2 Существующие решения с многоэтапной проверкой решений 7
2. МНОГОЭТАПНАЯ ПРОВЕРКА 9
2.1 Классификация решений 9
2.2 Критерии оценки работ 9
2.3 Типы проверки выполненных работ 12
2.4 Методы анализа кода и их сравнение 13
2.5 Методы оценки 15
2.5.1 Задания с кратким ответом 15
2.5.2 Задачи с развернутым ответом 16
2.5.3 Развернутые ответы на естественном языке 16
2.5.4 Развернутые ответы в виде программного кода 17
2.5.5 Многоэтапное рецензирование мини-проекта 18
3. ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ МНОГОЭТАПНОЙ ПРОВЕРКИ 21
3.1 Архитектура приложения 22
3.2 Система управления базами данных 23
3.2.1 Выбор модели базы данных 23
3.2.2 Организация хранения данных 24
3.3 Реализация серверной части приложения 25
3.3.1 Выбор способа аутентификации 25
3.3.2 Реализация API 27
3.4 Реализация клиентской части приложения 27
3.5 Оценка работ 29
3.5.1 Статический анализатор 29
3.5.2 Реализация запуска кода 32
3.5.3 Рецензирование работы 33
3.5.4 Реализация обработки статусов проверки 34
ЗАКЛЮЧЕНИЕ 36
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 38
ПРИЛОЖЕНИЕ 41
Приложение А 41
Приложение Б 42
Приложение В
Электронное обучение активно используется в образовательном процессе. Такая система позволяет адаптировать процесс обучения под желания и возможности студента, обучаться асинхронно в любое время и из любого места. Но при организации электронного обучения связь студента с преподавателем ослабевает, оценка успеваемости студентов усложняется и требует применения новых подходов для оценки корректности выполненных работ [1].
Для реализации возможности своевременного внесения корректировок в процесс обучения и всесторонней оценки успеваемости необходимо предоставлять студенту непрерывную развернутую обратную связь. Но это трудоемкий процесс, требующий большие человеческие ресурсозатраты, при этом большая часть нагрузки приходится на преподавателя [2].
Решением описанной проблемы является применение многоэтапного рецензирования работ. Согласно исследованию, представленному в работе [3], многоступенчатая оценка с несколькими этапами ручной и автоматической проверки позволяет уменьшить нагрузку на преподавателя, осуществляя всестороннюю оценку успеваемости студента. Благодаря внедрению новых участников оценки успеваемости, уменьшается нагрузка на преподавателя [4]. Внедрение автоматизированного выполнения трудоемких функций позволяет осуществлять непрерывную развернутую обратную связь. Однако, существующие решения лишь перераспределяют нагрузку на остальных участников.
Целью данной работы является разработка системы многоэтапного рецензирования работ в обучающих системах, осуществляющую предоставление автоматизированной своевременной качественной обратной связи для корректировки обучения и всесторонней оценки работы без увеличения нагрузки на участников оценки. Такая система оценки позволяет студенту в кратчайшие сроки получать отзыв на выполненную работу, что приводит к уменьшению времени на поиск оптимального решения и способствует повышению качества его обучения.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Классифицировать задачи и выявить способы автоматического определения ошибок в выполненных работах
2. Выделить необходимые этапы для оценки, позволяющие уменьшить время на обратную связь и снизить нагрузку на преподавателя.
3. Определить критерии оценки работ на каждом этапе.
4. Разработать алгоритм проверки составных задач, содержащих несколько этапов проверки.
5. Разработать прототип приложения.
В результате выполнения выпускной квалификационной работы был разработан прототип в виде приложения, который позволяет совершать оценку работ по программированию в несколько этапов. Преподаватель может добавлять задачи в виде теста, текста на естественном языке и программного кода на языках java и javascript, следить за этапами проверки. Приложение позволяет сократить нагрузку на преподавателя, благодаря введению автоматических этапов проверки и этапа проверки студентом. В ходе выполнения работы были решены следующие задачи:
1. Классифицированы задачи по сложности проверки и выделены 5 типов задач: с кратким ответом, развернутым ответом, на естественном языке, в виде программного кода, в виде мини-проекта.
2. Выделены этапы для оценки каждого типа вышеописанных задач. Каждый этапы содержит автоматическую или ручную проверки.
3. Определены критерии оценки работ, которые используются при автоматической и ручной проверке.
4. Разработан алгоритм проверки составных задач, который в зависимости от типа представленной задачи осуществляет проверку по критериям для этой задачи.
5. Спроектирована архитектура системы и разработан прототип приложения который позволяет преподавателю осуществлять проверку задачи, следить за этапами проверки.
Разработанный прототип представляет из себя веб-приложение, которое имеет клиентскую и серверную часть приложения. Серверная часть приложения представлена в виде API сервиса и реализована на языке Java с использованием фреймворка Spring, клиентская часть приложения реализована на Vue js, которое обменивается данными с сервером. Благодаря использованию API, можно повторно использовать приложение для интегрирования в обучающую систему. Для задач в виде программного кода применяется статический анализ кода с помощью SonarQube и запуск программы на тестовых данных.
В качестве развития потенциала приложения предполагается настроить возможность запуска кода программ на различных языках программирования.
Планируется расширить функционал для возможности настройки этапа проверки для каждой выбранной задачи, независимо от его вида. Планируется развить текущую реализацию приложения до готового к внедрению в образовательный процесс.