Matematiikan ja ohjelmoinnin välistä rajankäyntiä

Tuore väitöskirjani käsittelee ohjelmointiopetuksen aloittamista peruskouluissa matematiikan opetuksen yhteydessä. Yksi puoli asiaa on se, miten matematiikanopettajat voidaan kouluttaa ohjelmoinnin osaajiksi.

Pia Niemelä, tohtorikoulutettava, Tampereen teknillinen yliopisto

Tuore väitöskirjani käsittelee ohjelmointiopetuksen aloittamista peruskouluissa matematiikan opetuksen yhteydessä. Yksi puoli asiaa on se, miten matematiikanopettajat voidaan kouluttaa ohjelmoinnin osaajiksi. Tutkin väitöskirjassani, miten Koodiaapis-MOOC (massive open online course) toimii täydennyskoulutuksena. Tällainen MOOC ja sitä tukevat keskustelupalstat edustavat ns. ammatillisia oppimisverkostoja (professional learning network, PLN).

Yleisesti MOOCit ovat tunnettuja suuresta pudokkaiden osuudesta; osallistujien sitoutuneisuus kantaa harvoin alkuinnostusta pitemmälle. Se, että Koodiaapis-MOOCin osallistujista kolmannes suoritti loppuun aloittamansa koulutuksen, on ensisijaisesti osoitus suomalaisten opettajien halusta kehittyä työssään ja täyttää opetussuunnitelman vaatimukset ja vasta toissijaisesti tutkitun MOOCin kiinnostavasta ja ajankohtaisesta sisällöstä. Suomen PISA-menestyksen yksi merkittävimmistä tekijöistä onkin asiantunteva, korkeasti koulutettu ja pätevä opettajakunta, joka määrätietoisesti kouluttautuu tulevaisuuden haasteisiin.

Koodiaapis-MOOCin tarjonnasta – Scratch, Python ja Racket – matalan kynnyksen Scratch kerää eniten opettajien kehuja helppona oppia ja siten nopeasti palkitsevana. Scratch estää virheellisen koodin tekemisen ja sillä saa äkkiä aikaan näkyviä tuloksia. Scratchin taustalta löytyy myös paljon pedagogista näkemystä. Se on kehitetty LOGO-kielen jatkoksi MIT:n Lifelong Kindergarden -ryhmässä. LOGO muistetaan edellisestä tietotekniikan opetuksen aallosta 1970–1980-luvuilta. Sekä LOGO että Scratch tähtäävät lapsen luovuuden tukemiseen ja tietotekniikan oppimisen kynnyksen loiventamiseen.

Scratch panostaa lisäksi tietoisesti yhteisön rakentamiseen. Scratch -työt ovat julkisesti esillä, niitä voi käydä kommentoimassa ja tykkäämässä ja mielenkiintoisen työn voi halutessaan ottaa rakentelun pohjaksi ja kehittää sitä eteenpäin remix-toiminnolla. Tällainen jakaminen tuo Scratchiin sosiaalisen oppimisverkon (social learning network, SLN) piirteitä.

Siirryttäessä tekstipohjaiseen ohjelmointiin – kuten Python ja Racket – ohjelmoinnin kompleksisuus lisääntyy ja vastaavasti myös mielipiteet alkavat jakautua. Esimerkiksi vaikeaksi mielletty funktionaalinen Racket-kieli onnistuu sekä ihastuttamaan että vihastuttamaan.  Ihastus pohjautuu siihen, että funktionaalisessa ohjelmoinnissa on niin paljon yhteistä matematiikan kanssa, mikä usein miellyttää matemaattista mielenlaatua. Funktionaalisen ohjelmoinnin ja algebran osaamisen välillä on tutkitusti siirtovaikutusta (transfer). Närää puolestaan herättää funktionaalisen ohjelmoinnin vaikeuden lisäksi sen vähäinen osuus teollisuudessa, jossa se on vain pieni niche, sekä sen tehottomuus esimerkiksi algoritmien suorituskykyvertailuissa, missä puolestaan esim. imperatiiviset C/C++ ovat vahvoilla.

Erityisen herkästi mielipiteet kärjistyvät netin keskustelupalstoilla. Ohjelmointikielet voidaan ryhmitellä paradigmoihin ja näiden kiistojen yhteydessä puhutaan paradigmasodista.  Mikäli objektiorientoitunut paradigmakin luetaan mukaan imperatiiviseen, vastakkainasettelu voidaan redusoida ‘imperatiivinen vs. funktionaalinen’. Koodiaapisessakin voit valita puolesi:  strangled by Python or hit by Racket!

Väitöstilaisuudessa vastaväittäjäni professori Erkki Sutinen Turun yliopistosta onnistui yllättämään. Väitökseen valmistelemani tärpit olivat tyhjiä arpoja, sen sijaan nousimme seuraavalle metatasolle keskustelemaan mm. vaihtoehtoisista, paradigmasodat taakseen jättävistä ja uusia tapoja hyödyntävistä tavoista opettaa ohjelmointia, tutkimusasetelmia ohjaavista arvoista, tutkijan motivaatiosta ja hänen esitulkkiutuneisuudestaan.  Eiväthän insinöörit tällaisista juttele! Syytä kuitenkin olisi, koska kun vauhti kiihtyy, ohjaamisen merkitys korostuu. Tällä hetkellä kehitystä vauhdittavat robotiikka ja tekoäly, jotka tunkevat kouluihinkin, puhutaan mm. opetusroboteista ja opetusympäristöihin sisällytetään yksilön suoriutumista havainnoivaa opetusanalytiikkaa.

Kuitenkaan kaikkea tätä teknistä kehitystä ei ohjaa joku salaperäinen rekursiivinen algoritmi vaan ihmisten arvot: emme ole ajopuita, vaan kykeneviä vaikuttamaan siihen mitä tulee tapahtumaan, kuten siihen millaista opetusta pidämme arvokkaana ja tarpeellisena ja miten siihen satsataan.

Lue lisää aiheesta.


Tutkimuskonsortio