Комплексные задачи
В этом модуле мы применим знание языка ПРИМС для решения сложной практической задачи. В игре «Защита пасеки» можно не только проходить усложняющиеся уровни с волнами дронов противника, но и экспериментировать и тренироваться на специальном уровне «Полигон», который мы уже упоминали в предыдущих модулях

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

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

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