<< home >>
Didaktické využitie mini-jazyka Robot Karel na ZŠ
<<- ->>


  • Programovací mini-jazyk Robot Karel

PROGRAMOVACÍ MINI-JAZYK ROBOT KAREL

Výučbový programovací mini-jazyk Robot Karel je výnimočný tým, že pre žiaka, ktorý sa učí základné princípy programovania, veľmi názorne a príťažlivo umožňuje vysvetliť aj zložitejšie pojmy štruktúrovaného programovania. Žiak sa môže stotožniť s postavičkou robota a pochopiť činnosť pri vykonávaní programov počítačom. Keďže všetky príkazy jazyka narábajú s robotom na obrazovke, žiak ma možnosť sledovať celý priebeh svojej činnosti.

História

Robot Karel je zvláštny tvor. Nemá mamu, ale zato má dvoch tatov. Prvý je český spisovateľ Karel Čapek, ktorý sa považuje za "tatu" všetkých robotov. Do divadelnej hry R.U.R. totiž vymyslel umelých ľudí, ktorí pracovali v továrňach. Pretože vykonávali všetku ťažkú robotu, jeho brat Jozef mu navrhol pomenovať ich "Robotmi". Toto nové slovo spolu s hrou sa preslávilo na celom svete. Dnes si už málokto spomenie, aké slovo je s ním príbuzné a z ktorej krajiny pochádza. 

Každý robot má aj druhého tatu, človeka, ktorý ho vymyslel alebo zostrojil. Tým druhým tatom Robota Karla je Richard Pattis. Žije v USA a Karla vymyslel ako študent Stanfordovej univerzity v Kalifornii. 


pattis

V r. 1981 R. Pattis vydal knihu "Karel the Robot". Knižka Karel the Robot prvýkrát predstavila malého robota s českým menom Karel. Na Slovensko (vtedy ešte ČSSR) sa Karel dostal veľmi skoro a stal sa veľmi populárnym. Možno trochu i pre jeho český názov. Karel je však stále populárny i v zahraničí. Má už i objektového bračeka, ktorý sa volá Karel++.

Prvé implementácie jazyka boli na počítačoch PMD-85, ZX Spectrum, IQ151 a pod. Od tej doby vzniklo mnoho ďalších implementácií pre rôzne operačné systémy a rôzne počítače. Od prvého vydania knižky Karel the Robot sa mnohé udialo. Vznikol napríklad Internet a programovací jazyk Java. Predmetom vývoja je aj projekt internetovej implementácie jazyka Karel.

Didaktické využitie

Karel je jednoduchý programovací jazyk, ktorý bol navrhnutý, aby pomohol začiatočníkom preniknúť do tajomstiev programovania. Základom koncepcie jazyka je snaha poskytnúť skoro všetko to, čo dokáže klasický programovací jazyk a to pomocou čo najjednoduchšieho príkazového repertoáru. Jazyk je určený pre výučbu a nerobí si ambície byť normálnym programovacím jazykom. 

Základom je robot Karel, ktorý je umiestnený v priestore obmedzenom stenami, tzv. meste. Karel pozná len niekoľko príkazov. Dokáže urobiť krok vpred a otočiť sa vľavo. Vie položiť a zobrať značku. To je ale skoro všetko čo pozná. Nevie sa napríklad otočiť vpravo. Je to ale nadmieru zvedavý robot. Akonáhle dostane príkaz, ktorému nerozumie, hneď sa pýta čo znamená. Otočiť sa vpravo sa dá napríklad napísať tromi príkazmi pre otočenie vľavo. Ak raz vysvetlíme príkaz, príkaz je zaradený do známych slov a môže byť použitý pre vysvetľovanie ďalších príkazov. V terminológii programovacích jazykov je vysvetľovanie nového slova definíciou novej procedúry.

Karel rozumie tiež základným programovým konštrukciám, ako je podmienený príkaz alebo príkaz cyklu. Ako podmienku možno uviesť test na existenciu značky pod robotom alebo test na existenciu steny pred robotom. Dajú sa tak písať relatívne zložité programy. Do priestoru, kde sa Karel pohybuje môžeme pripraviť rôzne prekážky alebo položiť značky. Možné je riešiť problémy typu ako naučiť Karla, aby našiel cestu z bludiska alebo ako naučiť Karla, aby preniesol značky z jedného kúta do druhého.

Pri vysvetľovaní významu nových príkazov je možné použiť i príkaz práve vysvetľovaný, čo je vlastne rekurzia. S využitím rekurzie je možné naučiť Karla riešiť problémy, ktoré sú relatívne obtiažne i v "naozajstných" programovacích jazykoch. 

Programovací jazyk Karel je skvelým úvodom do programovania. Žiak nie je zaťažovaný množstvom detailných informácií. Nemusí ani používať cudzie slová, pretože príkazy sú v češtine a nie je problém naučiť Karla používať slovenské názvy príkazov. Žiak ale môže Karla naučiť poslúchať príkazy v akomkoľvek jazyku. Môže sa teda venovať len a práve programovaniu. Svojou koncepciou jazyk navádza k využívaniu dobrých programovacích techník, ako je dekompozícia problému alebo štruktúrované programovanie. Na ovládanie jazyka sú potrebné minimálne predchádzajúce znalosti. Je vhodný i pre malé deti. Jedinou obmedzujúcou podmienkou je znalosť písania. Počítať už programátor Karla vedieť nemusí. Programovanie úloh pre Karla nevyžaduje žiadne predbežné znalosti z matematiky alebo geometrie.

Žiaci sa väčšinou do tajomstiev programovania robota Karla dostanú veľmi rýchlo. Je to spôsobené hlavne možnosťou okamžitej grafickej odozvy prevádzaného programu. Žiaci môžu pracovať bez nárokov na vysokú abstrakciu riešenia. Karel umožňuje programovať i bez počítača. Stačí si nakresliť štvorcovú sieť znázorňujúcu Karlovo mesto, potom zobrať nejakú figúrku predstavujúcu robota a podľa napísaných programov ňou pohybovať po vyznačenom území. Ešte názornejšie bude, ak si vytvoríme územie na podlahe učebne a potom jeden zo žiakov alebo ešte lepšie učiteľ bude robiť úkony napísané v programoch. Týmto spôsobom bude programovanie pre deti zaujímavé, názorné a zrozumiteľné. Takáto forma výučby je skutočná škola hrou. Prechod k počítaču potom bude robiť omnoho menšie problémy. Ďalšou výhodou jazyka je potreba písania len relatívne krátkych textov. Žiaci, ktorí si na klávesnicu iba zvykajú, sa neoneskorujú v písaní oproti tým, ktoré počítač vlastnia a vedia hľadať jednotlivé klávesy rýchlejšie. Pri vytváraní programov (úloh pre robota) sa žiaci postupne učia ovládať klávesnicu či myš prirodzeným a zaujímavým spôsobom. Zapísanie je prehľadné a deťom zrozumiteľné. Zároveň sa žiaci učia písať programy štruktúrovane, čo je dobrý návyk pre učenie ďalších programovacích jazykov. Ak chceme s robotom Karlom vykonať zložitejší pohyb, vytvoríme ho z už známych povelov. Týmto nás jazyk núti dôsledne pri výučbe postupovať od jednoduchšieho k zložitejšiemu. Programovací jazyk Karel podporuje základné algoritmické štruktúry, teda blok príkazov, podmienky a cykly, núti premýšľať o tvorbe podprogramov. Karel je pascalovského typu, preto by pre žiakov mal byť neskorší prechod k programovaniu v Pascale jednoduchší.

Pre školy je dôležitá dostupnosť programovacieho nástroja a jeho hardvérová nenáročnosť (už od i286 s VGA). Na celom svete existuje niekoľko komerčných i voľne šíriteľných projektov, ktoré sa vývojom programovacieho jazyka Karel zaoberajú. S robotom môžeme pracovať i na Internete, lebo nástroj je naprogramovaný aj v jazyku Java. Pre úplných začiatočníkov odporúčam knihu "Kamaráti robota Karla" od autorov Gašparovičová Ľ., Hvorecký J. Vydanie je síce z roku 1991, ale snáď ho v knižnici alebo antikvariáte ešte objavíte. Je určená hlavne mladším žiakom, veľa obrázkov a pekné príklady sú kladom knihy. 

Stručný prehľad dostupných verzií

Jednotlivé verzie programovacích minijazykov Robot Karel sa líšia tým, pre ktorý operačný systém sú určené. V ďalšom texte uvediem najrozšírenejšie verzie pre operačné systémy Linux, MS DOS a MS Windows.




Verzie pre operačný systém Linux




Verzia pre operačný systém Linux má označenie Karel Lin.


karellin

Jednoduché grafické prostredie Robota Karla vyžaduje inicializáciu X-window servera (napr. KDE, GNOME) v prostredí operačného systému Linux. Práca vo vývojovom prostredí Karel Lin je analogická ako v prostredí Karel Win (viď. nižšie). Voľne je dostupný na stránke
http://www.vssoft.cz/Download/karellin.zip



Verzie pre operačný systém MS Windows




Verzia pre operačný systém MS Windows je označená Karel 1 Win.


karel1win


Prostredie Karel 1 Win je naprogramované v jazyku Delphi. Karel sa pohybuje po meste, ktoré býva štvorcového tvaru najčastejšie rozmerov 15x15, mesto je ohraničené stenami a tie môžu tiež byť na akomkoľvek mieste (políčku) okrem toho, kde stojí Karel. Karel sa môže pohybovať dopredu, otočiť sa vľavo, koľkokrát sa mu zachce. Vie sa pozrieť pod seba a pred seba a podľa toho sa rozhodnúť, čo podnikne. Na akékoľvek miesto, kde stojí, môže položiť obmedzený počet značiek, a pokiaľ tam nejaká značka je, môže ju zase zobrať. Voľne je dostupný na stránke
http://www.volny.cz/plavjanik/karel/karel.exe

V programe sa dajú napísať programy pre Karla v príjemnom editore a tieto programy je možné odskúšať. Programy sa v ňom dajú ladiť (krokovať a zastaviť na určitých miestach).

Program v jazyku Karel sa skladá z podprogramov. Každý podprogram má svoj názov, ktorý môže byť maximálne 100 znakov dlhý, nesmie obsahovať medzery a nesmie mať rovnaký názov ako nejaký iný podprogram alebo príkaz. Do textu programu v Karlovi pre Windows možno zadávať poznámky. Poznámka je text, ktorý sa pri behu programu nevykonáva. 

V prostredí je možné napísať program v jazyku Karel, tento program spustiť alebo ladiť. Tomu zodpovedá i hlavná obrazovka prostredia. Okrem menu a nástrojovej lišty (toolbaru) obsahuje textový editor aj mesto s Karlom, ktorý je znázornený šípkou.

Menu obsahuje ponuku Soubor, ktorá umožňuje ukladať súbor s programom na disk, jeho tlač a ukončiť program. Pri ukladaní programu sa ukladá súčastne i mesto. Mesto sa dá uložiť zvlášť v ponuke Město. Ponuka Úpravy obsahuje príkazy pre prácu so schránkou. 

 



Ďalšiu verziu pre operačný systém Windows predstavuje Karel 1.2.


karel12


V meste je možnosť náhodného rozloženia tehál. Je to vhodné pre testovanie nových procedúr. Táto funkcia je novinkou od verzie 1.1. Dostupný je na stránke

http://quantico.cs.vsb.cz/~dos083/Karel/Karel1_2setup.exe

Od verzie 1.2 je možnosť nastaviť veľkosť miestnosti. Rozmery miestnosti sú udávané počtom polí. Ďalej tiež umožní nastaviť hustotu pokrytia tehlami pri náhodnom rozostavení. Ak je hustota 0 %, potom sa pri náhodnom rozostavení tehál nepostaví žiadna tehla. Naopak ak je hustota 100 %, potom sa miestnosť celá pokryje tehlami. 

 



Karel 3D Win je implementácia programovacieho jazyka Karel v prostredí WINDOWS.


karel3dwin


Po spustení programu sa na obrazovke objaví prázdna miestnosť, v rohu ktorej sa nachádza robot, ktorý pozná niekoľko jednoduchých príkazov. Toto prostredie umožňuje aj definovanie vlastných (zložitejších) príkazov, napr. umožňuje jednoducho naprogramovať robota tak, aby prešiel tehlovým bludiskom. Voľne je dostupný na stránke

http://www.edi.fmph.uniba.sk/archive/Education/Studentske%20projekty/Dipl%20'97/Kosut.zip

 



V programe Karel 98 Demo predstavuje Karel robota uzavretého v meste 10x10 polí.


karel98demo


V jeho svete existujú len steny, značky a štyri svetové strany. Sám vie iba urobiť krok, otočiť sa vľavo a položiť alebo zobrať značku. Tiež vie rozpoznať či na poli, kde stojí, je nejaká značka, či stojí pred stenou a na akú svetovú stranu je otočený. Demo verzia umožňuje Karla naučiť iba 5 nových príkazov a v zbierke úloh sa nachádza iba niekoľko riešených príkladov. Demo verzia je voľne dostupná na stránkach

http://www.mujweb.cz/web/holubec/download/karel98.exe

http://www.mujweb.cz/web/holubec/download/karkniha.exe

 



Karel Win predstavuje jednoduché grafické prostredie Robota Karla.


karelwin


Práca vo vývojovom prostredí Karel Win je analogická ako v prostredí Karel Lin (viď. vyššie). Voľne je dostupný na stránke

http://www.vssoft.cz/Download/karelwin.zip

 



Karol++ je programovací jazyk určený tiež na výučbu programovania pre deti.


karol++


Programovacie prostredie zvýrazňuje syntax, doplňuje slová, zobrazuje program, obsahuje "debugger" umožňujúci krokovať program v Prehliadači kódu. Karol++ beží pod systémom Windows (32-bitové verzie). Obsahuje štandardné prvky známe z iných aplikácií. Voľne je dostupný na stránke

http://ono.host.sk/karol/down.php3?file=ftp://ftp.sac.sk/public/sac/sk_made/karol.exe


Hlavné okno Robota Karola++ obsahuje tieto časti:
Editor - zvýrazňuje syntax rezervovaných slov. Umožňuje rýchle písanie programu pomocou stlačenia klávesov Ctrl+Enter, po ktorom sa vysunie zoznam príkazov. Ak žiak napíš začiatok niektorého rezervovaného slova (napríklad "opa") a stlačí Shift+Tab, tak sa slovo automatický dopíše na "opakuj krat".
Pohľad - v tomto okne vidno Karola v miestnosti. Tu sa dá ovládať aj priamo pomocou klávesnice. Kláves P položí tehlu, Z zoberie, O označí, D zruší označenie, C vyčistí miestnosť. Pohybuje sa pomocou šípiek klávesnice.
Prehliadač kódu - zobrazuje program v stromovej štruktúre.
Informačný panel - zobrazuje pozíciu Karola v miestnosti a chybové hlásenia prekladača.




Verzie pre operačný systém MS DOS

Verzie pre operačný systém MS DOS sú nenáročné na hardvér, stačí osobný počítač radu IBM PC 386.




Karel 3.2 je jedna z najvydarenejších verzií Karla z hľadiska prechodu na programovací jazyk Pascal.


karel32


Menu možno nastaviť na český alebo anglický jazyk a príkazy možno písať tiež priamo v angličtine. Voľne je dostupná na stránke

http://www.ms.mff.cuni.cz/~plas8136/karel.zip


Program vytvorený v prostredí Karel 3.2 sa skladá z procedúr. Každá procedúra obsahuje postupnosť príkazov, ktoré sa majú vykonať. Každá procedúra musíte mať meno. 

Prvým riadkom procedúry je slovo PŘÍKAZ (PROCEDURE), za ktorým nasleduje názov procedúry. Na konci procedúry je príkaz KONEC (END). Medzi nimi sú príkazy. Môžu to byť názvy iných procedúr, alebo to sú základné príkazy pre ovládanie Karla, alebo sú to špeciálne príkazy pre riadenie behu programu (príkazy cyklov alebo podmienok). Je povolené napísať na jeden riadok aj viac príkazov oddelených bodkočiarkou. Do programu je tiež možné písať komentáre. V programe nezáleží na poradí jednotlivých procedúr. 

Táto verzia Karla tiež ako jediná pracuje s premennými, s procedúrami s parametrami, a s poliami.

 



Karel 3D je stará upravená verzia z čias PMD-85 a kazetových magnetofónov.


karel3d


Ale stále atraktívna, zaujímavá a najmä nenáročná na hardvér. Voľne je dostupná na stránke

http://pvskoly.cz/stary/public/freeware%20a%20shareware/karel3d.arj

 



Karel 96 používa pracovný zošit s piatimi listami.


karel96


Medzi nimi možno prechádzať klávesmi F1 až F5 alebo priamo myšou.

http://www.gym-karvina.cz/skola/inf/karel_in.exe


Jednotlivé listy obsahujú:
Pomoc - zobrazí pomoc ku všetkým ďalším činnostiam
Práce - základný režim, Karel vykonáva známe príkazy
Učení - Karel sa učí nový príkaz, oprava chýb, dokumentácia
Město - meditácia mesta podľa zadania úlohy
Psaní - hra, ktorá zdokonalí písanie na klávesnici

Príkazy možno zadávať myšou pomocou tlačidiel alebo napísaním príkazu. Za prínos v tejto verzii považujem podmienku náhody.




Kritériá a výber optimálnej verzie

Grafické spracovanie

  • priestorovosť alebo plošnosť verzie

  • farebná zaujímavosť 

  • postavička je naozaj robot alebo iba šípka 

  • názornosť prostredia

Programovací režim

  • písanie príkazov realizované myšou alebo klávesnicou 

  • skratky alebo celé názvy príkazov 

  • zvýrazňovanie syntaxe odsadzovaním a farebne

  • prehľadnosť zdrojového textu

Editácia zdrojového textu

  • vypísanie pomoci pri syntaktickej chybe

  • funkcia kopírovania a prilepenia znakov a reťazcov znakov

  • pohodlnosť a rýchlosť editácie

Zmena miestnosti

  • fixne daný rozmer miestnosti

  • možnosť náhodne rozložiť tehly a steny

Špecifické podmienky

  • podmienky svetových strán, náhody, stlačenia klávesu

Ladenie

  • beh programu po krokoch

  • zobrazenie zdrojového textu pri behu programu

  • možnosť nastaviť body prerušenia behu programu

Premenné, polia, procedúry s parametrami

  • možnosť pracovať s týmito prvkami štruktúrovaného programovania a do akej miery

Iné

  • verzia prostredia

  • podpora príkazov a menu v angličtine

  • hardvérové a softvérové nároky prostredia


Z uvedených verzií výučbového programovacieho prostredia Robot Karel, s prihliadnutím na technické možnosti školy, najoptimálnejšie vychádzajú verzie pre operačný systém MS DOS.

Pre úvod do štruktúrovaného programovania vyhovujú verzie Karel 3D (priestorová, jednoduchá editácia, zobrazenie zdrojového textu pri behu programu) a Karel 96 (názornosť, jednoduchý programovací režim, podmienky svetových strán, náhody).

Pre prechod pre programovací jazyk Pascal je ideálne prostredie Karel 3.2 (už svojim vzhľadom pripomína prostredie Turbo Pascal spoločnosti Borland, používa premenné, polia, procedúry s premennými, pracuje s ASCII hodnotami, graficky nie je obmedzené na kladenie tehál, Karel môže maľovať ľubovoľný znak, môže komunikovať v angličtine, má prepracované ladenie, zdrojový text je viditeľný, autor stále pracuje na vylepšovaní verzie, ponúka kvalitný manuál a zdrojový kód prostredia, k dispozícii je plná verzia). Toto prostredie však doporučujem až skúsenejším užívateľom.

Za zaujímavé považujem aj verzie Karol++ a Karel 1 Win, ktoré ale majú vyššie hardvérové a softvérové nároky (MS Windows) a pre verziu Karol++ je k dispozícii zdrojový kód. Autor verzie Karol++ pracuje na verzii 2.0, ktorá by už mala pracovať s premennými.

V prípade operačného systému Linux sa ako jediná možnosť javí použiť verziu Karel Lin, avšak pre operačný systém Linux existuje softvérový emulátor codeweavers-wine, ktorý umožňuje spúšťať pod operačným systémom Linux aj aplikácie určené iba pre MS Windovs. Download pre codeweavers-wine, šírený pod GNU general public license, dostupný na:

ftp://ftp.codeweavers.com/pub/wine/codeweavers-wine-20011108-5.i386.rpm


Jednoznačne vylučujem verziu Karel 98 (plnú verziu treba zakúpiť, demo verzia umožňuje naučiť Karla iba 5 nových príkazov, pri spustení neustále otravuje okno s hlásením, že ide o demo verziu).

<<- ->>