Příručka pro děti a rodiče o výuce programování dětí na prvním stupni (tj. věk 6 až 11 let).
Permalink
Failed to load latest commit information.
examples/scratch pridat priklad s auty Apr 25, 2016
images pridat infografiku Oct 30, 2016
README.md první zkušenosti s bee botem Feb 16, 2017
myslenkova-mapa.mm poznamky o piagetovy Nov 5, 2016

README.md

Programování pro děti

Příručka pro pedagogy a rodiče o výuce programování dětí na prvním stupni (tj. věk 6 až 11 let).

O příručce

Tento text není a nebude učebnicí programovaní a není pro děti. Slouží pro rodiče, vedoucí programátorských kroužků a pro učitele informatiky. Je o tom jak učit malé děti programovat, jak je naučit algoritmizovat a pochopit základní programátorské dovednosti. Není to ani příručka, podle které by se dalo postupovat krok za krokem, protože každé dítě a každá třída je vysoce individuální. Zkusím zde popsat různé možnosti výuky a jejich kombinace a uvést nezbytné detaily, které vám umožní vytvořit si vlastní učební plán. Jedná se zkušenosti mé i o zkušenosti dalších učitelů a rodičů. A samozřejmě uvítám, pokud se se mnou podělíte o svoje zkušenosti. Můžete mi psát na miroslav@suchy.cz. Stejně tak budu rád když mi dáte vědět, zda jste tuto příručku použili a jak se vám líbila.

Nemám potřebu vytvářet nějaký nový učební systém na programovaní. Už jich existuje plno. Budu zde na ně uvádět odkazy. A budu je také odstraňovat tak jak budou některé z nich zanikat a jiné místo nich vznikat. Pokud naleznete nějaký skvělý výukový program, tak budu rád když mi dáte vědět.

Tato příručka teprve vzniká. Píši je veřejně. Můžete ji používat, komentovat, přispívat k ní - akorát mějte na paměti, že ještě není hotová.

Věk žáků

Tento text je zaměřen na děti v prvních ročnících základních škol.

První úlohy nevyžadují ani znalosti čtení ani psaní, takže jsou vhodné i pro děti z posledních tříd mateřských škol.

Pokud hledáte příručku pro střední školy, případně poslední ročníky základních škol, tak vám doporučuji Informatiku pro každého, která je pro starší děti vhodnější.

Předškolní děti

U dětí ve věku 5 let a méně zřejmě nelze programování resp. algoritmizaci provádět, protože dle Piageta se nacházejí ve stádiu "názorového (prelogického) myšlení", kdy plně nerespektuje logiku. Názorně no můžete vidět na tomto experimentu. Toto období dle Piageta trvá až do 7 let. Ale dle mé osobní zkušenosti je možné začít pracovat s nadanými žáky začít již kolem 5-6 roku. Je nutno dbát na použití pomůcek, které mají okamžitou vizuální vazbu. Např. GCompris pro seznámení se s ovládáním počítače (viz dále) nebo Cubetto či BeeBot.

Cubetto

Cubetto je robot-želva programovaný zasouváním fyzických kostiček do dřevěného rámu. Žádná obrazovka, žádna klávesnice. Jenom dřevo a plast. Návody do hodin.

Do dřevěné ovládací desky se vkládají plastové bloky (malé destičky), které mají tvar šipek (rovně/vlevo/vpravo) a po jejich vložení a zmáčknutí tlačítka Start se robot Cubetto vydá zadaným směrem. Neexistují zde podmínky ani cykly. Vše je maximálně intuitivní. Robot vykonává příkazi postupně a na ovládácí desce vždy svítí světélko pod blokem, který je zrovna robotem vykonáván.

Na ovládací desce je místo na 12 příkazů. Plus funkční blok na 4 příkazy. Na vyvolání funkce slouží modré bloky. Při spuštění funkce svítí světlo pod modrým blokem i pod právě vykonávaným blokem v té funkci, což umožní dětem vizuálně pochopit jak fungují funkce nebo dokonce rekurze. Funkční blok samozřejmě není vhodný pro předškolní věk, ale je možné se ke Cubettovi vráti později během prvního stupně ZŠ.

Pro úplnost dodám, že existují dva další bloky (byli distribuovány jako prémie za financování na Kickstarteru): blok negace a blok náhodného příkazu.

Ke Cubettovi se dodávají hrací plátna, po kterých se Cubetto může pohybovat - jeden jeho krok, je přesně jeden čtverece na plátně. V robotovi není žádné optické čidlo, které by rozpoznávalo něco na tomto plátně. Cubetto se může stejně dobře pohybovat po čisté zemi nebo po papíru, který si pokreslíte sami. Plátna od Primotoys vám akorát ulehčí vymýšlení příběhů. Můžete zadávat úlohy "dojdi ze zámku na kopec, ale vyhni se vodě", "dojdi od sfingy k pyramidě" nebo "dojdi z planety na hvězdu, ale vyhni se sopce a meteorům".

Bee Bot

Bee Bot - robot-včelka. Programuje se stisknutím tlačítek na zádech a po stisknutí zeleného tlačítka se příkazy vykonají.

Původní Bee Bot je možné programovat pouze tlačítky na zádech včelky. Zvládne až 40 příkazů. A po položení na zem a stisku tlačítka "Go" se rozjede a pohybuje se v zadaných směrech.

Blue Bot funguje stejně, ale navíc ho můžete ovládat přes Bluetooth. Buď přes TacTile Reader nebo z tabletu (iPad, Android) nebo z PC (Mac, Windows). S TacTile Reader dostanete základní sadu kartiček (dopředu, dozadu, otočit se) a pak Blue Bot funguje stejně jako Cubetto. Sice nemá funkční blok, ale můžete propojit více TacTile čteček za sebe pomocí přiloženého kabelu a vytvářet delší programy. V rozšičující sadě kartiček naleznete mj. kartičku opakování a závorky - ty vám umožní dát kus kódu do závorek a opakovat tu závorku. Např. [ vpřed vlevo ] x4.

Osobně mi přijde vizuální zpětná vazba lepší u Cubetta, ale Bee-Bot dokáže být levnější pokud nakupujete více kusů pro celou třídu. Objednávat je asi nejlepší u TTS Group z UK

Velkou výhodou je, že Bee Bot a Cubetto má stejný krok, takže jejich podložky jsou zaměnitelné.

Velikost třídy

Zatímco na střední škole lze zvládnout výuku s poloviční třídou (cca 15 dětí), tak menší děti jsou živější a osobně mi přišlo 8 dětí na třídu jako limitní množství. Optimum se mi zdá cca 6 dětí na třídu. Resp. na jednoho učitele. Jelikož děti zpracovávají úlohy samostatně, je možné postavit třídu o 30 dětech na které budou 4 učitelé (resp. kombinace učitel a asistent).

Učebna a pomůcky

Příručka počítá s počítačovou učebnou. Většinou stačí libovolný OS, protože se bude používat pouze internetový prohlížeč. Pokud se používá nějaká aplikace, tak jsem se snažil vybrat takovou, kterou lze nainstalovat jak na Linux, Apple, tak i na Windows.

Organizace výuky

U každé úlohy se snažím uvádět časovou dotaci tak, abyste si mohli vytvořit vlastní učební plán. Čerství prvňáci ještě nejsou zvyklí udržet pozornost delší dobu, takže první úlohy jsou extrémně krátké a často se střídají. U druháků jsem narazil na to, že po 3 měsících už je jedno programovací prostředí nudilo, ačkoliv ještě nevyčerpali jeho možnosti. Tomu je vhodné předcházet a raději častěji měnit programovací prostředí a později se k nim opět vracet.

Ačkoliv dělím příručku pro různé věkové třídy, tak toto dělení rozhodně není závazné. A pokud to děti bude bavit, tak můžete samozřejmě používat úlohy určené jak pro mladší, tak i pro starší děti. Většinou to nebude vadit.

Licence

Licence Creative Commons Toto dílo podléhá licenci Creative Commons Uveďte původ 4.0 Mezinárodní License.

1. třída

GCompris

Program GCompris obsahuje mnoho edukačních úkolů pro děti ve věku od 2 do 10 let. Je ideální pro seznámení s počítačem a jeho ovládáním.

Instalace:

Program je k dispozici zdarma.

Počítejte s časovou dotací 8 minut na jednu úlohu. Tj. maximálně 5 úloh během jedné vyučovací hodiny. Vždy si zopakujte dvě starší lekce z předchozí hodiny (dle vlastního uvážení) a 3 nové.

GCompris je možné využít i kdykoliv později při výuce programování - např. když čekáte až přijdou všichni žáci nebo když žák skončí dříve - v tomto případě dětem říkám, že si můžou zahrát něco z "tučnáka" (což je ikona programu GCompris) dle vlastní volby. Pokrytí všech vybraných lekcí z GComprisu byste měli zvládnout za 4,5 vyučovací hodiny.

GCompris má administrativní rozhraní, kde můžete nastavit, které úlohy budou žáci vidět a které jim zůstanou skryty. Osobně jsem ale nechával vše odemčené, a žáci si rychle našli úlohy, které odpovídaly jejich aktuálním znalostem a schopnostem.

Práce s myší

kočička - myš - hýbej myší Hýbej myší. Děti musí pohybem myši pokrýt celou plochu obrazovky. (8 minut)

kočička - myš - hýbej myší Klikej myší. Děti musí kliknout na různých místech plochy. Plocha, na kterou mají kliknout, je velká, takže motorika nemusí být tak jemná. (8 minut)

kočička - myš - hýbej myší Klikněte a kreslete. Plocha na kliknutí je menší a děti musí na objekty kliknout v daném pořadí. (8 minut)

kočička - myš - ovládej hadici Ovládej hadici. Přesné táhnutí myši po klikaté dráze. (8 minut)

kočička - myš - dvojité klikání myší Dvojité klikání myší. Nácvik dvojkliku na velkých tlačítkách. (8 minut)

kočička - myš - dolování zlata Dolování zlata. Procvičení skrolovacího kolečka. (8 minut)

Práce s klávesnicí

kočička - klávesníce - jednotlivá písmena Jednotlivá písmena. Základy orientace na alfanumerické klávesnici. (8 minut)

kočička - klávesníce - čísla na kostce Čísla na kostce. Základy orientace na numerické klávesnici. (8 minut)

Pamětové aktivity

tučňák - slon - mašinka Pamětová hra s vláčky. Rozlišování vzorů a trénink krátkodobé paměti. (8 minut)

Prostorová orientace

tučňák - bludiště - bludiště Bludiště. To první je jednodušší bludiště, kdy pohyb je relativní k obrazovce (šipka nahoru je pohyb nahoru po monitoru). Až to děti zvládnou, tak mohou vyzkoušet druhé bludiště, kde pohyb je relativní (šipka nahoru je pohyb vpřed, což záleží na tom, kam je tučňák zrovna natočený). (2krát 8 minut).

Algoritmy

prasátko - lodička s kruhem Pracuj s plavební komorou. Činnost je potřeba vykonat v určité posloupnosti. (8 minut)

medvěd - šestiúhelníky Šestiúhelník. Aproximace dat a postupné přibližování se k výsledku. (8 minut)

ovečka - tabule s křídou - kalkulačka - sčítání Procvič si operaci sčítání. Jednoduché algebraické operace. (8 minut)

panda - autíčko Posouvání bloků. Jednoduchý problém k vyřešení. (8 minut)

Kurz 2 z Code.org

V tuto chvíli se děti už mohou vrhnout na vlastní programování. Začněte s kurzy se Studio.Code.org. Nyní záleží na tom, jak moc dobře děti umí číst. Pokud umí číst po písmenech, tak můžete začít rovnou u kurzu 2. Zde je vyžadována znalost čtení, protože příkazy jsou napsané textově a děti je (jenom) přetahují. Ale příkazů není mnoho a děti mnohdy "podvádějí" a pamatují si, co příkaz dělá, podle prvního písmena. Pokud si myslíte, že děti by to čtení nezvládly, tak můžete zkusit začít s kurzem 1, který využívá intuitivních ikonek, ale jinak jsou oba kurzy velmi podobné - po jejich dokončení by děti měly chápat posloupnost příkazů a cykly.

Jelikož jsou oba kurzy obsahově podobné, tak je možné začít s prvním kurzem a v polovině přejít do poloviny (nebo třetiny) druhého kurzu.

Časová dotace je 19 hodin.

Na offline aktivity je nutné se dopředu připravit a nachystat si prostor - v některých učebnách se vám budou špatně realizovat a je možná lepší je provést v obyčejné třídě.

Kurzy na Code.org umožnují sledovat váš postup (které úlohy jste úspěšně dokončili). Ale má to háček. Buď se musíte přihlásit (více o tom níže), nebo nesmíte mít sdílený počítač - což se ve školních učebnách téměř nedá splnit. Naopak jednoduché to je při domácí výuce, kde dítě má svůj vlastní počítač.

A jak postupovat s přihlašováním ve školní třídě? Nejjednodušší je zřídit každému dítěti školní email. Pokud byste zřídili email na nějakém freemailu, tak narazíte na to, že děti relativně často zapomenou své heslo a vy mu ho musíte obnovit. Což je jednak časově náročné a také musíte porušit bezpečností pravidlo (např. znáte jeho bezpečností otázku/odpověď). Pokud vaše škola nemá vlastní emaily, tak doporučuji Google Apps for Education, které vám umožní zprovoznit email (kalendář a další služby) na vaší školní doméně. Vy jako učitel můžete kdykoliv vytvářet libovolný počet uživatelů a lehce jim resetovat hesla. Celé to poskytuje Google zdarma a nastavení nevyžaduje velké technické dovednosti.

Bezpečnost na internetu

K emailu si děti musí vymyslet heslo. Nejlepší je, když si vymyslí krátkou větu ze čtyř slov - např. "Moje heslo je silne", "Nas dum je zeleny". Bez diakritiky a bez speciálních znamének. Takové heslo je jednodušší k zapamatování a těžší k uhodnutí (viz XKCD).

Pokud chcete děti poučit o internetové bezpečnosti obecně, pak doporučuji libovolný výstup z projektu Web Rangers.

Scratch

Jedno z nejlepších programátorských prostředí pro děti je bezesporu Scratch. Program se tvoří stejnou metodou skládání bloku jako v Code.org. Ovšem příkazy už jsou mnohem obecnější a pestřejší, takže lze vytvořit velkou škálu programů, které už mají i smysluplnou činnost.

Programy můžete vytvářet přímo na stránce na adrese scratch.mit.edu/projects/editor/. Bohužel webová verze vyžaduje nainstalovaný Flash, který se v dnešní době nedoporučuje mít nainstalovaný, protože je s ním spojeno mnoho bezpečnostních problémů. Je možné si stáhnout a nainstalovat offline editor. Starší verze (1.4) jsou běžně součástí většiny linuxových distribucí.

Na stránkách ScratchEd je mnoho příkladů a materiálů pro učitele.

Uvedu zde několik vhodných úloh pro prvňáky. Samozřejmě se nekladou meze různým variacím, které vás napadnou. Každou z těchto úloh jsou schopni děti naprogramovat zhruba za jednu vyučovací hodinu.

Můžete také použít projekty z Code Club.

Lightbot

Lightbot jednoduše ovládané programování, kde nepotřebujete ani číst ani psát. Takže je vhodné i pro předškolní děti. Na webu je dostupné jenom několik úrovní v rámci projektu Hour of Code - zbytek je dostupný především na iPadu a Androidu. Základní úrovně zdarma, pokročilé za cenu cca 90 Kč. Takže je to spíše vhodnější pro rodiče, kteří si Lightbota mohou nainstalovat na svůj telefon a nabídnout dětem jako hru při čekání u lékaře, na vlak apod.

The Foos

Z podobného soudku jako Lightbot je i The Foos. Odlehčenou verzi je možné hrát přímo v internetovém prohlížeči, ale plnohodnotnou verzi je nutné hrát na tabletu (iPad nebo Android). Hra je zdarma, ale obsahuje možná až moc gamifikace, takže se dle mého názoru na školní výuku nehodí a opět je to spíše vhodný doplněk na domácí hraní-programování.

Offline aktivity

Je dobré občas proložit hodinu offline aktivitou. Zde naleznete seznam nápadů na offline aktivity na Code.org. Je vhodné mít nastudovanou alespoň jednu aktivitu do zásoby, tak abyste mohli uskutečnit hodinu i když nenadále vypadne elektřina nebo internet. Některé aktivity obsahují velmi silný aha zážitek.

Po dvou až třech lekcích se Scratch doporučuji zařadit následující aktivitu: Děti se postaví do řady do jednoho třídy. První bude dělat kocourka ze Scratche a bude poslouchat to co mu říká žák za ním a bude to přesně vykonávat. Druhý žák má za úkol zadávat povely a dovést prvního žáka do protilehlého rohu (diagonálně). Povely musí být jednoduché - krok vpřed, otoč se vpravo... Dohlédněte aby první student vykonával příkazy přesně. Pokud v důsledku povelu má narazit do židle nebo lavice, tak by do ní měl narazit. Při této aktivitě si žáci uvědomí, že počítač vykoná přesně to co mu zadáte a nic víc. Aktivitu můžete buď zjednodušit (přejít z bodu do bodu a mezi nimi je jenom jedna židle) nebo ztížit (více překážek, hodně otoček).

Druhou aktivitou, kterou určitě doporučím je programování na milimetrovém papíře. Tato aktivita málokdy vyjde. O to větší je to zážitek. Při zápisu děti velmi často vytvoří nové vlastní značky. Značky nezapisují po řádcích a zleva doprava. A pokud se to už někomu povede správně zapsat, tak druhý žák špatně zápis špatně interpretuje. Zde si žáci uvědomí, že to co je zřejmé pro ně. Nemusí být zřejmé pro druhé.

2. třída

Kurz 3 z Code.org

Kurz 3 z Code.org navazuje na kurzu 2, ale obsahuje 21 hodin. Což je docela hodně (2/3 školního roku) a děti to pravděpodobně nebude tak dlouho bavit. Proto je vhodné to prokládat i jinými aktivitami. Z toho vyplývá, že stihnete dodělat asi tak polovinu tohoto kurzu.

CodeCombat.com

CodeCombat vypadá jako hra na hrdiny. Akorát neovládáte hrdinu přímo, ale jeho pohyb a souboje musíte naprogramovat. Už se neprogramuje přetahováním bloků jako ve Scratchi a Code.org, ale žáci píší příkazy přímo na klávesnici. Příkazy jsou anglicky, ale funguje tam automatické doplňování, která vyváží případnou nejistotu žáků. Prostředí, zadání a příklady jsou většinou česky (aktuálně je přeloženo 33% - pomoc s překladem je vítaná). Programuje se už v konkrétním jazyku. Doporučuji začít s jazykem Python, na který můžete později snadno navázat. Kromě Pythonu je možné použít JavaScript, Lua, CoffeeScript, Clojure a Io.

V druhé třídě asi stihnete pouze první úrověň "Kobka Kithgardu", který se skládá asi z 20 úkolů a pokrývá základní syntaxi, metody, parametry, řetězce, cykly a proměnné. Za jednu vyučovací hodinu žáci stihnou tak 2 až 3 úkoly. Takže časová dotace jedné úrovně je cca 6 hodin.

Hra je zdarma. Existuje možnost si připlatit, ale jelikož nedávno podražili a jejich cenová politika je netransparentní (poslední cena byla 49 USD za žáka), tak doporučuji další úrovně nedokupovat a neplatit si za učitelské prostředí, které tam existuje. Při výuce se lze naštěstí bez tohoto obejít.

Lego WeDo

Lego WeDo je sada s motorkem a několika sensory. A je možné ji kombinovat s běžnými Lego kostkami. Sada je vhodná pro děti od 7 let. Nemám dobré zkušenosti s tím, když je více dětí na jednu sadu. A pořízení jedné sady pro každé dítě v učebně je nákladné - základní sada stojí cca 4000 Kč. V ČR ji lze zakoupit od Eduxe

Programovat toto Lego lze buď z proprietárního WeDo software - což stojí další 2500 Kč za licenci (9500 Kč pro celou učebnu), nebo můžete použít na programování program Scratch. Což je asi i vhodnější, protože je pro děti intuitivnější. Scratch verze 1.4 neumí ovládat světelné bloky.

K dispozici je 8 návodů zdarma.

Pozn: i když je fyzicky možné připojit k počítači více prvků, tak použitý protokol neumožnuje pracovat s více než dvěma prvky. Takže např. motor a jeden sensor nebo dva sensory, ale už ne motor a dva sensory.

BBC Micro:Bit

BBC Micro:Bit - je jednočipový počítač specialně navržený pro 10+ děti. Ve Velké Británii je distribuován zdarma všem dětem v 7. třídě (odpovídá naší 5-6. třídě). Počítač vypadá jako malá destička a stojí 12 liber (cca 350 Kč). Je vybaven procesorem ARM. Obsahuje pole 5x5 diod na kterém je možné zobrazovat piktogramy nebo text. Má dvě tlačítka a 22 elektrických pinů. Navíc ještě kompas, akcelerometr, USB a bluetooth rozhraní. K počítači se připojí pomocí USB kabelu a operační systém ho vidí jako disk (mass-storage). Ve webovém editoru (doporučuji začít s CK Javascript nebo Microsoft Block Editor) vytvoříte program a po kompilaci si můžete stáhnout HEX soubor. Ten uložíte na ten disk (micro:bitu). Micro:bit si automaticky načte nový firmware z tohoto souboru a restartuje se. Aplikace je možné vytvářet i z mobilu (GooglePlay) a nahrávat bezdrátově přes bluetooth - ovšem není to moc komfortní. K dostání je v Kitronik.

Výukové projekty od CodeClub.

Další zdroje

Odkazy na další zdroje, na které jsem narazil, s mým krátkým komentářem.

Tablexia - hra na telefon/tablet. Je primárně určena pro dyslektiky. Obsahuje několik her, které rozvíjejí kognitívní schopnosti. Hra "Potmě" je zaměřena na schopnost serializovat. Ve hře potmě se dostáváme do role lupiče, který si musí předem přesně naplánovat průchod domem až k trezoru plného peněz.

RoboRally - desková hra, kde plánujete pohyb svého robota, ale je třeba brát v úvahu pohyby robotů ostatních hráčů. Hra je sice uvedena jako 12+, ale děti, které si vyzkoušeli nějaké programování (např. Hour of Code) ji zvládají.

Baltík - program, který byl vzorem pro Scratch. Bohužel je dostupný jenom pro Windows. Jeho ovládání je mnohem složitější a licence je poměrně drahá.

Kano - Počítač postavený na RaspberryPi. Přijde rozložený a dítě si ho musí samo složit (8 letá dcera to zvládla). K počítači je přiložená speciální Linuxová distribuce, která se umí sama aktualizovat. Je tam několik her, které si mohou děti zahrát. A také průvodci, kteří je povedou k tomu si tu hru naprogramovat. Samozřejmě obsahuje i např. Scratch a internetový prohlížeč a je možné ho používat jako normální počítač.

Blockly - knihovna pro vizuální programování jako je Code.org a Scratch. Pomocí Blockly můžete vytvářet vlastní kurzy podobně jako na Code.org. Ale i složitější rozhraní jako je např. programování jednočipů nebo telefonů.

MIT App Inventor - je webové aplikace vytvořená pomocí Blockly, která vám umožní vizuálním stylem vytvořit aplikace pro telefony a tablety s Androidem. Výslednou aplikaci je možné přenést do telefonu oskenováním QR kódu. Podobně vypadá i AppLab, ale ten neumožňuje přenést výslednou aplikaci na české telefony.

Lego MindStorms - vývojově navazuje Lego WeDo. Má více sensorů a motorů, lze jich zapojit a ovládat více najednou. Programování je už složitější a vhodné pro děti od 13 let.

GEG - skupina pedagogů kolem GoogleApps zaměřující se spíše na uživatelské ovládání počítačů (vytváření videií, dokumentů...).

Cube Composer - úvod do funkcionálního programování formou hádanek. Anglicky, spíše pro starší.

OzoBot - robůtek, který sleduje čáru. Různé vzory barev na čáře fungují jako příkazy, takže robůtka můžete programovat čistě tužkou a papírem. Rezenze.

Stručný přehled

infografika