Robot Karel
Robot Karel
Karel je zprovozněn na současných webových prohlížečích. Přestože je už skoro 50 let starý, může posloužit jako jemný úvod do tajů programování dětem asi tak ve věku 8–12 let. K výuce starších osob spíš doporučuji např. Greenfoot. (prosinec 2023)
24. dubna 2003
Měla to být učební pomůcka, aby se děti naučily programovat. Někde v pozadí bude nejspíš legenda o mínotaurovi nebo kybernetická myš v bludišti. Děti mají naučit robota Karla, jak se má vyhýbat zdem a jak si může značkovat cestu, kterou už prošel. Nebo cokoli jednoduššího – začíná se obvykle piruetou, nekonečně rekurzivním "vlevo_vbok". Karel se naučí bloudit ve svém dvorečku a děti se při tom tak trochu mimochodem naučí programovat. A proč Karel? – ačkoli ten nápad pochází odněkud z ciziny, jmenuje se po Karlu Čapkovi, který poprvé použil slovo robot ve své hře R.U.R.
Kursy programování s robotem Karlem u nás publikoval začátkem osmdesátých let Ruda Pecinovský a Tomáš Bartovský (snad ve VTM). Implementoval jsem tehdy Karla pod RT11, pod CP/M a nakonec na Ondrovi (to už podle Rudových připomínek a požadavků). Když jsem se nedávno chtěl naučit javascript, vzpomněl jsem si na svůj starý oblíbený program a napsal jsem ho znovu v javascriptu.
Karla buď můžete stáhnout, rozbalit do zvláštního adresáře a provozovat lokálně. Další informace viz
Připomínky nebo zprávy o nalezených chybách mi prosím oznamte e-mailem.
Kurs programování
Tento kurs již není k dispozici, protože na současných webových prohlížečích nefunguje. Znovu zprovoznit jej nehodlám.
Kurs jsem vytvořil jako bakalářskou práci z didaktiky na Masarykově ústavu vyšších studií ČVUT. Zatím se stále ještě jedná o testovací verzi, kterou si ovšem několik lidí už vyzkoušelo. Kurs je mentálně náročný, pro lidi asi tak od 15 let, malé děti by nebavil. Kurs buď můžete rovnou spustit nebo stáhnout, rozbalit do zvláštního adresáře a provozovat lokálně.
Cílem kursu je, aby absolvent
intuitivně chápal pojem algoritmus
chápal, co je to rekurze, a uměl ji používat
uměl používat základní příkazové struktury
V bakalářské práci jsem uvedl následující nedostatky:
Komunikace studentů mezi sebou a s lektorem. Kurz zatím nepodporuje ani nebrání vytváření studijních skupin. Kurz je sice automatizovaný do té míry, že nevyžaduje součinnost živého lektora se studentem, ale testy ukazují, že živý lektor může studentovi významně pomoci při obtížném rozhodování nebo při složitých úvahách. Ověřil jsem si, že kurz je opravdu náročný! Živý lektor by asi také přispěl ke zlepšení diagnostiky.
Diagnostika je zatím automatická a je založena na testování vyřešených úloh. Logická analýza úloh by nám možná nabídla lepší možnosti, směřovala by k příčinám chyb a snad by umožnila i citlivější hodnocení, ale to je spíš výzkumný úkol než řešení, které bych mohl okamžitě uplatnit. Požitek studentů z kurzu by se určitě zlepšil, kdyby se diagnostiky úloh účastil živý člověk: vnesl by do kurzu větší napětí, víc mezilidské komunikace a možná i překvapivé zvraty do příběhu.
Množství textu v návodech je pro mne noční můrou: dnešní lidé neradi čtou, obtížně se soustředí. V kurzu je hodně dlouhých textů (rady delfského orákula). Naopak mě překvapuje, jak pohotově se mladý člověk dokáže orientovat v neznámých složitých strukturách a rozhodovat se sice intuitivně, ale vesměs správně. Toho bych rád využil, ale zatím mi není jasné, jak.
Videoklipy, zvuky, simulace nebo třeba pouhé statické obrázky by mohly omezit rozsah psaného textu, bez kterého se zatím neobejdu. V tomhle směru si netroufám zdokonalovat kurz sám, spíš bych přenechal pole působnosti výtvarníkovi, hudebníkovi nebo zvukaři. Domnívám se, že třeba Karlův příběh by mohl být námětem pro sérii videoklipů - i to by pomohlo.
Automatická archivace vytvořených programů by ušetřila studentům nepříjemnou starost. Studenti se mají soustředit raději na řešení problému, než na obsluhu vývojového prostředí. Kurz by sice mohl ukládat hotové programy do cookie (kde už stejně uchovává stav kurzu, skóre a údaje o studentovi), ale velikost cookie je omezená. Proto by kurz musel hlídat rozsah programů a v případě, že student toho naprogramuje příliš mnoho, měl by se zachovat nějak slušně a rozumně. Zatím mi není jasné jak.
Nekompatibilita s prohlížeči a interprety javascriptu je do značné míry způsobena konkurenčním bojem o trhy na úkor uživatelů. Další překážkou, na kterou upozorňuje pan oponent, je poněkud překotný vývoj, který někdy vede i ke zpětné nekompatibilitě novějších verzí téhož prohlížeče. Navíc mám nejasný dojem, že kompatibilitu narušují i různé verze operačních systémů a instalace různého softwaru. Zejména podezírám software, který může fungovat jako webový klient (tabulkové kalkulátory, databáze, textové procesory). Podezřelé jsou i operační systémy, které používají týž interpret skriptovacího jazyka jak pro interpretaci skriptů vložených do webových stránek, tak i pro interpretaci svých pomocných skriptů nebo dávek. V kurzu se zásadně vyhýbám jazykovým konstrukcím (jak v html, tak v JavaScriptu), které nejsou běžné, obecně potřebné a obecně prověřené dlouholetým používáním. Zatím usiluji o kompatibilitu kurzu s prohlížeči Microsoft Internet Explorer (IE) verze 6.0 a Netscape Communicator verze 4.78. Rád bych dosáhl kompatibility s IE od verze 5.
To všechno jsou nejen nedostatky, ale také náměty k budoucímu vývoji kurzu Zachraňte Karla!