В тот момент, когда моя дочь создала свой первый проект в Scratch — простую анимацию кошки, гоняющейся за бабочкой, — ее отношения с компьютером полностью изменились. Внезапно она стала не просто потреблять контент; именно она заставляла происходящее происходить на экране. Два года спустя и бесчисленное множество проектов спустя я могу точно сформулировать, почему Scratch — такой фантастический язык программирования для детей и отличная творческая площадка для таких юных умов, как она, в целом.
Contents
Знакомьтесь: Scratch: язык программирования, который любят дети
Разработанная медиалабораторией Массачусетского технологического института в начале 2000-х годов, Scratch — это красочная, интуитивно понятная игровая площадка, где дети могут воплощать свои идеи в жизнь.
В отличие от традиционные языки программирования , который может утомить детей сложным синтаксисом и загадочными точками с запятой, Scratch использует визуальный подход, который имеет смысл для юных умов.
Каждая концепция программирования представлена отдельным цветным блоком: фиолетовый — для внешнего вида, синий — для движения, желтый — для управления и т. д. Эти блоки логически соединяются друг с другом, как кусочки головоломки, и вы будете удивлены, как много с ними можно сделать.
Хотите, чтобы персонаж двигался при нажатии клавиши пробела? Просто возьмите блок «событие». Нужно помнить имя игрока на протяжении всей игры? Создайте переменную одним щелчком мыши. Эти концепции, которые могут показаться устрашающими в традиционном курсе программирования, становятся такими же естественными, как построение из блоков.
Даже функции — концепция, которая может бросить вызов взрослым ученикам, — естественным образом возникают в Scratch. Когда моя дочь поняла, что хочет, чтобы несколько ее персонажей исполнили один и тот же танец, она обнаружила, что может создать собственный блок в разделе «Мои блоки», чтобы избежать повторения одного и того же кода.
Лучшая часть? В отличие от традиционных языков программирования для начинающих, где вы часто видите только текстовый вывод в скучном окне терминала, все, что вы создаете в Scratch, мгновенно оживает на экране. Одним щелчком зеленого флажка моя дочь могла наблюдать, как ее персонажи танцуют, взаимодействуют и двигаются именно так, как она себе представляла.
Начало работы с нуля
Начать работу со Scratch очень просто. Он запускается прямо в вашем веб-браузере по адресу Scratch.mit.edu , хотя есть также загружаемая версия для Windows, macOS, ChromeOS и Android, если вы предпочитаете работать в автономном режиме. Мы выбрали веб-версию, поскольку моя дочь использует Raspberry Pi в качестве ее компьютера (офлайн-версия не поддерживает Linux).
Хотя вы можете начать создавать проекты прямо сейчас, не имея учетной записи, я решила создать проект для своей дочери, чтобы она могла сохранить свою работу и присоединиться к сообществу молодых авторов.
Для ее первого творения мы решили сделать все просто: анимацию кошки, гоняющейся за бабочкой. Одной из наиболее привлекательных особенностей Scratch является обширная библиотека спрайтов — готовых анимированных персонажей и объектов, которые дети могут использовать в своих проектах, поэтому добавить бабочку было так же просто, как нажать кнопку «Выбрать спрайт». Удобно, что спрайт кошки уже присутствует по умолчанию, поэтому нам даже не пришлось его добавлять.
После того, как все было готово, пришло время добавить немного логики. Я показал своей дочери, как использовать блоки событий, такие как «при нажатии клавиши [пробел]», чтобы кошка приблизилась к бабочке. Мы использовали простые блоки движения, такие как «переместить [10] шагов», которые позволяли ей мгновенно видеть результат своих команд. Чтобы сделать его интерактивным, мы добавили условную проверку с блоком «если», чтобы определить, когда кошка коснулась бабочки. Когда это произошло, мы включили звуковой блок, чтобы кот мяукал.
Простота перетаскивания и соединения этих блоков позволила ей интуитивно понимать поток действий. Даже на этом раннем этапе она уловила логику операторов «если-то» и событийно-ориентированного программирования, не осознавая, что изучает фундаментальные концепции программирования.
Основные проблемы Scratch
Хотя Scratch спроектирован так, чтобы быть удобным для детей, на этом пути мы столкнулись с двумя препятствиями. Вот как мы с ними справились.
Проблемы с ранним чтением
Самое большое первоначальное препятствие было вовсе не техническим, а грамотностью. Когда мы впервые начали работать со Scratch, навыки чтения у моей дочери были недостаточно развиты, чтобы самостоятельно понимать все описания блоков и надписи на кнопках.
Вместо того чтобы позволить этому сдерживать ее, я превратил это в возможность совместного обучения. Я сидел с ней во время ее первых занятий по программированию, читал надписи и объяснял, что делают разные блоки. Через несколько месяцев она самостоятельно читала описания блоков, и ее словарный запас программирования и техническая грамотность естественным образом расширились вместе с ее навыками чтения.
Ограничения размера проекта
Единственная техническая проблема, с которой мы столкнулись, связана с ограничениями ресурсов проекта Scratch. Видите ли, каждый проект может содержать несколько ресурсов, но каждый ресурс должен иметь размер до 10 МБ. Хотя этого достаточно для спрайтов и коротких звуковых эффектов, мы все равно столкнулись с проблемами размера, когда моя дочь начала добавлять фоновую музыку собственного производства.
Решение заключалось в том, чтобы более разумно относиться к аудиофайлам. Вместо использования файлов WAV, полученных непосредственно из записи, мы начали конвертировать их в формат MP3 с помощью бесплатного аудиоредактора Мужество . Такое сжатие обычно уменьшает размер файлов на 80–90 %, сохраняя при этом приемлемое качество звука.
За гранью нуля: что будет дальше?
Как бы ни был хорош Scratch в представлении концепций программирования с помощью визуальных блоков, которые находят детей интересными, наступает время, когда молодые программисты могут захотеть изучить текстовое программирование. В конце концов, в этом и состоит настоящее программирование.
Моя дочь еще не совсем готова к полноценному текстовому программированию, поэтому мы делаем промежуточный шаг с MakeCode от Microsoft , который очень похож на Scratch, поскольку в нем также используются блоки для обучения программированию.. Но в отличие от Scratch, MakeCode также позволяет молодым программистам переключаться на текстовое программирование и реализовывать более сложную логику на JavaScript или Python.
Для детей старшего возраста, готовых сразу погрузиться в текстовые языки, Питон и JavaScript станут отличной отправной точкой. Оба предлагают чистый, читаемый синтаксис и обширные библиотеки для создания игр и графики, что идеально подходит для молодых программистов, которые хотят развивать концепции, которые они изучили в Scratch.