Jan Wagner: Dobrý Karel ještě žije

čtvrtek 25. března 2004 ·

Karel je jednoduchý programovací jazyk určený pro výuku programování naprostých začátečníků. Jeho obliba v době osmibitů byla značná, dnes se na něj možná neprávem zapomíná. A protože se někde stále používá ještě letitá verze pro MS-DOS, pokusím se o stručný přehled dostupných implementací pro MS Windows, MacOS nebo Linux.

Jedním z modulů školení P v rámci SIPVZ je ICT ve výuce na 1. stupni ZŠ. V rámci diskuze k jeho obsahu se pochopitelně probírá i výuka základů programování. K nepoužívanějším a nejrozšířenějším aplikacím pro nejmladší žáky patří Baltík, který se v rámci mezinárodního projektu Tvořivá informatika s Baltíkem stal základem pro komplexní zvládnutí ICT již na prvním stupni ZŠ (připomínám, že Baltík byl v softwareovém balíčku v roce 2001). Oblíbeným nástrojem jsou ještě implementace jazyka  Logo  (s pověstnou želvičkou), vyvinuté speciálně pro výuku dětí z jazyka LISP týmem Seymoura Paperta v roce 1967 na MIT, a občas se používá ještě další český vizuální systém Petr.

Karel je jednoduchý programovací jazyk určený pro výuku programování naprostých začátečníků, v němž několik málo základních příkazů slouží k ovládání virtuálního robota. S touto myšlenkou přišel na přelomu sedmdesátých a osmdesátých let minulého století století Richard E. Pattis, který ji využíval na Standfordské universitě při výuce svých studentů. Jazyk pojmenoval Karel 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ů (avenue). Robot rozuměl pěti 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), a  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. Pattis napsal o výuce programování za pomoci světa robota Karla několik knih, z nichž nejznámějí je Karel The Robot: A Gentle Introduction to the Art of Programming.

U nás byla původní myšlenka modifikována a 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ími příkazy byly: 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. Pomocí kombinace těchto základních příkazů je možné definovat nejrůznější činnosti od nejrůznějšího obíhání či hledání značek v bludišti po sčítání a porovnávání čísel, představovaných počtem značek na jednotlivých políčcích. Ke Karlovi vznikla rozsáhlá metodika s řadou nejrůznějších výukových materiálů, žáci se mohou naučit především dekomponovat složitější problémy na sadu problémů jednodušších a používat základní programové konstrukce, jako jsou složený příkaz, podmíněný příkaz, cyklus a rekurze. Pattisovo prostředí se dočkalo i svého objektově orientovaného nástupce označovaného Karel++. I on má svoji publikaci: Karel++: A Gentle Introduction to the Art of Object-Oriented Programming.

Obliba programovacího jazyka Karel byla v éře osmibitů obrovská, dnes se na něj možná neprávem zapomíná. A protože se někde stále používá ještě letitá verze pro MS-DOS, pokusím se o stručný přehled dostupných implementací pro GUI MS Windows, MacOS nebo Linux. Je jich celá řada, některé jsou českého původu nebo je k dispozici i česká verze. Vzhledem k rozsáhlé dostupné metodice a dostupným materiálům na iternetu by aplikace ve výuce neměla být zásadním problémem. 


Robot Karol++

Jednou z nepropracovanějších a nejmodernějších implementací je Robot Karol++ slovenského autora Ondreje Krška, který zavádí některá rozšíření jazyka, obsahuje programátorský editor se zvýrazněním syntaxe a zobrazuje robota v 3D náhledu. Instalační soubor pro MS Windows má 748 kB, je k dispozici i česká verze a dokumentace ve formátu PDF.

xKarel

Další verze xKarel je českého původu, autoři Radim DostálPetr Abrahamczik ji napsali v jazyce  ANSI C++ s použitím knihovny FLTK a je šířena se zdrojovými kódy pod licencí GPL. xKarel pracuje pod MS Windows, Unixem či Linuxem a je možné ho zkompilovat i pro MacOS. Pohyb Karle můžeme sledovat v samostatném okně opět v 3D náhledu. Program je lokalizován do českého a anglického jazyka. Instalační soubor pro MS Windows má 921 kB.

KarelJ

Multiplatformní verze KarelJ je, jak název napovídá,  naprogramována v jazyku Java. Vychází z původní ideje a projektu Karel, napsaného v jazyce C. Pracuje na systémech s MS Windows, MacOS a Linux (POSIX, X11), kde je instalován run-time Java. Instalační archiv má včetně zdrojového kódu a dokumentace jen 690 kB.


Jarel

Další multiplatformní implementací je Jarel, opět  napsanou v jazyce Java, jde ale zatím o ranou alfa verzi. Instalační archiv má velikost 795 kB.


pyKarel

Velmi zajímavý je projekt pyKarel, který využívá prostředí napsané v jazyce Python (opět jde o multiplatformní provedení pro MS Windows, MacOS a Linux). pyKarel překládá instrukce Karla do jazyka Python a interpretuje je s využitím knihovny wxPython. Instalační soubor pro MS Windows má velikost 2,17 MB.


Karel P. Plavjaníka

Další českou implementací je Karel autora Petra Plavjaníka, který původně vznikl jako ročníkový projekt v první roce jeho studia na MFF UK. K dispozici je verze pro MS-DOS s instalačním souborem o velikosti 76 kB a verze pro MS Windows o velikosti 342 kB.


Karel 3D

Na závěr jsem si nechal další českou verzi pro MS-DOS gymnasisty Karla Klímy Karel 3D, která má velmi dobrou on-line podporu a který je na našich školách, vybavených často i historickými PC, stále používán. Instalační archiv má velikost 139 kB.

Prosím čtenáře o případné upozornění na další implementace jazyka Karel, určitě budou další.


Proč a jak programování učit?

Vraťme se ale k modulu školení P ICT ve výuce na 1. stupni ZŠ: neměl by určitě opomíjet desetiletí osvědčené metodiky a programování v tak zvaných „malých programovacích jazycích", které je nutné brát především jako jedny z nástrojů k rozvíjení tvůrčích schopností dětí. Školení pedagogů je samozřejmě jen základní podmínkou k úspěchu. Školy mají neuspokojivý poměr žáků na jeden počítač, chybí podpora v řadě oblastí, na druhou stranu ale stoupá vybavenost domácností počítači a rozšiřuje se zavádění počítačových systémů do nejrůznějších oblastí. A je také možné, že žáky zbytečně podceňujeme…

Je také rozšířenou chybou redukovat počítače jen na osobní počítače – ty tvoří jen cca 5 procent instalovaných systémů. Stejně tak je neudržitelné tvrzení, že není potřeba výuka programování. Připomenu nedávnou repliku z diskuze na tomto serveru: „Pamatuji si živě na doby, kdy se stejně vášnivé diskuse vedly o tom, zda učit děti programovat v Basicu nebo Pascalu. Dnes to již nikoho nezajímá. V současné době většina uživatelů počítačů neprogramuje, stejně jako si dnes řadový řidič neseřizuje elektronické zapalování." Její autor zcela opominul, že ono elektronické zapalování musí nejprve někdo naprogramovat, a že dnes i kancelářské balíky nabízejí velmi silné programovací nástroje. Takže pár námětů do diskuse:

  • Jaký je váš názor na aplikaci malých programovacích jazyků ve výuce na 1. stupni ZŠ?
  • Jaký je váš názor na výuku programování vůbec?
  • Jaké máte zkušenosti s jednotlivými malými programovacími jazyky?


Jan Wagner

0 komentářů:

Články dle data



Učitelské listy

Nabídka práce

Česká škola - portál pro ZŠ a SŠ

Česká škola poskytuje svým čtenářům diskusní prostor k vyjádření názorů na školskou problematiku. Tyto příspěvky se nemusí shodovat se stanoviskem redakce České školy a jsou uveřejňovány jako podnět k dalším diskusím.

Obsah článků nemusí vyjadřovat stanovisko redakce nebo vydavatele Albatros Media, a.s.


Všechna práva vyhrazena.

Tento server dodržuje právní předpisy
o ochraně osobních údajů.

ISSN 1213-6018




Licence Creative Commons

Obsah podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Nezasahujte do díla 3.0 Česká republika, pokud není uvedeno jinak nebo nejde-li o tiskové zprávy.



WebArchiv - archiv českého webu



Tyto webové stránky používají k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Informace o tom, jak tyto webové stránky používáte, jsou sdíleny se společností Google. Používáním těchto webových stránek souhlasíte s použitím souborů cookie.