Scratch je bezplatný vzdělávací programovací jazyk, založený na grafických blocích a určený pro výuku programování pro děti. Díky tomu, že jazyk je, vzhledem ke snadné přizpůsobitelnosti, využíván pro programování pro řadu dalších platforem (například pro naše oblíbené ozoboty a mboty), je poměrně rozšířený a díky snadné práci s ním i oblíbený u dětí. Díky dobré české lokalizaci se snadno prosadil i v Česku. Připočteme-li snadno dostupnou online službu na webu https://scratch.mit.edu/ není se co divit, že je již nějakou dobu poměrně dosti využíván i v českých školách.
Trocha historie
Jazyk byl vyvíjen od roku 2003 skupinou Lifelong Kindergarten Group (původní idea Matt Resnick) pracující na Massachusetts Institute of Technology (MIT). Základní idea jazyka byla inspirována pedagogickou praxí při práci s dětmi v klubovně – děti chtěly vytvářet interaktivní příběhy a animace, ovšem chyběl programovací nástroj, který by pro ně byl vhodný.
15.5. 2007 skupina zveřejnila první offline desktopovou verzi jazyka Scratch 1.0. Tato verze využívala webové stránky pouze na sdílení projektů v komunitě uživatelů. Samotné programování se provádělo offline. Od verzí 1.0 až do verze 1.4 byly postupně do Scratche vkládány různá vylepšení programového, uživatelského a grafického rázu (viz. popisy verzí).
9.5. 2013 byla vydána verze Scratch 2.0, která přinesla řadu významných vylepšení, mezi kterými byla i možnost vytváření kódu online, bez nutnosti instalace editoru. Dalšími neméně významnými vylepšeními byla možnost tvorby vlastních bloků, možnost sdílení kódů na cloudovém úložišti, možnost klonování spritů, možnost práce s vektorovou grafikou v rámci editoru a možnost práce na zvukovém editoru.
Nejnovější verze Scratch 3.0 vylepšuje a modernizuje práci se zvukem a grafikou. Upravuje také ergonomii webového editoru a doplňuje do systému bloky pro spolupráci s Lego Mindstorm EV3 a microbitem (+ další drobné vychytávky a rozšíření).
Trochu o tom jak se se Scratchem pracuje
Jedním z důvodů. proč je Scratch tak vhodný pro práci s dětmi a proč s ním také děti tak rády pracují je jeho grafická forma. Struktura programů se tvoří přetahováním a spojováním příkazových bloků na pracovní ploše editoru. Spojením příkazových bloků a dalším nastavováním jejich modifikátorů lze vytvořit logiku programu. Programování tohoto typu má pro žáky navíc ještě tu nezanedbatelnou výhodu, že odstraňuje problém s nesprávnou syntaxí kódu. Každý blok totiž odpovídá části javascriptového kódu, která je zapouzdřena v grafické podobě a uživatel k ní nemá přímo přístup. K čemu nemá uživatel přístup, to zpravidla nemůže nijak pokazit 🙂 a tak je výsledkem syntakticky čistý kód. Pokud tedy žák udělá chybu, jedná se o chybu v logickém fungování programu. Odpadá tak zdržování s hledáním ztracených uvozovek, středníků atp.
Bloky lze navíc navzájem kombinovat a tak je možné poměrně snadno vytvářet komplikovanější programové struktury (např. podmínkové příkazy), které jsou navíc graficky vyjádřeny bloky a tak začátečníkovi snadněji stravitelné.
Scratch je od samého počátku koncipován jako jazyk určený k edukaci dětí školního věku. Řada příkazových bloků je tudíž směrována na práci s grafikou, čímž se také poměrně snadno vizualizuje činnost programů, které děti vytváří a malí tvůrci tak snadno získávají zpětnou vazbu.
Pár frází, která je dobré ve světě Scratche znát:
Scénář – Code
Je vlastní sestava programových bloků přiřazená k některému z objektů programu. Objektů je několik typů (Postava, Scéna) a každému z těchto objektů lze přiřadit vlastní Scénář/Code. Celý program je třeba chápat nikoliv jako jeden souvislý kód, ale spíše jako soustavu různých objektů, které mezi sebou mohou pomocí zpráv komunikovat a navzájem ovlivňovat svou funkcionalitu a další vlastnosti (atributy).
Postava – Sprite
Je asi jeden z nejhlavnějších objektů užívaných při programování scratchových her. Postava je vizualizovaná graficky a lze ji do programu vložit buď přímo ze zásobníku objektů, nebo je možné ji vytvořit v vektorové podobě pomocí kreslení (děti se tak mohou nenásilnou podobou seznámit s tímto typem grafiky). Grafiku Postavy je možné ještě vytvořit externě a importovat do editoru jak v bitmapové podobě, tak v podobě vektorové. Atributy – vlastnosti objektu jsou značně orientovány na vizuální stránku věci (pozice na scéně, velikost postavy, natočení postavy kolem vlastní osy a vizibilta objektu) a je možné je přímo měnit v konzoli základních vlastností postav. Lze je pochopitelně měnit i programově – což je také to co nás zajímá.
Kostýmy – Costumes
Jednou z vlastností Postav/Spritů jsou kostýmy. Měnit kostýmy je možné v samostatné záložce. Každá postava může mít kostýmů více a může je v průběhu běhu programu také libovolně měnit. Tvůrci editoru s tím již také počítali a některým postavám v zásobníku již od počátku nadělili více kostýmů. V programu pak lze přepínáním jednotlivých kostýmů tvořit drobné animace (grafika chůze postavy, mávání křídel atp.), případně reakce postav na změnu pohybu po scéně (natáčení postavy podle toho jakým směrem se naposledy pohybovala).
Kostýmy je možné podobně jako Postavy importovat, či upravovat v editoru. Děti také mohou poměrně snadno vytvářet nové kostýmy postav. Prostě stačí pouze naklonovat již hotový kostým postavy a novou verzi kostýmu poupravit do nové podoby. Vzhledem k tomu, že je vše možné provádět v interním grafickém vektorovém editoru celou práci dětem jen usnadňuje.
Scéna – Stage
Je objekt zobrazující se jako pozadí za postavou. Vše je možné si představit pokud řekneme, že objekt Postavy je vlastně loutky (lze je ale použít i jako kulisy) a objekt Scény je kulisa za loutkou. Funkčně pro Scénu platí úplně to samé, jako pro objekt Postavy. I Scéna může mít svůj svůj Scénář, stejně jako postava. Je možné tedy fungování programových bloků orientovat i směrem ke Scéně. I vizuální podobu Scény můžeme měnit v grafickém editoru, importovat, nebo kreslit.
Práce v online prohlížeči
Online editor, ve kterém je možné si se Scratchem hrát, naleznete na webové stránce scratch.mit.edu/. Celý editor je výrazně orientovaný na výuku a podporu a sdílení kódu v komunitě scratcherů. Při prvním zkoušení lze tvořit kódy zcela anonymně pod záložkou Tvořit/Create. Problém nastává, chcete-li svůj kód z nějakého důvodu uložit, aby s ním bylo možné dál pracovat, případně se s ním pochlubit svému okolí. Pak nezbývá než se na webu registrovat.
Scratch velmi silně podporuje komunitu scratcherů. Své programy, pokud o to stojíte, můžete sdílet. Pro ty, kteří svou tvorbu zaměřují na ostatní a líbí se jim právě to, že mohou své dílo nabídnout ostatním, poskytují autoři scratche službu nazvanou „Studio“. Můžete tedy v rámci editoru nejen sdílet své hry, ale můžete je sdílet i v čímsi co je možné přirovnat k facebookové skupině. Pokud o studio, nebo něčí tvorbu projevíte zájem můžete studiu, nebo dotyčnému udělit cosi jako like (ve scratchi se říká, že dotyčného „následujete“). Studio webu ondranauci.cz naleznete zde.
Vzhledem k tomu, že scratch umožňuje nejen volně sdílet tvorbu, ale hlavně volný přístup (pokud budete danou tvorbu sdílet) k vytvořenému kódu, či grafice je třeba počítat s tím, že existují v rámci celého systému určitá pravidla (která můžete přesně zjistit zde). V krátkosti zde uvedu co mi přišlo zajímavé a s čím byste, pokud se hodláte pohybovat v prostředí scratche, počítat.
1, Pokud chcete ukládat vytvořené soubory, musíte mít zřízený u scratche účet, tím zároveň přijímáte podmínky zřizovatelů služby.
2, Za svůj účet a jeho obsah si zodpovídáte sami a je zakázáno bez povolení používat cizí účet.
3, Tvorbu na scratchi je zákázáno užívat k propagaci bigotnosti, diskriminaci druhých, násilí, vyhrožování atp.. Zakázány jsou vulgarity (nebo to co scratch považuje za vulgarity – vulgaritou je i nepřiměřeně dlouhý text :-)), sexuální obsah (i grafický), pomluva, či vydávání se za někoho jiného.
4, Ve službě scratch je zakázáno zveřejňovat odkazy na malware, nebo přetěžovat služby tak, aby to scratchi mohlo uškodit (zde je dobré na to upozornit případné experimentátory), jakožto používat scratch na spamování druhých.
5, Komerční použití scratche je povoleno na základě licence Creative Commons Attribution-ShareAlike 2.0.. Ovšem, pokud scratch usoudí, že je to škodlivé pro komunitu, může vám vystavit stopku.
6, Jakýkoliv sdílený obsah vytvořený uživateli (kód, grafika, zvuky atd.) je volně sdílenou záležitostí, kterou může kdokoliv využít k tvorbě a za kterou si sami odpovídáte (např. že grafika, nebo hudba není vykradená z komerčních produktů).
7, Autoři scratche za nic neručí a ponechávají si právo kontroly a možnosti zákazu nevhodného obsahu, který zveřejníte.
Tipy:
Soubory se svým kódem si můžete buď uložit na cloud, nebo do svého počítače. Momentálně tyto soubory používají příponu *.sb3.
Kód je možné vyexportovat v javascriptu (pak je možné jej například vložit do webových stránek), nebo jako spustitelný soubor s exe příponou (pak jej můžete přímo spustit z desktopu). Tyto dva formáty exportu je možné uskutečnit přes webovou stránku TurboWrap.
Pokud nechcete pracovat v online prostředí je možné si stáhnout verzi scratche pro offline tvorbu kódu zde.
V dalším článku si pak můžete přečíst podrobnější popis webu se službou Scratch.
Pingback: Editor Scratche – 1 (web) – ondranauci.cz