Что такое Scratch: первый урок программирования для школьника
💻 Информатика · 5 класс
Scratch для начинающего ребёнка: сцена, спрайты, блоки, циклы и переменные. Примеры движения и счётчика, пять заданий и советы родителю для первого проекта.

Scratch — бесплатная среда визуального программирования для детей: команды соединяют из блоков, чтобы создавать игры, истории и анимацию. Блоки тоже являются кодом, только их не нужно набирать как текст. Scratch разработала команда MIT Media Lab под руководством Митчела Резника в 2007 году; в 2019 году проект передали независимой некоммерческой Scratch Foundation. В этом уроке для начинающего школьника разберём сцену, спрайты и простые алгоритмы, а родитель сможет проверить, понимает ли ребёнок смысл своих команд.
Из чего состоит проект
В редакторе полезно различать несколько основных элементов. Сцена — экран, на котором всё происходит: её координаты по горизонтали от −240 (левый край) до 240 (правый), по вертикали от −180 до 180. Спрайты — персонажи и объекты на сцене; у каждого собственные скрипты, костюмы (изображения) и звуки. Область скриптов — рабочий стол, куда перетаскивают блоки из палитры. Палитра разбита на категории: Движение, Внешность, Звук, События, Управление, Сенсоры, Операторы, Переменные. Форма блоков подсказывает допустимые соединения и помогает избегать многих ошибок записи. Но логическая ошибка всё равно возможна: например, можно выбрать неверное направление или забыть сбросить счётчик. На сцене также могут быть собственные скрипты и звуки, а вместо костюмов у неё фоны.
Как читается скрипт
Скрипт часто начинается с блока события, например нажатия флажка. Для проверки цепочку блоков можно также запустить щелчком по ней. Простейший скрипт движения выглядит как цепочка блоков: «когда флажок нажат» → «всегда» → внутри цикла «идти 10 шагов» и «если край, оттолкнуться». Событие запускает исполнение, цикл «всегда» повторяет тело, пока скрипт не остановлен, условие у края экрана разворачивает спрайт. Пример 1. В отдельном примере без отскока и других скриптов зададим спрайту начальную точку (0; 0) и направление вправо. После блока «повторить 4», внутри которого стоит «идти 50 шагов», он окажется в точке (200; 0): направление 90° в Scratch означает движение вправо, и каждый проход добавляет 50 к координате x. Эта трассировка проверена нами расчётом.
Пример 2. Счётчик. Играм нужны очки. Создадим переменную «очки», а у спрайта соберём два скрипта: первый — «когда флажок нажат» → «задать очки 0»; второй — «когда спрайт нажат» → «изменить очки на 1». Если дождаться сброса счётчика и затем трижды нажать спрайт, очки будут равны 3: переменная хранит состояние между событиями, и это первое знакомство с памятью программы.
Чему учит Scratch
За весёлыми картинками стоит полноценная алгоритмическая база, которую затем переносят в текстовые языки:
- 1) события и параллельность — несколько спрайтов исполняют свои скрипты одновременно;
- 2) циклы со счётчиком («повторить 10») и бесконечные («всегда»);
- 3) ветвление «если … иначе»;
- 4) переменные и списки значений;
- 5) координатная геометрия сцены и углы поворота;
- 6) отладка: программу видно целиком, можно проверять короткие цепочки команд по отдельности и наблюдать за координатами и переменными.
Кстати, о направлениях: 0° — вверх, 90° — вправо, 180° — вниз, а «повернуть на 90 по часовой» из направления вправо развернёт спрайт вниз — такие мелочи и тренируют чтение чужих скриптов.
Сообщество и ремиксы
Официальный сайт — это не только редактор: это модерируемая площадка, где проекты публикуют, комментируют и берут за основу новых работ. Доработка опубликованного чужого проекта называется ремиксом. Укажите исходного автора и внесите свои изменения: например, добавьте другой уровень или новые правила игры. Не выдавайте чужую работу за полностью свою. Родителю и ребёнку полезно вместе прочитать правила сообщества, прежде чем публиковать первый проект.
Как начать
Начните с маленькой задачи: пусть персонаж двигается по нажатию клавиши или меняет костюм по щелчку. Попросите ребёнка объяснить, какое событие запускает код и какой блок меняет результат. Понимание циклов и условий пригодится в дальнейших учебных проектах; скорость освоения у каждого своя.
Редактор работает в браузере на официальном сайте Scratch. Начать создавать проект можно без аккаунта; для сохранения в своём онлайн-профиле и публикации нужен бесплатный аккаунт. Есть и загружаемое приложение для работы без постоянного подключения к интернету. Не обязательно публиковать каждую учебную работу. Готовые пошаговые практикумы — в наших материалах «Как сделать игру в Scratch» и обзоре курсов и занятий по Scratch.
Упражнения
Задание 1
Спрайт в точке (0; 0) смотрит вправо и выполняет «повторить 4: идти 50 шагов». Где он окажется?
Ответ 1: в точке (200; 0): каждый проход цикла добавляет 50 к x, y не меняется. Проверено расчётом.
Задание 2
Тот же спрайт движется в цикле «всегда» по 50 шагов, а при касании края отталкивается. Что произойдёт после запуска?
Ответ 2: при движении вправо блок отскока развернёт спрайт от правого края влево. Нельзя назвать точную координату центра или номер прохода только по шагу 50: касание зависит от границ костюма, размера и поворота спрайта. Например, широкий персонаж коснётся края раньше, чем его центр достигнет x = 240. Цикл продолжится, пока скрипт не остановят.
Задание 3
Скрипт «когда флажок нажат → задать очки 0» и «когда спрайт нажат → изменить очки на 1». Сколько очков после завершения сброса счётчика и трёх кликов по спрайту, если других скриптов изменения очков нет?
Ответ 3: 3. Первый скрипт сбрасывает переменную в начале, второй прибавляет единицу за каждый клик.
Задание 4
Блок «говорить Привет! 2 секунды» изменяет ли координаты спрайта?
Ответ 4: нет: блок внешности только показывает реплику, положение спрайта остаётся прежним. Координаты меняют блоки категории «Движение».
Задание 5
Спрайт смотрит вправо (90°). Куда он попадёт после блока «повернуть на 90 по часовой» и «идти 60 шагов» из точки (0; 0)?
Ответ 5: в точку (0; −60): поворот на 90° по часовой меняет направление с 90° на 180°, а 180° в Scratch — это вниз, поэтому изменится координата y. Проверено расчётом.