Koodaamista opetetaan jo peruskouluissa

Ohjelmoinnista eli koodaamisesta ja sen tuomisesta perusopetuksen opetussuunnitelman perusteisiin on puhuttu julkisuudessa paljon, ja kiinnostus tätä suomalaista ratkaisua kohtaan on ollut suurta myös ulkomailla. Jo syksystä 2016 alkaen käytännössä kaikilla alakoulun vuosiluokilla koululaiset ovat opetelleet koodaamista. Seiskaluokkalaiset ovat alkaneet saada ohjelmoinnin oppia elokuussa 2017, ja vuonna 2019 opetuksen on määrä läpäistä kaikki peruskoulun luokka-asteet.

Miten koodaamista opetetaan alakouluissa?

Alakouluissa ohjelmoinnin opetus on varsin käytännönläheistä ja se integroidaan osaksi muuta opetusta. Pääpaino on siinä, että oppi tarttuu lapsiin erilaisten pelien ja leikkien kautta – toisin sanoen se on hauskaa. Moni vanhempi ihminen saattaa karsastaa tätä metodia, mutta se on hyvin linjassa nykyaikaisen opetussuunnitelman ja pedagogiikan kanssa laajemmaltikin. Tuskinpa kukaan myöskään uskoo, että pelkistä algoritmeista puhuminen ekaluokkalaisille olisi kovin hedelmällistä. Kyse on siis pikemminkin ohjelmoinnin ajattelutapaan tutustuttamisesta.

Kyse ei siis ole siitä, että lapset alkaisivat opetella heti ensimmäisellä luokalla erilaisia ohjelmointikieliä, kuten C:tä, Javaa, Perliä, tms. Ohjelmointi ei ole myöskään oma erillinen oppiaineensa. Aina ei koodaamisen alkeiden ja ajattelumallien opettelussa tarvita edes tietotekniikkaa avuksi. Eräs esimerkki tästä on leikki, jossa opettaja esittää lasten yksinkertaisia käskyjä noudattavaa robottia, joka pyrkii täyttämään jonkin yksinkertaisen tehtävän. Näin pyritään tuomaan esiin niitä rajoituksia – ja samalla myös mahdollisuuksia, joita koneiden ja tekoälyn kanssa toimiessa esiintyy.

Matematiikka on luonnollisesti se aine, jossa koodaaminen on hyvin läheisesti läsnä. Etenkin alakoululaisilla ohjelmointi tulee eteen matematiikan tunneilla. Juuri matematiikanopettajat ovatkin olleet aktiivisia monissa kouluissa käytettyjen ohjelmoinnin oppimateriaalien laatimisessa. Pyrkimys on myös tämän monien lasten ja myöhemmin nuorten aiemmin liian teoreettisena pitämän oppiaineen tuomisesta käytännönläheisemmäksi.

Entä yläkouluissa?

Yläkoulun vuosiluokilla 7-9 kunnianhimoisena tavoitteena on ottaa ohjelmointi osaksi kaikkia oppiaineita, joskin erilliset oppiaineiden tavoitteet on mainittu vain matematiikan ja käsityön kohdalla. Osaamistavoite on varsin selkeä: jokaisen nuoren, joka päättää yläkoulun, tulisi kyetä ohjelmoimaan tietokoneohjelma. Tämä tosin jättää vielä paljon auki, sillä tälle ohjelmalle ei ole määritelty tarkempia vaatimuksia. Kyse voisi siis olla vaikkapa yksinkertaisesta ”nopanheitto-ohjelmasta”.

Kun itse koodaamista ja varsinaista ohjelmointikieltä aletaan yleensä yläkoulussa opettaa, on hyvä aloittaa mahdollisimman yksinkertaisesta kielestä. Eräs tällainen, jota Suomenkin kouluissa on käytetty varsin laajasti, on tekstuaalinen Racket BSL, jonka taustat ovat alkujaan 90-luvun puolivälissä luodussa ohjelmointikielessä. Se on lapsille erityisen soveltuva vähäisten käskyjen määrän sekä virhemahdollisuuksiensa ansiosta.

Kouluille Racket BSL:n käyttöä puoltaa se, että siihen on laadittu laajan työryhmän toimesta jo nyt suuri määrä suomenkielistä opettajille suunnattua opetusmateriaalia. Sitä on testattu opetuskäytössä verrattain laajalti ja sen ympärillä on aktiivinen kehittäjäyhteisö. Lisäksi kielelle on saatavana täysin ilmainen ja suomenkielinen alusta, jonka käyttö onnistuu myös verkkopohjaisesti. Kouluille ei siis aiheudu lisäkustannuksia esimerkiksi lisenssimaksujen muodossa.

Toinen hyvä ja laajalti käytetty vaihtoehto on visuaalinen Scratch-ympäristö, joka monien mielestä luo paremman pohjan niin kutsutuille luonnollisille ohjelmointikielille (kuten Pascal tai Java). Scratch soveltuu Racketia paremmin opetuskäyttöön, mikäli oppilaina ovat vielä alakoulua käyvät koululaiset.

Mihin lapset tarvitsevat koodaamista?

Tarkoituksena ei ole, että kaikista tulisi aikuisena koodaajia, vaikkakin samalla pyritään vastaamaan myös koodarien kasvavaan tarpeeseen. Ohjelmoinnin tuomisessa kouluihin on taustalla ajatus, että miltei kaikissa tulevaisuuden, ja jo nykyisyydenkin, ammateissa tullaan jossain määrin olemaan tekemisissä ohjelmistojen kanssa. Työelämässä pärjäämistä auttaa, mikäli ymmärtää ohjelmien taustalla olevien ja toimivien periaatteiden päälle.

Tilannetta voi verrata vaikkapa ihan perinteisten ihmiskielten osaamiseen – vaikka läheskään kaikissa ammateissa ei tarvita vieraita kieliä päivittäin, törmäävät kuitenkin useimmat ainakin englannin kielen käyttöön jossain vaiheessa työelämäänsä. Jo perusteiden osaaminen auttaa pidemmälle kuin täydellisenä ummikkona oleminen.

Haaste myös opettajille ja kouluille

Ohjelmointi ei luonnollisestikaan ole suurimmalle osalle opettajista heidän ominta kenttäänsä. Myös opettajien koulutuksessa ja lisäkoulutuksessa uusi opetussuunnitelma on otettu huomioon. Uusien opettajien koulutuksessa ohjelmointi ja laskennallinen ajattelu ovat kiinteä osa opiskelua, mutta myös täydennyskoulutuksessa ollaan erittäin aktiivisia.

Viime kädessä vastuu täydentävän koulutuksen antamisesta jo virassa toimiville opettajille on kuitenkin työnantajalla. Pienempien kuntien kohdalla resurssien rajallisuus saattaa olla iso haaste ja maantieteellisiä eroja syntyä.

Tuodaanko koodaamista kouluihin liian nopeasti?

Eräät opetusalan ammattilaiset ovat ilmaisseet huolensa koodaamisen liian nopeasta tuomisesta kouluihin. Huoli pohjautuu pitkälti siihen, että puutteellinen koordinointi estää uuden opin hyödyntämisen, ei niinkään siihen, että itse koodaamisen opettamista vastustettaisiin. Osaa opettajista luonnollisesti huolestuttaa heidän ja kollegoidensa mahdolliset tiedolliset ja taidolliset puutteet koodaamisen opettamisessa.

Tulevaisuutta ja tulevaisuuden työelämän tarpeita on myös vaikea ennakoida. Elämme hyvin nopean muutoksen keskellä monilla talouden ja teknologian aloilla, ja tekoälyn kehittyminen saattaa vielä yllättää monet. Itseohjelmoivat tietokoneet saattavat olla laajassa mittakaavassa aivan lähitulevaisuutta. Oli niin tai näin, auttaa ohjelmoinnin ajattelutapojen ymmärtäminen ymmärtämään myös tekoälyn lainalaisuuksia – aihe, joka varmasti tulee olemaan tulevaisuudessa yhä kuumempi ja laajemmassa keskustelussa. Samalla ohjelmointi opettaa myös loogisen ajattelun taitoa, minkä merkitystä on vaikea väheksyä.