Платформа обучения программированию на базе машин состояний (Алексей Федосеев, OSEDUCONF-2026)
Материал из 0x1.tv
- Докладчик
- Алексей Федосеев
С 2023 года в России реализуется проект «Национальная киберфизическая платформа», направленный на массовое вовлечение школьников в инженерию и новые технологии, обучение их программированию, электронике и созданию автономных систем. Платформа базируется на принципах открытой архитектуры, свободном и открытом программном и аппаратном обеспечении.
К настоящему моменту в рамках платформы был разработан набор национальных стандартов, программных и аппаратных решений — от движка для создания видеоигр и виртуальных миров до библиотек и сред разработки, а также функциональных контроллеров и учебных приборов для школьников и студентов. Продукты объединяет единая методология разработки и визуальный язык, основанный на принципах программирования машин состояний.
Платформа используется в сети технологических кружков Кружкового движения и в рамках Национальной технологической олимпиады школьников. Следующим шагом в развитии платформы может стать её применение в высшей школе и создание на её основе новых образовательных и технологических продуктов.
Содержание
Видео[править вики-текст]
Презентация[править вики-текст]
Thesis[править | править вики-текст]
Ключевые слова: обучение программированию, машины состояний, стандарт, среда разработки, платформа.
Введение[править | править вики-текст]
Технологические кружки уже больше 100 лет играют роль колыбели новых технологий и практик будущего. В сфере информационных технологий ярким примером является Tech Model Railroad Club из MIT. При этом в современной России технические кружки уступают в популярности многим другим направлениям дополнительного образования[1] , а родители и старшеклассники зачастую предпочитают кружкам подготовку к ЕГЭ. Не менее серьёзным вызовом является технологическое обеспечение кружков — после 2022 года в связи с уходом с рынка многих зарубежных производителей возникла потребность переоснащать кружки отечественными и открытыми решениями[2]. В этих целях в 2023 году был инициирован проект «Национальная киберфизическая платформа», направленный на массовое вовлечение школьников в инженерию и новые технологии, обучение их программированию, электронике и созданию автономных систем[3].
Киберфизическая платформа[править | править вики-текст]
В связи с большим числом уже существующих отечественных решений в области образовательной робототехники и умного дома (при этом в массе своей — проприетарных), а также уже появившихся на рынке отечественных контроллеров, реализованных в том числе на базе открытой архитектуры RISC-V, было принято решение основным направлением развития Национальной киберфизической платформы сделать методологию и программное обеспечение для разработки киберфизических систем[4]. В этой области уже существуют инициированные не в России открытые экосистемы разработки, такие как Arduino, ROS, Home Assistant и др. Поэтому важный акцент делается на сквозном вовлечении и обучении школьников и студентов с самого младшего возраста и до уровня профессиональной разработки, формировании правильных способов работы и мышления будущих разработчиков, в т. ч. в опоре на принципы разработки свободного ПО.
В рамках Национальной киберфизической платформы школьники впервые знакомятся с программированием и робототехникой в видеоиграх, затем имеют возможность поучаствовать в очных мероприятиях и кружках и перейти от разработки игр к созданию собственных решений для умного дома и робототехники, в том числе в рамках Национальной технологической олимпиады[5], а в будущем — принять участие во Всероссийском конкурсе проектов с открытым кодом[6] и представить там собственные разработки.
Программирование расширенных иерархических машин состояний[править | править вики-текст]
В качестве сквозного инструмента программирования киберфизических систем были выбраны программируемые расширенные иерархические машины состояний (ПРИМС). Этот мета-язык позволяет реализовывать адекватные для умных и встраиваемых систем парадигмы событийного и автоматного программирования[7]. Программный код в виде диаграмм может быть общим планшетом для разработки всей командой — от дизайнеров до программистов, — а на основе диаграммы можно генерировать код для поддерживаемых аппаратно-программных платформ (см. пример на рисунке).
Благодаря такому визуальному языку школьники могут не только получить первый доступный опыт программирования ещё в игровых средах, но и сразу начать работу с профессиональным инструментарием, адекватным современной индустриальной разработке. Отдельно отметим, что данный подход позволяет сместить акцент от непосредственного написания кода к моделированию и проектированию, чего очень не хватает начинающим разработчикам.
В основе ПРИМС лежит перевод и адаптация стандарта UML 2.0 Statecharts. На русском языке была издана серия стандартов, описывающих архитектуру киберфизической платформы, визуальный язык программирования и формат его представления на основе GraphML (ПНСТ 982-2024, 983-2024, 984-2024 и 1044-2025). В репозиториях Ассоциации кружков опубликован код свободных программных библиотек, реализующих работу с данным языком, генерацию кода на основе диаграмм и др. (например: https://github.com/kruzhok-team/libcyberiadaml и другие репозитории на GitHub и ALTLinux Space: https://altlinux.space/dralex).
Педагогам и энтузиастам доступны методические разработки, онлайн-курсы и другие материалы для обучения программированию иерархических машин состояний для учащихся разного уровня[8].
Примеры продуктов на базе платформы[править | править вики-текст]
В рамках предыдущих конференций, посвящённых тематике свободного ПО, уже приводился пример симулятора космических аппаратов с программированием на основе машин состояний[9] и среда разработки для программирования контроллеров (Arduino и др.) с помощью диаграмм машин состояний[10]. Приведём ещё несколько примеров аппаратных и программных продуктов, опубликованных под свободными и открытыми лицензиями и основанных на принципах и технологиях Национальной киберфизической платформы.
Начинающие разработчики могут попробовать себя в качестве авторов простых трёхмерных видеоигр и виртуальных миров, используя среду Ursula, основанную на открытом игровом движке Godot Engine и реализующую ПРИМС для описания поведения автономных агентов в игре (https://github.com/kruzhok-team/Ursula/).
Более сложные форматы интерактивных развлечений и инженерного образования в кружках можно реализовать на основе отечественного аппаратно-программного комплекса[11], дающего возможность программировать носимые устройства, которые отправляют и принимают ИК-сигналы. Эти контроллеры опубликованы под свободной лицензией (https://altlinux.space/dralex/IR_PCB_HW/) и также программируются машинами состояний в упомянутой выше среде разработки.
Выводы[править | править вики-текст]
Национальная киберфизическая платформа реализует принципы открытой разработки и приглашает к участию команды, реализующие собственные технологические проекты и современные методы обучения программированию. Это может стать базой для развития университетских дисциплин и студенческих сообществ, а также создания собственных образовательных продуктов в логике свободного программного и аппаратного обеспечения.
Примечания и ссылки[править вики-текст]
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
- ↑ 1,0 1,1 Андрюшков А. А., Устиловская А. А., Чикуров А. В., Комарова А. А. Кружки как российская гуманитарная технология. Аналитический отчёт Инфраструктурного центра Кружкового движения НТИ. М., 2022.
- ↑ 2,0 2,1 Исследование технолого-методического обеспечения кружков НТИ: робототехника / А. Овсянников, П. Дятлова, А. Федосеев; под ред. А. Андрюшков, О. Кусковой. М.: Ассоциация участников технологических кружков, 2023.
- ↑ 3,0 3,1 Национальная киберфизическая платформа — https://platform.kruzhok.org
- ↑ 4,0 4,1 Федосеев А. И. Концепция Национальной киберфизической платформы // Сенсорное Слияние — 2023.
- ↑ 5,0 5,1 Национальная технологическая олимпиада — https://ntcontest.ru
- ↑ 6,0 6,1 Всероссийский конкурс проектов с открытым кодом — https://foss.kruzhok.org
- ↑ 7,0 7,1 Samek M. Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems. CRC Press, 2008.
- ↑ 8,0 8,1 Обучение программированию машин состояний — https://platform.kruzhok.org/programming
- ↑ 9,0 9,1 Федосеев А. Свободный симулятор космических аппаратов «Орбита» // Девятнадцатая конференция разработчиков свободных программ, 2023.
- ↑ 10,0 10,1 Чекан М. Среда визуального программирования машин состояний // Девятнадцатая конференция разработчиков свободных программ, 2023.
- ↑ 11,0 11,1 Открытый образовательный набор «Путеводная — ИК» — https://cyberphysics.kruzhok.org
