В последние годы платформы для создания игр, такие как Roblox, стали невероятно популярны. Многие учебные заведения и курсы решили использовать эти инструменты для обучения детей основам программирования, полагая, что это сделает процесс более увлекательным и интересным. Однако, такой подход имеет ряд серьёзных недостатков, особенно когда речь идет о младших школьниках.
На первый взгляд, кажется, что обучение программированию на базе Roblox может увлечь детей, ведь они создают игры и сразу видят результат. Однако, если взглянуть на пример кода, который приходится писать в Roblox, становится очевидно, что даже простые задачи требуют глубокого понимания программирования.
Например, чтобы описать простую коллизию лазерного луча с игроком, требуется знание сложных концепций, таких как объектно-ориентированное программирование (ООП), работа с событиями, слоты и сигналы, а также базовые конструкции: переменная, условный оператор, подпрограмма.
Таким образом, всякий раз, когда "лазерный луч" соприкасается с любым другим объектом (камнем, стеной, игроком и т.д.) — он вызывает функцию onTouch(), в которой проверяется, является ли объект частью игрока. И если является — то обнуляет здоровье игрока.
Такие задачи непосильны для второклассника. Ученик начальной школы ещё не обладает настолько развитым абстрактным мышлением. В результате занятия сводятся к тому, что дети бездумно копируют или переписывают код, не понимая, что он делает и как работает. И вместо того, чтобы развивать логическое мышление и навыки программирования с основ, дети начинают полагаться на механическое копирование чужого кода. Они не понимают, почему код работает, а это подрывает их способность к самостоятельному решению задач и исследованию новых возможностей.
Работая с таким сложным кодом, новички в программировании и тем более школьники, не изучат не только продвинутые инструменты программирования типа ООП и событий, но даже базовые концепции программирования. Им приходится сталкиваться с кодом, который слишком сложен для их возраста и уровня подготовки. Для них весь код воспринимается как непознаваемая магия. Они не увидят структуру кода, не поймут, как элементы кода взаимодействуют между собой, и почему именно так. Это приводит к тому, что многие из них теряют интерес к обучению, так как просто не понимают, что делают.
Платформа Roblox предлагает не только инструмент создания игр, но и даёт возможность играть в проекты, созданные другими энтузиастами. Эта возможность максимально доступна и привлекательна, предлагает ребёнку бесчисленное множество разнообразных игр, которые очень легко запустить. И когда встаёт выбор, чем заняться — запустить сложную и непонятную среду разработки или простую и весёлую платформу с кучей игр — не секрет, что выберет ребёнок.
Следует не забывать, что Roblox — это в первую очередь коммерческий проект, главная цель которого — заработок денег. Он даёт возможность зарабатывать разработчикам игр и самим создателям Roblox. А обычным игрокам он предлагает тратить деньги. Roblox не преследует образовательных целей и совершенно не ориентирован на это.
Ещё одна тенденция — использовать в образовательной программе компьютерную игру Minecraft. Для неё действительно существуют моды, которые привносят в игровой мир инструменты программирования и делают игровой процесс разнообразнее. Но это подходит только для тех, кто уже заинтересован программированием, имеет опыт написания алгоритмов и хочет применить свои навыки где-нибудь ещё (например, в игре Minecraft).
Если ребёнок не обладает навыками программирования, то он запускает Minecraft не для того, чтобы что-то изучать, а для того, чтобы поиграть. И не важно, что вы ему будете говорить про программирование. Для него Minecraft — это игра, где первым делом надо построить землянку и сделать топор. А какие-то там переменные, циклы, это что-то сложное, "у меня морковка выросла, надо собрать, и вообще в подвале крипер..."
Использование Roblox для обучения младших школьников программированию — это очень спорное решение, которое может привести к снижению интереса к программированию и препятствовать усвоению основ. Мы убеждены, что для успешного обучения программированию необходимо выбирать инструменты, которые соответствуют возрастным особенностям детей. Важно, чтобы процесс обучения помогал развивать логическое мышление и постепенно вводил детей в мир программирования, начиная с простого и понятного.
Наш подход ориентирован на постепенное освоение навыков программирования, начиная с самых основ и двигаясь к более сложным темам, что позволяет детям не только понять, но и полюбить процесс создания программ и игр.