„Děti se učí nejen kódovat, ale kódováním se učí.“ Mitchel Resnick [1]
Již v červnu 2014 schválila vláda ČR Strategii vzdělávací politiky ČR do roku 2020, jejíž součástí je Strategie digitálního vzdělávání do roku 2020. Do vizí i cílů strategie zahrnuje rozvoj computational thinking – informatického myšlení (IM) u žáků.
Dokument MŠMT představuje IM následovně: „Je to fenomén, jehož význam se do popředí zájmu dostává až v posledních letech. Jde o relativně nový pojem, který odráží potřebu porozumění světu kolem nás z nové perspektivy. Touto perspektivou jsou informace a způsoby, jakými fungují digitální technologie. Jde o způsob uvažování, který používá informatické metody řešení problémů, a to včetně problémů komplexních či nejasně zadaných. Rozvíjí schopnost analyzovat a syntetizovat, zevšeobecňovat, hledat vhodné strategie řešení problémů a ověřovat je v praxi. Vede k přesnému vyjadřování myšlenek a postupů a jejich zaznamenání ve formálních zápisech, které slouží jako všeobecný prostředek komunikace. Pracuje se základními univerzálními pojmy, které přesahují současné technologie: algoritmus, struktury, reprezentace informací, efektivita, modelování, informační systémy, principy fungování digitálních technologií.“ [2]
S blížícím se rokem 2020 je tedy nutné počítat se změnami v RVP, které by se měly významnou měrou dotknout oblasti Informační a komunikační technologie a které jsou odborníky a některými učiteli informatiky vřele očekávány, jiní je očekávají s obavami.
Studenti pedagogických fakult také ve valné většině didaktických předmětů slýchávají o Bloomově taxonomii vzdělávacích cílů a její revidované variantě, na jejímž vrcholu nad ostatními ční nejvyšší dimenze kognitivního procesu – TVOŘIT. Může to být třeba umění skládat jednotlivé elementy tak, aby vytvořily funkční celek – například tvorba postupu, jenž povede k vyřešení problému nebo skupiny problémů.
Východiskem k dosažení těchto met se mohou stát vizuální programovací jazyky. Jejich kořeny bychom našli v jazyku Logo, navrženým týmem Seymoura Paperta v šedesátých letech minulého století. Největší boom dnes ale beze sporu vykazuje projekt Scratch, potomek Loga, jehož tvůrce Mitchel Resnick byl Papertovým žákem. O samotném Scratchi se toho napsalo na Spomocníku vcelku dost, a proto jen pro připomenutí: Scratch využívá takzvané Drag and Drop programování pomocí programovatelných bloků. Ony předpřipravené bloky téměř zamezují syntaktickým chybám v programu, a tak se programátor může plně věnovat realizaci svých nápadů. Scratch se ale nehodí úplně do každé situace (např. vyžaduje flash). Naštěstí má řadu alternativ, které jej mohou ve vyučovacích hodinách nahradit. Podívejme se na ně.
ScratchJr (jak už název napovídá) je inspirován Scratchem. Jedná se spíše o mladšího bratra než o alternativu Scratche. Projekt je výsledkem spolupráce tří skupin – Lifelong Kindergarden (MIT) pod vedením Mitchela Resnicka, DevTech (Tufts University) a společnosti Playful Invention. ScratchJr vznikl se záměrem umožnit kódování dětem, které ještě neumí číst, přesněji dětem ve věku 5 až 7 let. Prostředí ScratchJr je v principu totožné se Scratchem. Nalezneme zde prostor pro tvorbu kódu, hlavní scénu, šest hlavních multibloků (události, pohyb, vzhled, zvuky, ...), pod kterými se skrývají konkrétní příkazové bloky. Ty mají z logického důvodu charakter piktogramu s absencí textu. Samotný kód je vytvářen (bloky spojovány) horizontálně, nikoli vertikálně, jak je tomu u staršího bratra. Styl „psaní“ kódu je podobný Lightbotovi. ScratchJr je k dispozici zdarma jako aplikace pro tablety s operačním systémem iOS, Andriod a pro Chromebooky.
Více se o projektu ScratchJr můžete dozvědět z webináře autorů – Marina Bers (Tufts) a Mitch Resnick (MIT):
Další alternativou Scratche je projekt UC Berkeley Snap!. Jedná se o multiplatformní aplikaci, která pro svůj běh potřebuje pouze webový prohlížeč s povoleným JavaScriptem. Na první pohled by se mohlo zdát, že jde o kopii Scratche, ovšem ne tak docela. Snap! byl vytvořen jako nadstavbová modifikace Scratche (verze 2.0) umožňující tvorbu složitějších programových struktur. Snap! například podporuje rekurzivní algoritmy. Úvodním spritem je obyčejná šipka. Slovem sprite zde označujeme všechny grafické objekty, které se v projektu objevují a mohou vykonávat uživatelem naprogramované sekvence příkazů.
Online verze Scratche potřebuje pro svůj běh Adobe flash player, a tím se stává pro uživatele iPadů nedostupná. V roce 2014 byla uživatelům představena alternativa s názvem Pyonkee. Jedná se o aplikaci, jež přenesla prostředí Scratch (verzi 1.4) na zařízení s operačním systémem iOS. Aplikace samotná opět cílí především na děti. Hlavní maskot Scratche – kocour je nahrazen jakýmsi zvířátkem připomínajícím opičku s králičíma ušima.
Ukázka tvorby animace v Pyonkee
Blockly je sada nástrojů od společnosti Google v podobě webového API. Na Spomocníkovi již byly zmíněny skupiny her Blockly Games a také Ozoblockly – editor určený k programování ozobotů. Samotný projekt Blockly umožňuje uživatelům vytvářet vlastní program opět pomocí skládání bloků. Velkou výhodu vidím v možnosti pozorovat, jak je vznikající kód bloků překládán do libovolného z pěti skriptovacích jazyků (JavaScript, Python, Lua, PHP a Dart) i do značkovacího XML. Uživatelské rozhraní programu obsahuje skupinu multibloků – logické bloky, cykly, matematické operátory, bloky pro práci s textem, seznamy a barvou, dále bloky s proměnnou a pro tvorbu funkcí. Existuje také několik rozšíření, která jsou pro Blockly nabízena, například Blockly Developer Tool pro tvorbu vlastních funkčních bloků, dále je (díky uživatelům webové služby pro vývojáře GitHub) nabízena možnost programovat jednočipové počítače Arduino a Raspberry Pi pomocí rozšíření BlocklyDuino, Ardublockly a Blockly-gPIo. Blockly je multiplatformní záležitost spustitelná ve webovém prohlížeči, na Androidu i iOS.
Google Developers představují Blockly
Za zmínku určitě stojí i další projekty, třeba Stencyl a GameSalad, které se primárně zaměřují na tvorbu her, přičemž Stencyl také využívá Drag and Drop programování pomocí spojování bloků. Kvůli své náročnosti bych je však na ZŠ asi nezařazoval. Na SŠ by ale uplatnění určitě nalezly.
Všechny výše zmíněné programy a aplikace si nekladou za cíl jen uvést začátečníky do světa tvorby programů a naučit je vymýšlet a kódovat algoritmy. Jdou dále a svou podstatou poskytují uživateli především dostatečně volnou ruku ve vyjadřování myšlenek, v kreativní práci při tvorbě animací či vývoji vlastních her, které jsou spojené s výukou a využíváním základních struktur algoritmů – příkazů, podmínek, cyklů. Žáci pracující v takových prostředích mohou uspokojovat potřeby seberealizace a s vhodnou podporou dosáhnout nejvyšších jim dostupných kognitivních dimenzí.
Omlouváme se za technický výpadek našich stránek.
O této chybě víme a právě ji spravujeme.
Děkujeme za trpělivost.