Особенности языка программирования Scratch
Scratch (в переводе с английского - "царапина", произносится как "скретч") представляет собой учебный язык программирования, в котором создание программ происходит не путем написания текста с помощью специального синтаксиса, а в визуальном режиме: так из интуитивно понятным образом оформленных элементарных блоков можно как из конструктора собирать программы. Блоки символизируют собой условные переходы, циклы, объявления переменных и т.п.
Объектами программирования в Scratch являются анимированные персонажи. Можно использовать готовые фигурки (по умолчанию это кот), а можно нарисовать собственные. Персонажи перемещаются по игровому полю, меняют внешний облик (костюмы, мимику и жесты), издают звуки, взаимодействуют друг с другом.
Несмотря на то, что Scratch не является полноценным языком программирования (с его помощью вряд ли получится написать что-нибудь кроме анимированной игры или прошивки для простого робота), его освоение может быть полезным при обучении детей информатике, для развития у них алгоритмического, логического, креативного мышления.
Писать программы на Scratch можно как в браузерной версии (в режиме онлайн), так и в программе-редакторе, которую можно загрузить с сайта. Существует также мобильное приложение ScratchJr, работающее в средах Android и iOS. Оно проще, чем настольный вариант, и подходит для освоения самыми маленькими.
Основные компоненты Scratch
Программы, написанные на Scratch, состоят из спрайтов. Спрайт представляет собой объект, составленный из отдельных изображений, т.н. костюмов (costumes) и скрипта, задающего их движение. Для создания и изменения костюмов в состав IDE входит простой графический редактор. Сценарий разворачивается в рамках сцены - изображения некой обстановки, интерьера, карты местности, пейзажа. Размер сцены стандартизирован (480×360 точек). Движение осуществляется по координатам, нулевая точка которых находится в центре сцены.
Рисунок 1. Окно редактора Scratch. Автор24 — интернет-биржа студенческих работ
Блоки, из которых строится сценарий, перетаскиваются в тело программы методом drag-and-drop из палитры. Они разбиты на 10 групп, различающихся по цвету:
- движение (синий);
- внешний вид (фиолетовый);
- звук (розовый);
- события (жёлтый);
- управление (оранжевый);
- сенсоры (голубой);
- операторы (зелёный);
- переменные (оранжевый);
- другие блоки (светло-розовый);
- расширения (темно-зелёный).
Внутри блоков могут быть предусмотрены текстовые поля, в которые вводятся необходимые параметры, например, значения переменных или количество шагов и направление движения.
Блоки также делятся на:
- принадлежащие стеку;
- заголовочные;
- ссылки.
Блоки стека соединяются друг с другом в вертикальную последовательность (стек). Для этого они визуально оснащены выступами (снизу) и выемками (сверху), с помощью которых сцепляются при перетаскивании из палитры. Стек определяет алгоритм, т.е. последовательность действий персонажей. Цепочки блоков, входящих в состав стека, можно перемещать, копировать для многократного использования, удалять группой.
Блоки-циклы, которые могут входить в состав стеков, имеют особый вид: они выглядят как скобка, охватывающая несколько других блоков стека, которые затем будут повторяться до наступления некоторого условия.
Блоки-заголовки размещаются над стеком. У них нет выемки для того, чтобы к ним можно было присоединить еще что-то сверху. Заголовочные блоки нужны для обработки событий, поступающих от пользователя (с клавиатуры или при движении мыши), а также сообщений, передаваемых между стеками. Таким образом в Scratch реализовано подобие объектно-ориентированного программирования.
Scratch - не объектно-ориентированный, а событийно ориентированный язык. Он не реализует наследование, полиморфизм и другие свойственные объектно-ориентированным языкам концепции.
Блоки-ссылки используются как внутренние значения других блоков.
Типы переменных в Scratch:
- число;
- текст;
- логический;
- список (динамический массив).
Программирование для детей на языке Scratch
Развитие языка Scratch ведет группа исследователей Lifelong Kindergarten ("Детский сад на всю жизнь") Массачусетского технологического института (MIT) под руководством профессора Митчела Резника. В рамках проекта развивает как сам язык с инструментами разработки, так и интернет-сообщество scratch.mit.edu, где участники, большинство из которых - дети или родители с детьми, могут обмениваться опытом, оценивать работы друг друга, участвовать в конкурсах и т.п.
Рисунок 2. Митчел Резник. Автор24 — интернет-биржа студенческих работ
Вступить в онлайн-сообщество Scratch может любой желающий. Для этого нужно зарегистрироваться на сайте, после чего появляется возможность выгружать туда собственные работы и обмениваться сообщениями с другими участниками (просматривать проекты можно и без регистрации).
Проекты выгружаются для всеобщего использования под некоммерческой лицензией, но с обязательным указанием авторства. На сайте также можно найти т.н. авторские блоки, разработанные отдельными программистами и не входящие в состав основной поставки среды Scratch. Хорошим тоном при использовании таких блоков считается упоминание их авторов в описании проекта.
Активным корпоративным участником сообщества является производитель конструкторов LEGO. Выпускаемые этой компанией конструкторы для сборки игрушек-роботов можно программировать с помощью Scratch. В версии Scratch 3.0 появилась совместимость с робототехническими наборами WeDo 2.0 и LEGO MINDSTORMS Education EV3.
Рисунок 3. Набор из серии LEGO MINDSTORMS Education. Автор24 — интернет-биржа студенческих работ