Miksi opettaa tai opetella ohjelmointia?

Ohjelmointi on tulossa peruskoulun uuteen opetussuunnitelmaan kaikille luokka-asteille. OPS2016-dokumentti ei kuitenkaan perustele miksi ohjelmointia tulisi opettaa jokaiselle. Asiaa voi lähestyä monesta eri näkökulmasta, ja vertailla muihin oppiaineisiin.

Valmennus työelämään

Teollisuuden toiveissa on aina saada koulutusputkesta mahdollisimman valmiiksi koulutettua työvoimaa mahdollisimman suurissa määrissä. Kaikista ei jatkossakaan tule koodareita, mutta ala on jatkuvasti kasvava ja kaikki otsikoissa olevat kansantalouden suuret lupaukset ovat ohjelmistoalalla. Tällä hetkellä ohjelmoinnin opiskelu aloitetaan vasta korkeakoulutasolla. Jos jo aloittavat opiskelijat osaisivat koodauksen alkeet, he voisivat valmistua nopeammin tai ehtiä opiskelemaan alaa pidemmälle. Lisäksi monet saattavat jättää valitsematta alan, koska eivät oikeastaan tiedä mistä koko hommassa on kyse.

Tässä suhteessa ohjelmointia voisi verrata matematiikkaan, jonka alle OPS:n luonnos ohjelmoinnin onkin laittanut. Harva tarvitsee arki- tai työelämässään perusaritmetiikkaa pidemmälle menevää matematiikkaa, mutta silti jo peruskoulussa käydään läpi geometriaa ja algebraa. Tämä kuitenkin innostaa monia valitsemaan luonnontieteet tai teknologia-alan toisen asteen ja korkeakouluopinnoissaan, ja luo näille valmiin pohjan.

Yleinen ohjelmointitaito

Ohjelmoinnista voi silti olla hyötyä myös muille kuin ammatikseen koodaaville. Otso Kivekäs kirjoitti blogissaan tapaamastaan lääkäristä, joka pienellä itselleen tekemällä apuohjelmalla säästi aikaa asiakkaiden tietojen syöttämisestä tietokoneelleen. Lääkäri arvioi säästäneensä puolen vuoden aikana jo useamman työpäivän verran aikaa.

Samanlaisia pieniä tarpeita on vaikka missä. Liian pieniä, jotta työnantaja alkaisi virallisesti tekemään hankintaa, tai ettei kuluttaja viitsi käyttää aikaa etsien Internetin heinäsuovasta sopivaa appsia, jos sellaista on kukaan edes keksinyt tehdä. Tarpeeksi pieniä, että sen pystyisi tekemään amatöörikin, jos vain perustaidot löytyisivät.

Tähän tarpeeseen vertautuvat käsityöt. Siinä missä ennen riitti kun osasi parsia reiät ja irronneet napit, sekä kiinnittää naulakon ja nikkaroida mökille penkin, nykymaailmassa tarvitaan ohjelmointitaitoa arjen pieniin askareisiin.

Maailman ymmärtäminen

Koulussa on pitkään opetettu biologiaa, maantietoa, fysiikkaa ja kemiaa, jotta ymmärtäisimme maailmaa, jossa elämme. Mutta missä maailma oli ennen mekaaninen, se on nyt jatkuvasti enemmän elektroninen. Tietokoneohjelmat herättävät meidät aamulla, tuovat uutiset aamupöytään ja ohjaavat liikennettä matkalla töihin.

Ne myöskin vievät yhä suuremman osan kuntien ja valtion budjeteista, mutta äänestäjillä ei oikeastaan ole käsitystä siitä mikä suurinpiirtein voisi olla mahdollista ja miten suurella vaivalla.

Ohjelmoinnin ja ohjelmistojen tekemisen perustaidot ovat nykyään merkittävä osa yleissivistystä.

Itsensä ilmaisu

Koulun tehtävänä ei ole tuottaa pelkästään hyviä työntekijöitä ja valveutuneita kansalaisia. Koulu antaa kaikille myös mahdollisuuksia ilmaista itseään musiikin, kuvaamataidon, äidinkielen ja käsitöiden kautta. Ohjelmointi voi olla osana kaikkea näitä, ja tuoda uusia mahdollisuuksia. Tarinankerronta ei ole enää yksipuolista kirjan lukemista tai elokuvan katsomista, vaan pelien maailmassa vastaanottaja imeytyy mukaan kertomukseen, samoin kuin musiikki ja visuaalinen näkymä reagoivat tilanteeseen. Vaikka pelit ovatkin arkipäiväisin ilmentymä taiteellisesta koodauksesta, monet ruutujen ulkopuolellakin olevat teokset ovat suurelta osin ohjelmakoodia.

Myös itse ohjelmakoodissa voi olla oma kauneutensa, ja monet ohjelmoijat arvostavatkin elegantteja, heidän silmiinsä taidokkaita ratkaisuja ongelmiin. Normaalin ammattiylpeuden lisäksi tämä voi ilmentyä myös omana taidelajinaan.

Ajattelutapojen oppiminen

Ohjelmointi vaatii ja harjoittaa joitain välttämättömiä taitoja, joita ei suoraan opeteta missään muussa oppiaineessa, mutta jotka silti ovat avuksi kaikessa muussa oppimisessa ja ongelmanratkaisussa. Ensimmäisenä vastaan tulee tietokoneen yksinkertaisuus: se tekee vain mitä käsketään, ja vain sen. Ihmiset kykenevät yleensä ymmärtämään myös toistensa epäselviä ohjeita, mutta väärinkäsitykset ovat silti yleisiä. Tietokoneet ovat anteeksiantamattomia epäselvyyksissä, ja pakottavat ohjelmoijan miettimään mitä hän tarkalleen haluaakaan.

Ohjelmointi opettaa myös pilkkomaan ison ongelman pienempiin paloihin ja tunnistamaan mitkä ongelmat ovat oikeastaan samoja, vain hieman eri lähtökohdista. Ohjelmien laajentuessa näistä pienistä paloista pitää myös muodostaa abstraktimpia toiminnallisuuksia, jotka tekevät enemmän, mutta vaativat kognitiivisesti yhtä vähän huomiota. Tämä on tärkeää, sillä kukaan ei kykene pitämään kovin suurta määrää pikkutarkkaa tietoa yhtäaikaa mielessään.