Česká škola
2.10. 2000 - ICT ve škole - Výuka a výukový SW - Rostislav Fojtík
Programování na ZŠ (2. díl) -
robot Karel

Zasvětit žáky do tajů programování není jednoduchá záležitost. Celý proces se skládá ze dvou složek. Jedna je zaměřena na zvládnutí základních algoritmických a programovacích struktur a postupů. Druhým problémem a úkolem vyučujícího je naučit žáky ovládat programovací jazyk, jeho syntaxi, přednosti i záludnosti, orientaci v prostředí překladače. A zde nastává problém, který vede velkou část učitelů k tomu, že odmítají programování na základní škole. Pod programováním se jim totiž vybaví právě ta druhá část, tedy učení programovacího jazyka. Mnohdy mají v paměti vlastní neblahé zkušenosti s relativně komplikovanou strukturou a prostředím jazyka Pascal či C. Úkolem základní školy však není naučit programovací jazyk, ale základům programování. Neboť než se děti dostanou do praxe, budou programovací nástroje zřejmě vypadat úplně jinak. Stejně tak by nemělo být cílem předmětu výpočetní technika naučit Word či Excel, ale dovednost práce s textem a informacemi. Jen si vzpomeňte, jak vypadaly textové a tabulkové aplikace před sedmi lety.

Aby výuka základů programování byla opravdu efektivní, je potřeba zvolit nástroj, jehož zvládnutí bude co nejjednodušší a žákům bude činit jen minimální problémy. Žádná složitá struktura zdrojových textů, jednoduché a přehledné prostředí překladače, názorný výstup. To vše i za cenu jistých omezení jazyka, protože s žáky není potřeba vytvářet složité a komplikované programy.

Jedním z nástrojů, který vyhovuje tomuto požadavku je programovací jazyk Karel. Vznikl před dvaceti lety a vytvořil jej Richard Pattis právě pro výuku programování. Poprvé jej popsal ve své knize „Karel The Robot“, která vyšla v roce 1981. Název programovacího jazyka je vlastně spojen s naší zemí. Autor jej nazval na počest Karla Čapka, který slovo robot rozšířil do světa. Podstatou jazyka je snaha o ovládání robota, který se pohybuje v uzavřeném prostoru - městě. Úkolem dětí je Karla naučit procházet městem, vyhýbat se překážkám, zvedat či pokládat značky. Na počátku umí robot pouze několik málo jednoduchých příkazů jako jsou: krok, vlevo v bok, položit a zvednout značku. Chceme-li s robotem Karlem vykonat složitější pohyb, vytvoříme jej z již známých povelů. Tímto nás jazyk nutí důsledně při výuce postupovat od jednoduššího ke složitějšímu. Dodržení této zásady bývá občas problém u výkonnějších programovacích jazyků, kde někteří žáci samostatně nastudují různé technické dokonalosti, jako například programování grafické či zvukové karty, portů apod., ale mají obrovské mezery v oblasti základních algoritmických postupů, v práci s podprogramy a jejich parametry. Programovací jazyk Karel samozřejmě podporuje základní algoritmické struktury, tedy blok příkazů, podmínky a cykly, nutí nás přemýšlet o tvorbě podprogramů. Při vytváření je možné využít rovněž principu rekurze, která je zde opět pro žáky pochopitelnější než v některém z dokonalejších programovacích jazyků.

Na robota Karla si někteří z vás ještě možná pamatují z dob počátků osobních počítačů v naší zemi. Jeho implementace na počítačích PMD 85, IQ 151, ZX Spectrum i dalších byly značně rozšířené. Přestože robot Karel již má spoustu let, stále se vyvíjí a upravuje. Dokonce má svého následovníka, který umí pracovat s objekty a jmenuje se Karel++ (zřejmě analogie s programovacím jazykem C++, který je objektovým pokračovatel jazyka C).

Pro školy je důležitá dostupnost programovacího nástroje. Po celém světě existuje několik komerčních i volně šířitelných projektů, které se vývojem programovacího jazyka Karel zabývají. S robotem můžete pracovat i na Internetu, neboť nástroj je naprogramován v jazyce Java. Pro české školy je samozřejmě vhodnější místní nebo alespoň lokalizovaný produkt. Na konci článku je přiloženo několik adres, které vám mohou pomoci s výběrem, ale i v začátcích programování. Pro úplné začátečníky doporučuji knihu „Martina si hraje s počítačem“. Vydání je sice staršího data, ale snad se vám ji v některé knihovně, antikvariátu či domácí knihovničce podaří objevit. Je psaná čtivě a je určena hlavně dětem. Spousta obrázků a pěkné příklady jsou kladem knihy.

Jak s robotem Karlem začít?
Žáci se do tajů programování robota Karla většinou dostanou velmi rychle. Je to způsobeno hlavně možností okamžité grafické odezvy prováděného programu. Děti mohou pracovat bez nároků na vysokou abstrakci řešení. Karel umožňuje programovat i bez počítače. Stačí si nakreslit čtvercovou síť znázorňující Karlovo město, pak vzít nějakou figurku představující robota a podle napsaných programů jí pohybovat po vyznačeném území. Ještě názornější bude, vytvoříte-li si území na podlaze učebny a pak jeden ze žáků nebo ještě lépe učitel bude předvádět úkony napsané v programech. V té chvíli snad nikdo nemůže tvrdit, že programování nelze děti učit tak, aby bylo zajímavé, názorné a srozumitelné. Taková forma výuky je opravdová škola hrou. Přechod k počítači pak bude činit mnohem menší problémy. Další výhodou jazyka je potřeba psaní jen relativně krátkých textů. Děti, které si na klávesnici teprve zvykají, se neopožďují v psaní oproti těm, které počítač vlastní a umí hledat jednotlivé klávesy rychleji. Při vytváření prográmků (úkolů pro robota) se žáci postupně učí ovládat klávesnici či myš mnohem přirozenějším a zajímavějším způsobem, než například ve Wordu.

Jednoduché příklady
Robot toho na počátku mnoho nedovede. Umí udělat krok a otočit se vlevo. Vpravo nebo provést čelem vzad je úkol, který jej žáci musí naučit. A protože takovéto obraty budeme s robotem provádět často, bude potřeba je nadefinovat. Vytvoříme vlastně jednoduché podprogramy. Zapsání je přehledné a dětem srozumitelné. Zároveň se žáci učí psát programy strukturovaně, což je dobrý návyk pro učení dalších programovacích jazyků.

ČELEM VZAD
      VLEVO VBOK
      VLEVO VBOK
KONEC

VPRAVO VBOK
      OPAKUJ 3
          VLEVO VBOK
      KONEC
KONEC

Protože Karel umí rovněž klást a zvedat značky, je možné upravit vzhled města, ve kterém se robot pohybuje. Můžeme také využít rekurze a nechat například robota neustále chodit po obvodu města.

PROCHAZEJ
    KDYZ NENI ZED
       KROK
       PROCHAZEJ
    KONEC JINAK
       VLEVO VBOK
       PROCHAZEJ
    KONEC
KONEC

Programovací jazyk Karel je určitě dobrou volbou pro zahájení výuky programování. Nemá některé další možnosti, jenž nabízejí dokonalejší a rozsáhlejší nástroje, ale v jeho jednoduchosti a vysokém stupni názornosti jsou právě jeho přednosti.

Odkazy a literatura

M. Syncová: Martina si hraje s počítačem, Albatros 1989

http://mujweb.cz/web/holubec/karel.htm - Nemáte-li nástroj pro práci s robotem Karlem, pak jej najdete na této adrese

http://cs.felk.cvut.cz/~macek/public/PoSkv1_1.htm – Na těchto stránkách si můžete prohlédnout, jak pracuje robot Karel na Internetu

Několik anglicky psaných stránek o robotu Karlovi:

http://www.cis.ufl.edu/~jnw/Karel/

http://csis.pace.edu/~bergin/karel.html – Karel++

http://www.bethel.edu/Majors/MathCS/karel.html

http://www.mtsu.edu/~untch/karel/index.html


© Copyright 1999 Computer Press