Tässä osiossa:

Luet Koodi2016:n verkkoversiota. Olemme halunneet tarjota oppaan koko sisällön selaimella ja älypuhelimilla luettavana tekstinä, josta on helppo halutessaan leikata ja liimata sisältöä muualle. Jos kaipaat visuaalisesti näyttävämpää esitystä – ja vaikket kaipaisikaan – kannattaa tutustua myös oppaan näköisversioon!


Tästä on kyse opsin uudistuksessa

Tässä osiossa kerrotaan, miten ohjelmointi näkyy uudessa opetussuunnitelmassa ja miksi muutos on tärkeä. Osio pyrkii vastaamaan opettajan huoliin ja kertoo myös, miten muut maat ovat lähestyneet ohjelmoinnin opettamista.

Tiedossa on, että syksyllä 2016 käyttöön tulee uusi opetussuunnitelma ja se sisältää ohjelmointia.

Millaisia asioita koulujen on ajateltu käytännössä opettavan?

Tätä kirjoittaessa viitekehyksenä on vuoden 2016 opetussuunnitelman luonnos. Se on tätä opasta laadittaessa kouluilla kommenttikierroksella. Muutoksia voi tulla, mutta perusajatus on selkeä, ainakin jos kysyy Opetushallituksen matematiikan opetussuunnitelmatyöryhmän puheenjohtajalta Leo Pahkinilta:

”Pääasia on halu tuoda esille, mistä ohjelmoinnissa on kysymys. Ja innostaa nuoria huomaamaan, että ohjelmointi on jännittävää. Parhaimmillaan kouluille olisi hyvä saada myös pöhinää, jonka myötä oppilaille järjestettäisiin erilaisia kerhoja ja valinnaisopintoja.”

Mitä eri luokilla opiskellaan?

Muutokset eri luokka-asteilla menevät näin:

Luokilla 1–2 opetellaan antamaan yksikäsitteisiä komentoja ihmiseltä toiselle. Ohjelmointi on käskyjen antamista tietokoneelle, ja tässä pohjustetaan sitä.

”Opetellaan antamaan tarkkoja ohjeita, esimerkiksi ota ‘kolme askelta eteenpäin’ – ei ‘ota kolme askelta’, jotka voisivat olla sivulle tai taakse”, Pahkin sanoo.

”Tässä opitaan sitä, että täsmälliset ohjeet tuottavat täsmällistä toimintaa, ja epämääräiset ohjeet tuottavat epämääräistä toimintaa.”

Luokilla 3–6 aletaan perehtyä tekemiseen, joka on lähempänä ohjelmointia. Työkaluna ei vielä ole varsinainen ohjelmointikieli vaan jokin visuaalinen ohjelmointiympäristö, jossa työskennellään käytännössä hiiren avulla, ei kirjoittamalla.

Luokilla 3-6 perehdytään visuaaliseen ohjelmistoympäristöön

”Tässä kohden vaihdetaan ihminen koneeseen. Silloin välillä pitää olla jokin kieli – näillä luokilla käytännössä jokin graafinen ohjelmointikieli”, Pahkin selittää.

”Ohjelmointia voidaan harjoitella raahaamalla tai siirtelemällä asioita. Löydetään niitä erilaisia komentoja, joita on esimerkiksi [MIT:ssä kehitetyssä lasten ohjelmointiympäristössä] Scratchissakin vain muutama. Sen jälkeen ruvetaan näillä muutamilla komennoilla löytämään esimerkiksi toistoja. Kaikkia näitä voidaan nopeasti oppia.”

Luokilla 7–9 aloitetaan perehtyminen johonkin oikeaan ohjelmointikieleen. ”Emme ota kantaa siihen mikä se kieli on”, Pahkin sanoo. ”Mutta tarkoituksena on, että ymmärretään perusasioita kielestä ja osataan tulkita ohjelmakoodia – tuossa kohdin ohjelma ottaa jonkin luvun sisään, tuossa se tekee sille jotain ja niin edelleen.”

Aloittavatko kaikki luokat ohjelmoinnin syksyllä 2016?

Tavoite on, että syksyllä 2016 kullakin alakoulun luokalla ykkösestä kutoseen aletaan harjoittelemaan ohjelmointia. Samalla edessä on muutaman vuoden siirtymäaika, jolloin esimerkiksi kolmosluokkalainen aloittaa ohjelmoinnin parissa, vaikka hänellä ei ole pohjalla luokkien 1–2 oppeja.

”Luokilla joudutaan tässä suhteessa hiukan improvisoimaan, koska oppilaan polku ei ole edennyt ekalta luokalta lähtien. Se voi olla aluksi haasteellista, muttei mahdotonta”, OPH:n Leo Pahkin sanoo.

Nykysuunnitelman mukaan luokat 7–9 siirtyvät ohjelmoinnin pariin vuosi kerrallaan: syksystä 2017 alkaen ohjelmointia opiskellaan luokilla 1–7, syksystä 2018 alkaen luokilla 1–8 ja 2019 alkaen luokilla 1–9.

Mistä opetukselle saadaan aikaa?

OPH:n suunnitelmassa aika ohjelmoinnille otetaan matematiikan tuntijaosta. Tarkoitus on kuitenkin, että ohjelmointiajattelua linkitettäisiin myös muihin oppiaineisiin mahdollisuuksien mukaan. Ajatuksia siitä, millaisia ohjelmointiin liittyviä asioita voi nostaa esiin eri oppiaineiden tunneilla on esitetty sivuilla 124–126.

Kuka Suomessa opettaa ohjelmointia?

Suomessa ohjelmoinnin opetusvastuu on vuonna 2016 alakoulussa peruskoulun opettajilla ja yläkoulussa todennäköisesti matematiikan opettajilla. Tietotekniikan aineopettajia on melko vähän, ja heitä valmistuu Jyväskylän, Joensuun ja Turun yliopistoista.

Ohjelmointi on klassisesti rajatun joukon harrastus. Nyt sillä on mahdollisuus demokratisoitua.

Helsingin yliopisto lakkautti tietotekniikan aineenopettajankoulutuslinjansa keväällä 2005. Uusia opettajia koulutettaessa uudet vastuualueet olisi syytä ottaa huomioon. Varmaa on myös, että nykyiset luokanopettajat tulevat tarvitsemaan täydennyskoulutusta.

Toisaalta se, että monenlaiset ihmiset alkavat opettaa ohjelmointia on myös iso mahdollisuus: kun ohjelmointi ei ole oma oppiaineensa eikä muodollisia pätevyysvaatimuksia sen opettamiselle ole, syntyy erilaista osaamista, innostuneisuutta ja kokeilemisen kulttuuria.

Ohjelmointi on klassisesti ollut hyvin rajatun ihmisjoukon harrastus. Nyt sillä on mahdollisuus demokratisoitua todella.


Nihkeä nykytila: Yhä harvempi valitsee tietotekniikan

Tietotekniikkaa on opetettu Suomen kouluissa 1960-luvulta saakka. Yllättäen tietotekniikan suosio valinnaisena aineena on laskenut viime vuosina.

Tietotekniikan opettaminen alkoi Suomessa 1960-luvulla. Osa vanhemmista muistaa 1980-luvulta ohjelmointiopetuksen, jossa kielinä saatettiin käyttä Logoa, Pascalia tai C:tä. 1990-luvun alussa tietotekniikka menetti asemansa erillisenä opetettavana aiheena. Opetussuunitelmissa puhuttiin esimerkiksi kymmensormijärjestelmistä sekä tiedon hankinta- ja prosessointitaidoista.

Tietotekniikan opetusta on muokattu viimeksi vuonna 2004. Opetussuunnitelma painotti tuolloin entistä enemmän oppiaineiden välistä yhteistyötä ja integraatiota.

Suomessa on nyt voimassa tietotekniikan opetussuunnitelma, johon kuuluvat osa-alueet ovat "tietotekniikan perusteet", "laitteen käyttö ja tiedon hallinta", ”tekstinkäsittely", ”taulukkolaskenta", ”tietokannat", ”grafiikka" sekä ”internet". Käytännössä osa-alueet on sulautettu osaksi muuta opetusta.

Muun muassa Matemaattisten aineiden opettajien liitto MAOL ry on laatinut ohjeistuksen otsikolla "Mitä peruskoulun päättävän oppilaan tulisi tietää tietotekniikasta", ja opetussuunnitelmissa määritellään eri tavoitetasot oppilaan taidoille.

Samaan aikaan kun tieto- ja viestintätekniikan taidot ovat yhä tärkeämpiä, tietotekniikan valinnaisena valinneiden oppilaiden määrä vähentyi 10 prosenttia välillä 2008–2010.

Lisäksi sukupuolten väliset erot ovat vahvoja: esimerkiksi tietotekniikan vähintään 95 tuntia vuodessa kestäviä opintoja vuosiluokilla 7–9 opiskelevista vain neljäsosa oli tyttöjä.


10 syytä sisällyttää ohjelmointi opsiin

Vaikka ohjelmointia pitäisi hyödyllisenä taitona, voi silti herätä kysymys, miksi sitä pitää opettaa jo peruskoulussa. Seuraavassa on esitetty 10 hyvää syytä.

1. Oppilailla on oikeus oppia ohjelmointia

Maailmaan rakentavat uutta yhä useammin ihmiset, jotka osaavat käskeä tietokonetta.

Oli kyse sitten tieteestä, taiteesta, terveydenhuollosta, yhteiskunnan tietojärjestelmistä, ohjelmistoista liiketoiminnan kehittämisessä tai ylläpidossa, älypuhelimista, maailmanlaajuisesta tietoverkosta, sähköisestä viestinnästä tai sosiaalisesta mediasta – taustalla pyörii yhä useammin ohjelmakoodi.

Lapset ja nuoret tarvitsevat ymmärrystä nykyaikaisen maailman rakennuspalikoista.

Jos emme tarjoa oppilaille mahdollisuutta ymmärtää ympäröivää maailmaa, he jäävät ikävään väliinputoajan asemaan tietoyhteiskunnassa.

Perusasioiden ymmärtäminen ohjelmoinnista on verrattavissa siihen, että ymmärtää perusasiat biologiasta, maantiedosta, äidinkielestä tai kuvaamataidosta: elämässä tulee nykyään ohjelmistoja vastaan vähintään yhtä usein kuin tulee tarve erottaa rauduskoivu hieskoivusta tai pakottava mielihalu maalata akryyliväreillä.

Ohjelmointia voidaan soveltaa myös halki rajojen eri oppiaineiden eri osa-alueilla (sivuilla 124–126 on pohdittu, miten ohjelmointia esimerkiksi voidaan ottaa esille eri oppiaineissa).

2. Oppilaat haluavat lisää tvt:tä

Helsinkiläisten peruskoulujen oppilaat, lukiolaiset ja Stadin ammattiopiston opiskelijat esittivät huhtikuussa 2014 julkilausuman toiveistaan opetuksen kehittämisessä. Siinä lapset ja nuoret toivoivat, että tieto- ja viestintäteknologiaa hyödynnettäisiin opetuksessa nykyistä enemmän.

Erityisesti peruskoulujen oppilaat toivoivat lisää tieto- ja viestintäteknologiaa opiskeluun. He peräänkuuluttivat myös mielenkiintoisia ja monipuolisia opetusmenetelmiä sekä enemmän taitoaineita, jollaiseksi myös ohjelmointi voidaan laskea.

Julkilausumaa oli laatimassa yli 5 000 oppilasta. Lisätietoja saa osoitteesta hel.fi/www/uutiset/fi/helsinki/oppilaiden-julkilausuma.

3. Suomi janoaa it-osaajia

”Kauhea pula on osaajista. Päättäjillä ja jopa meidän alalla toimivilla isoilla johtajilla on väärä käsitys asiasta.”

Näin sanoo esimerkiksi it-alan asiantuntijatalon Reaktorin teknologiajohtaja Hannu Terävä, joka on vetänyt firman rekrytointia vuosia.

Samaa mieltä on Futuricen Yrjö Kari-Koskinen:

”Rekrytointi on koko ajan haastavaa. Kun yritys menestyy ja kasvaa, niin haasteena on, että saa kasvua tukemaan riittävästi osaavia tyyppejä.”

Peruskoulun opetussisältöjä ei voi lähteä muuttamaan yksittäisten yritysten osaamistarpeiden perustella. Silti myös alan puolueettomat selvitykset kertovat, että pula it-alan osaajista on kansainvälinen trendi.

Esimerkiksi maailman johtava liikkeenjohdon konsulttitalo McKinsey arvioi, että Yhdysvalloissa tulee olemaan nykyisillä työllistymis- ja koulutusmäärillä vuoden 2018 loppuun mennessä peräti 140 000–190 000 analytiikan syväosaajan vaje.

Kansantalouden analyysejä tuottavan Gartnerin mukaan pelkästään niin kutsutun big datan eli erilaisten suurten tietovarantojen käsittelyyn ja hyödyntämiseen tarvitaan 4,4 miljoonaa työntekijää maailmanlaajuisesti jo vuonna 2015, mutta vain kolmasosaan näistä paikoista löydetään osaaja.

Mikä sitten on tulevaisuus Suomen osalta? Vasemmalla esitetyt kaksi Empirican arvioihin (2013) pohjaavaa kuvaajaa kertovat samaa tarinaa:

Vuoteen 2020 meikäläisittäin on peräti 17 000 työntekijän vaje ict-alan työpaikoissa.

Siis: panostamalla ohjelmointiosaamiseen Suomi sekä paikkaa alan työntekijävajetta että antaa nykyperuskoululaisille osaamista, jolla saa tulevaisuudessa töitä.

4. Jos emme skarppaa, muut maat menevät edelle

Suomalainen koulutus on maailman huippua. Sijoitumme Pisassa yhä loistavasti, ja muiden maiden edustajat käyvät Suomessa tutustumassa, kuinka fiksusti ja joustavasti olemme järjestäneet peruskouluopetuksemme.

Ei ole syytä antaa tilanteen lipsua ohjelmoinnin opettamisen osalta.

Sivuilla 62–66 on esitetty, miten muissa maissa on jo aloitettu ohjelmointiosaamisen kehittäminen. Lähin esimerkki löytyy Viron kouluista. Myös Britanniassa ohjelmointia opiskellaan syksystä 2014 alkaen peruskoulussa.

Jos Suomi ei ryhdy välittömiin toimiin lasten ja nuorten ohjelmointitaitojen kehittämisessä, muut maat menevät tulevaisuuden kannalta keskeisissä taidoissa ohi.

5. Ohjelmoimalla voi pelastaa kansantalouden

Yksi keskeisimpiä kansantalouden mittareita on tuottavuus: kuinka tehokkaasti tuotamme tietyn panoksen. Tuottavuutta voi parantaa tekemällä samassa aikayksikössä enemmän työtä tai tekemällä saman työn nopeammin.

Ohjelmistoihin perustuvat tuotteet kuten tietokonepelit, älypuhelinsovellukset tai vaikkapa digitaalisessa muodossa jaeltavat musiikkikappaleet ovat kaikki omiaan lisäämään tuottavuutta, sillä niitä voidaan monistaa rajattomasti.

Kun vaikkapa Marimekon suunnittelija suunnittelee uuden tyylikkään paitakuosin, varsinaista vaatetta on silti valmistettava tehtaassa kaikille markkinoille. Vaate on fyysinen asia, jonka monistaminen maksaa. Vaatetta on myös fyysisesti kuljetettava ympäri maailmaa lentokonein, laivoin ja rekoin, mikä lisää entisestään kustannuksia.

Kun taas suomlainen pelitalo Supercell kehittää tabletilla pelattavan pelin, sekä tuotteen monistaminen että jakeleminen ympäri maailmaa on käytännössä lähes ilmaista. (Käytännössä esimerkiksi pelin jakelija kuten Applen verkkokauppa ottaa myynnistä provision, mutta tätä tapahtuu muidenkin tuotteiden jälleenmyyjien kohdalla.)

Juuri tämä on selitys sille, miksi Supercell teki vuonna 2013 tulosta peräti kolme miljoonaa euroa jokaista yrityksen noin sataa työntekijää kohden.

Kun tuotteen monistaminen ja jakelu on ilmaista ja tuotteesta tulee maailmanlaajuisesti suosittu, sen tuottomahdollisuudet ovat rajattomat. Tällaisissa yhteyksissä tuottavuuden lisäyksessä ei puhuta yksittäisistä prosenteista vaan jopa sadoista prosenteista.

Tämän takia ohjelmistopohjaiset tuotteet ja palvelut luovat ratkaisevaa kilpailuetua niille kansantalouksille, joiden ihmiset osaavat ohjelmoida.

6. Koodausta ei voi ulkoistaa niin helposti ulkomaille kuin luullaan

Usein kuulee puhuttavan, että koodaaminen siirtyy vähitellen Kiinaan tai Intiaan. Kokemus on kuitenkin osoittanut, että koodaamisen ulkoistaminen halvan työvoiman maihin ei ole niin helppoa, kuin vielä muutama vuosi sitten ajateltiin.

Ohjelmistojenkehitysprosessit ovat monimutkaisia hankkeita. Ne vaativat usein jatkuvaa kasvokkain tapahtuvaa kommunikaatiota sekä hanketta toteuttavan tiimin sisällä että asiakkaan kanssa. Osaamisen on oltava parasta laatua, sillä pienikin puute koodarin tai ohjelmistoarkkitehtuurin suunnittelijan taidoissa voi johtaa katastrofaalisiin seurauksiin ja projektin valmistumisen viivästymiseen.

Projekti ei myöskään välttämättä ole lähes koskaan ”valmis”, joten yhteistyön sujuvuus korostuu kehityksen jatkuessa vuosien kuluessa.

Usein suuret ohjelmistohankkeet ovat myös yritysten liiketoiminnan kannalta niin merkittäviä, että ohjelmoijien palkkakustannusten erot esimerkiksi Suomen ja Intian välillä eivät näyttele kokonaisuudessa ratkaisevaa roolia. Kun hankkeen vaikutukset mitataan sadoissa miljoonissa euroissa, ja kokonaisuuden on yksinkertaisesti pakko onnistua, kynnyskysymykseksi ei muodostu se, maksetaanko toteuttajalle esimerkiksi 0,5 miljoonaa euroa vai 5 miljoonaa euroa.

7. Ohjelmointia on tärkeää ymmärtää, vaikkei koodaisi koskaan itse

Miksi pitäisi opetella ohjelmointia, jos tietää, ettei aio koskaan ruveta koodariksi?

Ohjelmistot tulevat olemaan läsnä yhä useammilla toimialoilla tieteestä taiteeseen ja metsäkoneista vaateteollisuuteen. Monet yritysten henkilöstöasiantuntijat sanovat, että hyvät it-taidot tulevat olemaan tulevaisuudessa huomattavasti useamman laadukkaan työpaikan saamisen edellytys – samalla tavalla kuin englannin kielen taito on nykyään täysin keskeistä ja lähtökohtainen oletus rekrytoinneissa.

Ihminen joka ymmärtää perusasiat ohjelmoinnista voi myös viestiä sujuvasti koodaavien kollegoidensa kanssa. Ja kun edessä on ohjelmistopäivityksen tai tietojärjestelmän ostoprosessi omaan organisaatioon, hän osaa arvioida tarjoajan esittämiä työmääriä eikä tule huijatuksi.

Peruskoululainen opettelee biologiaa vaikkei aikoisi biologiksi ja maantietoa vaikkei aikoisi geologiksi. Myös ohjelmoinnin ymmärtäminen on yleissivistystä, eikä koodaamisen opettelu edellytä urasuunnitelmia ohjelmoijana.

8. Ohjelmointi on motivoivaa ja opettaa ajattelua

Oppilas saa ohjelmoinnista suoraan ainakin kahdenlaista iloa. Toisaalta oppilas saa tietokoneelta suoran palautteen siitä, kun hän saa ohjelmistonsa toimimaan tai jotain syttymään eloon näytöllä. Tuotoksen voi esitellä heti kavereille ja usein jakaa myös verkossa.

Toisaalta ohjelmoinnista saa myös älyllistä iloa joka muistuttaa sitä, kun matematiikassa saa sievennettyä monimutkaisen yhtälön tai englannissa löytää juuri oikean ilmaisun.

Ohjelmoinnin avulla oppii myös yleisesti hyödyllisiä kognitiivisia taitoja. Looginen ja luova ajattelu, tarkka työskentely, kyky hahmottaa ongelma ja muodostaa sille erilaisia ratkaisuvaihtoehtoja sekä visualisoida ja käsitteellistää ne ovat hyödyllisiä kaikissa aineissa ja elämässä itsessään.

Parhaimmillaan ohjelmointi myös innostaa yläkouluikäisen opiskelemaan lisää muita asioita – diskreettiä matematiikkaa 3d-peliohjelmointia varten tai dna-visualisointeja biologiasta innostuneelle.

9. Ohjelmoinnin opettaminen kaikille saa tytöt mukaan

Suomalaisessa it-talossa ohjelmoijan paikkoja hakevien naisten määrä on tyypillisesti korkeintaan muutaman prosentin. Esimerkiksi tamperelainen Vincit-ohjelmistotalo valittiin vuonna 2014 kokoluokassaan Suomen parhaaksi työpaikaksi, mutta siitä huolimatta ”työnhakijoista naisia on alle prosentti”, kertoo Pasi Kovanen yrityksestä.

Suomessa it-alalla on naisia vain noin 23 prosenttia – ja lukuun on laskettu mukaan kaikki it-alan yrityksissä työskentelevät ihmiset erilaisia tukitoimintoja myöten. Tilanne ei ole menossa itsestään tasa-arvoisempaan suuntaan: esimerkiksi Aalto-yliopistossa syksyllä 2013 tietotekniikan koulutusohjelmassa aloittaineista vain 4 prosenttia oli naisia.

Suomalaisessa it-talossa ohjelmoijan paikkoja hakevista on naisia vain muutama prosentti.

Ongelma ei ole tyttöjen taidoissa. Teknologiateollisuus ry:n Naisia ICT-alalle! -tutkimuksessa todetaan, että jo alakouluikäiset tytöt ovat suhteessa taitavia tieto- ja viestintätekniikan käyttäjiä.

Samasta tutkimuksesta on nähtävissä, että lukioikäisillä tytöillä ei ole selkeää mielikuvaa it-alasta, siihen liittyvistä työtehtävistä ja vaatimuksista. Mielikuvissa it-alan töissä ”istutaan vain jossain koneen ääressä kaikki päivät”.

Myönteistä on, että kuluvan kevään aikana erilaisissa yrityksissä järjestetyt lasten Koodikoulut (ks. esim. haastattelut sivuilla 67 ja 139) ovat houkutelleet runsaasti myös tyttöjä.

Ohjelmointia on tärkeää alkaa opettaa peruskoulussa, jotta saamme mukaan kokonaisen puolikkaan ikäluokasta, joka on toistaiseksi syyttä aliedustettuna.

Suomella ei ole varaa pitää ohjelmointitaitoja miesten etuoikeutena.

10. Suomessa on loistavat opettajat muutokseen

Millainen on ideaali luokanopettaja, joka syksyllä 2016 aloittaa alakouluikäisten kanssa ohjelmoinnin?

Hänellä on vahvat pedagogiset taidot ja käsitys siitä, mikä luokkahuoneessa toimii ja mistä lapset innostuvat.

Hän jakaa tietoa ja materiaalia muille opettajille ja mentoroi mielellään epävarmempia.

Hän osaa kannustaa erilaisia oppijoita ja osoittaa uranäkymiä. Hän pystyy ja haluaa kehittää omaa osaamistaan.

Ja ennen kaikkea: hän on innostunut ja peloton.

Ei kuulosta kovin erilaiselta verrattuna tyypilliseen suomalaiseen opettajaan.

Me pystymme tähän.


Suomi ei ole yksin

Muutkin maat aloittavat ohjelmoinnin opetuksen – Viro ja Britannia etunenässä.

Hyvin erilaiset maat ovat heränneet viime aikoina siihen, että ne haluavat opettaa ohjelmointia lapsille ja nuorille. Tällä hetkellä pisimmällä ovat Britannia ja Viro. Näissä maissa koodaus on jo tuotu systemaattisesti osaksi peruskoulua.

Virossa ensimmäiset alakoululaiset aloittivat uuden opetussuunnitelman kanssa syksylllä 2013. Britanniassa muutos, joka kattaa kaikki 5–16-vuotiaat, astuu voimaan syksyllä 2014.

Suomen kanssa suurin piirtein samassa tilanteessa ovat esimerkiksi Singapore, Etelä-Korea ja USA. Päätös koodaamisen tuomisesta opetusohjelmaan on joko tehty (Etelä-Korea), tai sitä tutkitaan (Singapore, USA).

Syyt muutokselle ovat maasta toiseen samanlaisia kuin tämän kirjan osiossa 1 on kuvailtu, mutta haasteet poikkeavat toisistaan:

Singaporessa monet vanhemmat toivovat lapsistaan pankkiireita, ei koodareita.

Britanniassa osaavia opettajia on niukasti.

Etelä-Koreassa taas opettajia löytyy, mutta tiukka koulutusjärjestelmä ajaa lapset valitsemaan aineita, joiden osaamista mitataan sikäläisissä ylioppilaskirjoituksissa.

Jopa Yhdysvaltain presidentti Barack Obama totesi toivovansa taitoa koodata, kun kauan odotettu terveydenhuoltouudistuksen portaali kaatuili ohjelmisto-ongelmien alla.

Kaikille haastavaa on pedagogisen ymmärryksen puute, kun puhutaan alakoululaisten koodaamisesta: pitäisikö aloittaa tekemisellä vai teorialla? Mitä ohjelmointikieltä pitäisi opettaa? Kuinka hallita eritasoisia oppilaita samassa ryhmässä? Miten ohjelmointi sidotaan osaksi eri aineita ja osaksi tieto- ja viestintäteknisen osaamisen kokonaisuutta?

Virossa uusi opetusohjelma otettiin käyttöön jo 2013.

Esimerkkejä maailmalta

Britanniassa muutos alkoi helmikuussa 2011, kun Googlen silloinen toimitusjohtaja ja nykyinen hallituksen puheenjohtaja Eric Schmidt haastoi britit miettimään uudelleen koulujen teknologiakoulutusta.

Kahden vuoden aikana Brittien opetussuunnitelmaa työsti monipuolinen joukko opettajia, etujärjestöjä, yrityksiä ja yhdistyksiä. Syksyllä 2014 kaikki 1–4-luokat siirtyvät opiskelemaan uutta Computing-nimistä oppiainetta.

Opettajien ohjelmointiin liittyviä opetustaitoja kouluttaa vuoteen 2015 mennessä 400 opettajan erityisjoukko. Jokainen näistä ohjelmoinnin opeteukseen valjastetuista opettajista – niin sanotuista master teachereista – vastaa neljästäkymmenestä paikallisesta koulusta, jotka taas puolestaan kouluttavat lisää opettajia. Valtio tukee stipendein opettajien kouluttautumista.

Opettajat ovat kuitenkin melko yksin muutoksen kanssa, sillä yhtä yhtenäistä tuntisuunnitelmaa ei kouluille ole tarjolla.

Jokainen opettaja päättää itse, miten uutta ainetta aikoo opettaa.

Virossa uusi opetusohjelma otettiin käyttöön syksyllä 2013, mutta runsaasta 300 peruskoulusta keväällä 2014 vasta 55 on kokeillut ohjelmaa. Opettajat koulutettiin neljän viikon e-kurssilla, ja heitä kannustetaan vuorostaan kouluttamaan uusia opettajia.

Muutos ei lähde vain kouluista

Koululaitosten ulkopuolella tapahtuu myös. Kun ohjelmointiopetus on laahannut muodollisessa koulutuksessa jäljessä, on maailmalla syntynyt satoja erilaisia vapaaehtoisten vetämiä koodikouluja. Vapaaehtoisista koodiopettajista kerrotaan lyhyesti sivuilla 67 sekä 139.

Yhdysvalloissa Code.org-järjestö on saanut peräti 28 miljoonaa lasta kokeilemaan koodaamista ja rekrytoinut poptähti Will.i.amin sekä koripalloguru LeBron Jamesin kaltaisia julkkiksia puhumaan ohjelmoinnin puolesta. Kymmenissä maissa ohjelmointia opettavat myös vapaaehtoisuuteen perustuvat irlantilainen CoderDojo sekä brittiläinen Code Club. Molempien sivuilta löytyy materiaaleja meillekin opetusohjelman suunnitteluun:

Mitä eri maissa opetetaan nyt?

Ohjelmoinnin opettaminen peruskoulussa on uutta, mutta jostain on lähdettävä. Esimerkiksi Britanniassa on aloitettu oma Computing-niminen oppiaineensa.

Britannia

Britanniassa opettajilla on iso valta päättää, mitä ja miten opetetaan. Jokaiselle luokkatasolle on kuitenkin kirjattu joukko tavoitteita, joita lasten ja nuorten tulisi oppia. Keinot tavoitteisiin pääsemiseen saa päättää luokittain.

Huomioitavaa on, että siinä missä Suomessa ohjelmoinnin opetuksella otetaan aikaa muista oppiaineista, Britanniassa se liittyy omaan Computing-oppiaineeseensa, minkä myötä aikaa sisältöjen oppimiselle on enemmän.

Seuraavassa on esimerkkejä brittien eri luokka-asteiden tavoitteista.

Opetussuunnitelmiin voi perehtyä osoitteissa:

1. vaihe, luokat 1–2
1. vaiheen tavoitteet ovat kokonaisuudessaan:

  • oppilas tietää, mitä algoritmit ovat ja miten annetaan tarkkoja ohjeita
  • oppilas luo ja korjaa yksinkertaisen ohjelman
  • oppilas käyttää loogista päättelyä ennustaakseen yksinkertaisen ohjelman lopputuleman
  • oppilas käyttää teknologiaa tavoitteellisesti luodakseen, järjestääkseen, muokatakseen ja hakeakseen digitaalista sisältöä
  • oppilas tunnistaa, miten informaatioteknologiaa käytetään koulun ulkopuolella
  • oppilas tietää, miten teknologiaa käytetään turvallisesti ja yksityisyyttä kunnioittaen
  • Muista vaiheista on seuraavassa esimerkkejä:

    2. vaihe, luokat 3–6
    Oppilas muun muassa suunnittelee, kirjoittaa ja korjaa ohjelmia saavuttaakseen tavoitteen. Oppilaat ratkaisevat isoja ongelmia pilkkomalla ne pienempiin.

    3. vaihe, luokat 7–9
    Oppilas muun muassa käyttää kahta tai useampaa ohjelmointikieltä, joista ainakin yksi on tekstipohjainen ratkaistakseen erilaisia ongelmia. Oppilas käyttää ongelmaan sopivia tietorakenteita ja suunnittelee ja ohjelmoi modulaarisia ohjelmia.

    4. vaihe, lukio/ammattikoulu
    Oppilas kehittää osaamista, luovuutta ja tietoja muun muassa tietojenkäsittelytieteessä, digitaalisessa mediassa ja informaatioteknologiassa.

    USA:ssa Code.org-järjestö on kehittänyt alle 8-vuotiaille 25 tunnin opetussuunnitelman.

    Yhdysvallat

    Yhdysvalloissa ohjelmointiopetus päätetään liittovaltiotasolla. Erilaiset edunvalvontajärjestöt, kuten ohjelmointiopetusta edistävä Code.org ja tietotekniikan opettajien yhdistys Computer Science Teachers Association (CSTA) ovat kuitenkin rakentaneet omia opetussuunnitelmiaan, joita yksittäiset opettajat ja koulut voivat halutessaan hyödyntää.

    CSTA on kehittänyt jo vuosia sitten alle 12-vuotiaiden opetussuunnitelman, jota käytetään standardina monille muille opetussuunnitelmille. Se koostuu neljästä teemasta: tietojenkäsittelytieteen perusteet, tietojenkäsittelytiede ja ohjelmointi osana modernia maailmaa, tietojenkäsittely analyysin ja suunnittelun välineenä sekä neljäs, vaativampien tietojenkäsittelytieteen opintoihin valmistava kokonaisuus: csta.acm.org/Curriculum/sub/K12Standards.html

    Code.org-järjestö on kehittänyt alle 8-vuotiaille 25 tunnin opetussuunnitelman, jossa opitaan esimerkiksi, mitä tietojenkäsittelytiede on, mitä ohjelmoija tekee, miten ohjelmointia käytetään maailmassa, miten ohjelmia korjataan sekä joukon ohjelmoinnin peruskäsitteitä (peräkkäisyys, silmukat, ehtolauseet, funktiot ja muuttujat) sekä tietokoneperusteisen ongelmanratkaisun teemoja (ongelmien purkaminen, hahmontunnistus, algoritmit). Opetussuunnitelma löytyy osoitteesta code.org/educate/curriculum

    Viro

    Virossa on ollut haastavaa löytää opettajia, sillä tietojenkäsittelytieteitä opiskelleet rekrytoidaan yleensä nopeasti muihin kuin opettajantöihin.

    Viron opetussuunnitelma painottaa käytännön tekemistä:

  • 1.–3. luokka: Oppimisympäristönä toimii visuaalinen ohjelmointiympäristö Kodu Game Lab, sekä MSW Logo, joka on niin sanottu miniohjelmointikieli. Lisätietoja kummastakin on esitetty tämän oppaan osiossa 3.
  • 4.–6. luokka: Oppilaat saavat valita joko Lego-robottien ohjelmoinnin tai verkko-ohjelmoinnin. Tässä vaiheessa esitellään myös MIT:ssä kehitetty lapsille suunnattu visuaalinen Scratch-ohjelmointiympäristö. Lisätietoja kummastakin on osiossa 3.
  • Virossa opettajaksi halutut rekrytoidaan harmmillisen nopeasti muihin kuin opetustöihin.

    Seitsemän opettajan pelkoa

    Olemme haastatelleet tätä opasta varten joukon opettajia ja opetusalan päättäjiä niin Suomessa kuin ulkomaillakin erilaisissa seminaareissa, sosiaalisessa mediassa, verkkokyselyin ja satunnaisissa kohtaamisissa.

    Tässä luvussa käydään läpi muutamia esiin nousseita opettajien huolenaiheita.

    1. Miten voin opettaa ohjelmointia, kun en ole koskaan ohjelmoinut?

    Ohjelmoinnin opettamisen aloittaminen arveluttaa ja aiheuttaa helposti hämmennystä, jos ei ole koskaan itse ohjelmoinut. Moni opettaja tietää ohjelmoinnista lähinnä jotain sen suuntaista, että tietokoneelle kirjoitetaan koodikieltä, jonka lopputuloksena syntyy tietokoneohjelmia, joissa kone tekee ihmisen pyynnöstä asioita.

    Ei huolta.

    Ohjelmoinnin opettaminen peruskoulutasolla – varsinkin alakoulussa – on vielä kaukana varsinaisesta monimutkaisten ohjelmien teosta, johon paneudutaan esimerkiksi yliopistotasolla.

    Peruskoulussa tärkeintä on saada lapset ja nuoret ymmärtämään ohjelmoinnissa hyödyllisten ajattelumallien perusteet. Se, millaisia asioita tietokone on hyvä tekemään, ja miten tietokoneelle annetaan yksikäsitteisiä ohjeita.

    Tällaisiin tarkoituksiin löytyy huomattava määrä erityisesti lapsille ja nuorille suunnattuja harjoituksia, verkkoresursseja, pelejä ja niin edelleen. Opettajan ei tarvitse osata syvällisesti ohjelmoida. Minimissään riittää, että opettaja osaa selittää, miksi ohjelmointi on tärkeää (ks. osio 1), ja ohjaa oppilaat harjoitusten pariin sekä saattaa heidät niiden läpi. Tähän auttaa ennakkoperehtyminen harjoituksiin.

    Yläkoulutasolla ruvetaan perehtymään jo varsinaiseen ohjelmointikieleen. Tämä on toki pykälää haastavampaa, mutta ei missään nimessä ylitsepääsemätöntä. Myös oikeiden ohjelmointikielten opettelua varten on olemassa alkeista pienin askelin eteneviä oppimisympäristöjä, jotka on varta vasten suunniteltu vasta-alkajille.

    Muista: harjoitukset ja oppisisällöt on valittava siten, että koko ikäluokka kykenee saamaan niistä irti. Opettajan omat oppimisvalmiudet ovat varmuudella niin hyvät, että hän kykenee omaksumaan asiat, jotka on tarkoitettu peruskouluikäisten opittaviksi.

    Tämän oppaan osiossa 3 on esitelty verkkoresursseja ja harjoituksia, joita voidaan ottaa luokissa käyttöön ala- ja yläkoulutasoilla.

    2. Ohjelmointi ei kiinnosta – miksi opettelisin uutta?

    Kukaan ei voi pakottaa sinua innostumaan ohjelmoinnista. Mutta vaikka itse et olisi aiheesta innoissasi, olisi tärkeää, että kaikki oppilaasi saisivat mahdollisuuden siitä innostumiseen.

    Kyse ei ole vain opettajan velvollisuudesta – kyse on lasten ja nuorten oikeudesta tulevaisuuteen, jossa heillä on hyödyllisiä taitoja.

    Yhä suuremman osan maailmasta rakentavat ihmiset, jotka osaavat luoda uusia asioita tietokoneen avulla. Jos opettaja ei pidä huolta siitä, että omat oppilaat altistuvat ohjelmointiajattelulle, nämä jäävät paljosta paitsi.

    Jos et millään kykene tai halua opetella opettamaan ohjelmointia, sopikaa innostuneemman opettajan kanssa tuntien vaihtamisesta päikseen.

    Voitte kokeilla myös menetelmää, jossa toinen opettaja opettaa ja sinä kuuntelet oppilaiden mukana. Tämä voi olla kivuton tapa sepä oppia lisää että päästä jyvälle siitä, miten ohjelmointia voi opettaa.

    Opettaja kykenee varmuudella oppimaan asiat, jotka on tarkoitettu peruskouluikäisten opittavaksi.

    3. Mistä ohjelmoinnin opettamiselle lohkaistaan tunteja?

    Opetussuunnitelmassa aika ohjelmoinnille on tarkoitus varata matematiikan tuntijaosta. Matematiikasta on jäämässä vuoden 2016 opetussuunnitelmassa vastaavasti pois joitain asioita, kuten jakokulman opettelu.

    Käytännössä ohjelmoinnille ei anneta opetussuunnitelmassa kiinteää tuntimäärää, vaan asia jää koulujen ja opettajien päätettäväksi. Esimerkiksi alakoulun luokanopettaja voi omalla pelisilmällään sijoittaa ohjelmoinnin oppeja ja harjoituksia muihinkin aineisiin kuin matematiikkaan, ja tämä on myös suotavaa.

    Sivuilla 124–126 on esimerkkejä siitä, kuinka ohjelmointia voidaan linkittää eri oppiaineisiin.

    Tästä aikaa ohjelmoinnille: jakokulma jää pois matematiikan opsista 2016

    4. Tietokonetaidot muuttuvat nopeasti – eivätkö nämä jutut vanhene heti?

    Teknologia muuttuu nopeasti, ja ohjelmointikielet kehittyvät koko ajan.

    Silti ohjelmoinnin opettamisen perusta on ajattelussa, joka ei lähitulevaisuudessa ole muuttumassa miksikään. Ihmiseen pitää jatkossakin ymmärtää ongelma, osata jäsentää se tietokoneen hahmottamiin osiin ja kyetä kertomaan tietokoneelle, mitä sen pitää tehdä.

    Perustavanlaatuinen ymmärrys tietokonepohjaisesta ongelmanratkaisusta ja uuden luomisesta on yleissivistystä. Passiivisen ohjelmistojen käytön opettaminen on nopeammin vanhentuvaa tietoa.

    5. Koulussamme ei ole it-resursseja

    Resurssitilanne käytettävissä olevien pöytäkoneiden, läppärien, tablettien, atk-luokkien, videotykkien ja vastaavien laitteiden kanssa vaihtelee suomalaisissa kouluissa valtavasti. Monissa kouluissa resurssit ovat opettajien mielestä riittävän hyvässä kunnossa, kun taas joissain kouluissa koetaan, että tietokoneita on liian vähän – ja niiden harvojen käynnistyminen vie puolet oppitunnista.

    Me ulkopuoliset koodausintoilijat voimme vain toivoa, että resurssit laitetaan ylhäältä käsin kuntoon ennen syksyä 2016. Alla on kuitenkin pari vinkkiä siihen, miten niukkuudesta huolimatta voi pärjätä.

  • Jokainen lapsi ei tarvitse omaa tietokonetta oppiakseen ohjelmointia. Ammattiohjelmoijatkin työskentelevät usein pareissa, ja mikä tärkeämpää, monia tässä oppaassa esitettyjä verkkoharjoituksia voi pohtia ja tehdä 2–4 hengen ryhmissä.
  • Monia ohjelmoinnin peruskonsepteja voi opettaa ilman tietokonetta. Esimerkiksi sivusto csunplugged.org esittelee pelkästään ohjelmointiharjoituksia, joita voi tehdä ilman laitteita. Sivuilla 86–89 on havainnollistettu ja esitelty tällaisia harjoituksia.
  • Monet ohjelmointiympäristöt eivät vaadi ollenkaan asentamista koneelle, vaan alkuun pääsee suoraan selaimessa. Jotkin näistä ympäristöistä puolestaan toimivat kaikissa päätelaitteissa älypuhelimista tabletteihin ja läppäreihin. Tällöin oppilaat voivat käyttää oppimiseen omia laitteitaan.
  • Sivuilla 112–118 on esitelty mobiililaitteille tarkoitettuja oppimisresursseja.

    Monia ohjelmoinnin ajatusmalleja voi opettaa myös ilman tietokonetta

    6. Voinko saada täydennyskoulutusta ohjelmoinnin opettamista varten?

    Todennäköisesti voit. Opettajana asian tietänetkin, mutta yleisimmät neljä täydennyskoulutusvaihtoehtoja ovat seuraavat:

  • Kouluttautumiseen voi käyttää virkaehtosopimuksen mukaisia veso-koulutuksia, joita opettajalla on kolme päivää vuodessa. Työnantaja päättää, mitä koulutus sisältää, mutta toivoa sopii, että kun opetussuunnitelmaan tulee ohjelmoinnista ilmeinen uusi osa, niin koulut ja kunnat kohdentaisivat osan veso-päivistä ohjelmoinnin opettamiseen.
  • Opetushallitus järjestää vuosittain täydennyskoulutusta. OPH:n matematiikan opetussuunnitelmatyöryhmän puheenjohtajan Leo Pahkinin mukaan on todennäköistä, että koulutuksia kohdennetaan ohjelmoinnin alueelle lähivuosina.
  • Myös opetus- ja kulttuuriministeriö rahoittaa opettajille täydennyskoulutuksia. OPH kilpailuttaa niiden tarjoajat ja sisällöt. Toivottavasti mukaan saadaan ohjelmointiopetuksen koulutuksia.
  • Opettaja voi itse hakea – omaan piikkiinsä – ohjelmoinnin täydennyskoulutusta esimerkiksi alueensa yliopistolta.
  • Ehdotuksia siitä, mitä eri tahot voivat tehdä ohjelmointiopetuksen edistämiseksi on esitetty osiossa 4.

    7. Hyvä on, haluan yrittää. Mistä lähden liikkeelle?

    Osiossa 3 on esitelty resursseja joiden kautta päästä liikkeelle eri luokka-asteilla. Osion 3 sivuilla 120–121 on myös esitetty opettajan tarkistuslista ensimmäisen harjoituksen vetämiseen.

    Ennen ensimmäistä oppituntia opettajan on hyvä selata tämä opaskirjanen läpi. Seuraavaksi on hyvä perehtyä oman luokka-asteen oppilaiden tasolle sopiviin harjoituksiin.

    Harjoituksiin on paras tutustua tekemällä niitä itse. Tällöin huomaa, millaisia ongelmia oppilaillakin luultavasti tulee vastaan, ja opettaja on sinut harjoitusten kanssa siinä vaiheessa, kun niitä ruvetaan tekemään luokan kanssa.

    Onnea matkaan!