Skip to content
Igor Nagibin edited this page Feb 22, 2025 · 4 revisions

Простейшие задачи по Программированию (с рандомом)

Задача - реализовать серию задач на базе генераторов из https://github.com/moevm/workshop_risc-v/tree/main/src/riscv_course/random_expressions, но для программирования

Функциональность -

  • Общая обертка-модуль
  • Интеграция в CodeRunner
  • Параметры для настройки сложности условий / въедливости проверок
  • Демо-курс

Технологии - Python, C, Moodle

Результат - общий код для генерации условий и проверки задач для программирования (на базе генераторов рандомных выражений), заинтегрированный в e.moevm.info в виде CodeRunner задач.

Проблема

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

Проект направлен на создание модуля, который:

  • Автоматически генерирует задачи для программирования;
  • Позволяет регулировать параметры сложности;
  • Интегрируется с CodeRunner в Moodle;
  • Обеспечивает проверку решений.

Такой подход поможет преподавателям эффективнее организовать учебный процесс, а студентам — быстрее получать обратную связь и совершенствовать свои навыки программирования.

Категории пользователей и их потребности

Преподаватели

Что важно для них:

  • Гибкость: Возможность настраивать параметры сложности задач (например, длина выражения, количество операций, количество скобок в выражении);
  • Интеграция: Легкая интеграция с Moodle через CodeRunner;
  • Эффективность: Быстрая и точная проверка решений студентов.

Студенты

Что важно для них:

  • Простота использования: Легко понять условия задачи и отправить решение;
  • Мгновенная обратная связь: Получать результат проверки сразу после отправки;
  • Адаптивность: Работать с задачами разной сложности, соответствующими их текущему уровню знаний;
  • Обучение: Понимать, почему их решение было признано неверным, если это произошло.

Сценарии использования

Создание задачи преподавателем

  1. Преподаватель заходит в Moodle;
  2. Выбирает курс и создаёт новую CodeRunner-задачу;
  3. Настройка параметров:
  4. Выбор типа задачи (например, "генерация случайных выражений");
  5. Установка уровня сложности ;
  6. Сохранение задачи и её публикация для студентов.

Решение задачи студентом

  1. Студент заходит в Moodle и выбирает курс.
  2. Открывает задачу и видит сгенерированное условие;
  3. Пишет код решения;
  4. Отправляет решение для проверки;
  5. Получает результат проверки (верно/неверно) и объяснение ошибок/получение подсказки в случае ошибки.

Анализ результатов преподавателем

  1. Преподаватель заходит в Moodle и открывает статистику по задаче;
  2. Изучает данные(процент успешных решений, частые ошибки студентов, время затраченное на решение);
  3. На основе анализа корректирует параметры сложности или формулировку задачи.

Требования к системе

Функциональные требования

  1. Генерация задач на базе алгоритма из репозитория https://github.com/moevm/workshop_risc-v/tree/main/src/riscv_course/random_expressions ;
  2. Настраиваемые параметры сложности проверок;
  3. Интеграция с CodeRunner в Moodle;
  4. Поддержка демонстрационного курса для тестирования;
  5. Добавить общие метрики для отслеживания использования ИИ.

Нефункциональные требования

  1. Код должен быть выложен в репозиторий GitHub;
  2. Проект документируется через оформление wiki странички на GitHub.