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


  • Výučbové programovacie mini-jazyky

VÝUČBOVÉ PROGRAMOVACIE MINI-JAZYKY 

Malé jazyky sú vizuálne intuitívne, jednoduché a silné nástroje na uvedenie žiakov do sveta programovacích jazykov. Sú dobrým základom pre všeobecné počítačové učenie, poskytujú nahliadnutie do programovania pre žiaka a učia algoritmickému mysleniu. 

Vynaložilo sa mnoho úsilia na vytvorenie špeciálnych jazykov, ktoré by podporovali počiatočné kroky vo výučbe programovania. Pravé pochopenie podstaty prišlo s Logom - korytnačou grafikou (Papert, 1980). Úspech Loga vo všeobecnosti, konkrétne korytnačej grafiky, stimuloval rozvoj mini-jazykov pre výučbu princípov programovania. 

Ideou mini-jazykov je vypracovať malý a jednoduchý jazyk pre vstup do programátorského sveta. Vo väčšine malých jazykov žiak pomocou jednoduchých príkazov ovláda nejaký objekt (korytnačku, robota alebo inú "živú bytosť") v jej mikrosvete. Žiak priamo na obrazovke pozoruje správanie objektu a sleduje, ako sa vykonávajú jeho príkazy. Objekt môžeme ovládať zadávaním jednoduchých príkazov do príkazového riadku, alebo písaním zložitejších programov. Malý jazyk v zásade obsahuje príkazy a operácie na riadenie objektu. Väčšina mini-jazykov obsahuje základné riadiace štruktúry (podmienené vykonávanie, cyklus, rekurziu, atď.) a mechanizmus na vytváranie nových inštrukcií (príkazov, podprogramov). Termínom malé jazyky označujeme kombináciu objektu a jazyka, ktorým tento objekt ovládame. 

Existuje viacero dôvodov, prečo vyučovať malé jazyky. Predovšetkým poskytujú dobrý základ pre učenie vyšších jazykov, ako Pascal, C a iné. Otvárajú cestu k novej vzdelávacej príležitosti. Malé jazyky tiež poskytujú pevný základ pre systematické riešenie problému aj pre ľudí, ktorí budú "programovať" len na úrovni tabuľkových procesorov, databázových systémov, alebo iných aplikačných programov. 

Didaktické aspekty použitia mini-jazykov 

Zásady programovania je téma, s ktorou by sa žiak mal stretnúť už na prvom stupni základnej školy. Programovanie poskytuje základ pre logické i abstraktné myslenie, čo je dôležitý moment vo vyučovacom procese. 

Prvou výhodou mini-jazykov je, ako samotný názov napovedá, že sú malé. Majú malú syntax a jednoduchú sémantiku. Teda žiak, aj na úrovni základnej školy, môže za veľmi krátky čas zvládnuť tento programovací jazyk. Ďalej sa venuje riešeniu rôznych zaujímavých úloh, osvojuje si algoritmické princípy a zásady programovania. 

Druhou veľkou výhodou malých jazykov je, že sú postavené na metaforách. Umožňujú vytvárať bohaté množiny problémov, ktoré zahŕňajú základné myšlienky malého jazyka a priamo súvisia s životnými skúsenosťami žiakov. 

Operácie vykonávané objektom sú vždy viditeľné, čím sa odhaľuje sémantika jazyka, jazykovej konštrukcie. Vizuálny sled umožňuje žiakom pochopiť sémantiku predkladaných konštrukcií, objasňuje princípy programových štruktúr a zabraňuje množeniu chýb. Vizualizácia podporuje učenie sa bádaním. 

Ďalšou dôležitou výhodou malých jazykov je, že tvorca jazyka nie je viazaný na syntax a sémantiku "veľkých" programovacích jazykov, ktoré nie sú vhodné pre začiatočníkov. Jazyk je vytvorený pre presne určený vzdelávací cieľ, pre presne definovanú skupinu žiakov. Môže používať prirodzený jazyk žiakov. Jeho prostredie je veľmi atraktívne. 

Stručný prehľad mini-jazykov 

Vývoj mini-jazykov bol silne ovplyvnený korytnačou grafikou Loga. V istom zmysle ju môžeme považovať za prvý príklad malého jazyka, i keď Logo nebolo vyvinuté špeciálne za účelom vyučovať programovanie, ale rozvíjať myslenie. 

Robot Karel bol prvý a stále najpopulárnejší skutočný mini-jazyk navrhnutý a realizovaný Richardom Pattisom na Stanfordskej univerzite (USA v roku 1981) ako mierny úvod do štruktúrovaného programovania v jazyku Pascal pre univerzitných študentov. Karel obsahuje všetky dôležité pascalovské štruktúry, učí základným predstavám o procedurálnej abstrakcii, sekvenčnému a podmienenému vykonávaniu príkazov. Objekt robot Karel vykonáva rôzne úlohy vo svete stien, značiek a tehličiek. Jeho hlavné aktivity sú "pohni sa", "otoč sa", "polož tehlu" a "zodvihni tehlu". Pomocou týchto základných príkazov a podmienok môže tento robot kontrolovať stav svojho mikrosveta. 

Marta (Calabrese, 1989) v Taliansku. 
Programovací mini-jazyk Marta môžeme ovládať šípkami, čo je veľmi vhodné najmä pre menších žiakov. Marta vie postaviť svoj vlastný mikrosvet, môže byť riadená "potme", kde nevidno prekážky a značky, pomerne jednoducho sa dajú definovať nové príkazy a operácie písaním Logovských procedúr. Programovať možno na viacerých úrovniach - priamy jednoriadkový režim, viacriadkový režim a editovací režim (Logovské procedúry). 

Josef the Robot (Tomek, 1982 - 1983). 
Tento mini-jazyk bol vytvorený v tom istom čase ako Karel, je kombináciou jazykov Karel a Logo, používa konštrukcie mini-jazykov. Jeho filozofia spočíva v príprave malých programátorov na vytváranie programov vo "veľkom" jazyku. 

Wayfarer (Kouchnirenko 1988) v Rusku. 
Navrhnutý pre kurz programovania študentov katedry Mechaniky a matematiky Moskovskej Štátnej univerzity. Hlavným cieľom bolo zaujať študentov hneď od prvej hodiny množinou zaujímavých problémov. Úlohy rieši pohybujúci sa Wayfarer, ktorý vie označovať políčka pomocou jazyka "Mini". 

Turingal (Brusilovsky, 1991) v Rusku. 
Malý jazyk, vytvorený v roku 1991 pre študentov Počítačovej katedry Moskovskej Štátnej univerzity poskytuje kontrolu známej algoritmickej teórie - Turingovho stroja, ktorý pracuje s páskou symbolov. Základné operácie jazyka sú jednoduché a názorné - pohyb vľavo a vpravo po páske, písanie symbolov na pásku. Jazyk ponúka riadiace štruktúry (podmienené vykonávanie a cykly) a tvorbu podprogramov s podobnou syntaxou a sémantikou ako v jazyku Pascal. 

Tortoise (Brusilovsky, 1994) v Rusku. 
Vytvorený pre 14 - 15 ročných Rusov, študentov ruských škôl. Podobá sa Turingalu, je však upravený tak, aby bol atraktívny pre mladých Rusov, napr. páska so symbolmi je reprezentovaná dvojrozmerným poľom symbolov. 

Baltík (SGP, 1978-1998) v Čechách.

baltik

Programovací mini-jazyk Baltík je čarodejník. Aj najmladší žiaci ľahko a rýchlo vytvárajú programy zostavované z prvkov pomocou myši. Nie sú problémy so syntaxou jazyka. Žiaci majú pred očami kompletnú sadu príkazov vo forme ikoniek a nemusia rozmýšľať, ako sa ktorý príkaz volá.

Baltazár (SGP, 1978-1999) v Čechách.


baltazar


Programovací mini-jazyk Baltazár je tiež čarodejník. Umožňuje nelineárny zápis programu. Program sa zakresľuje prostredníctvom dvojrozmerných štruktúr (zaviedol ich v roku 1975 M. A. Jackson). Na tieto štruktúry je potom aplikovaný preprocesor, ktorý vytvára výsledný program v jazyku C.

Petr (Gemtree, 1999-2001) v Čechách.

petr

V programovacom mini-jazyku Petr je hlavným hrdinom zajac. Štruktúra zápisu programu vychádza zo stromovej štruktúry, ako ju poznáme z usporiadania adresárov a súborov. Prostredie neobsahuje ladiace prostriedky. 

Comenius Logo (CL Group, 1998) na Slovensku.


comlogo

Programovací minijazyk Comenius Logo predstavuje typickú korytnačiu grafiku. 

Existujú rôzne typy malých jazykov, ktoré slúžia na rôzne účely. Sady riadiacich príkazov a typ ovládaného objektu závisia predovšetkým od veku, záujmov a vyučovacích cieľov u žiaka. 

Mini-jazykový prístup sa však dá aplikovať aj na iné paradigmy než na vyučovanie procedurálnych jazykov. Napríklad pre paralelné programovanie je vhodný projekt Robot Brothers (Olimpio, 1998), príkladom objektovo-orientovaného prostredia sú Playground (Fenton and Beck, 1989), Gravitas (Sellman, 1992) a KidSim (Smith a kol., 1994). Niektorí autori považujú objektovo - orientované malé jazyky za najlepšiu možnosť, ako vyučovať mladších žiakov základy programovania. 

Základné charakteristiky mini-jazyka 

  • jednoduchosť v syntaxi aj sémantike

  • názornosť - pri väčšine operácií s objektom sú zmeny viditeľné v mikrosvete, reprezentovanom na obrazovke počítača 

  • atraktívnosť a zmysluplnosť - zameraný pre danú kategóriu žiakov (napr. v Japonsku s motívom Sumo zápasenia - Algo-Arena (Kato and Ide, 1993), alebo iný systém s metaforou nakupovania v supermarkete (Comr and Pintelas, 1989)) 

  • dialógový režim - "zhovorčivosť" - t.j. každý príkaz sa vykonáva v riadiacom alebo programovacom móde 

  • modularita - mal by obsahovať mechanizmus na vytváranie abstraktných inštrukcií (procedúr), tieto procedúry by mali tvoriť nezávislé jednotky, ktoré možno využiť pri riešení čiastkových problémov 

Keď žiakov učíme princípy programovania, špeciálny dôraz sa kladie na atraktívnosť objektu mikrosveta. Spôsobov ako ho zatraktívniť je viacero. Dôležité je však, aby sme sa priblížili reálnemu svetu. Vhodným námetom, predovšetkým u menších žiakov, môže byť robot, ako je to napr. v Karlovi. Iným príkladom môže byť použitie robota v paralelnom programovaní, s ktorým sa stretávame v MultiLogu (Resnick, 1990). Nahradením objektov mikrosveta reálnymi sa programovacie jazyky stávajú nielen atraktívnejšími, ale taktiež podporujú spoluprácu pri riešení problému. 

Úloha prostredia programovacieho mini-jazyka 

Dobré programovacie prostredie by malo umožniť, aby bol na obrazovke viditeľný mikrosvet a zároveň aj žiakov program. Taktiež by sa mal znázorňovať priebeh vykonávania programu. Program by mal vykonať naraz jednu inštrukciu, zatiaľ čo interpreter ju v programe vysvieti a efekt sa zobrazí v mikrosvete. Dôležité je tiež vizualizovať premenné a zásobník volaní podprogramov. 

Prostredie by malo ponúkať štruktúrovaný editor, na zvýšenie žiakovej produktivity. Štruktúrovaný editor pomáha žiakovi vyvarovať sa syntaktických chýb a poskytuje bezprostredné určenie ostatných chýb. Tiež napomáha orientovať sa v názvoch konštrukcií. 

Dobrý príklad mini-jazykového programovacieho prostredia s požadovanými funkciami predstavuje Karel Genie (Miller a kol., 1994). Poskytuje množinu špeciálne vytvorených nástrojov - štruktúrovaný editor, pohľad dekompozície programu a run-time systém. Karel Genie je integrované programovacie prostredie. Zdrojový kód sa počas vykonávania vysväcuje. 

Prostredie mini-jazyka by malo byť rozšírené o inteligentnú tútorovú a hypermediálnu súčasť. Inteligentný tútor môže zmenšiť množstvo nekreatívnej práce učiteľa a ušetriť jeho čas pre prácu so žiakmi, ktorí majú špeciálne požiadavky. Poskytuje potrebné množstvo vedenia, žiakovi navrhuje ďalšiu koncepciu pri riešení problému vzhľadom na jeho súčasné vedomosti. Hypermediálna súčasť rozširuje priestor bádateľskému vyučovaniu, poskytuje žiakmi poháňaný prístup ku konceptuálnym vedomostiam a príkladom. 

Dobrý malý jazyk by mal byť doplnený o dobrú sadu atraktívnych a zmysluplných problémov určených pre žiakov na vyriešenie. Riešenie problémov je najefektívnejšia metóda na osvojenie si jazyka a na podporu dôležitých koncepcií. Sada musí obsahovať problémy rôznej zložitosti a zahŕňať všetky dôležité koncepcie. Úlohy musia byť pre žiakov zaujímavé, z hľadiska dosiahnutia cieľa i samotným procesom vyvíjania riešenia. 

Veľmi úspešný je nasledujúci prístup: žiakovi predostrieme nový zmysluplný problém, potom mu predstavíme novú programovú konštrukciu, ktorá problém vyrieši. 

Zatiaľ som opisovala situáciu "jeden mikrosvet - mnoho problémov". Existuje aj iný prístup "jeden mikrosvet - jeden problém", kde mikrosvet je orientovaný na riešenie jedného, avšak stále viac zložitejšieho problému (napr. nájsť východ z labyrintu). Dobrými príkladmi sú TRAPS systém (Witschital et al., 1989) - presúvanie objektu po pohyblivej doske pomedzi prekážky a Algo-Arena (Kato and Ide, 1993) - riadenie sumo zápasníkov.

<<- ->>