Введение
В эпоху стремительного развития информационных технологий системы дистанционного обучения и создания онлайн-курсов становятся все более популярными и важными в сфере образования. Они позволяют обеспечить широкий доступ к качественному образованию и преодолеть географические и временные барьеры. Несомненно, что ключевым компонентом таких систем является модуль контроля знаний, который позволяет оценивать успеваемость обучающихся, предоставлять обратную связь и адаптировать образовательный контент курсов. Необходимость постоянного усовершенствования программных решений при реализации дистанционного обучения, особенно в части контроля и оценки приобретенных обучающимися знаний и практических навыков, для достижения более высоких показателей эффективности и качества образования обуславливает актуальность проводимого авторами исследования, целью которого является проектирование модуля контроля знаний для программно-информационной системы, предназначенной для создания онлайн-курсов в области программирования на языках высокого уровня. Разрабатываемый авторами модуль при внедрении в онлайн-курсы позволит отслеживать усвоение материала обучающимися, оценивать приобретенные практические навыки программирования на языках высокого уровня для студентов инженерных специальностей, а также проверять эффективность учебного процесса в целом, что определяет практическую ценность выполняемой работы.
Для достижения поставленной цели необходимо решить следующие задачи:
− проанализировать требования к современным модулям контроля знаний;
− установить основные типы используемых вопросов и способы их оценки;
− выбрать стек технологий, наиболее подходящий для реализации данного модуля;
− спроектировать базу данных рассматриваемого модуля.
Материалы и методы исследования
После выполнения постановки задачи исследования были проанализированы и выявлены следующие основные требования, предъявляемые к модулям контроля знаний:
1. Многоформатность оценки. Модуль должен поддерживать широкий спектр форматов тестовых заданий, включая выбор одного ответа, выбор нескольких, проверку кода с помощью его автоматизированного тестирования (для курсов в сфере программирования), соответствие, последовательности, короткие ответы и др. Это обеспечит более объективную оценку знаний обучающихся, а использование системы автоматизированного тестирования решений задач по программированию дополнительно позволит проверить профессиональные навыки и умения на языках высокого уровня [1].
2. Развитая аналитика. Сбор и анализ данных об успехах обучающихся в процессе обучения позволит преподавателям отслеживать прогресс студентов и своевременно вносить необходимые коррективы, а также обеспечивает формирование необходимой отчетности [2].
3. Гибкость и масштабируемость. Модуль должен быть легко интегрирован с любой другой системой.
4. Интуитивно понятный интерфейс. Особое внимание должно быть уделено разработке пользовательского интерфейса, который должен быть удобным и эргономичным, что позволит повысить эффективность взаимодействия обучающихся и преподавателей с системой и не оттолкнет пользователей, на которых система ориентирована.
Далее были изучены основные типы вопросов, которые могут применяться в современных системах дистанционного обучения. В настоящее время используется множество различных типов вопросов, каждый из которых обладает своими уникальными характеристиками и достоинствами, при этом в разных программных решениях по контролю знаний обучающихся выбирают свои типы заданий [3–5]. Некоторые авторы даже разрабатывают новые типы заданий для контроля навыков по программированию [6] и предлагают собственные методики проведения контроля знаний [7].
При проектировании разрабатываемого модуля авторы выбрали следующие вопросы, которые будут использоваться в модуле контроля знаний, и способы их оценки:
1. Вопросы с одним вариантом ответа – это вопросы, требующие от обучающегося выбрать правильный ответ из нескольких вариантов. Этот тип вопросов характеризуется простотой и быстротой ответа, что помогает быстро оценить знание конкретных фактов или концепций. Такие вопросы обычно оцениваются в 1–2 балла, в зависимости от сложности.
2. Вопросы с множественным выбором предлагают обучающимся выбрать несколько правильных ответов из нескольких предложенных вариантов. Эти вопросы дают более глубокую оценку знаний студента по определенной теме и помогают развить у студентов критическое мышление и аналитические навыки. Обычно эти вопросы оцениваются в 2–5 баллов в зависимости от количества правильных ответов и сложности вопросов.
3. Вопросы на последовательность означают, что обучающиеся должны расположить элементы в правильном порядке. Этими элементами могут быть события, этапы процесса или логические элементы. Этот тип теста оценивает понимание студентом логики и последовательности процессов и поэтому полезен как для технических, так и для гуманитарных предметов. В зависимости от сложности и количества вопросов оценки за такие задания варьируются от 3 до 6.
4. Вопросы на соответствие требуют от обучающихся сопоставить элементы из двух списков, например термины и их определения, события и даты, вопросы и ответы. Этот тип вопросов эффективно проверяет знания по сопоставлению и ассоциациям, охватывая большой объем материала в одном вопросе. Как правило, задания оцениваются в 2–4 балла.
5. Текстовые вопросы требуют от обучающихся написать короткие или длинные ответы на вопросы. Такие вопросы оценивают глубину понимания темы и могут использоваться для проверки как теоретических знаний, так и практических навыков. Эти вопросы сложны и обычно требуют ручной проверки. В зависимости от длины и сложности вопроса текстовые ответы оцениваются от 5 до 10 баллов.
6. Тесты с написанием кода на требуемом языке программирования высокого уровня используются для контроля знаний в области программирования. Обучающимся необходимо написать или исправить код для выполнения конкретной задачи. Данный тип вопросов эффективно применяется для контроля приобретенных практических навыков и умений программирования, проверяя умение писать код, исправлять ошибки и понимать логику компьютерной программы. В зависимости от сложности формулировки задания и требований, предъявляемых к коду, задания указанного типа обычно оцениваются от 5 до 10 баллов.
Каждый из описанных выше типов вопросов играет важную роль в процессе обучения, а их правильное сочетание в разрабатываемом модуле позволит обеспечить комплексную и объективную систему оценки успеваемости.
После проведенного анализа требований к модулю знаний и выявления основных реализуемых типов вопросов был выбран стек технологий разработки модуля. Чтобы обеспечить высокую производительность, гибкость в разработке и легкость поддержки, было принято решение использовать следующие инструменты:
1. Для написания бэкенда системы был выбран Spring Framework. Данный фреймворк позволяет создавать масштабируемые и надежные приложения, помогая писать код в парадигме аспектно-ориентированного программирования.
2. Для фронтенд разработки был выбран фреймворк Flutter, позволяющий создавать кроссплатформенные приложения. Его основные принципы работы базируются на принципах компонентной архитектуры и использовании единого кода для разработки приложений под различные платформы. Также данный фреймворк предоставляет широкий выбор виджетов и инструментов для создания красивого и функционального пользовательского интерфейса, что, несомненно, является одним из его преимуществ.
3. Для хранения информации об онлайн-курсах была выбрана документоориентированная нереляционная кроссплатформенная система управления базами данных (СУБД) MongoDB. Главными преимуществами данной СУБД являются гибкая система хранения информации, легкая масштабируемость, надежность и быстрота обработки запросов.
4. Для хранения данных пользователей была выбрана объектно-реляционная СУБД PostgreSQL. Данная СУБД предлагает пользователям реализацию различных уровней безопасности, транзакционность, поддержку многопоточности, параллелизма и репликацию.
При проектировании программно-информационной системы было решено использовать оба типа СУБД (NoSQL и SQL) в зависимости от структуры данных, целей и вариантов работы с ними для обеспечения комплексного подхода, который позволяет максимально оптимально работать с любыми данными.
Результаты исследования и их обсуждение
На заключительном этапе исследования выполнялось построение базы данных системы. Схема базы данных, созданной в PostgreSQL, для хранения информации о пользователях онлайн-курсов представлена на рис. 1.
Спроектированная база данных на PostgreSQL состоит из трех таблиц:
1) таблицы «user», которая хранит основную информацию о пользователях (уникальный идентификатор пользователя, его полное имя, тип, описание, а также логин и пароль для доступа к системе);
2) таблицы «user_tokens», которая управляет токенами доступа и обновления пользователя (содержит информацию об уникальном идентификаторе токена, идентификаторе пользователя, связанного с токеном, токены доступа и обновления, а также дату истечения срока действия токена доступа);
3) таблицы «user_courses», которая отображает связи между пользователями и курсами, которые они проходят.
Опишем приведенные на рис. 1 связи между таблицами:
− связь между таблицами "user_tokens" и "user" связывает токены с конкретными пользователями через "user_id";
− связь между таблицами "user_courses" и "user" определяет, какие курсы доступны для каждого пользователя.
Спроектированная база данных на MongoDB состоит из коллекций и вложенных классов, наглядно представленных на рис. 2 (информация об онлайн-курсах) и рис. 3 (информация о модуле контроля знаний).
Рис. 1. Схема базы данных на PostgreSQL
Рис. 2. Схема базы данных на MongoDB (course)
Рис. 3. Схема базы данных на MongoDB (test)
Рассмотрим более подробно основные элементы базы данных на MongoDB, необходимые для реализации модуля контроля знаний (рис. 3):
1) коллекция TestCollection хранит основную информацию о тестах (название, описание, список вопросов, список попыток прохождения теста и его настройки);
2) коллекция TestHistoryCollection хранит информацию об истории прохождения тестов, включая процент правильных ответов обучающегося, общий список его ответов, а также саму ссылку на пройденный тест;
3) коллекция UserSessionCollection хранит информацию о конкретной сессии прохождения теста пользователем (идентификаторы сессии, пользователя и теста, дата прохождения теста и общая продолжительность его прохождения в минутах, а также ссылка на пройденный тест);
4) класс TestSettings содержит информацию о настройках теста: его продолжительность, количество вопросов, которое будет извлекаться из общей базы вопросов для его прохождения пользователем, количество попыток и возможность перемешивания вопросов и ответов в тесте;
5) класс TestTaking содержит краткую информацию о результатах прохождения теста пользователем – идентификатор пользователя, дату и результат прохождения теста.
Следует отметить, что коллекции Test HistoryCollection и UserSessionCollection ссылаются на коллекцию TestCollection.
Заключение
Основным результатом проведенного исследования является проектирование модуля контроля знаний, входящего в состав программно-информационной системы, предназначенной для создания онлайн-курсов. Полученные результаты будут использованы при дальнейшей реализации данного модуля с использованием описанного стека технологий. Следует отметить, что использование выбранного авторами для разработки стека технологий позволит разработать систему, которая не только отвечает требованиям производительности и масштабируемости, но также предоставляет возможности для создания приятного и удобного пользовательского интерфейса. При этом в системе будет гарантирована безопасность и конфиденциальность пользовательских данных благодаря продуманной архитектуре и использованию современных технологических решений.