- 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.
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.
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.
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.
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.
|