Koodausta opettamassa

aloituskuva

Flickr: Coderdojo Brianza (CC BY-ND 2.0)

Ohjelmoinnin eli koodauksen opetus tulee peruskouluihin vuonna 2016. Osa kouluista on jo varautunut tulevaan muutokseen aloittamalla koodaukseen tutustumisen jo nyt.

Minulle tarjoutui mahdollisuus opettaa koodausta yhden päivän ajan Anttolan yhtenäiskoulussa, joka järjesti tapahtuman ”Koko koulu koodaa”. Tehtäväni oli opettaa koodausta yhdelle ryhmälle kerrallaan koulun auditoriossa. Päivän ensimmäiset oppilaat olivat esikoululaisia ja viimeiset olivat ysiluokkalaisia. Varsinkin pienimmät oppijat olivat innostuneita koodareita. Tosin koulu oli hyvin järjestänyt kummioppilaat ykkös- ja kakkosluokkalaisten tueksi. Näin neuvoja oli lähellä, samoin kuin suoritusta kannustava tutori.

Päivän opetus kouluttajan näkökulmasta oli se, että yksinkertainen on kaunista. Lyhyessä ajassa ja ison ryhmän kanssa ei kannata haukata liian isoa palaa. Toisaalta pelkkä ”Hello World” -tyyppinen ohjelma ei innosta tutkimaan kyseistä aihepiiriä lähemmin esim. koulutyön ulkopuolella. Tytötkin innostuvat koodauksesta, jos saavat tehdä sitä omalla tavallaan, eli esimerkiksi kertoa koodaamalla tarinaa. Koodaamisen ei enää tarvitse olla sitä, että kirjoitetaan koodia opettajan mallin mukaisesti, ja lopputuloksena ruudulle tulostuu tekstiä. Parhaimmillaan koodaus tarjoaa mahdollisuuden luovuuteen ja tarinankerrontaan oppilaan omilla ehdoilla.

Läppäreiden tilalla iPadit

lappari2

Flickr: ken fager (CC BY-NC-SA 2.0)

Koodauspäivän suunnitteluvaiheessa oli löydettävä sopivat työkalut ohjelmointiin. Alusta saakka oli selvää, että Scratch sopii ainakin alakoululaisille. Yläasteen osalta suositeltiin ainakin Koodi 2016 -kirjassa JavaScriptiä. Tosin varsin pian kävi ilmi, ettei perinteinen läppärikone ole hyvä ratkaisu. Niissä riittää virtaa noin 20 minuutin ajan, eikä virran saaminen yhtä aikaa lähes 40 koneeseen auditoriossa ole helppo homma. Lisäksi kannettavien tietokoneiden siirtäminen yhteen tilaan on melkoinen raahaamisoperaatio, varsinkin jos kuljettaisin työpaikaltani puolet koneista.

Oli mietittävä kätevämpi ratkaisu ja se oli iPad. Noin 20 iPadin kuljettaminen ei olisi minulle minkäänlainen ongelma ja testeissä niissä riitti virtaa, vaikka olisi koodannut Scratchillä koko päivän. Tosin JavaScript oli tässä vaiheessa unohdettava, koska JavaScriptillä koodaaminen vaatii kunnollisen editorin ja hyvän näppäimistön. iPadille oli tarjolla ilmaisia ratkaisuja, kuten esim. JavaScript Anywhere, mutta niillä koodaaminen on todella hankalaa verrattuna varsinaisiin ohjelmointityökaluihin, jotka löytyvät jokaisesta kannettavasta tietokoneesta. Lisäksi kannettavaan tietokoneeseen on saatavilla Chrome-selain, joka sisältää loistavia työkaluja koodaukseen ainakin HTML:n ja JavaScriptin osalta. iPadille saa Chrome selaimen, mutta siitä puuttuvat kaikki koodauksessa tarvittavat toiminnot. Oli ilmeistä, että JavaScriptistä oli luovuttava.

ScratchJr

ScratchJr-ohjelman komennot ovat sormenpään kokoisia

Alakouluikäisten kanssa käytin ohjelmaa ScratchJr, joka on ilmainen ja helppokäyttöinen. Ohjelman vahvuuksia ovat yksinkertaisuus ja toimintojen pieni määrä. Aloituskynnys on matala, koska ohjelmalla onnistuu heti. Lisäksi pieni määrä toimintoja edistää ongelmanratkaisukyvyn kehittymistä. Ohjelma onkin parhaimmillaan animaatiotehtävissä. Yksi sellainen tehtävä voisi olla esim. vuodenaikojen esittäminen animaationa erilaisten hahmojen dialogien kera. Lisäksi ohjelma toteuttaa hyvin koodauksen perusperiaatetta, jonka mukaan kyse on komennoista. ScratchJr sisältää sopivan vähän komentoja. Täten jää tilaa myös luovuudelle. Parasta siinä on kuitenkin riittävän isot komennot, joiden siirtäminen ja yhdistäminen ei tuottanut yhdellekään oppilaalle vaikeuksia.

Pyonkee

Yläkouluikäisten kanssa oli suunnitelmissa käyttää vain ja ainoastaan Pyonkee-ohjelmaa. Pyonkee on täsmälleen sama ohjelma kuin Scratchin versio 1.4, mutta se toimii iPadilla. Suunnittelin pelin, jonka tekisi kahden oppitunnin aikana. Pelin juoni oli, että pieni mustekala kerää mereen ilmestyviä tähtiä. Jokaisesta keräämästään tähdestä se saisi pisteen. Ilkeät simpukat kuitenkin ryöstävät tähtiä, jolloin pisteet nollautuvat. Lisäksi peliin ilmestyy jossain vaiheessa ”Game Overin” aiheuttava haikala, jota mustekalan kannattaisi väistellä.

hai

Heti alussa kävi ilmi, että tämän pelin tekeminen oli rajattava perustoimintoihin kuten siihen, että mustekala seurasi sormenliikkeitä eli sitä voitiin ohjata. Lisäksi haikala saatiin mukaan animaation kera. Mutta ongelmia oli runsaasti.

  • iPadit hyytyivät jostain syystä. Ne olisi pitänyt käynnistää kokonaan uudestaan ennen opetusta. Osalla oppilaista vaarallinen haikala liikkui tuskin lainkaan eli nuorison termejä käyttäen se lagasi.
  • Komennot ovat pieniä eli niitä on sormella hankala siirtää ja yhdistellä. Jokainen törmäsi tähän ongelmaan viimeistään sillon, kun komentoblokki oli iso.
  • Koodialue on kapea, jonka vuoksi pitkä koodi ei näy kokonaisuudessaan. Varsinkin satunaislukuihin perustuvat sijainnit olivat hankalia ja moni turhaantui, kun ei saanut komentoa oikeaan kohtaan.
  • Pyonkeessa ei ollut valmiina tähtihahmoa, joten se piti piirtää.

Suosituksia koodauksen opetukseen

Scratch on vakiinnuttanut paikkansa ohjelmana, jolla koodaus aloitetaan. Tällä hetkellä mikään ohjelma ei ole lähelläkään Scratchin tasoa. Scratchin hyvyys perustuu siihen, ettei koodaukselle ominaisia syntaksivirheitä esiinny lainkaan. Lisäksi koodin tuloksena syntyy joko tarinallinen animaatio tai peli. Kaiken hyvän lisäksi Scratch on saatavissa Windowsille, Linuxille, Macille, ja se toimii myös iPadissa.

Ruotsissa muutama koulu on käyttänyt koodauksen opetuksessa Kojo-ympäristöä, mutta se ei ole mielestäni lähelläkään Scratchin tasoa. Joissakin yhteyksissä on kouluille suositeltu HTML:n opetusta, mutta mielestäni se ei ole ohjelmointia vaan lähinnä tekstin muotoilua. JavaScript on jo oikeaa ohjelmointia, mutta siinä menee runsaasti aikaa ennen kuin opiskelija oppisi käyttämään sitä luovasti. Eikä pelkällä JavaScriptillä saa mitään näyttävää aikaiseksi. Siksi Scratch on hyvä ratkaisu, mutta iPadilla kannattaa tehdä vain yksinkertaisia pelejä. Parasta olisi, jos Scrathiä käytettäisiin esim. kannettavalla tietokoneella. Hiirellä raahaamalla saadaan komennot oikeisiin paikkoihin ja koodialue on tarpeeksi iso.

Vinkki iPadilla koodaaville

iPad on koodauksen osalta varsin kömpelö, mutta siinä on myös hyviä puolia. Pyonkee-ohjelma toimii hyvin, jos jättää pitkät komennot kuten satunnaisluvut pois. Lisäksi iPad on siitä loistava, että sen voi viedä minne vaan, ja sen kameralla voi kuvata. Lisäksi otetun kuvan voi laittaa pelin taustakuvaksi, jolloin peli saa ihan uusia ulottuvuuksia. Tässä esimerkki, jossa Otavan Opiston pihalla on tanssiva tyttö.

tanssi

Scratch

Scratch on MIT (Massachusetts Institute of Technology) valmistama ohjelma lapsille ja nuorille. Ohjelman tavoitteena on, että ohjelmointi olisi mahdollisimman helppoa ja hauskaa. Helppous johtuu siitä, ettei koodia kirjoiteta. Scratch muistuttaa idealtaan hyvin paljon Lego-palikoiden yhdistelyä, minkä vuoksi oppimiskynnys on hyvin matala. Ohjelman hauskuus perustuu siihen, että lyhyessä ajassa voi saada aikaiseksi varsin näyttäviä ohjelmia.

  1. Scratch online: Toimii selaimen kautta, mutta vaatii verkkoyhteyden ja Flashin. Huom.! ei toimi iPadilla.

  2. Scratch 1.4: Omalle koneelle asennettava vanha versio, joka pohjautuu Javaan. Scratch 1.4 on saatavilla Macille, Windowsille ja Linuxille.

  3. Scratch 2.0: Omalle koneelle asennettava uusin Scratch. Ohjelma tarvitsee tuekseen Adobe Airin, eli se on asennettava, jos sitä ei ole entuudestaan koneella. Scratch 2 on saatavilla Macille, Windowsille ja Linuxille. Ohjelma on kehittyneempi kuin aiempi Scrtachin versio 1.4. Siinä on mm mahdollisuus luoda klooneja ja tuhota ne, kun ne ovat pelialueen ulkopuolella.

  4. Pyonkee: iPadille, käytännössä sama kuin omalle koneelle asennettava vanha Scratch 1.4.

  5. ScratchJr: iPadille, Scratchin kevennetty versio.

Scratchin suuren suosion vuoksi on sille saatavissa ohjeita monessa eri muodossa:

 Jari Sarja, verkkopedagogi