Почему Scratch — лучшая платформа для детей, чтобы научиться программированию

Скриншот

В тот момент, когда моя дочь создала свой первый проект в Scratch — простую анимацию кота, гоняющегося за бабочкой — ее отношение к компьютеру полностью изменилось. Внезапно она не просто потребляла контент; она стала тем, кто заставляет вещи происходить на экране. Два года и множество проектов спустя, я могу точно сформулировать, почему Scratch является таким фантастическим языком программирования для детей и отличной творческой площадкой для молодых умов, подобных ее.

Познакомьтесь со Scratch: языком программирования, который любят дети

Разработанный Лабораторией медиа MIT в начале 2000-х, Scratch — это красочная, интуитивно понятная площадка, где дети могут воплощать свои идеи в жизнь.

В отличие от традиционных языков программирования, которые могут перегрузить детей сложным синтаксисом и запутанными точками с запятой, Scratch использует визуальный подход, который прекрасно понятен молодым умам.

Scratch Flappy Bird

Каждая концепция программирования представлена отдельным цветным блоком: фиолетовый для внешнего вида, синий для движения, желтый для управления и так далее. Эти блоки соединяются друг с другом, как кусочки пазла, логически, и вы будете удивлены, сколько всего можно с ними сделать.

Хотите, чтобы персонаж двигался, когда вы нажимаете пробел? Просто возьмите блок “событие”. Нужно запомнить имя игрока на протяжении всей игры? Создайте переменную одним щелчком. Эти концепции, которые могут показаться пугающими на традиционном курсе программирования, становятся такими же естественными, как строительство из блоков.

Даже функции, концепция, которая может быть сложной для взрослых учащихся, естественно возникают в Scratch. Когда моя дочь поняла, что хочет, чтобы несколько ее персонажей выполняли одну и ту же танцевальную рутину, она обнаружила, что может создать пользовательский блок в разделе “Мои блоки”, чтобы избежать повторения одного и того же кода.

Лучшая часть? В отличие от традиционных языков программирования для начинающих, где вы часто видите только текстовый вывод в скучном терминальном окне, все, что вы создаете в Scratch, мгновенно оживает на экране. С одним щелчком зеленого флага моя дочь могла наблюдать, как ее персонажи танцуют, взаимодействуют и движутся именно так, как она себе представляла.

Начало работы со Scratch

Начать работу со Scratch не может быть проще. Он работает прямо в вашем веб-браузере на scratch.mit.edu, хотя также доступна версия для загрузки для Windows, macOS, ChromeOS и Android, если вы предпочитаете работать офлайн. Мы выбрали веб-версию, так как моя дочь использует Raspberry Pi в качестве своего компьютера (офлайн-версия не поддерживает Linux).

Создание аккаунта Scratch

Хотя вы можете начать создавать проекты сразу без аккаунта, я решила создать его для своей дочери, чтобы она могла сохранять свою работу и присоединиться к сообществу молодых создателей.

Для ее первого творения мы решили сделать что-то простое: анимацию кота, гоняющегося за бабочкой. Одной из самых привлекательных особенностей Scratch является его обширная библиотека спрайтов — заранее созданных анимированных персонажей и объектов, которые дети могут использовать в своих проектах, так что добавление бабочки было так же просто, как нажать кнопку “Выбрать спрайт”. Удобно, что спрайт кота уже присутствует по умолчанию, так что нам даже не нужно было его добавлять.

Библиотека спрайтов Scratch

Как только сцена была готова, пришло время добавить немного логики. Я показала своей дочери, как использовать блоки событий, такие как “когда [пробел] нажата”, чтобы заставить кота двигаться ближе к бабочке. Мы использовали простые блоки движения, такие как “двигаться [10] шагов”, что позволило ей мгновенно увидеть результат своих команд. Чтобы сделать это интерактивным, мы добавили условную проверку с помощью блока “если”, чтобы определить, когда кот коснулся бабочки. Когда это произошло, мы активировали звуковой блок, чтобы кот мяукал.

Игра

Простота перетаскивания и соединения этих блоков сделала для нее интуитивно понятным понимание потока действий. Даже на этом раннем этапе она поняла логику “если-то” и событийно-ориентированного программирования, не осознавая, что она изучает основные концепции программирования.

Основные проблемы с Scratch

Хотя Scratch разработан так, чтобы быть дружелюбным для детей, мы столкнулись с двумя препятствиями на нашем пути. Вот как мы их преодолели.

Проблемы с ранним чтением

Самым большим первоначальным препятствием была не техническая сторона, а грамотность. Когда мы только начали работать со Scratch, навыки чтения моей дочери еще не были достаточно развиты, чтобы самостоятельно понимать все описания блоков и названия кнопок.

Мать и дочь за компьютером

Вместо того чтобы позволить этому остановить ее, я превратила это в возможность для совместного обучения. Я сидела с ней во время ее первых сеансов программирования, читая названия и объясняя, что делают разные блоки. В течение нескольких месяцев она начала самостоятельно читать описания блоков, и ее программный словарный запас и техническая грамотность естественным образом расширялись вместе с ее навыками чтения.

Ограничения размера проекта

Единственной технической проблемой, с которой мы столкнулись, стали ограничения на активы проекта в Scratch. Видите ли, каждый проект может содержать несколько активов, но каждый актив должен быть размером до 10 МБ. Хотя этого достаточно для спрайтов и коротких звуковых эффектов, мы все же столкнулись с проблемами размера, когда моя дочь начала добавлять фоновую музыку собственного производства.

Audacity Macos

Решение заключалось в том, чтобы быть умнее с аудиофайлами. Вместо того чтобы использовать WAV-файлы, которые приходят непосредственно из записи, мы начали конвертировать их в формат MP3 с помощью Audacity, бесплатного аудиоредактора. Эта компрессия обычно уменьшала размер файлов на 80-90%, сохраняя приемлемое качество звука.

За пределами Scratch: что дальше?

Хотя Scratch замечательно вводит в концепции программирования через визуальные блоки, которые дети находят увлекательными, наступает время, когда молодые программисты могут захотеть исследовать текстовое программирование. В конце концов, именно это и есть настоящее программирование.

Microsoft Makecode

Моя дочь еще не готова к полному текстовому программированию, поэтому мы делаем промежуточный шаг с помощью MakeCode от Microsoft, который очень похож на Scratch, потому что он также использует блоки для обучения программированию. Но в отличие от Scratch, MakeCode также позволяет молодым программистам переключаться на текстовое программирование и реализовывать более сложную логику на JavaScript или Python.

Для старших детей, готовых сразу погрузиться в текстовые языки, Python и JavaScript являются отличными отправными точками. Оба предлагают чистый, читаемый синтаксис и обширные библиотеки для создания игр и графики, идеально подходящие для молодых программистов, которые хотят развивать концепции, которые они изучили в Scratch.

Обложка и скриншоты предоставлены Дэвидом Морео.