• No results found

Microworld for Learning Programming Friendly to Secondary Blind Students

In document 2020 Sborník konference (Page 156-164)

V príspevku popisujeme časť nášho výskumu zameraného na rozvoj algoritmického myslenia a programátorských zručností nevidiacich žiakov nižšieho sekundárneho vzdelávania. Predstavíme nami vyvinuté programovacie prostredie Coshi, ktoré umožňuje nevidiacim programovať pohyb virtuálneho robota po obrazovke počítača. Okrem toho sme vytvorili aj edukačný scenár zameraný na postupné zoznamovanie sa s prostredím, príkazmi jazyka a základnými programátorskými konceptami. Popri overovaní prostredia a edukačného scenára sme skúmali, ako si žiaci konštruujú poznanie zložitejších programátorských konceptov, akými sú cyklus s podmienkou, vnorené cykly a do akej miery ich vedia použiť pri riešení komplexnejšieho problému.

ABSTRACT

In this paper we present a part of our research aimed at development of algorithmic thinking and programming skills of blind students attending lower secondary schools. We have introduced a programming environment Coshi for blind students where they can control a virtual robot in a square grid with assigned sounds. During verification of this environment, an educational scenario was created for six lessons. The aim of these lessons was to make students gradually acquainted with the programming environment and basic programming concepts (sequence of commands, counting loop, variable, conditional branching, conditional loop). Throughout the testing, we also examined how students construct their knowledge of programming concepts like conditional loop and nested loop and to what extent they can use them to solve a more complex problem.

Kľúčové slová

Programovanie, nevidiaci žiaci, nižšie sekundárne vzdelávanie, abstrakcia, prípadová štúdia, programátorské koncepty.

Keywords

Programming, blind students, lower secondary education, abstraction, case study research, programming concepts.

1 ÚVOD

V ostatných rokoch badať v mnohých krajinách narastajúce úsilie zakomponovať vo vhodnej miere a forme výučbu informatiky na všetkých úrovniach vzdelávania. Hromkovič et al. [1] uvádzajú, že

„trvalo udržateľné vzdelávanie v oblasti informatiky by malo byť postavené na algoritmickom

Sme presvedčení, že rozvoj algoritmického myslenia je dôležitý aj pre nevidiacich žiakov a študentov. Osoby so zrakovým postihnutím majú kvôli svojmu postihnutiu obmedzené možnosti nájsť si vhodné zamestnanie. Tieto možnosti sa podstatne zvýšia, ak vedia používať digitálne technológie. Veľkou výhodou je, ak okrem používania rôznych softvérových aplikácií, vedia aj programovať. Osobne poznáme niekoľko nevidiacich programátorov, ktorí úspešne pracujú v počítačových firmách. Uvedomujeme si, že čím skôr sa u nevidiacich žiakov vzbudí záujem o túto profesiu, tým ľahšie sa rozhodnú pre štúdium informatiky.

Podľa Paperta [2] „sa študenti učia efektívnejšie, ak môžu riešiť vlastné úlohy, čím si budujú svoje znalosti sami a vyjadrujú myšlienky cez médium, ktoré umožňuje získať priame skúsenosti“.

V súčasnosti najpopulárnejšie programovacie jazyky pre žiakov nižšieho sekundárneho vzdelávania – Scratch a Logo – umožňujú, aby sa žiaci učili programovať konštrukcionistickým spôsobom v zmysle Paperta. Tieto prostredia však nie sú použiteľné pre nevidiacich (kapitola 2).

Obrázok 1: Virtuálny robot (čierny kruh) sa pohybuje po políčkach, ktoré majú priradené rôzne zvuky

Vyvinuli sme preto vlastné programovacie prostredie Coshi (obrázok 1), ktoré umožňuje nevidiacim žiakom programovať pohyb robota po ozvučenej štvorcovej sieti (viac v kapitole 3). Vytvorili sme aj edukačný scenár na šesť vyučovacích hodín (kapitola 4.2). Cieľom bolo zoznámiť študentov s programovacím prostredím a základnými programovacími konceptami. Okrem toho nás zaujímalo, ako si študenti konštruujú poznanie zložitejších programátorských konceptov, akými sú cyklus s podmienkou, vnorené cykly a do akej miery ich vedia použiť pri riešení komplexnejšieho problému (kapitola 5).

2 PREHĽAD PROBLEMATIKY

Výučba tematickej oblasti Algoritmické riešenie problémov v bežnej triede s intaktnými žiakmi (bez akéhokoľvek postihnutia) sa obyčajne realizuje pomocou softvéru bohato využívajúceho vizuálnu reprezentáciu – jazyky typu Logo [3] a Scratch [4]. Tieto prostredia sa však nedajú použiť s nevidiacimi žiakmi, ktorí pracujú s počítačom pomocou čítača obrazovky. Tento im dokáže sprostredkovať iba textové a zvukové informácie. Okrem toho nevidiaci žiaci nepoužívajú myš a všetok vstup zadávajú len pomocou klávesnice. Spomínané prostredia neumožňujú všetky akcie vykonávať pomocou myši, aj pomocou klávesnice.

Blokové (resp. kartičkové) jazyky typu Scratch sú veľmi populárne, pretože odstraňujú problémy súvisiace so zložitosťou syntaxe a sú vhodnou voľbou pre začiatočníkov. Milne et al. [5] popísal výzvy súvisiace s prístupnosťou blokových jazykov a vyvinul prototyp prostredia Blocks4All ako inkluzívnejšiu alternatívu fungujúcu v prostredí Apple iPad. Bohužiaľ, iPad sa na slovenských školách ešte stále nevyužíva kvôli vysokej cene.

Prostredia SonicPi [6] a MusicBlocks [7] umožňujú programovanie hudby, takže by mohli byť vhodnou alternatívou pre nevidiacich. Prostredia však nie sú prístupné pre čítač obrazovky. Prototyp

programátorov v Chile [8]. Pilotné testovanie s nevidiacimi programátorskými nováčikmi vo veku 17 až 20 rokov, ktoré autori realizovali, ukázalo, že aj pre nich bolo programovanie v tomto jazyku príliš abstraktné [9]. Tieto prostredia však boli pre nás inšpiráciou pri tvorbe nášho zjednodušeného textového zvukového programovacieho jazyka Alan [10] pre žiakov vo veku 11 až 15 rokov.

Vhodným riešením pre nevidiacich žiakov našej vekovej kategórie je aj fyzický programovací jazyk Torino [11], ktorý vyvinuli v Microsoft Research Lab Cambridge. Obidve uvedené prostredia sme úspešne overili s našimi nevidiacimi žiakmi [12]. Nováčikovia v programovaní v nich môžu programovať jednoduché melódie, príbehy alebo riekanky. Ukázalo sa, že takéto kreatívne aktivity sú pre nevidiacich žiakov mimoriadne pútavé. Žiaci si môžu osvojiť všetky základné programovacie koncepty bez toho, aby boli nútení si predstavovať pohyb nejakého objektu po obrazovke, čo je náročné najmä pre kongenitálne (od narodenia) nevidiacich žiakov.

Pre povolanie programátora je však dôležité, aby sa u žiakov pestovala aj schopnosť orientácie na obrazovke počítača. Preto sme pre mierne pokročilých žiakov vyvinuli prostredie Coshi [13], ktoré popíšeme v nasledujúcej kapitole.

3 PROGRAMOVACIE PROSTREDIE COSHI

Prostredie Coshi umožňuje programovať pohyb robota po ozvučenej štvorcovej sieti na obrazovke počítača. Používa jednoduchý programovací jazyk, ktorého základ tvoria príkazy Hore, Dole, Vľavo, Vpravo. Tieto príkazy slúžia na presun robota o jedno políčko v príslušnom smere. Možno použiť aj príkaz Prehraj na prehranie zvuku priradeného k políčku, na ktorom sa robot aktuálne nachádza.

Príkaz Ticho zapne tichý režim, teda robot sa bude pohybovať v tichosti a príkaz Nahlas opätovne zapne prehrávanie zvukov pri pohybe robota po políčkach. Okrem základných príkazov je možné použiť cyklus Opakuj so známym počtom opakovaní (podobne ako FOR), cyklus s podmienkou Kým (podobne ako WHILE), príkaz vetvenia Ak (IF-THEN-ELSE), podprogram bez parametra a s jedným parametrom a číselnú premennú.

Obrázok 2: Aplikácia Coshi, políčka majú priradené zvuky zvierat

Prostredie aplikácie je plne ozvučené. Čítač obrazovky interpretuje všetky zamerané položky aplikačnej ponuky, ako aj vytváraný program. Jednotlivé políčka hracej plochy majú priradené zvuky.

Každý zvuk sa prehrá, keď na políčko pri vykonávaní programu vstúpi robot. Spätnou väzbou počas vykonávania programu je pre nevidiaceho žiaka sekvencia zvukov, ktorá sa prehrá pri pohybe robota po hracej ploche. Názvy priradených zvukov sa dajú zobraziť na políčkach, aby aj vidiaci žiaci a učitelia mali vizuálnu spätnú väzbu. Skôr ako začnú nevidiaci žiaci vytvárať program, môžu hraciu plochu preskúmať pomocou klávesov so šípkami a zistiť, aké zvuky sú priradené k jednotlivým políčkam. Pre každé políčko si môžu nechať vysloviť aj jeho súradnice (číslo riadku a stĺpca). Editor programu bol vytvorený s ohľadom na nevidiacich programátorských začiatočníkov, ktorí nemusia písať celé príkazy, ale môžu ich vyberať z ponuky alebo vkladať do programu pomocou klávesových príkazov.

Na obrázku 2 je snímok okna z programu Coshi s hracou plochou o veľkosti 3x3 políčka. Jednotlivé políčka majú priradené zvuky zvierat. V ľavej časti okna je program. Pri jeho vykonávaní sa robot znázornený čiernym kruhom postupne presunie po políčkach, ktoré majú priradené zvuky koňa, mačky a prasaťa. Pri pohybe robota sa zvuky prehrajú v uvedenom poradí.

Prostredie štandardne ponúka niekoľko zvukových schém, ale k dispozícii je aj editor nových zvukových schém. K jednotlivým políčkam tak môže učiteľ priradiť rôzne iné zvuky podľa motivačných preferencií žiakov. Samotní žiaci sa môžu podieľať na tvorbe vlastných mikrosvetov a rozhodovať o tom, aké zvuky sa priradia k políčkam a aké typy úloh budú riešiť. Prostredie teda umožňuje vytvárať mikrosvety, v ktorých žiaci riešia úlohy zamerané na dosiahnutie rôznych vzdelávacích cieľov.

Najdôležitejším cieľom je samozrejme rozvoj algoritmického myslenia a zoznamovanie sa so základnými programovacími konceptami (ako je postupnosť príkazov, cyklus, príkaz vetvenia, podprogramy a premenné). S tým súvisí aj rozvoj schopnosti odlaďovať program – hľadať chyby v programe a odstraňovať ich. Okrem algoritmických a programátorských zručností môžu žiaci získavať aj mnohé ďalšie, ako napríklad nasledujúce.

 Rozvoj hudobnej tvorivosti: Ak jednotlivým políčkam priradíme tóny stupnice, žiaci môžu pomocou programovania pohybu robota po týchto políčkach naprogramovať rôzne melódie.

 Rozvoj orientačných schopností potrebných pre prácu s tabuľkami alebo mriežkami. Ak si napríklad jednotlivé políčka predstavíme ako domy a priradíme im zvuky vyslovujúce adresy domov (riadky budú názvy ulíc a stĺpce budú čísla domov), žiaci môžu programovať pohyb robota  poštára doručujúceho zásielku z jedného domu do iného.

 Rozvoj logického myslenia a schopnosti riešiť problémy. Ak napríklad, jednotlivým políčkam priradíme zvuk vyslovujúci smer pohybu robota, žiaci môžu programovať pohyb robota podľa trasy určenej priradenými zvukmi (obrázok 3).

Obrázok 3: Hracia plocha použitá v úlohe Programovanie trasy (kapitola 5)

4 METODOLÓGIA

4.1 Ciele, metódy a výskumná vzorka

V našom výskume sme sledovali, ako si nevidiaci žiaci konštruujú znalosť programátorských konceptov. V tomto článku sa pokúsime nájsť odpovede na nasledujúce výskumné otázky.

O1: Ako nevidiaci žiaci postupujú pri riešení úloh v prostredí Coshi, ak pracujú podľa nášho edukačného scenára (kapitola 4.2)?

O2: Ako nevidiaci žiaci používajú podmienený cyklus a cyklus so známym počtom opakovaní pri riešení komplexnejších úloh v prostredí Coshi?

Použili sme kvalitatívnu stratégiu prípadovej štúdie. Skúmanými prípadmi boli úlohy, ktoré nevidiaci

 Sledovanie žiakov pri riešení úloh počas hodín informatiky.

 Polo-štruktúrované rozhovory so žiakmi a ich učiteľom informatiky.

 Analýza našich poznámok vytvorených počas hodín informatiky.

Našu výskumnú vzorku tvorili štyria zrakovo postihnutí žiaci ôsmeho ročníka základnej školy vo veku 14–16 rokov (dvaja chlapci a dve dievčatá). Boli to žiaci z tej istej triedy, dobre sa poznali a boli zvyknutí spolupracovať v skupine. Pri práci s počítačom používali slúchadlá a čítač obrazovky. Jedna žiačka so zvyškami zraku používala aj zväčšovací softvér. Podľa vyjadrenia učiteľa informatiky boli ich počítačové zručnosti mierne nadpriemerné. Všetci žiaci vedeli používať základné funkcie textového, tabuľkového a zvukového editora, emailového klienta a webového prehliadača. Okrem toho už v minulosti programovali v prostrediach Alan a Torino, v ktorých vytvárali programy zložené z postupností príkazov a cyklov so známym počtom opakovaní. Žiaci tiež mali skúsenosti s riešením úloh mimo počítača zameraných na programovanie pohybu objektu po mriežke. S konceptom podmieneného cyklu sa žiaci predtým nestretli.

4.2 Edukačný scenár

Vytvorili sme edukačný scenár na šesť vyučovacích hodín. Cieľom prvej hodiny bolo zoznámiť žiakov s programovacím prostredím Coshi a základnými príkazmi jazyka. Použili sme zvukovú schému Zvieratá (obrázok 3). Porozprávali sme žiakom príbeh o robotovi menom Coshi, ktorý pomáha kŕmiť zvieratá na farme. Vyzvali sme ich, aby pomocou základných príkazov (vľavo, vpravo, hore a dole) programovali pohyb robota medzi zvieratami. Počas druhej hodiny žiaci riešili úlohy zamerané na použitie cyklu so známym počtom opakovaní. Mali vytvárať programy, aby sa robot pohyboval o presne určený počet políčok v rovnakom smere. Tretia hodina bola zameraná na použitie podmieneného cyklu. Žiaci mali naprogramovať, aby robot prešiel na koniec riadka alebo stĺpca bez ohľadu na rozmery hracej plochy. Počas štvrtej hodiny žiaci vytvárali programy, v ktorých používali premennú na to, aby robot zistil počet určitých objektov (napríklad psov) na políčkach, cez ktoré prejde (obrázok 4).

Obrázok 4: Zvuková schéma pre úlohu Počítanie psov

Piata hodina bola zameraná na použitie príkazu vetvenia. Úlohou bolo naprogramovať robota, aby spočítal susedné políčka alebo aby zistil, či sa môže pohnúť určitým smerom (nie je tam okraj hracej plochy). Počas šiestej hodiny žiaci riešili komplexnejšie úlohy zamerané na použitie vnorených programovacích štruktúr.

5 POZOROVANIA

Pozorovali sme, že žiaci v prostredí Coshi pracovali aktívne a s nadšením. Pri editovaní programu intenzívne používali klávesové príkazy, vďaka čomu nemali väčšie problémy.

Vytváranie programov pozostávajúcich z postupností základných príkazov bez cyklov nerobilo žiakom problémy (hodina 1). Keď mali žiaci vytvoriť program, v ktorom sa nejaký príkaz niekoľkokrát opakoval (hodina 2), neprišli na to, že by mohli použiť cyklus Opakuj so známym počtom opakovaní, hoci tento pojem už použili pri programovaní v jazykoch Alan a Torino. Cyklus

spomenuli, že ním môžu nahradiť sekvenciu opakujúcich sa príkazov a potom už používali túto konštrukciu bez problémov.

Problémy sme pozorovali, až keď mali žiaci riešiť úlohy zamerané na použitie podmieneného cyklu Kým (hodina 3). Žiaci mali naprogramovať, aby robot prišiel na koniec riadku a zastavil sa. Rozhodli sa spočítať políčka, po ktorých má robot prejsť a použiť cyklus Opakuj so známym počtom opakovaní. Opýtali sme sa žiakov, či by dokázali program zmeniť tak, aby fungoval na hracej ploche ľubovoľnej veľkosti. Žiaci začali v ponuke príkazov hľadať vhodný príkaz, ktorý by mohli použiť a všimli si príkaz Kým. Vytvorili program uvedený na obrázku 5 vľavo.

Obrázok 5: Programy žiakov obsahujúce podmienený cyklus

Keď žiaci program spustili, nič sa neudialo, ale program očividne bežal a museli ho ukončiť špeciálnym klávesovým príkazom. Vysvetlili sme žiakom, že vytvorili nekonečný cyklus, pretože jeho telo je prázdne, robot sa nehýbe, takže nikdy sa nedostane na koniec riadku a podmienka cyklu bude stále splnená. Žiaci pridali do tela cyklu príkaz vpravo (obrázok 5 vpravo). Počas následnej diskusie so žiakmi sme zistili, že slovo vpravo v podmienke pochopili tak, že sa má robot hýbať vpravo. Ďalšie principiálne podobné úlohy už žiaci riešili bez problémov.

Počas štvrtej hodiny, zameranej na použitie premenných, sme nepozorovali žiadne problémy. Žiaci sa naučili definovať a nastaviť premennú, zobraziť jej hodnotu a meniť ju, keď sa niečo udeje – robot sa presunie, ozve sa nejaký zvuk (brechot psa) a podobne.

Príkaz s podmienkou (hodina 5) bol pre žiakov novým pojmom. V prostredí Coshi je tento príkaz implementovaný iba s dvomi vetvami – Ak vetvou a else vetvou, aj v prípade, keď tá druhá vetva nie je potrebná a teda je prázdna. Takáto implementácia sa ukázala ako problematická, pretože žiaci strácali v tejto komplikovanej štruktúre orientáciu.

Veľkou výzvou bola pre žiakov úloha Programovanie trasy robota (hodina 6). V úlohe sme použili zvukovú schému, kde mali jednotlivé políčka priradené vyslovované príkazy určujúce smer pohybu robota. Takto bola jednoznačne určená trasa pre robota z ľavého horného rohu hracej plochy do cieľového políčka so zvukom hurá (obrázok 3). Žiaci najprv vyriešili úlohu v priamom režime tak, že podľa priradených príkazov pohybovali robotom klávesmi so šípkami. Keď zistili, že priradené príkazy naozaj „dovedú“ robota do cieľa, začali vytvárať program.

Obrázok 6 obsahuje tri rôzne riešenia, ktoré žiaci postupne vytvorili. Najprv použili iba základné príkazy (obrázok 6, prvý stĺpec). Keď sme im pripomenuli, že môžu používať aj príkaz cyklu, nahradili postupnosti rovnakých príkazov cyklami (obrázok 6, druhý stĺpec). Niektorí študenti použili cyklus Opakuj so známym počtom opakovaní a niektorí podmienený cyklus Kým. Opýtali sme sa žiakov, či by dokázali vytvoriť taký program, ktorý by fungoval aj keby sa trasa pre robota zmenila.

Žiaci najprv nevedeli, ako by mal taký program vyzerať. Požiadali sme jedného z nich, aby sa správal ako robot Coshi a zvyšní žiaci mu dávali príkazy. Opýtali sme sa žiakov nasledujúce otázky: Ako Coshi zistí, že ešte nie je v cieli? Čo musí Coshi ešte zistiť, ak vie, že ešte nie je v cieli? Čo má Coshi spraviť, keď zistí aký príkaz je priradený k aktuálnemu políčku? Žiaci postupne popísali slovne, ako bude program fungovať. Potom napísali program v jazyku, ktorému Coshi rozumie (obrázok 6, tretí stĺpec). Pôvodne sme si mysleli, že žiaci namiesto vnorených príkazov kým, použijú príkazy vetvenia ak – tak – inak. Žiaci však uprednostnili podmienený cyklus. Pravdepodobne to bolo kvôli komplikovanej implementácii príkazu vetvenia v jazyku Coshi.

Zistili sme, že žiaci počas riešenia úlohy prešli nasledujúcimi štyrmi fázami:

1. Riešenie úlohy v priamom režime (hýbanie robotom pomocou klávesov so šípkami).

2. Tvorba riešenia pomocou základných príkazov pre špecifický prípad.

3. Nahradenie postupností opakujúcich sa príkazov cyklami.

4. Riešenie problému vo všeobecnosti pomocou vnorených cyklov.

Naše pozorovania prediskutujeme v nasledujúcej kapitole.

Obrázok 6: Tri riešenia úlohy Programovanie trasy robota

6 ZÁVERY A DISKUSIA

Predovšetkým chceme zdôrazniť, že si uvedomujeme slabú stránku nášho výskumu, ktorou je nízky počet skúmaných nevidiacich žiakov. Na Slovensku nie je veľa nevidiacich žiakov nižšieho sekundárneho vzdelávania, na ktorí by mohli participovať na výskume. Pokúšali sme sa nadviazať spoluprácu aj s učiteľmi nevidiacich v Českej republike, ale podľa našich informácií sa výučbe programovania zatiaľ nevenujú.

Slabou stránkou nášho výskumu bola nielen malá vzorka, ale aj skutočnosť, že sme použili iba jeden vzdelávací scenár, a preto nezovšeobecňujeme naše zistenia. Považujeme to však za príležitosť pokračovať v tomto výskume s inými žiakmi (ktorí sú v súčasnosti v nižších ročníkoch) a s upravenými úlohami, ktoré budú lepšie reflektovať kognitívne nároky programovacích úloh na nevidiacich študentov.

Napriek uvedeným skutočnostiam považujeme niektoré naše zistenia za dôležité pre náš budúci výskum. Žiaci v našej výskumnej vzorke uprednostňovali použitie viacnásobne sa opakujúcej postupnosti základných príkazov pred cyklom, čo môže byť spôsobené tým, že každú úlohu riešia ako jeden konkrétny problém. Premýšľanie o všeobecnom riešení je pre nich veľmi abstraktné. Aby mohli nájsť všeobecné riešenie, problém sa musí rozdeliť na niekoľko podproblémov, ako sme to uviedli aj v [12]. V ďalšej iterácií našich úloh by sme chceli použiť lepšiu motiváciu, ktorá by pomohla študentom vidieť problémy vo všeobecnejšej rovine.

Žiaci tiež uprednostňovali podmienený cyklus pred príkazom vetvenia. Môže to byť spôsobené jednak komplikovanou syntaxou príkazu vetvenia v jazyku Coshi, ale aj neporozumením tohto pojmu. Mühling et al. [16] zisťovali programátorské zručnosti študentov 7. až 10. ročníka a zistili, že

Žiaci tiež uprednostňovali podmienený cyklus pred príkazom vetvenia. Môže to byť spôsobené jednak komplikovanou syntaxou príkazu vetvenia v jazyku Coshi, ale aj neporozumením tohto pojmu. Mühling et al. [16] zisťovali programátorské zručnosti študentov 7. až 10. ročníka a zistili, že

In document 2020 Sborník konference (Page 156-164)