EdTech компании оптимизируют работу студентов и преподавателей, ведь объёмы информации и нагрузка растут, а время — не увеличивается. Одним из популярных решений в учебных заведениях и онлайн-школах является автоматизация проверки и оценки знаний студентов. Благодаря ей сокращается время преподавателей, затрачиваемое на проверку тестов, и появляется ресурс для более важных аспектов обучения. Кроме того, такие решения почти мгновенно выдают результат в виде оценок, поэтому студенты могут уделить больше времени темам, в которых были совершены ошибки.
Сократить время преподавателей на проверку тестов за счёт разработки и внедрения образовательного сервиса автоматической проверки знаний студентов с использованием фиксированных алгоритмов и правил для университетов и онлайн-школ.
Образовательные системы, как правило, обладают высокой нагруженностью и со временем масштабируются из-за увеличения количества студентов и информационных данных. Поэтому для создания сервиса мы выбрали гибкий стэк backend’а, который со временем позволит без труда расширить возможности платформы — Python, REST API, и Redis для очередей.
«Благодаря накопленным экспертизе и опыту в реализации EdTech-проектов, мы создали удобный и надёжный сервис проверки, оценки знаний пользователей. Сервис отлично продуман с точки зрения администрирования, имеет удобный и простой в использовании интерфейс. Все это позволит нашему заказчику улучшить качество обучения и эффективность работы».
Евгений Околита, руководитель проекта
Сначала мы создали форму авторизации через протокол OAuth, чтобы ученики и преподаватели могли входить в сервис с помощью учётной записи своей образовательной системы.
Далее подписали сервис на вебхуки (уведомления о новых событиях) системы и настроили синхронизацию данных. Это нужно, чтобы сервис получал сведения о новых учениках или изменениях в данных и автоматически обновлял информацию у себя.
Мы реализовали интеграцию сервиса с учебным планом. Через REST API у платформы есть доступ к учебному плану, на основе которого сервис сам назначает тесты по завершению темы, а также передаёт прогресс студентов обратно в образовательную систему.
Следующим этапом для нашей команды был процесс обработки ответов учеников. Как это происходит?!
Когда студент завершает тест, его ответ помещается в очередь для дальнейшей обработки. Этот подход позволяет системе масштабироваться без больших трудозатрат, так как обработка ответов может выполняться асинхронно.
Redis, благодаря своей гибкости, эффективно управляет очередями задач. Он позволяет добавлять и извлекать элементы из очереди, а также управлять приоритетами. Для обработки больших тестов мы настроили параллельную обработку, распределяя задачи по нескольким очередям. Это ускоряет работу системы и повышает её эффективность.
После завершения настройки сервиса, мы приступили к работе с алгоритмами проверки тестов, создаваемых с помощью гибких фреймворков Python.
В зависимости от типа вопросов использовались разные алгоритмы. Для стандартных вопросов, где нужно выбрать правильный ответ, применялись простые алгоритмы сравнения: ответ студента сопоставляется с заранее заданным правильным вариантом.
Для ответов в свободной форме использовалась библиотека Natural Language Processing (NLP). Модель анализа текста определяет правильность ответа, основываясь на ключевых словах, семантике и синтаксисе, связанных с темой вопроса. Система сравнивает ответ с заданными параметрами, выявляет правильные данные и выдаёт оценку студенту.
Для проверки математических и физических задач применялась библиотека SymPy. На её основе был создан алгоритм, который распознает введённое уравнение или формулу, решает её и сравнивает полученный результат с ответом студента.
По итогам всех заданий ученику должна выставляться общая оценка. Эту механику мы реализовали через модель машинного обучения на базе Scikit-learn: система анализирует все ответы и автоматически выставляет оценку, экономя время преподавателя.
С помощью Scikit-learn мы настроили модель так, что по итогам тестирования в облачное хранилище системы выгружается отчёт в PDF с процентом правильных ответов, статистикой по вопросам, прогностической аналитикой и другими метриками.
Модель машинного обучения анализирует успехи студента и просчитывает, какие темы могут вызвать у него трудности в дальнейшем. Таким образом, можно скорректировать вектор обучения и помочь ученику улучшить результаты.
В целом, разработка сервиса для автоматической проверки и оценки знаний студентов — это сложный проект, требующий глубоких знаний в области образования и технической экспертизы. Однако, благодаря большому количеству библиотек для работы с математикой и алгоритмами в Python, тщательному планированию и разработке, создание такого сервиса становится возможным.
Подобные продукты значительно облегчают образовательный процесс, поскольку преподаватели экономят время на проверке заданий и аналитике успеваемости. С их помощью они могут уделить больше внимания корректировке учебного плана или дополнительной проработке сложных тем.
Со временем алгоритмы вполне могут взять на себя обязанность составления тестов и их проверки без участия преподавателей, что поможет усовершенствовать процесс обучения.