Scratch

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Scratch je výukový programovací jazyk vyvinutý na Massachusetts Institute of Technology MIT v roce 2007, který umožňuje lidem (s jakýmikoliv programovacími zkušenostmi a věkem) experimentovat s koncepty plně univerzálního programování, použitím spojování grafických programovacích bloků ke kontrole obrázků, hudby a zvuků. Tento program byl vyvinut skupinou LifeLong Kindergarten (volný překlad: Navždy ve školce) v Mediální laboratoři Massachusettského Institutu Technologií. Vývojový tým byl veden Mitchelem Resnickem. Scratch se poprvé objevil v létě roku 2007. Scratch může být instalován a volně redistribuován na počítače s platformou Windows, Mac OS X nebo Linux. Zdrojový kód je k dispozici pod licencí umožňující úpravy pro nekomerční použití.

Název Scratch je odvozen od DJské metody scratchování (manuální posouvání desky pod čtecí hlavou) a odkazuje i na jazyk a jeho implementaci. Podobnost s hudebním scratchováním je v jednoduché znuvupoužitelnosti částí. Ve Scratchi mohou být všechny objekty, grafika, zvuky a skripty jednoduše importovány do nového programu a kombinovány jakýmkoliv způsobem. To umožňuje začátečníkům získat rychlé výsledky své práce a zvýšit tak jejich motivaci dále experimentovat a učit se.

Jazyk a prostředí[editovat | editovat zdroj]

Screenshot vývojového prostředí Scratch 1.4

Scratch je užíván na celém světě na mnoha místech a v mnoha nastaveních: ve školách, muzeích, komunitních centrech a domácnostech. Je přímo zaměřen na uživatele od šesti do šestnácti let, ale lidé všech věkových kategoriích jej mohou používat. Například je možná kooperace mladších dětí s jejich staršími sourozenci či rodiči. Střední školy mohou používat Scratch ve vstupních kurzech programování.

Při návrhu jazyka bylo hlavní prioritou tvůrců vytvořit: jazyk a vývojové prostředí intuitivní a jednoduše naučitelné dětmi, které nemají žádné předchozí zkušenosti s programováním.

Uživatelské rozhraní pro vývojové prostředí Scratche rozděluje obrazovku na několik panelů. Na levé straně jsou bloky nástrojů, uprostřed jsou informace o aktuálním spritu, (po instalaci je to obrázek zvířete, ale dá se importovat nebo přímo ve vývojovém prostředí namalovat jiný. Další možností je vyfocení webkamerou.), a panel oblasti skriptů. V pravé části prostředí se nachází seznam spritů a scéna, kde sprite realizuje naše příkazy. Bloky nástrojů na levé straně obsahují osm skupin (pohyb, vzhled, zvuk, pero, ovládání, vnímání, operátory, proměnné). V každé skupině jsou připraveny příkazy, které mohou být přetaženy do skriptovací oblasti, kde se mohou kombinovat a spojovat.

Bloky nástrojů[editovat | editovat zdroj]

  • Pohyb: příkazy umožňují posouvat, otáčet nebo plachtit x sekund na nějakou pozici. Pozice se nastavují dvěma parametry (osy x a y) nebo je možné souřadnice určit přímo v příkazu k přesunu. Zajímavou funkcí je „pokud narazíš na okraj, odskoč“, která otočí o 90° azimut spritu při kontaktu s okrajem scény.
  • Vzhled: umožňuje měnit vzhled spritu, vypisovat zprávy (bublina u spritu), nastavovat grafické efekty, schovávat a zobrazovat sprite a měnit jeho hodnotu na z ose (při překrývání více spritů).
  • Zvuk: umožňuje přehrávat zvuky (v základu „mňau“), dále bubnovat a používat rozsah dvou oktáv asi 120 různých hudebních i nehudebních nástrojů.
  • Pero: sprite bude zanechávat stopu podle nastavení (tloušťka, barva, zapnuté/vypnuté kreslení).
  • Ovládání: obsahuje příkazy řízení běhu programu. Můžeme zde najít různé způsoby spuštění sekvence příkazů (stisknutím klávesy, myši, spuštěním projektu, obdržením zprávy), smyčky (while, for), podmínky (if, if-else), ale také jednoduchou práci s vlákny (posílání zpráv a akce po obdržení zprávy).
  • Vnímání: obsluhuje situace, kdy sprite položí otázku a čeká na vstup, nastavuje true-false při dotyku dvou spritů nebo když je stisknuta klávesa či myš. Dokáže vracet souřadnice myši nebo spritu, stopovat čas, zjišťovat hlasitost výstupu.
  • Operátory: sekce obsahuje základní matematické funkce, generuje náhodná čísla, porovnává větší-menší. Obsahuje také výrokovou logiku (and, or, not) a dokáže pracovat s textovými řetězci (spojovat, vracet délku a vracet písmeno na určité pozici)
  • Proměnné: umožňuje vytvářet proměnné a seznamy. Proměnná může být použitelná pro celý projekt nebo pouze pro určitý sprite. Dá se nastavovat její hodnota a dá se zobrazit či skrýt na scéně. Seznamy také mohou být globální či privátní, dají se do nich vkládat a číst textové řetězce, mazat a vkládat prvky na určité místo specifikované indexem. Dá se zjistit, zdali seznam obsahuje určitý prvek a délku seznamu.

Různé funkce byly empiricky testovány, a ty co překážely intuitivnímu učení, byly odstraněny, zatímco ty, co podporovaly začátečníky, usnadňovaly jim učení a poznávání programování, byly ponechány. Některé výsledky jsou překvapující a dělají Scratch docela odlišný od ostatních výukových jazyků (BASIC, Logo, Alice, aj.). Například vícevláknový kód s předáváním zpráv je pro Scratch stěžejní, zatímco vstup a výstup souborů není podporován. Dále používá pouze jednorozměrná pole neboli seznamy, Proměnné s plovoucí desetinnou čárkou a řetězce znaků jsou podporovány od verze 1.4, ale s omezenými možnostmi práce.

Online komunita[editovat | editovat zdroj]

Slogan online komunity Scratche "Imagine, Program, Share" (vymysli, programuj, poděl se) zdůrazňuje sdílení a sociální aspekt kreativity jako důležitou část filosofie Scratche. Scratchové projekty nejsou viděny jako černé skříňky, ale jako objekty, které je možné překombinovat a použít v nových projektech. Projekty mohou být z vývojového prostředí nahrány přímo na webové stránky Scratche a člen komunity si je může stáhnout s celým zdrojovým kódem. Členové komunity také mohou komentovat, označovat jako oblíbené a „milovat“ (love) projekty jiných členů a sdílet nápady. Všechny projekty na webových stránkách Scratche jsou sdíleny pod kompetencí Creative Commons a mohou být přehrány v libovolném internetovém prohlížeči, který podporuje Java applety). Web dosahuje k 10 miliónům zobrazených stránek za měsíc a má přes 600000 registrovaných členů a přes 1500000 projektů (každou minutou je jeden projekt nahrán). Jsou pořádány soutěže "Scratch Design Studio" na podporu tvorby a sdílení projektů. Stránky a vývojové prostředí jsou přeloženy do 40 jazyků (stránky jen částečně). V některých zemích má Scratch nezávislé weby (Portugalsko, Spojené Arabské Emiráty). V roce 2008 získala online komunita Scratche (nazývána „ScratchR“) získala čestné uznání v ARS Electronica Prix. Existuje také online komunita pro učitele (nazývána „ScratchEd“). Uživatelé Scratche si mohou ostatní uživatele přidávat jako přátele.

Odvozené programy[editovat | editovat zdroj]

Několik odvozenin Scratche, nazývající se Scratch Modifications, bylo vytvořeno za použití zdrojového kódu Scratch verze 1.4. Tyto programy jsou většinou variacemi Scratche, s přidáním několika jiných příkazů nebo úpravami grafického uživatelského rozhraní. Jeden z nich, BYOB, (Build Your Own Blocks, vytvořen Jensem Mönigem) jenž umožňuje uživateli vytvářet jejich vlastní příkazy (které se následně skládají do sekvencí), byl používán k výuce informatiky v Berkley. Zdrojový kód Scratche je opensource a může být stažen na stránce jeho projektu.

Externí odkazy[editovat | editovat zdroj]