Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| Эта статья о языке программирования. Для других целей см. Scratch (disambiguation). | | Эта статья о языке программирования. Для других целей см. Scratch (disambiguation). |
|
| |
|
| Scratch - высокоуровневый блочный визуальный язык программирования и веб-сайт, ориентированный в первую очередь на детей как образовательный инструмент для программирования, с целевой аудиторией от 8 до 16 лет. Пользователи сайта, называемые Scratchers, могут создавать проекты на веб-сайте, используя блочный интерфейс. Проекты могут быть экспортированы в HTML5, JavaScript, приложения для Android и EXE-файлы с помощью внешних инструментов. Сервис разработан MIT Media Lab, переведен на более чем 70 языков и используется в большинстве стран мира. Scratch преподается и используется во внешкольных центрах, школах и колледжах, а также в других общественных учреждениях знаний. По состоянию на 8 мая 2022 года статистика сообщества на официальном сайте языка показывает более 104 миллионов проектов, разделяемых более чем 90 миллионами пользователей, более 686 миллионов когда-либо созданных проектов (включая неразделенные проекты) и более 100 миллионов ежемесячных посещений веб-сайтов.[7] | | Scratch - высокоуровневый блочный визуальный язык программирования и веб-сайт, ориентированный в первую очередь на детей как образовательный инструмент для программирования, с целевой аудиторией от 8 до 16 лет.[6] Пользователи сайта, называемые Scratchers, могут создавать проекты на веб-сайте, используя блочный интерфейс. Проекты могут быть экспортированы в HTML5, JavaScript, приложения для Android и EXE-файлы с помощью внешних инструментов. Сервис разработан MIT Media Lab, переведен на более чем 70 языков и используется в большинстве стран мира.[7] 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== |
Строка 34: |
Строка 33: |
|
| |
|
| |} | | |} |
|
| |
| ===Автономное редактирование===
| |
|
| |
| Автономный "редактор рабочего стола" для 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]]
| |
| * [[Визуальный язык программирования]]
| |
| ==Читать==
| |
| [http://wiki.xentax.com/ wiki.xentax.com/] Репозитарий Граф
| |
|
| |
| ==Пруф==
| |
| [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 - лицензионные сайты]]
| |