Karel (programovací jazyk)

Karel 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. 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. 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. 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. Žá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.

Karel H 
Nová modifikace programovacího jazyka karel++, která má implementováno nové GUI a prvky programovacího jazyka C#. Syntaxe příkazů je podobná CSS, HTML a Java. Tato modifikace byla pojmenována podle autora Karla Hladíka.

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 
 
 
 Syntaxe jazyka Karel
 Karel++
 Slovenská verze (Robot Karol++)

 Robot Karel: vývojové prostředí
 xKarel - další Karel pro PC
 Robot Karel pro iPad 
 Karel-3D v JavaScripte a C++ (sk) (en) (de) (es) 2018
 Karel-3D s WebGL (sk) (en) (de) (es) 2018
Česká verze Karel 1981 (2021)
Dobrý Karel ještě žije/Dobrý Karel žije víc, než jsem čekal (přehledové články, Česká škola, 2004)

Programovací jazyky