Итоговая диагностика
Это последний модуль, в котором изучается программирование в игре «Берлога: Защита пасеки». В предыдущих модулях мы познакомились с основами языка программирования расширенных иерархических машин состояний и получили опыт программирования в игре «Защита пасеки» и за ее пределами. Теперь вы можете двигаться самостоятельно, пройти игру до Бесконечного уровня и дальше, использовать «Полигон» и исследовать возможности модулей дронов, решать сложные задачи и принимать участие в турнирах и челленджах
Методист образовательных программ «Программирование киберфизических систем»
Анита Ходова
Давайте проверим, насколько хорошо вы освоили событийное программирование и диаграммы машин состояний. В этом модуле мы предлагаем вам решить итоговую задачу: исследуйте поведение дрона противника (например, «Муравья») и опишите логику его работы в виде диаграммы машин состояний
Необходимо изобразить диаграмму машин состояний, которая управляет дроном противника. При этом мы предлагаем использовать те же самые модули, которые вы используете при программировании ваших дронов, в конце концов, Паша Буров создал киберос из стандартных компонентов.
Прежде мы только при первом знакомстве с «Защитой пасеки» (модуль 3) пробовали воссоздать логику работы программы по наблюдаемому поведению агента. Эта деятельность называется обратным инжинирингом (reverse engineering) и широко распространена во многих сферах. Нам придется занять позицию инженера-исследователя, поскольку предстоит получить знания о системе, ее устройстве.
Для того чтобы решить задачу, вам потребуется провести ряд наблюдений и экспериментов на уровне «Полигон»: какова базовая логика работы «Муравья», как он ведет себя при обнаружении противников (теперь уже ваших дронов). Разработав прототип программы, вы даже сможете смоделировать поведение дрона противника с помощью собственного дрона, «прошив» ему соответствующую программу.
Разобравшись с «Муравьем», можно ответить на вопрос, как отличается диаграмма машин состояний базового дрона противника от диаграммы других дронов, реализующих более изощренную тактику, с которыми вы встречались на сложных уровнях игры. Различные виды дронов («Жук-бомбардир», «Оса» или «Носорог») и их особые тактики («разрушитель», «охотник», «таран») также можно выбирать на уровне «Полигон». Вы можете попробовать восстановить и их машины состояния, чтобы понять, чем именно они отличаются
Программист
Иван Кнут
Комментарий для педагога
Самое интересное в любой диагностике — интерпретация ее результатов. Давайте разберемся, как педагогу правильно провести диагностику и интерпретировать полученные результаты.
Есть два варианта проведения диагностики:
  • Диагностика на бумаге
    Участникам предлагается нарисовать диаграмму машины состояний на листе, флипчарте или доске. Плюсы: широта возможностей, воображение не ограничивается интерфейсом. Минусы: нет возможности проверить программу в работе, только обсудить диаграммы.
  • Диагностика на «Полигоне»
    Участники используют уровень «Полигон» не только для исследований дронов противника, но и для моделирования их поведения. Плюсы: можно убедиться в правильности гипотез. Минусы: ответы участников будут более предсказуемы, ведь их будет привлекать использование программы по умолчанию в качестве основы, вместо смысловых имен состояний может использоваться стандартное «Состояние» и т. п.
Интерпретация диагностики направлена на то, чтобы понять, в какой степени участник владеет языком машин состояний, способен выразить работу сложной автономной системы на этом языке программирования с использованием событийного подхода. Результаты диагностики можно интерпретировать в два этапа:
  • Изучить элементы диаграммы, предложенной участником:
  • как представлены состояния в диаграмме: есть ли у них имена, связаны ли имена с внутренней логикой этих состояний, адекватна ли по смыслу вложенность состояний
  • какие используются события: соотносятся ли события на переходах с состояниями, правильно ли заданы ограждающие условия, нет ли конфликта переходов по общим событиям, ввел ли участник новые события, не присутствующие в программе (если диаграмма рисуется на бумаге)
  • корректно ли заданы действия в диаграмме (на входе/выходе из состояний или на переходах, в соответствии с модульной структурой дрона, соответствуют ли действия дрона по смыслу его состояниям)
  • Проанализировать диаграмму в целом:
  • удерживается ли логика событийного программирования: когда действия и изменения происходят при возникновении событий, а не последовательно, как в блок-схеме
  • применяется ли иерархия состояний для выделения обобщенных действий дрона в программе
  • полна ли диаграмма с точки зрения начала работы и достижения результата
  • корректна ли связность в диаграмме, отсутствуют ли в ней недостижимые состояния или «тупики»
За каждым из обозначенных моментов стоит содержание нашего курса. Например, если участники диагностики плохо владеют состояниями или событиями, можно обратиться к соответствующим модулям курса.
Но по-настоящему полным овладение языком машин состояний станет при выходе за рамки игры, о чем мы поговорим в следующих модулях.

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

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