Mitä kuuluu ohjelmoinnille peruskoulussa?

Ohjelmointi herätti paljon keskustelua vuoden 2016 perusopetuksen opetussuunnitelmassa. Keskusteluissa nousi voimakkaasti esiin kysymyksiä ohjelmoinnin tarpeellisuudesta ja sitä pidettiin lähinnä täydentävänä ”tehdään, jos ehditään” sisältönä. Lisäksi huolta aiheuttivat muun muassa epäilykset oman osaamisen riittävyydestä, laitteiden saatavuudesta ja ajan puutteesta. Ohjelmointi nähtiin riesana, joka jollain verukkeella voitaisiin ohittaa. Osasyynä ohjelmoinnin nihkeään vastaanottoon ja epäilyksiin voidaan nähdä opetussuunnitelman epämääräiset kirjaukset. Mitä opetetaan? Miten opetetaan? Mitä sisältöjä kuuluu eri vuosiluokille? Miten osaamista ja taitoja mitataan ja arvioidaan? Tällaisiin kysymyksiin ei opetussuunnitelman perusteista löytynyt selkeitä vastauksia. Eikä niitä juurikaan kirjattu tarkemmin myöskään OPSin paikallisiin kuvauksiin.

Epäilyksiin ja huoliin vastattiin järjestämällä lukuisia koulutustilaisuuksia. Järjestäjinä olivat kuntien opetuksenjärjestäjät. Yliopistot ja korkeakoulut järjestivät opettajille täydennyskoulutuksia. Järjestöt ja yleishyödylliset yhdistykset kuten esimerkiksi MAOL ja Innokas-verkosto huolehtivat osaltaan opettajien osaamisen päivittämisestä. 

Tutkittua tietoa tulee lisää

Yläkoulussa ohjelmoinnin opetus ja algoritmisen ajattelun kehittäminen on sisällytetty matematiikan opetussuunnitelmaan. Ohjelmoinnin opetus matematiikan tunneilla on käytännössä toteutettu varsin eri tavoilla. Kustantajien tarjoamissa oppimateriaaleissakin toteutustapoja on useita ja sisällöt ovat kovin vaihtelevia. Ajoitukset ohjelmoinnin oppisisällön käsittelylle ovat hyvin erilaisia. 

Jaakko Kokkosen pro gradu -tutkielmassa (Ohjelmoinnin opetus matematiikan opetuksessa, Helsingin ylipisto 2019) tutkittiin, millä tavalla matematiikan opettajat toteuttivat ohjelmoinnin opetusta ja miten he suhtautuivat ohjelmoinnin opettamiseen. Tutkielman pohjana oli matematiikan opettajille lähetetty MAOLin sähköpostikysely. Tutkimusaineisto kerättiin 2018, jolloin ohjelmoinnin opettamisesta matematiikassa oli kertynyt jonkin verran kokemusta. Tutkimuksen tuloksista ja johtopäätöksistä mainitaan: ”Kyselyn tulosten perusteella voidaan todeta, että vain 52,2

Kokkosen pro gradu-tutkielmasta on aikaa jo yli neljä vuotta. Olisi mielenkiintoista nähdä, millaisia tuloksia vastaavasta tutkimuksesta saataisiin nyt. Ainakin laitteiden osalta tilanteen voisi olettaa kohentuneen. Myös oppimateriaaleissa on tapahtunut kehitystä. Ensimmäisissä uuden opetussuunnitelman mukaisissa oppimateriaaleissa ohjelmointia saattoi olla muutaman sivun verran.

Koodaamisen opettamisesta ajattelun opettamiseen

Toinen mielenkiintoinen tutkimus ohjelmoinnin ajattelun opettamisesta on Janne Fagerlundin väitöstutkimus (Teaching, Learning and Assessing Computational Thinking through Programming with Scratch in Primary Schools, Jyväskylän yliopisto 2021). Tutkimus tuotti tietoa ja välineitä ohjelmoinnillisen ajattelun opettamiseen ja oppimiseen sekä oppimisen arviointiin. Fagerlundin mielestä ”ohjelmointia opetetaan edelleen liian ahtaalta pohjalta”. Opettaja-lehden Tutkittu juttu -nettiartikkelissa 24.3.2022 Fagerlund toteaa ”Koodaamiseen syventynyt oppilas korostuu opsissa liikaa. Oppilaan pitäisi sen sijaan tutkia ohjelmoitua maailmaa ja siinä ohessa koodata välillä itse”.

Opetetaanko ohjelmoinnillista ajattelua vai syntaksia?

Fagerlundin toteamusten pohjalta voisi uudelleen arvioida matematiikan oppimateriaaleihin liitettyjä ohjelmoinnin sisältöjä. Tuetaanko oppimateriaalien sisällöillä ja tehtävillä riittävästi ohjelmoinnillisen ajattelun oppimista vai opetellaanko niissä edelleen jonkin ohjelmointikielen syntaksia? Toki syntaksin ja ohjelmointikielen sääntöjen oppiminen on tarpeen, kun ohjelmia kirjoitetaan tietokoneella. Mutta ajatus ja ymmärrys koodattavan ohjelman toiminnasta perustuu ohjelmoinnilliseen ajatteluun. Ajattelun tueksi voitaisiin aluksi unohtaa ohjelmointikielen syntaksi ja ajatella ohjelman toimintaa vaikkapa pseudokoodin avulla. Pseudokoodi on ohjelmointikieli, jossa komennot ja rakenteet voidaan kuvata hyvin väljästi arkikielisillä ilmaisuilla. Esimerkiksi pseudokomentoja voisivat olla TULOSTA, PYYDÄ, ASETA, LASKE, LISÄÄ, VÄHENNÄ, TOISTA KUNNES, TEE LISTA jne. Arkikielisillä komennoilla ja vapaammalla ohjelman toiminnan kuvauksella jää itse ohjelman toiminnan ajattelemiseen enemmän aikaa. Näin ei tarvitse käyttää aikaa syntaksivirheiden etsimiseen.

Ohjelmoinnin osaamisen uudet kuvaukset

Opetushallitus ja Kansallinen audiovisuaalinen instituutti KAVI julkaisivat uudet ohjelmoinnin osaamisen kuvaukset helmikuussa 2021 ja niitä on päivitetty vuonna 2022. Kuvaukset on julkaistu Uudet lukutaidot kehittämisohjelman verkkosivuilla uudetlukutaidot.fi. Uusien kuvausten laatimisessa on nähtävästi huomioitu Fagerlundinkin peräänkuuluttama sisältöjen jako. Kuvauksissa ohjelmointi on jaettu kolmeen pääalueeseen: 1) ohjelmoinnillinen ajattelu, 2) tutkiva työskentely ja tuottaminen sekä 3) ohjelmoidut ympäristöt ja niissä toimiminen. 

Kuvaukset ovat tervetullut tarkennus alun perin opetussuunnitelman epämääräiseen tekstiin ohjelmoinnin opetuksesta vuosiluokilla 7–9. Uusissa kuvauksissa ohjelmointi liitetään vuosiluokilla 7–9 useaan eri oppiaineen osaksi. Kuvauksissa sanotaan ”Vuosiluokilla 7–9 hyödynnetään algoritmista ajattelua ja ohjelmointia eri oppiaineissa ja monialaisissa oppimiskokonaisuuksissa. Suunnitellaan ja toteutetaan luovissa yhteiskehittämisen projekteissa ohjelmoituja tuotoksia, jotka ratkaisevat oppiaineisiin tai oikeaan elämään liittyviä ongelmia.” Käytännössä toteutusmahdollisuudet ”yhteiskehittämisen projekteille” lienevät nykyisessä aineenopetus- ja tuntijaossa varsin heikot. Voisi ajatella, että ohjelmoinnillisen ajattelun kehittäminen ja ongelmanratkaisutaitojen kehittäminen on pidempiaikaista ja jatkuvaa koko kouluajan. Siihen ei riitä muutama koulussa tehty projekti aiheen parissa. 

Uusissa kuvauksissa on mielenkiintoista ja mahdollisuuksia avaavaa kuitenkin se, että ohjelmoinnin ja sen osa-alueiden opettaminen on liitetty laajasti useisiin eri oppiaineisiin. Looginen päättely ja ongelmanratkaisutaidot sekä ohjelmoinnillinen ajattelu liittyvät moneen muuhunkin oppiaineeseen kuin vain matematiikkaan.

Omaksi oppiaineeksi

Ohjelmoinnin osaaminen ja siihen liitettyjen edellä mainittujen kolmen osa-alueen (ohjelmoinnillinen ajattelu, tutkiva työskentely ja tuottaminen sekä ohjelmoidut ympäristöt ja niissä toimiminen) taitojen kehittäminen ovat keskeisiä taitoja, joita nykypäivän koulussa pitää oppia. Näihin voidaan liittää mukaan vielä Uudet lukutaidot -kuvauksissa mukana olevat medialukutaito ja digitaalinen osaaminen. Näin laajojen kokonaisuuksien järkevä läpivieminen ja opettaminen ei ole mahdollista oppiaineiden sisältöjen ”täytteenä” saatikka erilaisina projektipäivinä. Näiden huolellinen opettaminen ja laadukas oppiminen olisi järkevintä omana oppiaineena. Seuraavassa opetussuunnitelmauudistuksessa tätä ei voida enää kirjoittaa osaksi joitakin muita oppiaineita. Muutoin päättäjien ylistyspuheet digitalisaation tärkeydestä vesittyvät.

Kirjoittaja