Miksi me teemme Koodiaapista talkoilla? Koska kaupalliset oppimateriaalikustantajat luultavasti tekevät tämän väärin. Valitettavasti. Tässä on yksi valaiseva esimerkki, joka herättää meissä itkunsekaista naurua.
Olemme kuulleet eräältä suuren suomalaisen oppimateriaalikustantajan edustajalta, että heillä on taatusti kouluille tarjolla laadukkaat, uuden OPSin vaatimukset täyttävät oppikirjat vuoden 2016 syksyksi. Varmasti, sehän heidän lupauksensa kouluille ja opettajille on, että heidän materiaaliinsa nojaten täytetään OPSin vaatimukset.
Uusi OPS:han edellyttää myös ohjelmointia eli koodausta – visuaalista alakoulussa, visuaalista tai kirjoitettua yläkoulussa. Valitettavasti OPSissa on kirjoitettu koodauksesta varsin vähän ja normin voi tulkita todella suppeasti tai sitten laajemmin. Pelkäsimme, että moni oppimateriaalikustantaja tulee tulkitsemaan uutta, vierasta asiaa suppeasti. Äskeisissä Koodiaapisen talkoissa tutustuimme yläkoulun matematiikan opettajille tänä keväänä lähetettyyn ”uuden OPS:in mukaiseen” 9. luokan matematiikan kirjaan. Pelkomme ei ollut turha:
Oppikirjasarjassa koodaus kuitataan kolmella kappaleella: ”Toimintaohjeet”, ”Muuttuja ja lista” sekä ”Ehtolause”. Esimerkiksi kappaleessa ”Muuttuja ja lista” ensin todetaan jotain karkeita yleistyksiä muuttujista ja listoista, ja sitten tarjotaan pari esimerkkiä ja harjoitusta, jotka ovat tasan tarkkaan niitä perinteisiä matematiikan ”sanallisia tehtäviä”, joissa nyt vaan matematiikan muuttujia kutsutaan ohjelmoinnin muuttujiksi ja kirjoitetaan vihkoon jotain pseudokoodia. Siis oikeastiko? Vaikea tietää, pitäisikö itkeä vai nauraa.
Ohjelmointi mahdollistaa sen, että omat loogiset ajatukset voi kirjoittaa koneen ymmärtämään muotoon ja sitten tarkistaa niiden oikeellisuuden koneen avulla. Jos niitä kirjoitetaan vihkoon, ei saavuteta mitään uutta. Suurin osa kirjassa näkyvistä harjoituksista ei edes ole matemaattisesti (tai ohjelmointiteknisesti) kiinnostavia, vaan pyrkii (varsin absurdilla tavalla) selittämään esim. listojen toimintaa. ”Mikä on listan kolmas jäsen?” Tässä menetetään upea mahdollisuus herättää matematiikka eloon tietokoneiden avulla ja lisäksi muutetaan ”koodaaminen” tarkoittamaan jotain kummallista, paperinmakuista pseudomatematiikkaa.
Koodaus mahdollistaa kokonaan uudenlaisten tehtävien ratkaisemisen: tietokoneelle voidaan antaa ratkaistavaksi jotain sellaista, mitä yläkoululainen ei ikinä osaisi tai jaksaisi vääntää ratkaisuksi asti. Koodaus mahdollistaa myös kokonaan uudenlaisten tehtävätyyppien laatimisen: valmiiden kuvien symmetria-akselien tutkimisen sijaan voimme itse koodata kuvia ja tutkia symmetriaa hieman luovemmalla tavalla. Jakolaskualgoritmin koodaamisen sijaan voimme luoda kokonaan oman algoritmin, jolla ohjaamme pelihahmoa labyrintissä tai saamme robotin seuraamaan viivaa. Koodaus avaa uuden mielenkiintoisen maailman erityisesti niille oppilaille, jotka eivät ehkä innostu ”perinteisestä matematiikasta”.
Tämä ensimmäinen kirjan esimerkkitoteutus herättää suuren huolen siitä, ovatko muutkin kustantajat lähdössä tälle samalle linjalle omien oppikirjojensa kanssa.On tietysti ymmärrettävää, että kustantajat haluavat varmistaa kirjan toimivuuden mahdollisimman monessa koulussa, myös niissä joissa ei ole riittävästi tietokoneita. Tämä ei kuitenkaan ole se oikea tie, jos haluamme tehdä sen ”digiloikan” jota hallituskin visioi. Nyt on kouluissa tuhannen taalan paikka vaatia lisää tietotekniikkaa, koska OPS:in toteutus sitä oikeasti vaatii!
Koodausta ei pitäisi myöskään eristää omaksi opintojaksokseen. Sitä ei saa kutistaa vain ”yhdeksi viikoksi 9.luokan puolivälissä”. Koodaus pitäisi nähdä työskentelymuotona, jota käytetään oppimisessa ympärivuoden. Kun jotain koodaa, asia jota ohjelma mallintaa on pakko ymmärtää hyvin, joten koodaamisen ohella oppii myös muita asioita. Pitäisi ymmärtää, että koodaamiseen käytetyt oppitunnit eivät ole pois muilta osa-alueilta, sen avulla voi opiskella muita OPS:iin kirjoitettuja asioita.
Koodiaapisen tekijäjoukko haluaa olla tukemassa kouluja toteuttamaan koodauksen opetusta innostavalla ja luovuuteen ohjaavalla tavalla. Tämän kirjan tapaista ”koodausta” emme halua yhteenkään kouluun. Ensi syksynä toteutamme maksuttoman verkkokurssin (eli MOOC:in), ja seuraavana keväänä toisen. Materiaalit tulevat vapaasti kaikkien käyttöön. Emme ota mallia kuvan oppikirjasta, joten uskallamme luvata että Koodiappisen materiaaleista ja MOOC:sta tulee Jotain Aivan Muuta.
Toivomme toki, että Sanoma Pro, Otava, Edita ja muut tekevät vieläkin paremmat oppikirjat! Koodiaapisessa olevaa materiaalia saa kopioida mukaan CC BY -lisenssin mukaisesti.
Koodiaapinen-tiimin puolesta,
Tarmo Toikkanen, oppimisympäristöjen tutkija, Aalto-yliopisto
Tiina Partanen, matemaattisten aineiden lehtori, Lielahden koulu, Tampere
Tero Toivanen, erityisluokanopettaja, TVT-kehittäjäkouluttaja, Kilonpuiston koulu luokat 1-9; IT-kouluttajat ry
Veijo Kirkinen sanoo
No onpa vainen 🙂 Kyl tuohon pitäis jottain tehä..
Veijo Kirkinen sanoo
sen verran ainakin et heti tietää mistä on kyse: ”Kaksi tai kuusi, mutta vähemmänkuin viisi!”
Niko-Petteri sanoo
En kyllä näe, mikä ongelma on supistaa täyttä teoriaa sisältävä osuus kirjaan. Itse olen ainakin kaivannut liian usein kirjaa juuri MOOCien kaveriksi. Ne kurssit, mitä itse käytynyt, ovat ärsyttäneet juuri siltä osalta, että kerrattavaa tietoa saa etsiä enemmän kissojen ja koirien kanssa, kun tieto on niin monessa eri formaatissa. Toki toinen hälyyttävä ongelma on, ettei MOOCien harjoitukset sitten kertaa tiettyjä asioita tarpeeksi, jotta tieto jäisi selkärankaan ja oikeasti pystyisi koodaamaan itsenäisesti. Ei tosin ole kumma, kun nykyinen konsensus on opettaa ihmisiä koodaamaan Googlen avulla kuin ihan itse omine aivosoluine.
Kuitenkin, on kiva nähdä, miten tulette ratkaisemaan nämä ongelma, ettei MOOCinne jää tasolle ”Hei, katso, kiva kieli, mutta ähäkutti, jos kuvittelet oppineesi koodaavasi jotain!”.
Anssi sanoo
Minusta on hyvä idea kehittää varsinkin nuorille suunnattua ohjelmoinnin opetusta. Toivottavasti saatte hyvän koodiaapisen aikaiseksi.
Tekstissä esiteltyjä asioita grafiikan ja muun ohjelmoinnin tehtäviä oppilaan tekemänä on melko haastava tehtävä nuorelle. Täytyy muistaa, että ohjelmointi on aikaa vievää ja vaatii asioiden ymmärrystä.
Itse ymmärsin loogisen ajattelun varsinaisesti 24 vuotiaana. Ottaen huomioon, että olen ollut tietokoneiden kanssa pienestä pitäen. Nyt pystyisin tekemään 15 minuutissa graafisen animaation ja muitakin helppoja tehtäviä, mutta tuossa iässä jättäisin tehtävät tekemättä ja menisin pelaamaan sulkapalloa.
Siitä olen samaa mieltä, että nyt kun ohjelmointi on päätetty ottaa koulutukseen mukaan se pitää tehdä kunnolla. Painottaisin itse opettajien vastuuta ja madaltaisin nuoren osuutta, mutta ymmärtäen prosessin vievän muutamia vuosia.
Toni Korpela sanoo
En näe tuossa teoria osuudessa mitään muuta väärää kuin harjoitustehtävä 6:sen jossa kysytään kuinka mones listan jäsen ”lauantai” on vaikka teoria osuudessa ei lue mistä numerosta listan indeksöinti alkaa. Kaikki ohjelmoitsijat tietää, että se on nolla eikä ykkönen.
Tuollaisten pelihahmon ohjaus algorithmien ohjelmointi vaatii myös oppilaalta tiedon itse ohjelmoinnista ja pseudo ohjelmointi on erittäin hyvä tapa opettaa ohjelmoinnin teoriaa. Pseudo ohjelmointi myös auttaa ajattelemaan loogisesti kun ei tarvitse mielessä miettiä onko c syntaksi oikeaa loogisen ongelman ratkaisemiseksi.
En minäkään ohjelmoitsijana mielessäni mieti if(value == true) { dothis(); } vaan jos arvo on tosi tee tämä.. Täysin pseudokoodia ajatuksissa.