Scratch (язык программирования): различия между версиями
(Новая страница: «Эта статья о языке программирования. Для других целей см. Scratch (disambiguation). Scratch - высокоуров…») |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
Эта статья о языке программирования. Для других целей см. Scratch (disambiguation). | Эта статья о языке программирования. Для других целей см. Scratch (disambiguation). | ||
Scratch - высокоуровневый блочный визуальный язык программирования и веб-сайт, ориентированный в первую очередь на детей как образовательный инструмент для программирования, с целевой аудиторией от 8 до 16 лет. | Scratch - высокоуровневый блочный визуальный язык программирования и веб-сайт, ориентированный в первую очередь на детей как образовательный инструмент для программирования, с целевой аудиторией от 8 до 16 лет. Пользователи сайта, называемые Scratchers, могут создавать проекты на веб-сайте, используя блочный интерфейс. Проекты могут быть экспортированы в HTML5, JavaScript, приложения для Android и EXE-файлы с помощью внешних инструментов. Сервис разработан MIT Media Lab, переведен на более чем 70 языков и используется в большинстве стран мира. Scratch преподается и используется во внешкольных центрах, школах и колледжах, а также в других общественных учреждениях знаний. По состоянию на 8 мая 2022 года статистика сообщества на официальном сайте языка показывает более 104 миллионов проектов, разделяемых более чем 90 миллионами пользователей, более 686 миллионов когда-либо созданных проектов (включая неразделенные проекты) и более 100 миллионов ежемесячных посещений веб-сайтов.[7] | ||
Scratch получил свое название от техники, используемой диск-жокеями под названием "скретчинг", когда виниловые пластинки скрепляются вместе и манипулируются на проигрывателе для создания различных звуковых эффектов и музыки. Как и scratching, веб-сайт позволяет пользователям творчески смешивать различные медиа (включая графику, звук и другие программы), создавая и "ремикшируя" проекты, такие как видеоигры, анимации и симуляции. | Scratch получил свое название от техники, используемой диск-жокеями под названием "скретчинг", когда виниловые пластинки скрепляются вместе и манипулируются на проигрывателе для создания различных звуковых эффектов и музыки. Как и scratching, веб-сайт позволяет пользователям творчески смешивать различные медиа (включая графику, звук и другие программы), создавая и "ремикшируя" проекты, такие как видеоигры, анимации и симуляции. | ||
[[Файл:Dialogo scratch Best Friends 1.png|400px|thumb|left|Программа для изменения фона и говорения персонажа при нажатии]] | |||
==Scratch 3.0== | ==Scratch 3.0== | ||
Строка 33: | Строка 34: | ||
|} | |} | ||
===Автономное редактирование=== | |||
Автономный "редактор рабочего стола" для Scratch 3.0 доступен для Microsoft Windows 10 в Microsoft Store и Apple macOS 10.13; это позволяет создавать и воспроизводить программы Scratch в автономном режиме. Автономный редактор также можно загрузить в предыдущих версиях, таких как Scratch 2.0 и Scratch 1.4. | |||
===Расширения=== | |||
В Scratch расширения добавляют дополнительные блоки и функции, которые можно использовать в проектах. В Scratch 2.0 и 3.0 все расширения были аппаратными. В Scratch 3.0 были добавлены программные расширения, такие как text-to-speech voices, а также некоторые новые аппаратные расширения, такие как micro:bit. Расширения перечислены ниже. | |||
* Музыка | |||
* Ручка | |||
* Видео зондирование | |||
* Преобразование текста в речь | |||
* Перевести | |||
* BBC Micro:бит | |||
* LEGO Mindstorms EV3 | |||
* LEGO WeDo 2.0 | |||
* Макей Макей | |||
* LEGO SPIKE Prime | |||
* LEGO BOOST | |||
* Go Direct Force & Acceleration | |||
====Физический==== | |||
* Lego Mindstorms EV3 – управление двигателями и получение сенсорных данных от Lego Mindstorms EV3 | |||
* Makey Makey – используйте Makey Makey для управления проектами | |||
* Lego Education WeDo 2.0 – управление двигателями и получение данных датчиков от Lego WeDo | |||
* Lego Education SPIKE Prime — основной язык программирования для Lego SPIKE Prime, включающий управление двигателем и прием данных датчиков | |||
* BBC micro:bit – использование BBC micro:bit для управления проектами | |||
* Lego BOOST – воплощение роботизированных творений в жизнь | |||
* Go Direct Force & Acceleration – Sense pull, push, motion, and spin | |||
====Digital==== | |||
Многие цифровые расширения в Scratch 3.0 были обычными категориями блоков, которые были перенесены в раздел расширений, чтобы уменьшить беспорядок. К ним относятся: | |||
* Музыка – играть на цифровых инструментах (барабаны, трубы, скрипки, пианино и многое другое) | |||
* Ручка – Рисуйте на сцене различными толщинами и цветами | |||
* Video Sensing – обнаружение движения с помощью камеры | |||
Новые цифровые расширения также были добавлены в сотрудничестве с коммерческими компаниями. К ним относятся: | |||
* Text to Speech – преобразует слова в тексте в голосовой вывод (различные голоса, поставляемые Amazon) | |||
* Translate – использует Google Translate для перевода текста с одного языка на множество других языков, включая арабский, китайский, голландский, английский, французский, греческий и японский | |||
Пользователи также могут создавать свои собственные расширения для Scratch 3.0, используя JavaScript. | |||
***Кодовая база*** | |||
Scratch 3.0 - это совершенно новая кодовая база на основе JavaScript, состоящая из нескольких компонентов, таких как "Scratch-GUI", теперь основанная на библиотеке Blockly, "Scratch-VM", которая интерпретирует код, и "Scratch-Render".движок рендеринга. Скретч-блоки создаются с помощью Blockly. | |||
'''Противоречие''' | |||
Некоторые пользователи покинули Scratch, так как Scratch 3.0 сломал их проекты. Многие пользователи жаловались, что новый интерфейс был детским. | |||
Статья, опубликованная в 2019 году Нью-Йоркским университетом, утверждает и иллюстрирует для кодирования музыки с помощью Scratch, "что музыкальные и звуковые блоки, реализованные в настоящее время в Scratch, могут ограничивать и расстраивать значимое музицирование для детей, основной пользовательской базы Scratch". | |||
==Сообщество пользователей== | |||
Scratch используется в самых разных местах: школах, музеях, библиотеках, общественных центрах и домах. Scratch предназначен в основном для пользователей в возрасте 8-16 лет, но он используется всеми возрастами и имеет значительную базу пользователей для взрослых по состоянию на 2009 год.] Этот широкий охват создал множество окружающих сообществ, как физических, так и цифровых. В апреле 2020 года рейтинг языков программирования Tiobe включил Scratch в топ-20. По данным Tiobe, существует 50 миллионов проектов, написанных на Scratch, и каждый месяц добавляется миллион новых проектов. | |||
===Образовательные пользователи=== | |||
Scratch используется в качестве вводного языка, потому что создание интересных программ относительно легко, и полученные навыки могут быть применены к другим языкам программирования, таким как Python и Java. | |||
Scratch предназначен не только для создания игр. С помощью предоставленных визуальных эффектов программисты могут создавать анимацию, текст, истории, музыку и многое другое. Уже существует множество программ, которые студенты могут использовать для изучения тем математики, истории и даже фотографии. Scratch позволяет учителям создавать концептуальные и визуальные уроки и задания научной лаборатории с анимацией, которая помогает визуализировать сложные концепции. В рамках социальных наук преподаватели могут создавать викторины, игры и учебные пособия с интерактивными элементами. Использование Scratch позволяет молодым людям понять логику программирования и научиться творчески строить и сотрудничать. | |||
Scratch преподается более чем в 800 школах и 70 колледжах организации DAV в Индии и по всему миру. | |||
В высшем образовании Scratch используется в первую неделю вводного курса компьютерных наук Гарвардского университета CS50. | |||
===Интернет-сообщество=== | |||
[[Файл:Jumper platformer.png|400px|thumb|left|"Jumper", пример игры, созданной с помощью Scratch 2.0]] | |||
Пользователей Scratch называют "скретчерами". Scratchers имеют возможность делиться своими проектами и получать обратную связь. Проекты могут быть загружены непосредственно из среды разработки на веб-сайт Scratch, и любой член сообщества может загрузить полный исходный код для изучения или ремиксов в новые проекты. Scratchers также могут создавать студии проектов, комментировать, любить и "любить" чужие проекты, следоватьдругие участники могут видеть свои проекты и деятельность, а также делиться идеями. Проекты варьируются от игр и анимации до практических инструментов. Кроме того, чтобы стимулировать создание и обмен между пользователями, веб-сайт часто устанавливает задачи "Scratch Design Studio". | |||
Команда MIT Scratch работает над тем, чтобы это сообщество поддерживало дружественную и уважительную среду для всех людей. | |||
Педагоги имеют собственное интернет-сообщество ScratchEd, разработанное и поддерживаемое Гарвардской высшей школой образования. В этом сообществе преподаватели Scratch делятся историями, обмениваются ресурсами и задают вопросы. | |||
===Scratch Wiki=== | |||
Scratch Wiki - это ресурс поддержки Scratch и его веб-сайта, истории и явлений, связанных с ним. Несмотря на поддержку команды Scratch (разработчики Scratch), она в основном написана Scratchers (пользователями Scratch) для получения информации о программе и веб-сайте. | |||
====Первоапрельский день дураков==== | |||
Каждый год в День дураков, начиная с 2014 года, вики показывает шутливые версии многих страниц вместо реальной, хотя реальная версия страницы все еще может быть доступна в нижней части шутливой версии. Хотя это не 1 апреля, вы все еще можете получить доступ к шутливой версии страниц здесь. Кроме того, точка с запятой также появляется внизу каждой страницы вики в День дураков апреля с 2019 года. | |||
===Разработчики=== | |||
Scratch 2.0 и Scratch 3.0 находятся с открытым исходным кодом на GitHub, и разработчики могут внести свой вклад в Scratch.[40] | |||
==Мероприятия== | |||
Преподаватели Scratch могут собираться лично на Scratch Educator Meetups. На этих собраниях преподаватели Scratch учатся друг у друга и делятся идеями и стратегиями, которые поддерживают вычислительное творчество. | |||
Ежегодная "Неделя скретча", ранее известная как "День скретча", объявляется в мае каждого года. Членам сообщества предлагается провести в этот день или около него мероприятие, большое или маленькое, посвященное Scratch. Эти мероприятия проводятся по всему миру, и список можно найти на веб-сайте Scratch Day. Scratch Week - это серия мероприятий, посвященных Scratch на веб-сайте Scratch. | |||
Каждый первоапрельский день дураков команда Scratch будет разыгрывать пользователей и добавлять пасхальные яйца. | |||
==История== | |||
В начале 2000-х годов группа непрерывного детского сада MIT Media Lab (LLK) занималась разработкой визуальных языков программирования, ориентированных на детей. В 2003 году Митчел Резник, Ясмин Кафаи и Джон Маэда получили грант Национального научного фонда на разработку новой среды программирования для самовыражения детейс кодом. LLK, возглавляемая Митчелом Резником, в партнерстве с командой Ясмин Кафаи в Калифорнийском университете в Лос-Анджелесе тесно сотрудничала с компьютерными клубами в Бостоне и Лос-Анджелесе, чтобы разработать Scratch, основывая свой дизайн на практике и социальной динамике этих внешкольных молодежных центров.базовый язык программирования, без обозначенных категорий и без зеленого флага. Подобно AgentSheets[46] Scratch использовал концепции тактильного программирования, позже известного как программирование на основе блоков. Scratch был создан с целью научить детей программировать. | |||
Философия Scratch поощряет совместное использование, повторное использование и комбинирование кода, о чем свидетельствует слоган команды "Imagine, Program, Share". Пользователи могут создавать свои собственные проекты, или они могут выбрать "ремикс" чужого проекта. Проекты, созданные и ремикшированные с помощью Scratch, лицензируются по лицензии Creative Commons Attribution-Share Alike License. Scratch автоматически присваивает кредит пользователю, создавшему оригинальный проект и программу, в верхней части страницы проекта. | |||
Scratch был разработан на основе постоянного взаимодействия с молодежью и персоналом компьютерных клубов. Использование Scratch в компьютерных клубах послужило моделью для других внешкольных центров, демонстрирующих, как неформальные условия обучения могут поддерживать развитие технологической беглости | |||
Scratch 2.0 был выпущен 9 мая 2013 года. Обновление изменило внешний вид сайта и включило как онлайн-редактор проектов, так и офлайн-редактор. Теперь пользовательские блоки можно было определять в проектах, наряду с несколькими другими улучшениями. Автономный редактор Scratch 2.0 можно было загрузить для Windows, Mac и Linux непосредственно с веб-сайта Scratch, хотя позже поддержка Linux была прекращена. Неофициальную мобильную версию приходилось скачивать с форумов Scratch | |||
Scratch 3.0 был впервые анонсирован командой Scratch в 2016 году. С тех пор и до января 2018 года было выпущено несколько публичных альфа-версий, после чего были выпущены предварительные бета-версии "Preview". Бета-версия Scratch 3.0 была выпущена 1 августа 2018 года.[55] для использования в большинстве браузеров, за исключением Internet Explorer. | |||
Scratch 3.0, первая версия 3.x, была выпущена 2 января 2019 года. | |||
==Типы файлов== | |||
В Scratch 1.4 файл *.sb использовался для хранения проектов. | |||
Файл *.sb разделен на четыре раздела: | |||
* "заголовок", этот 10-байтовый заголовок содержит строку ASCII 'ScratchV02' в версиях выше Scratch 1.2 и 'ScratchV01' в Scratch 1.2 и ниже | |||
* "infoSize", кодирует длину инфообъектов проекта. 4-байтовое, 32-битное, big-Endian целое число. | |||
* "InfoObjects", раздел данных в формате словаря. Содержит: "эскиз", эскиз этапа проекта; "автор", имя пользователя создателя проекта; "комментарий", заметки проекта; "история", журнал сохранения и загрузки; "scratch-версия", версия Scratch, используемая для сохранения файла; | |||
* "contents", таблица объектов со Сценой в качестве корня. Все объекты в программе хранятся здесь как ссылки. | |||
Scratch 2.0 использует формат файла *.sb2. Это zip-файлы, содержащие файл .json, а также содержимое проекта Scratch, включая звуки (сохраненные в формате .wav) и изображения (сохраненные в формате .png). Каждый тип файла, за исключением project.json, хранится в виде числа, начинающегося с 0 и подсчитываемого с каждым дополнительным файлом. Файл изображения с надписью "0.png" всегда представляет собой белое изображение размером 480x360, но "0.wav" по-прежнему будет самым ранним не удаленным файлом. | |||
В экспериментальной версии Scratch использовался формат .sbx. | |||
Scratch 3.0 использует формат *.sb3, который очень похож на *.sb2, с одним отличием - звук. | |||
==Старые версии== | |||
Хотя основной сайт Scratch теперь работает только в текущей версии (Scratch 3.0), автономные редакторы для Scratch 2.0 (и более ранних Scratch 1.4) все еще доступны для скачивания и могут использоваться для создания и запуска игр локально. По-прежнему можно загружать проекты из лаунчера Scratch 2.0, которые сразу же преобразуются в Scratch 3.0 при загрузке на основной сайт. Существует также автономная версия Scratch 3.0. | |||
===ТЕХНОЛОГИЯ=== | |||
Редактор Scratch 1.4 и ниже был написан на языке Squeak, в то время как его онлайн-средство просмотра проектов было написано на Java, а позже был добавлен проигрыватель, написанный на Adobe Flash. Scratch 2.0 полагался на Adobe Flash для онлайн-версии и Adobe AIR для автономного редактора. Они вышли из моды, и Adobe прекратила их поддержку в конце 2020 года. | |||
===Интерфейс=== | |||
В Scratch 2.0 область stage находится слева, с палитрой programming blocks посередине, а область coding - справа. Расширения находятся в разделе "Дополнительные блоки" палитры. | |||
Палитра блоков в Scratch 2.0 состоит из дискретных разделов, которые не прокручиваются от одного к другому; в таблице ниже показаны различные разделы: | |||
====1.4 звуки==== | |||
Scratch 2.0 изменил способ импорта звуков, поэтому многие звуки Scratch 1.4 перестали работать. (Файл проекта был изменен с *.sb на *.sb2). | |||
==Расширения== | |||
В Scratch 2.0 все расширения были аппаратными. | |||
===Особенности и производные=== | |||
Scratch использует событийное программирование с несколькими активными объектами, называемыми спрайтами. Спрайты могут быть нарисованы как векторная или растровая графика с нуля в простом редакторе, который является частью Scratch, или могут быть импортированы из внешних источников. Scratch 3.0 поддерживает только одномерные массивы, известные как "списки", а также скаляры с плавающей запятой и строки, но с ограниченными возможностями манипулирования строками. Существует сильный контраст между мощными мультимедийными функциями и многопоточным стилем программирования и довольно ограниченной областью применения языка программирования Scratch. | |||
Scratch 2.0 не рассматривает процедуры как структуры первого класса и имеет ограниченные возможности ввода-вывода файлов с помощью протокола расширения Scratch 2.0, экспериментальной функции расширения, которая позволяет взаимодействовать между Scratch 2.0 и другими программами.[71] Протокол расширения позволяет взаимодействовать с аппаратными платами, такими как Lego Mindstorms или Arduino. Scratch 2.0 был реализован в ActionScript, а экспериментальный интерпретатор на основе JavaScript разрабатывался параллельно. | |||
Scratch 1.4 был основан на Squeak, который основан на Smalltalk-80. Ряд производных Scratch [75], называемых модификациями Scratch, были созданы с использованием исходного кода Scratch 1.4. Эти программы являются вариантом Scratch, которые обычно включают несколько дополнительных блоков или изменений в графический интерфейс. Turbowarp - это вариант Scratch 3.0, который улучшает производительность Scratch путем компиляции проектов в Javascript и позволяет загружать внешние расширения. | |||
====Snap!==== | |||
Более продвинутым визуальным языком программирования, вдохновленным Scratch, является Snap!, в котором представлены первоклассные процедуры (их математические основы называются также лямбда-исчислением), первоклассные списки (включая списки списков) и первоклассные действительно объектно-ориентированные спрайты с наследованием прототипов и вложенными спрайтами, которые не являются частью Scratch. Snap! (ранее "BYOB") был разработан Йенсом Менигом с документацией, предоставленной Брайаном Харви из Калифорнийского университета в Беркли, и использовался для преподавания вводного курса "Красота и радость вычислений" в CS для не-Студенты CS-major. Оба они были членами команды Scratch до разработки "Snap!". | |||
====ScratchJr==== | |||
В июле 2014 года ScratchJr был выпущен для iPad, а в 2016 году - для Android. Несмотря на то, что он сильно вдохновлен Scratch и совместно возглавляется Митчем Резником, он, тем не менее, является полным переписыванием, предназначенным для детей младшего возраста - в возрасте от 5 до 8 лет. | |||
==Цензура== | |||
В августе 2020 года GreatFire объявила, что китайское правительство заблокировало доступ к сайту Scratch. В то время было подсчитано, что более трех миллионов человек в Китае использовали его. Издание сослалось на тот факт, что Макао, Гонконг и Тайвань были перечислены как страны на сайте. | |||
==См. также== | |||
* [[Портал: свободного и открытого программного обеспечения]] | |||
* [[Портал: компьютерного программирования]] | |||
* [[Blockly]], интерфейс, используемый Scratch для создания блоков кода | |||
* [[Code.org]] | |||
* [[Программируемый крикет]] | |||
* [[PWCT]] | |||
* [[Визуальный язык программирования]] | |||
==Пруф== | |||
[https://curlie.org/Computers/Programming/Languages/Smalltalk/Squeak/Scratch /curlie.org/Computers/Programming/Languages/Smalltalk/Squeak/Scratch] | |||
* [https://en.wikibooks.org/wiki/Scratch en.wikibooks.org/wiki/Scratch] | |||
* [https://en.scratch-wiki.info/ en.scratch-wiki.info/] | |||
[[Категория:Динамически типизированные языки программирования]] | |||
[[Категория:Образовательные языки программирования]] | |||
[[Категория:Бесплатное образовательное программное обеспечение]] | |||
[[Категория:MIT Media Lab]] | |||
[[Категория:Педагогические интегрированные среды разработки]] | |||
[[Категория:Семейство языков программирования Smalltalk]] | |||
[[Категория:Программное обеспечение для разработки видеоигр]] | |||
[[Категория:Движки видеоигр]] | |||
[[Категория:IDE для видеоигр]] | |||
[[Категория:Сообщества разработчиков программного обеспечения]] | |||
[[Категория:Языки программирования, созданные в 2003 году]] | |||
[[Категория:Компьютерные форматы файлов]] | |||
[[Категория:Расширения имен файлов]] | |||
[[Категория:Creative Commons - лицензионные сайты]] |
Версия от 10:35, 15 мая 2022
Эта статья о языке программирования. Для других целей см. Scratch (disambiguation).
Scratch - высокоуровневый блочный визуальный язык программирования и веб-сайт, ориентированный в первую очередь на детей как образовательный инструмент для программирования, с целевой аудиторией от 8 до 16 лет. Пользователи сайта, называемые Scratchers, могут создавать проекты на веб-сайте, используя блочный интерфейс. Проекты могут быть экспортированы в HTML5, JavaScript, приложения для Android и EXE-файлы с помощью внешних инструментов. Сервис разработан MIT Media Lab, переведен на более чем 70 языков и используется в большинстве стран мира. Scratch преподается и используется во внешкольных центрах, школах и колледжах, а также в других общественных учреждениях знаний. По состоянию на 8 мая 2022 года статистика сообщества на официальном сайте языка показывает более 104 миллионов проектов, разделяемых более чем 90 миллионами пользователей, более 686 миллионов когда-либо созданных проектов (включая неразделенные проекты) и более 100 миллионов ежемесячных посещений веб-сайтов.[7]
Scratch получил свое название от техники, используемой диск-жокеями под названием "скретчинг", когда виниловые пластинки скрепляются вместе и манипулируются на проигрывателе для создания различных звуковых эффектов и музыки. Как и scratching, веб-сайт позволяет пользователям творчески смешивать различные медиа (включая графику, звук и другие программы), создавая и "ремикшируя" проекты, такие как видеоигры, анимации и симуляции.
Scratch 3.0
Пользовательский интерфейс
Интерфейс Scratch разделен на три основных раздела: область сцены, палитра блоков и область кодирования для размещения и упорядочения блоков в скрипты, которые можно запустить, нажав зеленый флаг или нажав на сам код. Пользователи также могут создавать свои собственные блоки кода, и они будут отображаться в разделе "Мои блоки".
В области stage отображаются результаты (например, анимация, черепашья графика, небольшого или нормального размера, также доступна полноэкранная опция), а в нижней области отображаются миниатюры всех спрайтов. Сцена использует координаты x и y, центром сцены является 0,0
При выделении спрайта в нижней части промежуточной области к нему можно применить блоки команд, перетащив их из палитры блоков в область кодирования. Вкладка Костюмы позволяет пользователям изменять внешний вид спрайта с помощью векторного и растрового редактора для создания различных эффектов, включая анимацию. Вкладка Sounds позволяет прикреплять звуки и музыку к спрайту.
При создании спрайтов и фонов пользователи могут нарисовать свой собственный спрайт вручную, выбрать спрайт из библиотеки или загрузить изображение.
В таблице ниже приведены категории программных блоков:
Категория | Примечания | Категория | Примечания |
---|---|---|---|
Движение | Движения спрайтов, такие как углы и положение | Зондирование | Спрайты могут взаимодействовать с окружающей средой |
Выглядит | Управляет визуальными эффектами спрайта | Операторы | Математические операторы, сравнения |
Звук | Воспроизведение аудиофайлов и эффектов | Переменные Переменная и списки использования и назначения | |
Мероприятия | Обработчики событий | Мои блоки | Некоторые функции, созданные пользователем, определяются другими блоками при определении скриптов. |
Управление | Условные обозначения и циклы и т. Д. | Расширения | Объяснено ниже |
Автономное редактирование
Автономный "редактор рабочего стола" для Scratch 3.0 доступен для Microsoft Windows 10 в Microsoft Store и Apple macOS 10.13; это позволяет создавать и воспроизводить программы Scratch в автономном режиме. Автономный редактор также можно загрузить в предыдущих версиях, таких как Scratch 2.0 и Scratch 1.4.
Расширения
В Scratch расширения добавляют дополнительные блоки и функции, которые можно использовать в проектах. В Scratch 2.0 и 3.0 все расширения были аппаратными. В Scratch 3.0 были добавлены программные расширения, такие как text-to-speech voices, а также некоторые новые аппаратные расширения, такие как micro:bit. Расширения перечислены ниже.
- Музыка
- Ручка
- Видео зондирование
- Преобразование текста в речь
- Перевести
- BBC Micro:бит
- LEGO Mindstorms EV3
- LEGO WeDo 2.0
- Макей Макей
- LEGO SPIKE Prime
- LEGO BOOST
- Go Direct Force & Acceleration
Физический
- Lego Mindstorms EV3 – управление двигателями и получение сенсорных данных от Lego Mindstorms EV3
- Makey Makey – используйте Makey Makey для управления проектами
- Lego Education WeDo 2.0 – управление двигателями и получение данных датчиков от Lego WeDo
- Lego Education SPIKE Prime — основной язык программирования для Lego SPIKE Prime, включающий управление двигателем и прием данных датчиков
- BBC micro:bit – использование BBC micro:bit для управления проектами
- Lego BOOST – воплощение роботизированных творений в жизнь
- Go Direct Force & Acceleration – Sense pull, push, motion, and spin
Digital
Многие цифровые расширения в Scratch 3.0 были обычными категориями блоков, которые были перенесены в раздел расширений, чтобы уменьшить беспорядок. К ним относятся:
- Музыка – играть на цифровых инструментах (барабаны, трубы, скрипки, пианино и многое другое)
- Ручка – Рисуйте на сцене различными толщинами и цветами
- Video Sensing – обнаружение движения с помощью камеры
Новые цифровые расширения также были добавлены в сотрудничестве с коммерческими компаниями. К ним относятся:
- Text to Speech – преобразует слова в тексте в голосовой вывод (различные голоса, поставляемые Amazon)
- Translate – использует Google Translate для перевода текста с одного языка на множество других языков, включая арабский, китайский, голландский, английский, французский, греческий и японский
Пользователи также могут создавать свои собственные расширения для Scratch 3.0, используя JavaScript.
- Кодовая база***
Scratch 3.0 - это совершенно новая кодовая база на основе JavaScript, состоящая из нескольких компонентов, таких как "Scratch-GUI", теперь основанная на библиотеке Blockly, "Scratch-VM", которая интерпретирует код, и "Scratch-Render".движок рендеринга. Скретч-блоки создаются с помощью Blockly.
Противоречие
Некоторые пользователи покинули Scratch, так как Scratch 3.0 сломал их проекты. Многие пользователи жаловались, что новый интерфейс был детским.
Статья, опубликованная в 2019 году Нью-Йоркским университетом, утверждает и иллюстрирует для кодирования музыки с помощью Scratch, "что музыкальные и звуковые блоки, реализованные в настоящее время в Scratch, могут ограничивать и расстраивать значимое музицирование для детей, основной пользовательской базы Scratch".
Сообщество пользователей
Scratch используется в самых разных местах: школах, музеях, библиотеках, общественных центрах и домах. Scratch предназначен в основном для пользователей в возрасте 8-16 лет, но он используется всеми возрастами и имеет значительную базу пользователей для взрослых по состоянию на 2009 год.] Этот широкий охват создал множество окружающих сообществ, как физических, так и цифровых. В апреле 2020 года рейтинг языков программирования Tiobe включил Scratch в топ-20. По данным Tiobe, существует 50 миллионов проектов, написанных на Scratch, и каждый месяц добавляется миллион новых проектов.
Образовательные пользователи
Scratch используется в качестве вводного языка, потому что создание интересных программ относительно легко, и полученные навыки могут быть применены к другим языкам программирования, таким как Python и Java.
Scratch предназначен не только для создания игр. С помощью предоставленных визуальных эффектов программисты могут создавать анимацию, текст, истории, музыку и многое другое. Уже существует множество программ, которые студенты могут использовать для изучения тем математики, истории и даже фотографии. Scratch позволяет учителям создавать концептуальные и визуальные уроки и задания научной лаборатории с анимацией, которая помогает визуализировать сложные концепции. В рамках социальных наук преподаватели могут создавать викторины, игры и учебные пособия с интерактивными элементами. Использование Scratch позволяет молодым людям понять логику программирования и научиться творчески строить и сотрудничать.
Scratch преподается более чем в 800 школах и 70 колледжах организации DAV в Индии и по всему миру.
В высшем образовании Scratch используется в первую неделю вводного курса компьютерных наук Гарвардского университета CS50.
Интернет-сообщество
Пользователей Scratch называют "скретчерами". Scratchers имеют возможность делиться своими проектами и получать обратную связь. Проекты могут быть загружены непосредственно из среды разработки на веб-сайт Scratch, и любой член сообщества может загрузить полный исходный код для изучения или ремиксов в новые проекты. Scratchers также могут создавать студии проектов, комментировать, любить и "любить" чужие проекты, следоватьдругие участники могут видеть свои проекты и деятельность, а также делиться идеями. Проекты варьируются от игр и анимации до практических инструментов. Кроме того, чтобы стимулировать создание и обмен между пользователями, веб-сайт часто устанавливает задачи "Scratch Design Studio".
Команда MIT Scratch работает над тем, чтобы это сообщество поддерживало дружественную и уважительную среду для всех людей.
Педагоги имеют собственное интернет-сообщество ScratchEd, разработанное и поддерживаемое Гарвардской высшей школой образования. В этом сообществе преподаватели Scratch делятся историями, обмениваются ресурсами и задают вопросы.
Scratch Wiki
Scratch Wiki - это ресурс поддержки Scratch и его веб-сайта, истории и явлений, связанных с ним. Несмотря на поддержку команды Scratch (разработчики Scratch), она в основном написана Scratchers (пользователями Scratch) для получения информации о программе и веб-сайте.
Первоапрельский день дураков
Каждый год в День дураков, начиная с 2014 года, вики показывает шутливые версии многих страниц вместо реальной, хотя реальная версия страницы все еще может быть доступна в нижней части шутливой версии. Хотя это не 1 апреля, вы все еще можете получить доступ к шутливой версии страниц здесь. Кроме того, точка с запятой также появляется внизу каждой страницы вики в День дураков апреля с 2019 года.
Разработчики
Scratch 2.0 и Scratch 3.0 находятся с открытым исходным кодом на GitHub, и разработчики могут внести свой вклад в Scratch.[40]
Мероприятия
Преподаватели Scratch могут собираться лично на Scratch Educator Meetups. На этих собраниях преподаватели Scratch учатся друг у друга и делятся идеями и стратегиями, которые поддерживают вычислительное творчество.
Ежегодная "Неделя скретча", ранее известная как "День скретча", объявляется в мае каждого года. Членам сообщества предлагается провести в этот день или около него мероприятие, большое или маленькое, посвященное Scratch. Эти мероприятия проводятся по всему миру, и список можно найти на веб-сайте Scratch Day. Scratch Week - это серия мероприятий, посвященных Scratch на веб-сайте Scratch.
Каждый первоапрельский день дураков команда Scratch будет разыгрывать пользователей и добавлять пасхальные яйца.
История
В начале 2000-х годов группа непрерывного детского сада MIT Media Lab (LLK) занималась разработкой визуальных языков программирования, ориентированных на детей. В 2003 году Митчел Резник, Ясмин Кафаи и Джон Маэда получили грант Национального научного фонда на разработку новой среды программирования для самовыражения детейс кодом. LLK, возглавляемая Митчелом Резником, в партнерстве с командой Ясмин Кафаи в Калифорнийском университете в Лос-Анджелесе тесно сотрудничала с компьютерными клубами в Бостоне и Лос-Анджелесе, чтобы разработать Scratch, основывая свой дизайн на практике и социальной динамике этих внешкольных молодежных центров.базовый язык программирования, без обозначенных категорий и без зеленого флага. Подобно AgentSheets[46] Scratch использовал концепции тактильного программирования, позже известного как программирование на основе блоков. Scratch был создан с целью научить детей программировать.
Философия Scratch поощряет совместное использование, повторное использование и комбинирование кода, о чем свидетельствует слоган команды "Imagine, Program, Share". Пользователи могут создавать свои собственные проекты, или они могут выбрать "ремикс" чужого проекта. Проекты, созданные и ремикшированные с помощью Scratch, лицензируются по лицензии Creative Commons Attribution-Share Alike License. Scratch автоматически присваивает кредит пользователю, создавшему оригинальный проект и программу, в верхней части страницы проекта.
Scratch был разработан на основе постоянного взаимодействия с молодежью и персоналом компьютерных клубов. Использование Scratch в компьютерных клубах послужило моделью для других внешкольных центров, демонстрирующих, как неформальные условия обучения могут поддерживать развитие технологической беглости
Scratch 2.0 был выпущен 9 мая 2013 года. Обновление изменило внешний вид сайта и включило как онлайн-редактор проектов, так и офлайн-редактор. Теперь пользовательские блоки можно было определять в проектах, наряду с несколькими другими улучшениями. Автономный редактор Scratch 2.0 можно было загрузить для Windows, Mac и Linux непосредственно с веб-сайта Scratch, хотя позже поддержка Linux была прекращена. Неофициальную мобильную версию приходилось скачивать с форумов Scratch
Scratch 3.0 был впервые анонсирован командой Scratch в 2016 году. С тех пор и до января 2018 года было выпущено несколько публичных альфа-версий, после чего были выпущены предварительные бета-версии "Preview". Бета-версия Scratch 3.0 была выпущена 1 августа 2018 года.[55] для использования в большинстве браузеров, за исключением Internet Explorer.
Scratch 3.0, первая версия 3.x, была выпущена 2 января 2019 года.
Типы файлов
В Scratch 1.4 файл *.sb использовался для хранения проектов.
Файл *.sb разделен на четыре раздела:
- "заголовок", этот 10-байтовый заголовок содержит строку ASCII 'ScratchV02' в версиях выше Scratch 1.2 и 'ScratchV01' в Scratch 1.2 и ниже
- "infoSize", кодирует длину инфообъектов проекта. 4-байтовое, 32-битное, big-Endian целое число.
- "InfoObjects", раздел данных в формате словаря. Содержит: "эскиз", эскиз этапа проекта; "автор", имя пользователя создателя проекта; "комментарий", заметки проекта; "история", журнал сохранения и загрузки; "scratch-версия", версия Scratch, используемая для сохранения файла;
- "contents", таблица объектов со Сценой в качестве корня. Все объекты в программе хранятся здесь как ссылки.
Scratch 2.0 использует формат файла *.sb2. Это zip-файлы, содержащие файл .json, а также содержимое проекта Scratch, включая звуки (сохраненные в формате .wav) и изображения (сохраненные в формате .png). Каждый тип файла, за исключением project.json, хранится в виде числа, начинающегося с 0 и подсчитываемого с каждым дополнительным файлом. Файл изображения с надписью "0.png" всегда представляет собой белое изображение размером 480x360, но "0.wav" по-прежнему будет самым ранним не удаленным файлом.
В экспериментальной версии Scratch использовался формат .sbx.
Scratch 3.0 использует формат *.sb3, который очень похож на *.sb2, с одним отличием - звук.
Старые версии
Хотя основной сайт Scratch теперь работает только в текущей версии (Scratch 3.0), автономные редакторы для Scratch 2.0 (и более ранних Scratch 1.4) все еще доступны для скачивания и могут использоваться для создания и запуска игр локально. По-прежнему можно загружать проекты из лаунчера Scratch 2.0, которые сразу же преобразуются в Scratch 3.0 при загрузке на основной сайт. Существует также автономная версия Scratch 3.0.
ТЕХНОЛОГИЯ
Редактор Scratch 1.4 и ниже был написан на языке Squeak, в то время как его онлайн-средство просмотра проектов было написано на Java, а позже был добавлен проигрыватель, написанный на Adobe Flash. Scratch 2.0 полагался на Adobe Flash для онлайн-версии и Adobe AIR для автономного редактора. Они вышли из моды, и Adobe прекратила их поддержку в конце 2020 года.
Интерфейс
В Scratch 2.0 область stage находится слева, с палитрой programming blocks посередине, а область coding - справа. Расширения находятся в разделе "Дополнительные блоки" палитры.
Палитра блоков в Scratch 2.0 состоит из дискретных разделов, которые не прокручиваются от одного к другому; в таблице ниже показаны различные разделы:
1.4 звуки
Scratch 2.0 изменил способ импорта звуков, поэтому многие звуки Scratch 1.4 перестали работать. (Файл проекта был изменен с *.sb на *.sb2).
Расширения
В Scratch 2.0 все расширения были аппаратными.
Особенности и производные
Scratch использует событийное программирование с несколькими активными объектами, называемыми спрайтами. Спрайты могут быть нарисованы как векторная или растровая графика с нуля в простом редакторе, который является частью Scratch, или могут быть импортированы из внешних источников. Scratch 3.0 поддерживает только одномерные массивы, известные как "списки", а также скаляры с плавающей запятой и строки, но с ограниченными возможностями манипулирования строками. Существует сильный контраст между мощными мультимедийными функциями и многопоточным стилем программирования и довольно ограниченной областью применения языка программирования Scratch.
Scratch 2.0 не рассматривает процедуры как структуры первого класса и имеет ограниченные возможности ввода-вывода файлов с помощью протокола расширения Scratch 2.0, экспериментальной функции расширения, которая позволяет взаимодействовать между Scratch 2.0 и другими программами.[71] Протокол расширения позволяет взаимодействовать с аппаратными платами, такими как Lego Mindstorms или Arduino. Scratch 2.0 был реализован в ActionScript, а экспериментальный интерпретатор на основе JavaScript разрабатывался параллельно.
Scratch 1.4 был основан на Squeak, который основан на Smalltalk-80. Ряд производных Scratch [75], называемых модификациями Scratch, были созданы с использованием исходного кода Scratch 1.4. Эти программы являются вариантом Scratch, которые обычно включают несколько дополнительных блоков или изменений в графический интерфейс. Turbowarp - это вариант Scratch 3.0, который улучшает производительность Scratch путем компиляции проектов в Javascript и позволяет загружать внешние расширения.
Snap!
Более продвинутым визуальным языком программирования, вдохновленным Scratch, является Snap!, в котором представлены первоклассные процедуры (их математические основы называются также лямбда-исчислением), первоклассные списки (включая списки списков) и первоклассные действительно объектно-ориентированные спрайты с наследованием прототипов и вложенными спрайтами, которые не являются частью Scratch. Snap! (ранее "BYOB") был разработан Йенсом Менигом с документацией, предоставленной Брайаном Харви из Калифорнийского университета в Беркли, и использовался для преподавания вводного курса "Красота и радость вычислений" в CS для не-Студенты CS-major. Оба они были членами команды Scratch до разработки "Snap!".
ScratchJr
В июле 2014 года ScratchJr был выпущен для iPad, а в 2016 году - для Android. Несмотря на то, что он сильно вдохновлен Scratch и совместно возглавляется Митчем Резником, он, тем не менее, является полным переписыванием, предназначенным для детей младшего возраста - в возрасте от 5 до 8 лет.
Цензура
В августе 2020 года GreatFire объявила, что китайское правительство заблокировало доступ к сайту Scratch. В то время было подсчитано, что более трех миллионов человек в Китае использовали его. Издание сослалось на тот факт, что Макао, Гонконг и Тайвань были перечислены как страны на сайте.
См. также
- Blockly, интерфейс, используемый Scratch для создания блоков кода
- Code.org
- Программируемый крикет
- PWCT
- Визуальный язык программирования
Пруф
/curlie.org/Computers/Programming/Languages/Smalltalk/Squeak/Scratch
- Динамически типизированные языки программирования
- Образовательные языки программирования
- Бесплатное образовательное программное обеспечение
- MIT Media Lab
- Педагогические интегрированные среды разработки
- Семейство языков программирования Smalltalk
- Программное обеспечение для разработки видеоигр
- Движки видеоигр
- IDE для видеоигр
- Сообщества разработчиков программного обеспечения
- Языки программирования, созданные в 2003 году
- Компьютерные форматы файлов
- Расширения имен файлов
- Creative Commons - лицензионные сайты