Турнир по программированию
В рамках этого модуля мы узнаем, как организовывать турнир по программированию в игре «Защита пасеки». Турнир по программированию в игре может быть спортивным. По сути, это киберспорт с определением победителей и призами, но можно посмотреть на турнир как на особый соревновательный формат в образовании, когда участники могут проверить свои реальные знания в конкурентной среде
Методист образовательных программ «Программирование киберфизических систем»
Анита Ходова
Какие бывают турниры
Турниры могут быть индивидуальными и командными, когда за одним устройством находится команда участников. Здесь мы будем рассматривать примеры командного формата, поскольку он провоцирует у участников внутреннее обсуждение, создание потенциальной среды развития: работая за общим устройством, они должны согласовывать различные гипотезы и версии, рисовать схемы и приходить к общим решениям.
Турнир предполагает решение общей задачи или вызова, наличие равных условий участия и прозрачные критерии для определения победителей. Игра «Защита пасеки» сама по себе хорошо задает одинаковые условия на старте для каждого. Только необходимо подготовить среду и удалить все созданные ранее программы, чтобы участники создавали программы в течение турнира.
Можно было бы проходить игру на скорость или определять победителя по числу пройденных волн. Но куда интереснее брать такие задачи, которые провоцируют участников использовать более сложное программирование в игре
Самым простым классом турнирных задач являются задачи на экономию ресурсов. Пример такой задачи: пройти первый уровень игры, потратив как можно меньше энергомеда. Для решения этой задачи участникам турнира придется писать более сложные программы, которые должны будут реализовывать более изощренные тактики. Например, учитывать тип и количество врагов на полигоне, обеспечивать взаимодействие своих дронов и т. п. Если использовать более интеллектуальные дроны, то можно будет побеждать противников при помощи меньшего числа дронов, тем самым тратя в течение волны меньше энергомеда на производство новых дронов и восполнение потерь.
Как определить победителей при такой постановке задачи? Доступный энергомед в интерфейсе игры показывается в левом верхнем углу, под значением целостности («здоровья») базы. Самый простой способ — сравнить значение энергомеда при старте самой последней волны в уровне. При равенстве энергомеда можно учитывать скорость прохождения уровня, оставшееся значение целостности базы или количество дронов на последней волне. У этого способа подсчета победителя есть серьезный недостаток: если сравнивать энергомед только на последней волне, предыдущие волны можно проходить с помощью большего числа дронов, а перед стартом последней волны продать лишние дроны. То есть оценка будет смещена в сторону прохождения только последней волны.
Поэтому мы рекомендуем использовать более сложный, но адекватный способ подсчета затраченного каждым участником турнира энергомеда: необходимо фиксировать количество меда, потраченного участниками в каждой волне, а по завершении уровня суммировать получившиеся результаты
Программист
Иван Кнут
Потраченный в волне энергомед считается как сумма стоимости всех выставленных на поле дронов и их улучшений. Это подтолкнет участников к использованию как можно меньшего числа дешевых дронов во всех волнах, а также заставит их беречь дроны и использовать более изощренные алгоритмы их работы. Вероятнее всего, вам придется сделать таблицу для удобства учета данных для всех команд. Наличие таблицы позволит не только выявить победителей, но и составить рейтинг всех команд в конце турнира.
Как организовать турнир
Теперь, когда мы подробно рассмотрели один из вариантов турнира, рассмотрим основные шаги по его организации и проведению
1. Утверждение регламента
Регламент турнира включает в себя определение и утверждение ключевых параметров:
  • Круг участников
    Школьники или студенты, допустимый возраст, классы; другие ограничения участников турнира.
  • Число этапов
    Несколько ли этапов у турнира (например, отборочный и финальный) или только один.
  • Наличие уровней сложности и лиг
    Если у участников турнира существует большой разрыв в уровне подготовки, то, возможно, стоит их разделить на начальную и продвинутую лиги, которые будут состязаться независимо, дать им задачи разного уровня сложности. Здесь же важно определить, как участников будут разделять по лигам: согласно формальным требованиям, по желанию или по результатам предварительного отбора.
  • Сроки проведения турнира
    На решение рассмотренной выше финальной задачи у участников уходит от полутора до трех часов, но задача может быть более сложной, что потребует больше времени на решение и подготовку участников. Важно определить, когда будет проходить отборочный этап (очно или онлайн), сколько времени пройдет до финальной задачи.
  • Организаторы турнира
    Кто входит в организационный комитет, обязанности каждого из организаторов.
2. Выбор задачи
Помимо рассмотренной выше задачи по экономии ресурсов, можно взять в качестве турнирной одну из задач, разработанных для игры «Защита пасеки», или придумать собственную.
Рассмотрим кратко несколько задач из этого набора, которые хорошо подходят для турнира и могут использоваться как самостоятельно, так и в качестве дополнительного условия для задачи на экономию ресурсов:
  • «„Степлеры”, вперед!»: пройдите первый уровень игры, используя только дроны типа «Степлер»
С такой задачей справятся даже новички, которые могут модифицировать программы в «Защите пасеки». Этот класс задач хорошо провоцирует программирование, поскольку «Степлер» — тактически интересный дрон, обладающий слабой программой по умолчанию. Можно воспользоваться усложненными вариантами этой задачи:
  • пройдите первый уровень игры, используя только три дрона типа «Степлер»
  • пройдите обучающий уровень игры, используя только один дрон типа «Степлер»
  • пройдите второй или даже третий уровень игры, используя только «Степлеры»
  • «Всякому найдется дело»: пройдите первый уровень игры, используя в каждой волне дроны всех типов
Это означает, что участникам нужно использовать в каждой волне хотя бы один дрон каждого типа: «Автобортник», «Степлер», «Дымарь» и «Генератор». Эта задача сложнее, для более продвинутых участников. Ее решение потребует знания характеристик каждого из дронов, а также тактических ходов для их координации.
  • «Дрон-приманка»: пройдите первый уровень игры, используя в каждой волне хотя бы один небоевой дрон, отвлекающий противников на себя
В предыдущих модулях мы уже рассматривали такую тактику, а здесь она представлена в виде турнирной задачи. Благодаря тому, что один из дронов отвлекает на себя дроны противников, остальные дроны безнаказанно атакуют врагов. В этом случае потребуется продумать и реализовать наиболее интеллектуальный алгоритм движения дрона-приманки, в т. ч. научиться огибать препятствия, избегать урона и т. д.
3. Подготовка к проведению
Первым делом необходимо открыть регистрацию участников или команд. Для этого можно использовать платформу «Талант» «Кружкового движения» НТИ. В этом случае можно будет получать автоматическую аналитику, а также формировать дипломы участников и победителей, которые впоследствии могут принести участникам дополнительные баллы на ЕГЭ.
Необходимо выбрать подходящее помещение и оснащение для проведения турнира. Помещение должно соответствовать требованиям регламента. Игра «Защита пасеки» может быть запущена на десктопных компьютерах, планшетах или мобильных телефонах. На места участников турнира нужно установить последнюю доступную версию игры (версию для десктопа можно загрузить на сайте с материалами о программировании в «Берлоге», для мобильных платформ — на сайте игры или в RuStore). При использовании участниками личных устройств нужно проконтролировать соответствие условиям равенства участия.
Наконец, убедитесь, что участники ознакомлены с правилами турнира. Перед началом необходимо провести регламентирующую встречу. Можно собрать чат для оперативного общения с участниками.
4. Фиксация результатов
Учет результатов ведут члены оргкомитета. Но если ваш турнир очень сложный, то результаты игры могут быть перепроверены с использованием видеофиксации экрана, которую следует вести всем участникам турнира.
Комментарий для педагога
Турнир может быть не просто ярким событием вашей школы или кружка, но и инструментом в руках педагога. Рассмотрим два основных варианта использования турнира в ходе преподавания
Методист образовательных программ «Программирование киберфизических систем»
Анита Ходова
Первый способ — обнаружение учащимися своего поля незнания благодаря турниру. По ходу турнира учащиеся могут видеть, в какой степени их решения отстают или, наоборот, опережают решения других команд. В этом случае очень важно провести разбор лучших решений по окончании турнира. Так, участники-победители или команды-победители должны развернуто представить свои решения перед всем классом: какие подходы и алгоритмы они использовали, как распределяли роли в команде и т. д.
Второй способ — турнир может быть инструментом диагностики. Благодаря анализу результатов турнира, программ, которые создали участники, педагог может обнаружить уровень освоения участниками программирования, а также особенные паттерны, которые характерны для данного кружка. Примеры таких паттернов: именуют или не именуют учащиеся состояния, какие модули они используют чаще всего, насколько вообще знакомы с системой модулей дронов, насколько оригинальные и отличающиеся от базовых программы используют участники. Наконец, педагог может получить объективные статистические данные о ходе турнира: сколько человек провело времени в редакторе диаграмм, какими персонажами они пользовались, какие программы создавали.
В следующем модуле мы подробнее рассмотрим формат и содержание подобной диагностики освоения программирования машин состояний.

Запишитесь на курс, чтобы выполнять задания и получить сертификат!

Программирование автономных систем на примере игры «Берлога: Защита пасеки»
Курс о том, как с помощью простых инструментов научиться программировать поведение автономных агентов. Вы увидите, как игровые дроны подчиняются коду и как эти же принципы применимы к роботам в реальной жизни.
  • Что вы получите
    • 12 уроков с разбором заданий прямо в игре
    • Авторская подача: сложное программирование простым языком
    • Возможность осмыслить педагогические методики, применяемые в каждой теме
    • Свободное расписание: нет дедлайнов и сроков сдачи заданий
    • Все материалы доступны сразу, можно начать обучение в удобное время
    • Проверочные задания после каждого урока
    • Профессиональное видео и современная графика
    • Быстрая связь с техподдержкой
    • Сертификат о прохождении курса
  • Зачем
    • Научиться и научить программировать через игру
    • Освоить язык ПРИМС — инструмент для создания умных и понятных алгоритмов
    • Разобраться, как работают современные киберфизические системы
    • Научиться строить управление: от простых реакций до сложных сценариев поведения
    • Получить готовую методику проведения занятий: с пояснениями, примерами и игровыми задачами
    • Сделать первый шаг к проектной работе с настоящими роботами и автономными системами
Находясь на сайте, вы даете согласие на обработку файлов cookie. Это необходимо для более стабильной работы сайта
OK