Karel (programovací jazyk)
Author
Albert FloresKarel je programovací jazyk (a většinou také vývojové prostředí) určený pro výuku programování naprostých začátečníků. Programy umožňují ovládat robota pohybujícího se po čtvercové síti.
Původní robot Karel
S myšlenkou výuky programování prostřednictvím tvorby programů pro svět robotů přišel na přelomu 70. a 80. +more let 20. století Richard E. Pattis, který jej používal na Stanfordově univerzitě při výuce studentů. Pojmenoval jej Karel (a ne Charles) jako poctu Karlu Čapkovi, který slovo robot zavedl do světového slovníku.
V Pattisově verzi se robot pohyboval ve městě sestávajícím z vodorovných ulic (streets) a svislých bulvárů (avenues - svislý směr měla připomínat první písmena: AV).
Robot rozuměl 5 základním příkazům: move (přesuň se na další křižovatku), turnleft (otoč se vlevo), putbeeper (polož bzučák), pickbeeper (zvedni bzučák) a turnoff (vypni se), dokázal testovat, zda je před ním volno, zda jsou v jeho blízkosti bzučáky a na kterou stranu je natočen. S pomocí těchto základních příkazů a pomocí programových konstrukcí (sekvence, smyčky, podmíněné příkazy) bylo možno definovat nové příkazy a používat je v programu.
V půli 90. let byl Pattisův Karel opuštěn, když Stanford začal při výuce používat programovací jazyk Java. +more Od roku 2005 se Karel do Stanfordu vrátil v nové implementaci právě v jazyku Java a IDE Eclipse. V současnosti studenti na Stanfordu začínají v jazyku Karel a během několika týdnů plynule přecházejí k Javě.
Příklad
Jednoduchý příklad programu v programovacím jazyce Karel:
BEGINNING-OF-PROGRAM
DEFINE turnright AS BEGIN turnleft turnleft turnleft END
BEGINNING-OF-EXECUTION ITERATE 3 TIMES turnright
turnoff END-OF-EXECUTION
END-OF-PROGRAM
Lokalizace
V Česku byla původní myšlenka lehce upravena. Robot se pohyboval po obdélníkovém, šachovnicovitě uspořádaném dvorku, na jehož políčka pokládal či z nich zvedal značky. +more Jeho základní příkazy byly přeloženy do češtiny: Krok, VlevoVbok, Polož (rozuměj značku) a Zvedni (značku). Kromě toho uměl otestovat, je-li před ním zeď, je-li pod ním značka a je-li otočen na sever.
Robot Karel může vykonávat velmi rozmanité činnosti: od primitivních příkazů typu VpravoVbok přes jednoduché skoky, oběhy pole a kreslení různých obrazců z Karlových značek, až ke složitému hledání značek v bludišti nebo sčítání a porovnávání čísel (představovaných počtem značek na jednotlivých políčcích). Tato varianta Karla je dodnes aktualizovaná (naposledy v roce 2021) a funguje kolem ní komunita uživatelů a programátorů.
Na Slovensku vznikla verze s názvem Robot Karol++, u které jsou klíčová slova ve slovenštině a která obsahuje některá další rozšíření. Tato verze byla později přeložena i do češtiny, angličtiny a němčiny.
Metodika
Kolem české verze Karla vznikla rozsáhlá metodika s řadou nejrůznějších výukových materiálů. Tato metodika v první etapě výuky vůbec nepoužívá v programech proměnné, čímž snižuje nároky na množství látky, kterou je třeba žákům přednést. +more Žáci se v této etapě naučí především dekomponovat složitější problémy na sadu problémů jednodušších a používat základní programové konstrukce. Používání proměnných se zavádí až při přechodu na konkrétní programovací jazyk. Zde žáci používají knihovnu simulující jim známý svět robota Karla. Nejprve se při přepisování svých programů pro robota Karla naučí základy syntaxe použitého programovacího jazyka a v dalších etapách začnou tyto programy zdokonalovat využitím proměnných.
Karel++
Programovací jazyk Karel byl později rozšířen na objektově orientovaný jazyk označený Karel++ (po vzoru C++). Tento jazyk je syntakticky podobný jazyku Java.
V hudbě
Robot Karel se objevuje v klipu Nikdy nic nebylo od Sto zvířat
Odkazy
Reference
Literatura
Joseph Bergin, Mark Stehlik, Jim Roberts, Richard E. Pattis. Karel++: A Gentle Introduction to the Art of Object-Oriented Programming. John Wiley & Sons, 1996. .
Externí odkazy
[url=http://mormegil. wz. +morecz/prog/karel/prog_doc. htm]Syntaxe jazyka Karel[/url] * [url=http://csis. pace. edu/~bergin/karel. html]Karel++[/url] * [url=https://web. archive. org/web/20060628020358/http://www. stahuj. cz/podnikani_a_domacnost/vyukove_programy/robotkarol/]Slovenská verze (Robot Karol++)[/url].
* [url=http://karel. oldium. +morenet/]Robot Karel: vývojové prostředí[/url] * [url=http://xkarel. sourceforge. net/cz/index. php]xKarel - další Karel pro PC[/url] * [url=http://karel. cloudmakers. eu/sk]Robot Karel pro iPad[/url] * [url=https://sourceforge. net/projects/karel-3d/]Karel-3D v JavaScripte a C++ (sk) (en) (de) (es) 2018[/url] * [url=https://sourceforge. net/projects/karel-3d-webgl/]Karel-3D s WebGL (sk) (en) (de) (es) 2018[/url] *[url=http://www. karel1981. cz/]Česká verze Karel 1981 (2021)[/url] *[url=https://sites. google. com/a/ceskaskola. cz/wiki/Home/vybrane-clanky-z-let-2001-2009/ict/dobry-karel-jeste-zije. overridemobile=true]Dobrý Karel ještě žije/Dobrý Karel žije víc, než jsem čekal (přehledové články, Česká škola, 2004)[/url].