Ohjelmoinnin opetuksesta kouluissa

Ohjelmoinnin opetus rantautui suomalaisiin kouluihin virallisesti syksyllä 2016 ja nyt tarvitaan käytännöllistä näkemystä siitä, minkätasoista oppimista OPSin hahmottelemat tavoitteet edellyttävät. Tarkoituksenmukaista ei ole ryhtyä koulimaan kaikista nykykoululaisista ohjelmoinnin ammattilaisia. Koulussa tavoitteena voi pitää omakohtaisen kokeilun kautta hankittua kokemusta uudenlaisesta työvälineestä ja yleissivistystä siitä, minkälaisiin tehtäviin ohjelmistopohjainen automaatio soveltuu. Pelkän ohjelmoinnin lisäksi digiyhteiskunnan palveluiden tunnistaminen ja käyttötavat sekä erilaisten tietojenkäsittelytieteeseen, tutkimukseen ja nykyteknologiaan liittyvien ammattien kirjo ovat myös tärkeitä.

Vaikka ns. ohjelmointiparadigmoja onkin useita, on kuhunkin tehtävään valittava sovelias työkalu. Ohjelmointiympäristön valinta on usein koulukohtainen valinta. Ala- ja yläkoulujen välineiden ero ei varsinkaan lähivuosien siirtymävaiheessa ole niinkään olennainen kuin aloittelevan ohjelmoijan ja pidemmälle ehtineen tottumus tiettyihin toistuviin toimintosarjoihin. Graafinen (visuaalinen) ohjelmointiympäristö muistuttaa valmiilla palasillaan ohjelmoijaa mahdollisista ratkaisuvaihtoehdoista, kun taas tekstipohjaisessa ympäristössä perusmallit (haarautuminen, toistot, erilliset aliohjelmat tai keskustelevat oliot) on jo omatoimisesti osattava valita.

Ohjelmoinnin oppimisessa, samoin kuin muidenkin oppiaineiden kohdalla, keskitytään aluksi leikinomaisesti tehtävään sopivan toiminta- tai ajattelutavan omaksumiseen. Sen myötä syntyy kokeilemisen ja luovuuden ilo, halu tehdä haastavampia projekteja ja ylpeys työn tuloksien jakamisesta tovereiden kanssa. Arviointi on syytä pitää formatiivisena: tehdään havaittavaksi jo opittu itse- tai vertaisarvioinnin kautta, kannustetaan viemään projekteja pidemmälle tai kokeilemaan vaihtoehtoisia tapoja päästä samaan tulokseen. Ohjelmoinnin opetuksessa olennaista on riittävä keskustelutaidon kehittäminen mm. ohjelman rakenteesta, ongelmanratkaisutavasta tukeutuen nimettävissä oleviin perusmalleihin ja oikean toiminnan varmistamistavoista. Tässä esimerkiksi pariohjelmointi on toimiva ratkaisu - oppilasparissa vuoroon toinen käyttää näppäimistöä ja hiirtä, toinen pohtii suurempia linjoja. Olennaista on oppilaiden halu valita haasteita, olla luovia ja etsiä valitsemiinsa ongelmiin ratkaisuja kokeilun, keskustelun ja tiedonhaun kautta.

Täydennyskoulutustapahtumien materiaali ja Materiaalit-sivun kerho- ja leirimateriaalit ovat vapaasti opettajien käytettävissä omien oppituntien rakentamiseen (kaupallistaminen rajattu). Tehtävien pohjana on usein peli-idea haasteena ja yhteisenä kehikkona oppilasryhmälle. Itse oppitunnilla tai kerhotapaamisessa oppilaat etenevät osin omaan tahtiin, kunhan yhdessä on ensin jaettu laajempi tehtävä sopiviin osiin. Ohjaajat avustavat vasta-alkajia esittämällä heille oppimista edistäviä kysymyksiä tai vastaamalla kysymyksiin - syntyy kisälliperiaatteella toimiva tilanne: osien toteutustavoista syntyy keskustelua, hyviä ratkaisuja löytäneet saavat tilaisuuden esitellä niitä toisillekin.

Tehtävien valintaan ovat vaikuttaneet ennen kaikkea ikäryhmää kiinnostavat peli-ideat ja kysymykset niiden toimintatavasta. Pedagogisesti katsottuna toimitaan kisälliperiaatteen mukaisesti, ongelmalähtöisesti ja useita oppiaineita integroivasti (esimerkiksi pallon putoamisen ohjelmoinnissa tarvitaan fysiikan tiedoista matemaattinen laskukaava pallon sijainnille kullakin hetkellä). Usein työskennellään pareina tai tiimeinä ja kerhon lopussa tuotokset esitellään ryhmälle, mikä lisää esiintymisvarmuutta ja aktivoi positiivisen palautteen.

Erityisesti Scratch-ohjelmissa ympäristö perustuu keskenään vuorovaikuttaviin olioihin: pelihahmo voi reagoida toisen hahmon kosketukseen ja reagointitavan voi itse ohjelmoida. Kun oppilaat ovat tämän maailmankuvan omaksuneet, muiden perusmallien luova käyttö on ratkiriemukasta.