Скретч (мова програмування)
Скретч (МФА:skræt͡ʃ, англ.Scratch)— середовище та інтерпретована динамічна візуальна мова програмування, у якій код створюється шляхом маніпулювання графічними блоками. ІсторіяСередовище орієнтовано в першу чергу на дітей та початкове знайомство з основними концепціями та ідеями програмування методом візуального програмування[11][12]. Завдяки динамічності, вона дає змогу змінювати код навіть під час виконання. Мова має за мету навчити дітей поняттю програмування і дає можливості створювати ігри, анімації чи музику. Користувачі можуть створювати онлайн-проекти, ними можна обмінюватися всередині міжнародної спільноти, яка існує в мережі Інтернет. Середовище програмування можна безкоштовно завантажити і вільно використовувати у шкільній чи позашкільній освіті. Скретч розроблено лабораторією MIT Media на традиціях мови Logo та Squeak, перекладено 70 мовами та використовується в більшості країн світу. Скретч застосовується в школах, коледжах та позашкільних навчальних центрах. Станом на 5 січня 2020 року на вебсайті спільноти знаходиться понад 48 мільйонів проектів, які було розроблено 49 мільйонами користувачів. Щомісяця сайт відвідує більше 20 мільйонів користувачів. Скретч отримав свою назву від техніки «скретчингу», яку використовують диск-жокеї, «міксуючи» музику для отримання різних звукових ефектів, Скретч дозволяє користувачам творчо «змішувати» різні медіа (включаючи графіку, звук та інші програми) під час створення проєктів. Логотип цієї мови програмування — рудий кіт Скретч. Ідеологія навчання програмуванню у СкретчіУ середовищі Скретч використовується метафора цеглинок Лего, з яких навіть найменші діти можуть зібрати прості конструкції. Але, розпочавши з малого, можна далі розвивати та розширювати своє уміння будувати і програмувати. Скретч створювався спеціально для того, щоб підлітки 10 — 16 років використовували його самостійно, в мережі позашкільного навчання на базі комп'ютерних клубів, в містах та регіонах з низьким рівнем доходів, як нове технологічне середовище, що дозволяє їм виразити себе в комп'ютерній творчості. Розробники цього напряму на чолі з Мітчелом Резніком і Аланом Кеєм вважають, що найважливішим у потужних та недорогих сучасних персональних комп'ютерах є те, що вони створюють нове освітнє середовище, у якому учні можуть обговорювати ідеї та користуватися ними зовсім не так, як вони це робили за допомогою підручників. Мета середовища — допомогти дітям навчитися думати краще і глибше, ніж це може робити більшість дорослих. У Скретч проявляються багато ідей програмування, властиві середовищу Logo та Лего-Logo, які втілені на більш високому технологічному рівні. Користувачі можуть збирати свої програми-процедури з блоків так само, як вони збирали конструкції з цеглинок Лего. З блоків і керуючих структур можуть бути зібрані різні агенти (спрайти), що виконують прості інструкції і можуть взаємодіяти між собою. Коли користувачі створюють проекти у Скретч, вони опановують навички, які їм знадобляться для успішної самореалізації та майбутнього успіху:
У Скретч використовуєть кероване подіями програмування кількох активних графічних об'єктів, які називаються спрайтами. Спрайти можна малювати, використовуючи як векторну, так і растрову графіку, створену в простому редакторі, що є частиною Скретчу, або імпортувану із зовнішніх джерел. Скретч підтримує цілі, дійсні та рядкові типи величин і одновимірні масиви-«списки». Величини типізуються автоматично, відповідно до контексту їх застосування. Скретч дозволяє взяти будь-який об'єкт-спрайт і здійснити над ним наступні дії:
У результаті виконання простих команд може складатися складна модель, в якій взаємодіятимуть багато об'єктів, наділених різними властивостями. Існує сильний контраст між потужними мультимедійними функціями і багатопотоковим стилем програмування та досить обмеженим обсягом команд мови програмування Скретч. Початковий рівень програмування такий простий і доступний, що Скретч може слугувати як навчальний засіб не тільки для старших, але і для молодших школярів. Скретч 3.0Інтерфейс середовища програмуванняІнтерфейс Скретчу має три основні секції: область сцени, палітра блоків та область кодування для розміщення та упорядкування блоків у сценарії, які можна виконати. На області Сцени представлені результати роботи сценарію (тобто анімація, графіка і т. д.) у невеликому або в звичайному розмірі (також доступна опція на весь екран), а також всі мініатюри спрайтів, перелічені в нижній області. Об'єкти використовують координати x та y, де 0,0 є центром сцени. Для обраного спрайту можуть бути застосовані різні блоки-команди, які перетягують з палітри блоків у область кодування. Вкладка Образи дозволяє користувачам змінювати вигляд спрайту з метою створення різних ефектів, включаючи анімацію. Вкладка Звуки дозволяє додавати звуки та музику до спрайту. Створюючи спрайт і фони, користувачі можуть малювати власний спрайт вручну, вибирати спрайт з бібліотеки або завантажувати наявне зображення. У таблиці нижче показані категорії програмних блоків:
Автономний редакторДля роботи поза мережею Інтернет доступний автономний редактор, який офіційно підтримується в Microsoft Windows 10, Apple macOS 10.13[13], ChromeOS та Android — він дозволяє створювати та виконувати програми локально, без підключення до Інтернету. Для автономного редактора відсутня можливість збереження програми на сайті спільноти, їх можна зберегти лише на запам'ятовуючому пристрої комп'ютера (жорсткий диск, пристрій флеш-пам'яті). Для операційної системи Linux існують неофіційні версії редактора. РозширенняСкретч використовує так звані «розширення», які надають додаткові блоки та функції, які можна використовувати в проєктах. У Скретч 2.0 всі розширення розроблялися тільки для підтримки різних пристроїв, у Скретч 3.0 додано розширення для підтримки програмних служб, таких як голосові повідомлення або переклад тексту, а також нові розширення для апаратних засобів, таких як micro: bit. Апаратні
ПрограмніБагато цифрових розширень в Скретч 3.0 раніше були звичайними категоріями блоків, які були переміщені до розділу розширень. До них належать:
Нові цифрові розширення також додані у співпраці з комерційними компаніями. До них належать:
Користувачі також можуть створювати власні розширення для Скретч 3.0 за допомогою JavaScript[14]. База кодуУ Скретч 3.0 використано абсолютно нову базу коду на основі JavaScript, що складається з декількох компонентів, таких як «Scratch-GUI», тепер базується на бібліотеці від Blockly[15], «Scratch-VM» для інтерпретації коду[16], і "Scratch -Render " — механізму візуалізації[16]. Блоки команд генеруються за допомогою Blockly[17]. Спільнота користувачівСкретч використовується в школах[18], музеях[19], бібліотеках[20], дитячих та громадських позашкільних центрах. Хоча основною віковою групою користувачів Скретчу є 8–18 років, Скретч також використовують вчителі та батьки учнів. Використання в освітіСкретч набув широкої популярності у Великій Британії та США через мережу Code Clubs, де він використовується як мова для ознайомлення з програмуванням, оскільки у ньому створення цікавих програм порівняно легке, а засвоєні навички можна застосувати до інших мов програмування, таких як Python та Java. Варто розуміти, що Скретч не використовується лише для створення ігор — за допомогою наданих середовищем засобів програмісти можуть створювати анімацію, виводити текст, генерувати розповіді, музику, тощо. На сьогодні існує велика кількість програм, які можуть бути використані для вивчення тем з математики, історії та навіть фотографії. Скретч дозволяє вчителям створювати уроки і завдання з анімацією, яка допомагає візуалізувати складні концепції, вікторини, ігри та навчальні посібники з інтерактивними елементами. У вищій школі Скретч використовується в перший тиждень вступного курсу інформатики Гарвардського університету CS50[21][22]. Інтернет-спільнотаЧлени спільноти Скретчу мають можливість ділитися своїми проєктами, створювати добірки-студії та отримувати відгуки. Проєкти можна завантажувати безпосередньо з середовища розробки на вебсайт Скретч, причомуі будь-який член спільноти має можливість завантажити код будь-якого проєкту для вивчення або використання в нових проєктах. Учасники також можуть створювати студії проектів, коментувати, тегувати, вподобати та «любити» чужі проекти, слідкувати за іншими членами, щоб побачити їхні проєкти та діяльність і обмінятись ідеями. Проєкти варіюються від ігор і анімації до практичних інструментів. Команда Scratch Team з MIT працює над тим, щоб ця спільнота підтримувала доброзичливе та шанобливе середовище для всіх учасників. Педагоги мають власну інтернет-спільноту під назвою ScratchEd, розроблену та підтримувану Гарвардською вищою школою освіти. У цій спільноті викладачі діляться історіями, обмінюються ресурсами та порушують питання[23]. Вікі СкретчуВікі Скретчу — це ресурс підтримки Скретчу та його вебсайту, історії та всього, що їх оточує. Хоча ресурс підтримується командою розробників Скретчу, він в першу чергу написаний користувачами для інформації про проєкти та речі, які цікавлять користувачів[24]. Події СкретчуВикладачі, які використовують Скретч можуть спілкуватися особисто на зустрічах Scratch Educator Meetups, де вони навчаються один у одного та діляться ідеями і стратегіями, що підтримують творче кодування[25]. Щорічний «День Скретчу» проводиться у травні кожного року. Учасникам спільноти рекомендується як проводити заходи з пропаганди програмування та взаємодії між учнями в середовищі Скретчу в цей день, так і брати участь у них. Ці заходи проводяться по всьому світу, їх список можна знайти на вебсайті Дня Скретчу[26]. ІсторіяІдея «програмованих блоків» була вперше запропонована Національному Фонду Науки США на початку 2003 року[27] Мітчем Резніком (керівником LifeLong Kindergartner та Scratch Team в MIT Media Lab), Джоном Маєдою з MIT та Ясмін Кафаї з UCLA[28]. Цю пропозицію було прийнято, і їм було надано грант. Перший прототип було створено 2003 року групою LifeLong Kindergartner в лабораторії MIT під керівництвом Мітчела Резніка у партнерстві з компанією Playful Invention, співавторами від якої були Брайан Сільверман і Паула Бонта. Скретч було створено з наміром навчити дітей кодувати, заохочуючи обмін, повторне використання та поєднання коду, на що вказує гасло «Уяви, програмуй, поділись». Користувачі можуть робити або власні проекти, або вони можуть «реміксувати» чужий проект. Проекти, створені або реміксовані за допомогою Скретч, ліцензуються за ліцензією Creative Commons Attribution-Share Alike. Другий прототип — 2005 року. Перший публічний реліз — 8 січня 2007 року, середовище використовувало віртуальну машину Squeak.
2 січня 2019 року з'явився Скретч 3.0, який працює на JavaScript. Модифікація і подальший розвитокНа основі вихідного коду Scratch 1.4 було створено декілька модифікацій мови[29], таких як: BYOB (Snap!)Розроблено в Університеті Берклі. Основним розширенням мови, яке було уведено в BYOB, стала можливість побудови користувацьких блоків — аналога процедур звичайних мов програмування. Підтримуються рекурсія, замикання і лямбда-вирази. Також додано налагоджувач і можливість компіляції у виконувані файли, вкладені спрайти, багатомірні списки, покращена робота зі скролінгом і компіляція виконуваних файлів. Починаючи з версії 3.1 в BYOB додана підтримка об'єктно-орієнтованого програмування — спрайти BYOB тепер дозволяють наслідування на основі прототипів. Для цього введено механізм клонування спрайтів. PantherPanther розширює Скретч підтримкою drag-n-drop керування спрайтами, можливістю клонування спрайтів (об'єктів), і підсистемою CYOB (яка, як і BYOB, дозволяє створювати власні командні блоки, але вимагає для цього знання мови Squeak (сучасний діалект Smalltalk, на якому написано Скретч 1.4 і його модифікації). Механізм MeshІ BYOB, і Panther включають підтримку механізму mesh[36], що забечує взаємодію скретч-програм через мережу за допомогою роздільних змінних і посилання широкомовних повідомлень. SlashSlash доповнює можливості BYOB 3.0 новими можливостями Panther: клонуванням і перетягуванням спрайтів (об'єктів). StarLogo TNGВ 2008 році в Массачусетському технологічному інституті розроблено навчальну мову програмування StarLogo TNG[37], яка розширює StarLogo можливостями тривимірної графіки і мовою візуального блокового програмування. На відміну від оригінального OpenStarLogo[38] і MIT Scratch — StarLogo TNG не є програмним продуктом з відкритим вихідним кодом. Скретч 1.0Scratch 1.0 був випущений 15 травня 2007 року. Дана версія Скретч була однією із найперших, але навіть така рання версія дала майбутнє її наступникам. Скретч 2.0У лютому 2011 року була випущена перша онлайнова бета-версія Скретч 2.0[39], в який планується включення деяких з можливостей BYOB (таких, як створення призначених для користувача процедур), векторної графіки, клонування спрайтів, можливість групової роботи над проєктами і т. д. Офіційно бета-версія вийшла в реліз 9 травня 2013. Скретч 3.0Скретч 3.0 є третьою і поточною основною версією Скретчу. Це повна переробка і повторна реалізація Scratch, написаних на HTML5 і JavaScript. Він має новий, сучасний вигляд і дизайн, а також сумісний з багатьма мобільними пристроями і не вимагає Flash. Випущений 2 січня 2019 року. App InventorЩе одним середовищем програмування, який використовує візуальні блоки команд є App Inventor — експериментальна система візуального програмування для платформи Android. Catrobat (Android)Більш прямим аналогом мови Скретч на Android є мова Catroid (Catrobat), яка розробляється в Інституті Технологій Програмного Забезпечення Технічного Університету Граца в Австрії[40]. ArduBlockПрограма для візуального програування Arduino[41][42]. miniBloq (Arduino)Програма для візуального програування Arduino[43][44]. Українська локалізаціяПоточна версія містить також і український інтерфейс. Примітки
Посібник користувача
Посилання
|