Začal jsem učit děti (8-12 let) programovat. Učíme se v programovacím jazyce Scratch, ale dělal jsem si přehled, v čem všem lze učit děti programovat a jaké to má výhody a nevýhody.
Abych se v popisech programů neopakoval, vysvětlím hned na začátku co to je Vizuální programovací jazyk. Programování v něm probíhá přetahováním a spojováním připravených bloků. Opakem je Textový programovací jazyk, který se více podobá klasickému programování nebo se dokonce využívá skutečný programovací jazyk jako například Javascript. Výhoda vizualního programování je mnohem větší přívětivost pro děti. Skoro bych řekl, že je to pro děti nutnost. Ideálem je, pokud je možné mezi oběma způsoby přepínat a když dítě zvládne vizuální formu, postupně přecházet na textovou.
Scratch
Scratch je vyzuální programovací jazyk speciálně vytvořený pro děti od 8mi let. Byl vytvořen v MIT Media Labs a u zrodu stál Mitchel Resnick ze skupiny Lifelong Kindergarten. Od verze 2 je Scratch online, takže není třeba nic instalovat. Aktuálně je vytvořený ve Flashi, což u některých zařízení může způsobovat problémy, ale připravovaná verze 3 už je vytvořena v HTM/Javascriptu, takže s ní by tyto problémy měly zmizet.
Scratch je pouze vizuální a neumožňuje textovou podobu. Nicméně umí vše, co je k programování třeba: podmínky, cykly, proměnné i vlastní bloky včetně rekurze. Je velmi intuitivní a příjemný pro tvoření. Zároveň obsahuje spousty hotových projektů, které si kdokoliv může zkopírovat a začít upravovat. Jednak to dětem ukáže, co všechno je možné a za druhé má velmi nízkou laťku pro začátečníky.
je v češtině velmi intuitivní neumí přepínat do textového jazyka
Snap!
Snap! vychází ze Scratche a přidává k němu funkcionální programování (konkrétně jazyk Scheme). To umožňuje výuku složitějších funkcionálních konceptů. Stejně jako Scratch je to vizuální programovací jazyk a neumí textovou podobu programu. Snap! je pouze v angličtině a (zcela subjektivně) na mě působí méně přívětivě a více technicky. Pomocí další aplikace je možné z projektu ve Snap! vytvořit samostatnou aplikaci a spouštět ji mimo prostředí Snap!.
výuka složitějších funkcionálních konceptů kompatibilita se Scratch pouze v angličtině
Hopscotch
Hopscotch vychází ze Scratch a přináší ho na Apple zařízení (iPhone, iPad a iPod Touch).
běží na Apple zařízeních pouze na Apple zařízení
Kodu
Kodu je vizuální programovací jazyk vyvíjený v Microsoftu. Je určen hlavně pro tvorbu her. Na rozdíl od ostatních se jeho postavy pohybují ve 3D prostoru, což přináší nové možnosti. Musí se ale instalovat a není to triviální záležitost. Výhoda je, že Kodu je přeloženo do češtiny.
3D světnutnost instalovathodně zaměřené na hry, což podle mě omezuje kreativitu
Code.org
Code.org je hlavně nezisková organizace, která se zaměřuje na zpřístupnění programování. Mají vlastní programovací prostředí studio.core.org o kterém tady hlavně budu psát. Studio se ještě dělí na několik dalších „podstudií“. Playlab slouží k tvorbě her a animací a je podobný např. Scratch. Applab slouží k tvorbě aplikací. Bloky tam vypadají spíš jako kousky javascriptu. V testovací verzi je ještě Weblab, který slouží k tvorbě webových stránek. Bohužel např. Playlab a Applab se od sebe dost liší, takže nejde jednoduše přecházet z jednoho do druhého. Celkově mi studio přijde méně intuitivní a pohodlné než například Scratch. Code.org je částečně přeloženo do češtiny, bohužel překlad není úplný a navíc jsou v něm i faktické chyby (např. když je v zadání úkolu 425pixelů místo 25pixelů, je to hodně nepříjemné). V Applab je možné přepínání mezi textem a kódem, v Playlab bohužel ne.
Přepínání vizuálního a textového programování v Applab více možností co vytvářet Komplikovanější rozhraní
špatný překlad do češtiny více nejednotných rozhraní
Swift playgrounds
Swift playgrounds je více logická/puzzle hra než programování. S postavičkou řešíte úkoly pomocí programu. Učíte se konkrétně programovací jazyk Swift (jazyk pro Apple zařízení). Není vizuální, nýbrž se píše kód.
hezké vizuální zpracování pouze Apple méně podporuje kreativitu, protože je to více hra s úkoly
Tynker
Tynker je vizuální i textový programovací jazyk. Pro textové programování používá Javascript, v některých částech je i možnost Pythonu. Tynker nabízí o trochu více možností než Scratch (například návratové hodnoty funkcí), ale přijde mi méně dotažený a vyladěný. Devizou Tinkeru jsou (placené) hry, na kterých se programování učí. Bohužel, vše je v angličtině.
textové i vizuální programování výukové hry pouze angličtina
méně dotažený programovací jazyk
Baltík
Baltík je vizuální programovací jazyk vytvořený v čechách. Jako jediný je kompletně placený, k dispozici je pouze demoverze. Program je třeba instalovat a instalace je překvapivě (na český produkt) v angličtině. Mě se bohužel demoverzi nepodařilo nainstalovat, vytrvale hlásila kritickou chybu. Ve verzi Baltie 4 C# lze prý psát i textové příkazy v jazyce C#. Z obrázku na wikipedii mi přijde program velmi špatně čitelný, ale možná je to jen nezvyk vidět pouze ikony.
jazyk C# čeština nutnost instalace (subjektivní) nepřehlednost programu
Podělte se
Znáte další jazyky pro výuku programování pro děti? Jsou tu některé informace zastaralé nebo chybné? Podělte se v komentářích.