Ученые подведомственного Минобрнауки России Пензенского государственного университета (ПГУ) разработали цифровую обучающую игру для изучения одного из самых востребованных языков программирования Python. С ее помощью изучить язык с нуля сможет человек без профильного образования, а опытные разработчики получат удобный инструмент для проверки и закрепления своих навыков. Главная особенность разработки — одновременная динамическая адаптация игровой и образовательной сложности. Система анализирует действия пользователя и уровень его вовлеченности в процесс и автоматически подстраивает задачи так, чтобы поддерживать устойчивую мотивацию к обучению. Благодаря этому игрок не теряет интерес при столкновении со слишком сложными препятствиями и не заскучает от простых заданий. В настоящее время демоверсию тестируют будущие программисты, обучающиеся в Пензенском госуниверситете.
Команда из ПГУ работает над одной из наиболее острых проблем современного образования — снижением вовлеченности студентов в учебный процесс. По словам одного из авторов проекта, заведующей кафедрой «Системы автоматизированного проектирования» ПГУ кандидат технических наук, доцент Ирины Бурукиной, при изучении технических дисциплин традиционные методы обучения не всегда дают нужный результат, что неизбежно сказывается на качестве освоения материала. В ПГУ вернуть студентам мотивацию предлагают с помощью цифровых технологий. Для решения этой задачи разработчики используют геймификацию, а обучающие цифровые игры являются ее прямым практическим воплощением.
Мы опираемся на то, что современные студенты выросли в цифровой среде, подавляющее большинство из них играет в компьютерные игры. Наша цель не развлечь аудиторию, а использовать этот привычный молодежи формат для учебы, — поделилась Ирина Бурукина.
Python сегодня — один из самых востребованных и универсальных языков программирования. Он понятен новичкам, но при этом достаточно мощный для работы опытных специалистов: на Python пишут нейросети, анализируют большие данные и создают современные сайты. Идея проекта выросла из личного опыта молодого разработчика — студента Политехнического института ПГУ Егора Егорова. Он проходил обучение языку Python в образовательной программе «Яндекс.Лицей» и на собственном опыте увидел проблемы, с которыми сталкиваются ученики на подобных платформах.
Из пятнадцати человек к концу двухлетнего курса осталось всего несколько. Материал усваивался тяжело, вовлеченность падала, — добавил Егор Егоров.
Обучающая игра написана на самом языке Python. Разработчики уверены, что это становится дополнительной мотивацией для пользователей: они видят реальный результат, который можно получить с помощью изучаемого инструмента. Кроме того, в проект внесена научная составляющая. Впервые в игре предлагается декомпозиция единого параметра «сложность» на два независимых вектора управления с асинхронной логикой настройки.
Действия в игре разворачиваются вокруг главного героя — ИТ-специалиста Георгия, у которого много работы и дедлайнов. Однажды от переутомления он засыпает и попадает во сне в виртуальный мир, забывая большинство своих навыков. Для возвращения в реальность ему необходимо продемонстрировать знания Python. Чтобы помочь герою проснуться, пользователю предстоит пройти этот путь вместе с ним. По мере продвижения по сюжету игрок шаг за шагом изучает синтаксис языка Python: различные команды, конструкции, функции и другие базовые элементы программирования. За успешно решенные задачи система поощряет его не только раскрытием сюжета, но и игровыми наградами и бонусами.
В основе игры лежит показатель сложности, который регулируется в зависимости от успешности пользователя в игровом и образовательном контурах. Такой подход позволяет поддерживать баланс между сложностью заданий и способностями студента, не допуская ни скуки от слишком простых задач, ни раздражения из-за непреодолимых трудностей. В большинстве обучающих цифровых игр сложность меняется линейно для всех сразу или настраивается вручную самим пользователем. В ПГУ пошли другим путем и разделили эти процессы: теперь система следит за двумя показателями параллельно.
Например, если студент отлично пишет код, но теряет интерес к повествованию, система моментально сделает сюжетную линию интереснее, оставив уровень программирования прежним. Или обратная ситуация: человек прекрасно следит за историей Георгия, но спотыкается на функциях. Игра незаметно снизит порог входа именно в образовательной части, добавив подсказки или упростив синтаксис, при этом сохраняя драйв в сюжете, — отметила Ирина Бурукина.
Для всех игроков старт происходит на одинаковом, базовом уровне сложности. Однако по мере прохождения игра начинает меняться. Игрок выполняет простейшие задания: добывает палки для костра, проходит тесты, дописывает программы. Первые изучаемые функции — print и input. После работы с несколькими диалоговыми окнами герой попадает в дивный новый мир, где начинается основной сюжет. На базовом уровне игрок сталкивается с относительно безопасными противниками — зайцами и лисами. Образовательная задача здесь минимальна: необходимо выполнить простые тестовые задания или дописать небольшие фрагменты кода. Игровые ловушки хорошо визуализированы и решаются выбором одного правильного ответа из предложенных вариантов. На среднем уровне появляются более сильные оппоненты — волки. Сложность растет синхронно в обоих контурах. Для нейтрализации противников требуется написать несколько связанных блоков кода, а менее заметные ловушки требуют от игрока более глубокого анализа условий их обхода.
На продвинутом уровне пользователю противостоят медведи. Здесь образовательный контур достигает пика сложности: студенту предлагается найти ошибки в чужом коде и отладить программу так, чтобы она работала корректно. Игровая сложность также максимальна: противники атакуют чаще и наносят больше урона, а время на принятие решения в критических ситуациях строго ограничено. Ловушки становятся динамичными, они активируются при малейшей ошибке или неосторожном движении, требуя от игрока мгновенной реакции. В таких условиях успех в программировании напрямую определяет выживаемость героя в виртуальном мире. Если код написан некорректно или содержит ошибку, персонаж не успеет скрыться от медведя.
В системе заложено 176 правил. Это различные комбинации развития игры.
Если игрок быстро находит ошибки в коде, но медленно пишет программы сам, дальнейшее прохождение выстраивается по индивидуальному сценарию, подстроенному именно под него, — рассказал Егор Егоров.
Сложность уровня зависит от многих показателей: количества ошибок, времени прохождения, количества правильных действий, частоты обращения к подсказкам и других.
Если студент только начинает осваивать Python и ему пока сложно дается код, предлагаются простые задачи на синтаксис. Но при этом сама игра не становится скучной, сюжет остается интересным. Мы специально разделяем сложность программирования и сложность приключения, чтобы игрок не бросил изучение Python из-за первых неудач, — сделала акцент Ирина Бурукина.
Игра включает более 300 заданий, выстроенных по принципу «от простого к сложному». Для тех, кто захочет закрепить материал или отвлечься от основного сюжета, предусмотрены дополнительные необязательные квесты — своеобразная «игра в игре». Проект рассчитан на самую широкую аудиторию: старшеклассников, студентов ИТ-направлений и всех, кто интересуется программированием.
Игра сама проверяет написанный студентом код, сразу покажет, если он где-то ошибся, подсветит проблему и подскажет, в чем причина, — подчеркнула Ирина Бурукина. — Игру можно начинать заново сколько угодно раз. Задания будут генерироваться иначе, предлагая новые условия. Мы уверены, что благодаря этому интерес точно не пропадет до самого конца, а знаний заметно прибавится.
Демоверсию протестировали более 50 человек из числа начинающих программистов. Они предоставили обратную связь: отметили баги и дали советы, на основе которых разработчики продолжают совершенствовать проект. В планах — перевод игры в 3D-формат и создание мобильной версии. Цифровая обучающая игра официально зарегистрирована в реестре Федеральной службы интеллектуальной собственности (Роспатент) в качестве программы для ЭВМ.
Источник: Минобрнауки России


