что такое скретч программирование в двух словах
Что такое Scratch
Scratch – это не только среда для программирования, это еще большое сообщество. Во многих странах мира дети и взрослые, учителя и школьники используют Scratch, чтобы учиться программированию, развивать творческие способности, создавать игры и интерактивные анимации, а также общаться между собой, изучать и использовать проекты друг друга.
Чтобы зарегистрироваться на сайте, надо нажать кнопку «Присоединяйся», которая находится вверху сайта.
После этого на экране появится диалоговое окно, где будет предложено придумать себе псевдоним, пароль, заполнить другие поля. Также у вас должен быть адрес электронной почты. После регистрации на него придет письмо, кликнув по ссылке в котором, вы подтвердите свою учетную запись на сайте Scratch.
В заголовке сайта после логотипа Scratch есть четыре кнопки – «Создавай», «Исследуй», «Идеи», «О проекте».
Если кликнуть по «Создавай», откроется среда программирования Scratch. Как в ней работать, рассмотрим чуть позже. Если вы зашли сюда и не знаете как выйти, просто кликните по логотипу Scratch в верхнем левом углу. Это вернет вас на главную страницу сайта.
Если кликнуть по «Исследуй», вы перейдете на страницу, где можете посмотреть чужие проекты. Часть из них доступна также с главной страницы.
Чтобы посмотреть чужой проект, надо кликнуть по нему. Откроется страница, где слева будет сам проект, справа – его описание, внизу – комментарии. Проект будет в режиме исполнения, то есть вы смотрите готовую работу, а не то, как она запрограммирована и из каких блоков собрана.
Чтобы запустить игру, надо нажать на зеленый флажок. Чтобы остановить – на красный кружок. Значок с четырьмя стрелками разворачивает игру на большую площадь экрана.
Если вы кликните по кнопке «Войти внутрь проекта», то окажетесь в среде программирования Scratch и сможете посмотреть внутреннее устройство проекта, его логику. На основе чужого проекта можно создать свой, то есть ремикс. Однако сначала надо научиться работать в среде программирования и создавать собственные простые проекты.
Вернемся к шапке сайта и рассмотрим меню справа:
В первую очередь нас интересует ссылка «Мои работы». Она открывает страницу, с которой вам доступны собственные проекты. На эту страницу также можно перейти, кликнув по изображению папки в меню.
Чтобы начать новый проект, надо нажать кнопку «+ Новый проект». Откроется та же среда программирования, что при клике по ссылке «Создавай» вверху. Если вы хотите править ранее созданный проект, нажимайте на кнопку «Войти внутрь проекта». А вот клик по названию проекта откроет его в режиме исполнения, то есть просмотра.
Что же, создадим новый проект и изучим интерфейс Скретча:
Если редактор открылся не на русском языке, нажмите глобус слева вверху и выберите русский язык.
По умолчанию проект назван Untitled (Неозаглавленный). В поле, где написано это слово, можно задать более осмысленное имя. Оно сохранится автоматически.
Если же нажать на кнопку «Поделиться», ваш проект станет доступен всем для просмотра. Обычно сырые проекты не публикуют, и они остаются доступными только своим создателям.
В основной области экрана слева на вкладке «Код» расположены строительные блоки. Они задают поведение объектов, которые вы видите в области справа на игровом холсте, или сцене. Сейчас там только кот.
Большое пустое поле посередине – это самая важная область – редактор кода. Здесь вы «пишите» код, а точнее, конструируете его из блоков, которые перетаскиваете из левой части.
Строительные блоки слева разделены по секциям-разделам «Движение», «Внешний вид», «Звук» и так далее. Нажимая на соответствующий цветной кружок, вы быстро перейдете к блокам необходимой секции.
В этом уроке не будем рассматривать весь интерфейс среды программирования Scratch. Постепенно, изучая курс, мы познакомимся и с другими возможностями. А сейчас для создания первой программы достаточно уже полученных сведений.
Возьмите блок «идти 10 шагов» и киньте его в редактор кода. Теперь пощелкайте по нему мышью. Вы увидите, как от каждого клика кот на сцене будет смещаться на небольшое расстояние.
Если кот на холсте далеко ушел от середины, его можно взять здесь мышью и перетащить в новое место холста.
По идее программа должна запускаться, когда кликают по расположенному над холстом зеленому флажку, а не по блоку команды, как это делали мы. Если мы сейчас кликнем на флажок, то ничего не произойдет.
Чтобы исправить это, нам нужна команда «когда флажок нажат» (в команде вместо слова «флажок» будет изображение зеленого флажка). Эта команда находится в желтом разделе «События». Переключимся сюда и бросим в редактор кода «когда флажок нажат».
После этого два блока – «когда флажок нажат» и «идти 10 шагов» – надо соединить подобно элементам конструктора Лего.
Последовательность блоков важна. Команда, которая расположена выше, будет выполняться раньше, чем команда, которая расположена ниже. Часто конфигурация самих блоков подсказывает, как их надо соединять. Например, мы никогда не сможем сделать команду «когда флажок нажат» второй, третьей или какой угодно, кроме как первой. У этого блока нет выемки сверху, куда можно было бы вставить другой блок. Программа всегда начинается с команды «когда флажок нажат».
Теперь кот будет перемещаться при клике по зеленому флажку над холстом.
Однако от каждого клика кот по прежнему шагает всего где-то на 10 пикселей, и никакой нормальной анимации перемещения мы не видим.
Мы могли бы предположить, что если вместо числа 10 в команде «идти 10 шагов» вписать число больше, то кот будет перемещаться на большее расстояние. Правильно. Кот будет перемещаться. Однако анимации все-равно не будет. Кот будет делать гигантский прыжок от каждого клика по флажку.
Поэтому вернем наше заветное число 10, а может быть даже 5 или 1.
Давайте вернемся к реальности и подумаем, как мы на самом деле ходим. По-сути мы много раз делаем одно и тоже: шаг левой, шаг правой, шаг левой, шаг правой. Мы зацикливаем шаг, повторяем его много раз. Правильнее сказать: «мы шагаем в цикле».
Аналогично делается в Scratch. Следует поместить команду «идти … шагов» в какой-нибудь цикл. Циклы – это тоже строительные блоки и одно из важнейших понятий программирования. Циклам стоит посвятить отдельный урок. Однако сейчас не будем теряться, зайдем в оранжевый раздел «Управление» и перекинем в редактор кода блок «повторить 10 раз».
Однако куда его присоединять? Если мы подставим блок цикла снизу к команде «идти … шагов», это будет неправильно. В программировании логика важна. Получится, что кот сначала сделает шаги, а потом будет 10 раз повторять непонятно что. На самом деле ничего, так как тело цикла пусто, то есть блок «повторить … раз» ничего не обрамляет, ничего в себя не включает.
Программу надо пересобрать. Для этого сначала надо отсоединить блок «идти … шагов» от «когда флажок нажат». Чтобы разорвать связь между блоками, надо потянуть за нижний блок.
Теперь поместим команду «идти 10 шагов» внутрь цикла «повторить 10 раз», а цикл присоединим к блоку «когда флажок нажат».
В данном случае кот сделает в общей сложности 100 шагов, так как 10 раз умножить на 10 шагов будет 100 шагов. Однако эта программа отличается, если бы мы просто дали команду «идти 100 шагов». В случае цикла перед каждым его повторением будет небольшая невидимая на глаз задержка, в результате чего будет наблюдаться относительно плавная анимация.
Анимацию можно сделать более плавной, если установить меньшее число шагов и большее число повторений. Например, 1 шаг и 200 повторений. Но в этом случае кот будет двигаться медленно. Таким образом можно регулировать скорость перемещения объекта: чем больше шагов он делает за один повтор цикла, тем больше его скорость.
Заменим в нашей программе цикл «повторить … раз» на «повторять всегда». Эта команда также находится в оранжевой секции «Управление». Запустим программу. Что произойдет, когда кот дойдет до края экрана? Он остановится. Программа продолжает работать, но кот уже никуда не идет.
Чтобы принудительно остановить программу, надо нажать на красный кружок над холстом.
Если мы хотим, чтобы кот действительно двигался всегда, как минимум до тех пор, пока мы сами не остановим программу, следует добавить еще одну команду – «если касается края, оттолкнуться». Этот блок находится в синем разделе «Движение».
Команду «если касается края, оттолкнуться» следует поместить в цикл. А вот до команды «идти 10 шагов» или после, не столь важно. Кот сначала может сделать 10 шагов, а потом, если коснулся края холста, то перевернуться. Или же он сначала проверит, не касается ли края холста, после чего перевернется.
Когда вы запустите такую программу, кот будет ходить от левого края к правому без конца, до тех пор, пока вы сами не остановите программу. Однако скорее всего ваш кот будет ходить немного странно: влево идет ногами, а как направо – становится на голову.
Дело все в том, что в Scratch по умолчанию объекты при перевороте вращаются по кругу. Что это значит? Вы должны знать, что полная окружность составляет 360 градусов. Когда же мы переворачиваемся в обратную сторону, то делаем разворот на половину окружности, то есть на 180 градусов.
А вот от того, как мы делаем разворот, то есть как осуществляем сам процесс поворота, результат может быть различным. Представьте, что вы смотрите влево. Потом резко поворачиваете вправо вокруг своей вертикальной оси, которая проходит от макушки до пяток. Это естественный разворот для человека, так что все нормально. Вы продолжаете стоять на ногах, просто смотрите в другую сторону.
Теперь представьте, что вы подтянулись на перекладине так, что ваши руки и перекладина находятся на уровне пояса. И вы решили перевернуться на 180 градусов вокруг этой перекладины. После этого ваша голова окажется внизу. Смотреть же вы будете туда, куда и хотели: если смотрели влево, будете смотреть вправо.
Примерно тоже самое происходит с нашим виртуальным котом. Однако мы можем поменять это поведение по умолчанию с помощью команды «установить способ вращения влево-вправо». Она находится в разделе «Движение». Команду достаточно выполнить один раз, так что место ей до цикла.
Эта команда многовариантная. Вместо влево-вправо можно выбрать «кругом» или «не вращать». Кругом мы уже видели, так ведут себя объекты по умолчанию. Если выбрать «не вращать», объект при отталкивании никак не будет вращаться. Он будет двигаться задом, когда натолкнется на край холста передом, и будет двигаться передом, когда натолкнется на край задом.
На этом закончим наш первый урок, целью которого было познакомиться со Скретч, понять основные принципы работы в среде программирования. В следующих уроках мы будем изучать другие команды языка и особенности программирования.
Один из главных моментов, которые вы должны понять на этом этапе, – команд существует много, а уж их комбинаций – бессчетное количество. Поэтому программирование – это не только наука, а также искусство и творчество.
В уроке мы не обсудили часть интерфейса среды Scratch, которая находится под холстом и в которой задаются свойства объекта.
Изучите представленные здесь поля самостоятельно. Что определяют их значения? Подумайте, почему важно задавать объектам, которые в Scratch по умолчанию называются Спрайтами, осмысленные имена.
Составьте программу, согласно которой кот ходит туда-сюда, но через каждые 300 шагов останавливается на 1 секунду и говорит «Мяу». Подсказка: среди прочего вам понадобятся две команды, которые не рассматривались в этом уроке. Одна из них находится в разделе «Управление», а вторая – в разделе «Звук».
Scratch — язык программирования для детей
Применения визуального языка программирования Scratch и возможности его использования.
Тенденция на повышение компьютерной грамотности и освоение технологий с самого раннего возраста привела к тому, что все больше родителей хотят обучать детей основам программирования с раннего возраста. Создание сайтов или своих проектов в привычных средах разработки вряд ли заинтересует 7-летнего ребенка, и для решения этой проблемы в 2003 году в MIT появился первый прототип языка Scratch, специально предназначенного для обучения школьников младших и средних классов основам создания собственных игр, анимаций и совместной работы над проектами.
Что такое Scratch
Скретч создан как продолжение идей языка Лого и конструктора Лего. Скретч 1.4 был написан на языке Squeak, Скретч 2.0 и 3.0 ориентированы на работу онлайн. Скретч 2.0 был переписан на Flash и ActionScript. Скретч 3.0 (текущая версия) является улучшенной версией Скретч 2.0 и сделана на HTML5, используя движок WebGL, что даёт ему возможность работать на мобильных устройствах и планшетах. Скретч разрабатывается небольшой командой программистов для детей в Массачусетском технологическом институте. Текущая версия — Скретч 3.0, выпущена в январе 2019 года.
Scratch — это визуальная объектно-ориентированная среда программирования. В ней ученики управляют объектами-спрайтами. Для них задается графическое представление, которое может быть импортировано из любого источника изображения, и скрипт действий, который составляется из блоков по принципу drag-and-drop. Эти блоки бывают нескольких видов:
Самое распространенное применение Scratch — это обучение детей программированию в форме создания мультфильмов или игр. Помимо этих применений, Scratch можно использовать для образовательных целей и создавать в программе иллюстративные материалы для уроков не только по программированию, но и по истории, биологии, физике и другим предметам. С версии 2.0 была добавлена функция звукового редактора, что расширяет возможности работы с разными видами данных.
Примеры приложений
Вот несколько примеров проектов, созданных при помощи платформы:
Как начать разработку на Скретч
Пользоваться Scratch можно полностью бесплатно как в онлайн-версии, так и в офлайн-редакторе. В 2014 году также вышла версия Scratch для детей младшего возраста под названием ScratchJr. Это мобильное приложение для Android и iOS, в котором дети так же управляют спрайтами, только в более упрощенной форме. В блоках не используется текст, поэтому дети могут учиться программировать до того, как научатся читать, и им доступен ограниченный набор действий: простые движения спрайтов и работа со звуками и изображениями.
Что такое Scratch?
Содержание:
Заканчивая в середине 90-х общеобразовательную школу, я и понятия не имел, что такое программисты и программирование. Да, у нас был одни год предмет под названием «информатика», но понять что-то без желания и компьютера было невозможно. Сейчас, по прошествии такого большого периода времени, понимаю, что в моей жизни всё могло бы быть по-другому, если бы в наше время была возможность пройти обучение на Скретч. Итак, приступим баловаться изучать основы этой занимательной среды программирования! Заранее желаю всем успехов в этом направлении информатики!
И хотя среду Scratch, до сих пор не проходят на уроках информатики, в настоящее время во многих школах и СЮТах существуют кружки по внеурочной деятельности по изучению этой программы. Также есть учителя-энтузиасты, которые на своих уроках внедряют общедоступные или свои личные разработки на Скретч. Ведь многим детям, да и чего греха таить, взрослым, очень интересно покопаться в этих разноцветных блоках.
Что такое Scratch?
Однако авторы задумали Scratch не только для изучения программирования, но и для того, чтобы дети могли создавать свои творческие проекты и делиться ими с окружающими. Поэтому в Scratch можно создавать анимацию и живые открытки, рисовать мультфильмы, писать музыку, делать мультимедийные проекты и тому подобное.
Этот факт и ряд других преимуществ дают программе широкие возможности по продвижению её в народные массы. Именно поэтому она стала так популярна и востребована. Тем более она явлется отличным трамплином для плавного перехода в мир настоящих программистов. Мы вам покажем, что с помощью Скретч можно писать достаточно сложные программы, над которыми тоже нужно поломать голову.
Для какого возраста подходит Scratch?
После изучения Scratch вы сами сможете нести его в массы и быстро научить его азам свою бабушку или младшего брата (сестру). Образовательная среда Скретч объединяет всех школьников в мире, поэтому вы сможете делиться своими программами с детьми живущих на других материках.
Кто придумал Scratch?
В 2003 году небольшой группой исследователей под предводительством Митчела Резника из MIT Media Lab решила создать понятный для многих визуальный язык программирования. В результате их стараний в 2007 году появился Скретч. Поэтому создавать компьютерные программы могут уже даже дошкольники.
Какие существуют версии Scratch?
За время своего взросления Скретч развивался и сменил несколько версий.
К устаревшей можно отнести версию 1.4 (Скачать можно по этой ссылке http://scratch.mit.edu/scratch_1.4/ )
Современная версия имеет обозначение 2.0. Последнее обновление идёт под номером 451.
Откуда взять Scratch?
Онлайн-версия программы Скретч
В общем, плюсов великое множество, однако под рукой у вас всегда должен быть доступ в Интернет и ваш браузер должен поддерживать загрузку Flash-роликов. Кстати оффлайн-версия программы тоже даёт возможность загружать готовые проект на этот сайт через существующий аккаунт.
Скретч (язык программирования)
Митчелл Резник (Mitchel Resnick)
Лого, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys, Tweak
Скретч (произносится «скрэтч») — это визуальная объектно-ориентированная среда программирования для обучения школьников младших и средних классов. Название Scratch произошло от слова scratching — техники, используемой хип-хоп диджеями, которые крутят виниловые пластинки взад-вперёд руками для того, чтобы смешать музыкальные темы. [1]
Скретч создан как продолжение идей языка Лого и конструктора Лего. Написан на языке Сквик. Скретч разрабатывается небольшой командой исследователей из «Lifelong Kindergarten Group» [2] в Массачусетском технологическом институте. Текущая версия — 1.4, выпущена 2 июня 2009 года.
Программы на скретче состоят из графических блоков, подписи к которым зависят от выбранного для интерфейса языка. Может быть выбран один из 50 языков интерфейса, включая русский. Для подключения интерфейса на новом языке используются стандартные gettext файлы.
Содержание
Программирование
Основными компонентами Скретч-программы являются объекты-спрайты. Спрайт состоит из графического представления — набора кадров-костюмов (англ. costume ) и сценария-скрипта. Для редактирования костюмов спрайтов в скретч встроен графический редактор (англ. Paint Editor ). Действие скретч-программы происходит на сцене (англ. stage ) размером 480×360 (условных) пикселей с центром координат в середине сцены.
Для программирования сценариев в скретче используется drag-and-drop-подход: блоки из Окна блоков перетаскиваются в область скриптов.
По функциональному назначению блоки делятся на 8 групп, принадлежность блока к той или иной группе обозначается его цветом.
Группа | английское название | Цвет | Примечание |
---|---|---|---|
Движение | movement | синий | |
Внешность | looks | сиреневый | |
Звук | sound | розовый | |
Перо | pen | зелёный | используется для черепашьей графики |
Контроль | control | жёлтый | управляющие конструкции, заголовки обработчиков событий |
Сенсоры | sensing | голубой | опрос устройств ввода |
Операции [4] | operators | салатовый | арифметико-логические операции |
Переменные | variables | оранжевый |
У многих блоков имеется редактируемое белое поле для вводимых скретч-программистом параметров.
Блоки бывают трёх видов: блоки стека, блоки заголовков и блоки ссылок.
Блоки стека (англ. Stack Blocks ) сверху имеют выемку, а снизу — выступ, их помощью они объединяются в группу блоков, называемую стеком. Стеки можно копировать и перемещать как единый блок. Особой разновидностью блоков стека являются управляющие конструкции, такие как циклы — они имеют С-образную форму, и могут охватывать собой вложенный стек скретч-блоков.
Блоки заголовков (англ. Hats ) имеют выпуклый верхний край и выступ для объединения снизу — они образуют заголовки скретч-стеков. К блокам-заголовкам относятся блоки «когда …» (англ. when … ) из группы «Контроль», позволяющие организовать обработчики сообщений: внешних — от клавиатуры и мыши, и внутренних — передаваемых между спрайтами и позволяющих объектно-ориентированное программирование в smalltalk-стиле.
Наконец, блоки ссылок (англ. Reporters ) предназначаются для заполнения внутренних полей других блоков.
Язык скретч (как и Лого) оперирует числами, текстовыми строками, логическими значениями, а также списками, играющими роль динамических массивов.
Хотя архитектура скретч-программ, в виде набора спрайтов скретча, обменивающиеся друг с другом событиями, напоминает объектно-ориентированную, скретч не является объектно-ориентированным языком в нём (ни в каком виде) нет механизмов наследования (в последних версиях расширенного диалекта скретча BYOB введено прототипное наследование).
Исходный код
После выхода версии 1.4 исходный код Скретча был открыт на условиях Scratch Source Code License — представляющей собой простую копилефтную лицензию, с дополнительными ограничениями по неиспользованию оригинальных торговых марок (в более мягкой форме подобные ограничения включены, к примеру, в PHP License).
Код может быть загружен с официального сайта. [5] Условия его использования и распространения следующие:
Распространяемый исходный код уже удовлетворяет данным условиям: в нём заменены логотип и спрайт с котом и удалён код сохранения скретч-проекта на scratch.mit.edu.
Впрочем, поскольку Scratch написан на Squeak, доступ к его исходным текстам существует и без предоставления их пользователю в явном виде — они хранятся вместе с результатом их компиляции в файле образа (англ.) смолток-системы. Хотя доступ к инструментам программирования и отладки языка Smalltalk, таким, как, System Browser по умолчанию в Scratch закрыт, разработчики оставили лёгкий способ получения доступа к этим возможностям. Достаточно зажать клавишу ⇧ Shift и кликнуть мышью по букве «R» в логотипе Scratch в левом верхнем углу окна программы, и выбрать в появившемся выпадающем меню пункт «Turn fill screen off». [6] [7]
Модификации и дальнейшее развитие
На основе исходного кода Scratch 1.4 был создан ряд модификаций языка, [8] таких как:
Разработан в Университете Беркли. Основным расширением языка, которое было введено в BYOB стала возможность построения составных пользовательских блоков — аналога процедур обычных языков программирования. Поддерживаются рекурсия, замыкания и лямбда-выражения. Также добавлены отладчик и возможность компиляции в исполняемые файлы, вложенные спрайты, многомерные списки, улучшенная работа со скроллингом и компиляция исполняемых файлов. Начиная с версии 3.1 в BYOB добавлена поддержка ООП — спрайты BYOB теперь позволяют наследование на основе прототипов. Для этого в язык, в частности, введен механизм клонирования спрайтов.
Panther
Panther — расширяет скретч поддержкой drag-n-drop управления спрайтами, возможностью клонирования спрайтов (объектов), и подсистемой CYOB (которая, как и BYOB, позволяет создавать собственные командные блоки, но требует для этого знания языка Squeak (современный диалект Smalltalk, на котором написан Scratch и его модификации).
Механизм Mesh
И BYOB, и Panther включают поддержку механизма mesh, [15] обеспечивающее взаимодействие scratch-программ через сеть посредством разделяемых переменных и посылки широковещательных сообщений.
Slash
Slash дополняет возможности BYOB 3.0 новыми возможностями Panther: клонированием и перетаскиванием спрайтов (объектов).
StarLogo TNG
В 2008 году в Массачусетском технологическом институте также разработан образовательный язык программирования StarLogo TNG, [16] который расширяет возможности системы StarLogo возможностями трёхмерной графики и скретчподобным языком визуального блочного программирования. В отличие от оригинального OpenStarLogo [17] и MIT Scratch — StarLogo TNG в настоящее время не является программным продуктом с открытым исходным кодом.
Scratch 2
В феврале 2011 была выпущена первая онлайновая бета-версия Scratch 2.0, [18] в который планируется включение некоторых из возможностей BYOB (такие, как создание пользовательских процедур), векторной графики, клонирование спрайтов, возможность групповой работы над проектами и т. д.
App Invertor
Ещё одной средой программирования, использующей стыковку визуальных логических блоков в стиле паззла стал App Inventor — экспериментальная система визуального программирования для платформы Android.