Koodari, muusikko ja pohdiskelija.

Tasavertaista koodausta perusopetukseen

Opetushallitus hyväksyi viime vuoden lopulla uuden opetussuunnitelman perusteet. Uusi opetussuunnitelma, joka astuu voimaan syksyllä 2016, tuo perusopetukseen muun muassa ohjelmoinnin. Sokeille oppilaille tämä uudistus on ongelmallinen, sillä 3-6 luokilla ohjelmointia harjoitellaan graafisten ohjelmointiympäristöjen avulla. Mikä neuvoksi, kun visuaalisuus ei ole vaihtoehto?

Kuinka kaikki alkoi?

Kirjoitin viime joulukuussa kokemuksistani ohjelmoijana visuaalisessa peliprojektissa. Vaisuhkon alun jälkeen tekstini lähti leviämään nopeasti eri kanavia pitkin ympäri maata. Ennen pitkää minuun otti yhteyttä eräs tietotekniikan opettaja, joka suunnitteli alkavansa opettaa tunneillaan myös ohjelmointia. Hänen luokallaan oli sokea oppilas, joten hän kysyi mielipidettäni sokeille sopivista ohjelmointityökaluista. Ohjelmointia kun ei ollut tarkoitus opettaa perinteisesti koodia kirjoittamalla, vaan visuaalisesti varta vasten ohjelmoinnin opettelua varten kehitetyn ohjelman avulla. Aloin tutkia asiaa, ja vastaani nousi seinä.

Graafinen ohjelmointiympäristö pähkinänkuoressa

Uuden opetussuunnitelman perusteissa kehotetaan käyttämään graafista ohjelmointiympäristöä ohjelmoinnin opettelemiseen 3-6 luokilla. Perinteisesti ohjelmia tehdään kirjoittamalla joukko komentoja jollakin ohjelmointikielellä, ja kääntämällä lopputulos konekieliseksi, suoritettavaksi ohjelmaksi. Menetelmä on tehokas, mutta yksikin kirjoitusvirhe tai puuttuva merkki voi estää ohjelman toimimisen kokonaan.

Graafiset ohjelmointiympäristöt, kuten MIT:n kehittämä Scratch, eliminoivat virheiden mahdollisuuden tekemällä ohjelmoinnista konkreettista rakentamista. Ohjelmointikomennot esitetään “palikoina”, joista rakentamalla voidaan luoda hyvin yksinkertaisia, mutta täysin toimivia ohjelmia - tavallisimmin pelejä tai animaatioita. Tällainen “ohjelmointi” muistuttaa pitkälti legopalikoilla rakentamista. Se on yksinkertaista, palkitsevaa ja opettaa samoja asioita, joita oikeissakin ohjelmointikielissä tarvitaan.

Ongelma

Jokainen kokeilemani graafinen ohjelmointiympäristö on ollut sokealle käyttäjälle saavuttamaton. Jo ympäristöjen käyttöliittymät olivat joko lähes tai täysin mahdottomia käytettäviä. Tämä ei ole kuitenkaan se varsinainen ongelma, sillä jokainen näiden ympäristöjen käyttöliittymähaasteista on tehtävissä saavutettavaksi.

Todellinen ongelma on se, että lähestymistapa ohjelmointiin on sokealle täysin väärä. Sokea oppilas ei hyödy saati innostu kuvien animoinnista, hiiriohjattavista peleistä, algoritmien toimintaperiaatteita kuvaavista interaktiivisista esityksistä - ylipäätään mistään, minkä kokemisessa hän ei voi olla itse millään mielekkäällä tavalla mukana. Oivallisesta opetusohjelmasta tulee sokealle oppilaalle kaukainen ja teoreettinen mörkö vailla yhtäkään tarttumapintaa.

Mikä neuvoksi?

Vanhat ja perinteiset

Kaksi perinteistä ja paljon käytettyä toimintamallia nousee mieleen omilta kouluvuosiltani. Joko eriytetään oppilas muusta luokan toiminnasta oppitunnin ajaksi, tai opetellaan asia seikkaperäisesti avustajan tai opettajan kanssa. Ensimmäinen ratkaisumalli on yleinen liikunnassa, jälkimmäinen lähes missä tahansa visuaalista hahmotuskykyä edellyttävässä oppiaineessa.

Kumpaakin näistä malleista voisi soveltaa erinomaisesti tähänkin tilanteeseen. Sen lisäksi kumpikin näistä malleista on oikeusmurha jokaista sokeaa peruskoululaista kohtaan. Ymmärrän ja hyväksyn, ettei sokeaa oppilasta voi laittaa näkevien kanssa samalle koripallokentälle ja olettaa hänen olevan tasavertainen joukkueen jäsen, mutta ohjelmoinnin kanssa tilanne on aivan toinen. Ohjelmointi on paitsi täysin mahdollista, niin myös aivan yhtä palkitsevaa näkökykyyn katsomatta. Yhdellekään aikuiselle, joka ajattelee toisin, ei pitäisi olla tilaa tässä koulujärjestelmässä.

Ohjelmointitehtävien teko avustajan kanssa voisi mennä helposti tilanteeseen, jossa oppilas ohjeistaa avustajaa, joka tekee varsinaisen työn. Tehtävät tulevat näin suoritetuiksi, mutta pedagogista mieltä tällaisessa toiminnassa ei ole. Ohjelmointiopetuksen koko juju kun on siinä, että oppilas pääsee itse näkemään ja kokemaan, mitä koneelle annetut komennot voivat saada aikaan. Jos sokea oppilas ei koskaan pääse näkemään työnsä tuloksia, jää kokeilemisen riemu kokematta. Saapahan edes avustaja hyvät pohjatiedot ohjelmoinnin alkeista.

Äänianimaatiot ja -pelit

Pidän tätä ratkaisua kenties parhaana mahdollisena yllä esiteltyyn dilemmaan. Pelillistämisen edut opetuksessa ovat kiistattomat, eikä ole mitään syytä, miksei sama voisi toimia myös sokean oppilaan kohdalla. Kuva-animaatiot voisi korvata stereokentässä liikkuvilla äänillä, ja ohjelmaa olisi helppo käyttää näppäimistöllä tai kosketusnäytöllä. Näin sokea oppilas pääsisi tekemään käytännössä samoja asioita, ja ennen kaikkea voisi saavuttaa samat tavoitteet kuin näkevät oppilaat.

Ongelmia on kuitenkin kaksi: ensiksikin se, ettei tietääkseni tällaista ohjelmaa ole olemassakaan. Kymmenisen vuotta sitten julkaistiin betaversio Audio Game Maker -nimisestä, ääniin perustuvien pelien tekemiseen kehitetystä sovelluksesta, mutta ohjelma toimi valitettavan epävakaasti, eikä sen kehitystyö koskaan jatkunut. Samankaltaiselle ohjelmalle olisi ehdottomasti suuri tilaus edelleen. (Tässähän olisi hyvä sauma pistää pystyyn kunnon avoimen lähdekoodin projekti.)

Toinen ongelma on puolestaan fragmentaatio. Sokean oppilaan tehtävät pitäisi käytännössä valmistella erikseen, sillä eri ohjelmat toimivat eri tavoin, eivätkä niiden tarjoamat ominaisuudetkaan ole välttämättä identtiset. Näin joudutaan kuitenkin toimimaan usein jo nyt, joten en pidä tätä varsinaisena esteenä, jos sopiva ohjelma vain olisi olemassa.

Tekstipohjainen ohjelmointikieli

Kunnianhimoisesti voisi ajatella, että “Laitetaan kolmasluokkalainen opettelemaan suoraan jokin oikea ohjelmointikieli.” Ajatus on kaunis ja muutaman harvan kohdalla se voisi jopa toimia, mutta käytännössä tehtävä on melkoisen haastava. Ohjelmoinnin opetteleminen “perinteisellä tavalla” koodia kirjoittamalla vaatii kärsivällisyyttä, aikaa, huolellisuutta ja paneutumista, minkä lisäksi ohjelmointikielten komennot ovat englanninkielisiä. Ei ole kohtuullista vaatia, että kolmasluokkalainen pantaisiin opettelemaan asioita, joihin normaalisti paneuduttaisiin vasta seitsemännellä luokalla.

On olemassa joitakin erityisesti kouluja varten rakennettuja ohjelmointikieliä, kuten Mama, joiden komennot on mahdollista kääntää eri kielille. Tällainen ohjelmointikieli voisi olla periaatteessa ratkaisu ongelmaan, mikäli sitä olisi yksinkertaistettu riittävästi, ja sen ominaisuudet eivät nojaisi liiaksi graafiseen sisältöön. Edellä mainittu Mama olisi tästä syystä huono vaihtoehto, sillä sen tavoitteet ovat 3d-grafiikan tuottamisessa.

Ohjelmoitavat rakennussarjat

Tämä mielenkiintoinen idea kantautui korviini Englannista, jossa painitaan parhaillaan saman ongelman kimpussa. Siellä heitettiin ilmaan idea ohjelmoitavan rakennussarjan (esim. Tessel, littleBits) käytöstä sokeiden oppilaiden ohjelmointiopetuksessa. Sarja koostuu erilaisista moduuleista, kuten sensoreista, moottoreista ja ohjelmoitavista tietokoneyksiköistä, jotka voidaan helposti liittää toisiinsa. Idea on ensikuulemalta mainio, sillä se tarjoaa todella kouriintuntuvan tavan nähdä, mitä ohjelmoimalla on mahdollista saada aikaan. Käytännön ongelma on kuitenkin vanha tuttu: näitä rakennussarjoja ohjelmoidaan oikeilla ohjelmointikielillä, eikä sellaisen opetteleminen ole mielekästä saati kohtuullista. Mahdollinen poikkeus tähän on hyvin yleisten Lego Mindstorms NXT -robottien ohjelmointiin tehty esteetön JBrick-ohjelmointiympäristö, jota en itse ole päässyt vielä kokeilemaan.

Mahdollisimman vähän patentteja, kiitos!

Kun ohjelmointiopetus alkaa, tapahtunee jompi kumpi seuraavista: joko opettajat keksivät - yksin tai yhdessä - koko joukon erilaisia ratkaisuja sokean oppilaan opettamiseen jakaen niitä vaihtelevasti myös muille, tai “ylhäältä”, kuten Oppimis- ja ohjauskeskus Onervasta (ent. Jyväskylän näkövammaisten koulu) annetaan yksi tai useampi toimintamalli. Vertais- ja käyttäjätuen sekä kaikinpuolisen sujuvuuden vuoksi toivon, että näistä jälkimmäinen tulisi tapahtumaan. Vertaistukea runsaasti antaneena ja saaneena tiedän, että se on ainoana tukimuotona tehoton ja kuluttava vaihtoehto. Kyse ei ole siitä, etteikö vertaistukea saisi, vaan siitä, että sitä antavilla on myös oma työnsä hoidettavanaan.

Yhteenveto

En usko ohjelmointiopetuksen pyörähtävän käyntiin täydellä voimalla ensi vuoden syksynä, hyvä jos vielä seuraavanakaan. Fakta kuitenkin on, että ohjelmointia tullaan ennen pitkää opettamaan peruskoulussa. Mikäli vielä ei tiedetä, kuinka sokeat oppilaat tulevat osallistumaan ohjelmoinnin opettamiseen, alkavat viimeiset hetket teknisten ratkaisujen tekoon olla käsillä, sillä ohjelmistojen testaus ja tukimateriaalien laatiminen vie aikaa.

Syy siihen, että ryhdyin omalla tieto- ja kokemuspohjallani tätä tekstiä laatimaan, on täydellinen epätietoisuus. En ole löytänyt mistään sanaakaan tietoa siitä, miten näkövammaiset ja eritoten sokeat on näissä uudistuksissa huomioitu, eikä lähettämiini kyselyihin ole vastattu. Toivon, että tämä kirjoitus on tarpeeton, ja että se osoittaa vain luottamuspulani heitä kohtaan, jotka näitä asioita työkseen tutkivat. Satun kuitenkin olemaan skeptikko, joka ei usko suljettuun tutkimustyöhön. Uskon asioiden olevan kunnossa vasta sitten, kun siitä on ilmennyt pieninkin merkki. Sitä odotellessa.