Englanninkieliselle käsitteelle ”computational thinking” ei vielä vakiintunut kaikki merkitykset tavoittavaa suomennosta. Meidän tulisi ottaa käyttöön termi automatisointioajattelu, jotta ohjelmoinnin opettamiseen liittyvää pedagogiikkaa voitaisiin käsitellä suomenkielisissäkin akateemisissa teksteissä täsmällisillä käsitteillä. Tässä tekstissä kuvataan alkuperäisen termin merkitys ja perustellaan suomennoksen osuvuus.
Termin ”computational thinking” lyhyt historia
Tiedotusvälineet ovat raportoineet viime vuosina yhä enemmän erilaisista koodikouluista ja muista lapsille ja nuorille ohjelmointia opettavista hankkeista. Näissä kirjoituksissa (esimerkkinä Anttikoski 2014) käytetään usein analogiaa, että tulevaisuudessa ohjelmointi olisi samanlainen perustaito kuin lukeminen, kirjoittaminen ja laskeminen. Ohjelmointi on Suomessakin tulossa osaksi kansallista opetussuunnitelmaa vuodesta 2016 alkaen (Opetushallitus 2014), ja ajatus siitä, että jokaisen lapsen tulisi oppia ohjelmoimaan, on suosiossa. Kriittiset äänet kuitenkin kysyvät, tarvitaanko todellakin niin paljon ohjelmoijia tulevaisuudessa?
Kysymykseen vastaamista varten pitää pystyä puhumaan siitä abstraktimmasta taidosta, jota opitaan käytännössä tietokoneohjelmoinnin kautta. Seymor Papert (1996) käytti ensimmäisenä termiä ”computational thinking” kuvatessaan sitä ajattelutapaa, jossa hän toivoi oppilaidensa kehittyvän näiden suorittaessa The Turtle -nimistä opetuspeliä. Siinä oppilaat saivat Logo-kielellä ohjelmoiden ruudulla olevan kilpikonnan liikkumaan ja piirtämään ruudulle erilaisia euklidisen geometrian mukaisia kuvioita. Termin käyttö laajemmin alkoi kuitenkin vasta, kun Carnegie Mellon -yliopiston tietojenkäsittelylaitoksen johtajaprofessori Jeannette M. Wing julisti kyseisellä termillä otsikoidussa artikkelissa (2006), että ”computational thinking” tulee olemaan perustaito, jota jokainen ihminen maailmassa käyttää kuluvan vuosisadan puolivälissä. Sekä Papert että Wing ennakoivat, että koska tulevaisuudessa tietokoneita on niin helposti ja yleisesti saatavilla, voi kuka tahansa käyttää niitä minkä tahansa ongelman ratkaisemiseen.
Tällaisessa maailmassa on keskeinen kyky ymmärtää, mikä on ylipäänsä tietokoneistettavissa tai automatisoitavissa (engl. computable) ja mikä ei (Wing 2006).
Akateemisessa maailmassa tietokoneita on osattu hyödyntää jo pitkään tieteenaloilla kuten kemia, biologia, taloustieteet, neurotieteet, farmasia, lääketiede ja kielitieteet (lingvistiikka). Esimerkiksi biologiassa ja lääketieteessä geenitekniikan kehittyminen on ollut merkittävä askel, ja geenitekniikassa automaation ja laskennan hyödyntäminen on ollut keskeistä, jotta miljoonat geenit ja proteiinit on saatu kartoitettua. Moderni neurotiede perustuu aivojen kuvantamiseen, joka puolestaan perustuu täysin tietokoneilla tehtävään signaalinkäsittelyyn. (Wing 2006)
Wing (2006) nosti esille hänen oman tiedekuntansa nimen ”computer science” ja totesi, että osuvampi nimi olisi ”computational science”, koska kyse on paljon isommasta asiasta kuin vain laitteista ja toisaalta koska tietojenkäsittely on niin yleishyödyllistä. Minkä tahansa tieteenalan tekijän on ymmärrettävä, mitä dataa voidaan kerätä ja mitä siitä voidaan sopivalla käsittelyllä saada. Tiedekuntien nimet voisivat yhtä hyvin olla ”computational economics”, ”computational physics” ja niin edelleen. (Wing 2006)
Suomeksi compute-sanan suora käännös olisi laskea, mutta ”laskenta-ajattelu” ei yhdistelmänä ole kuvaava ja lisäksi se on jo käytössä eri merkityksessä kauppatieteissä laskentatoimessa. Käännöskoneet antavat termille ”computational thinking” vastineen ”laskennallinen ajattelu” (ja siksi esimerkiksi code.org:n suomennoksissa näkyy kyseinen termi), mutta sekin on johdos compute-sanan suorasta käännöksestä laskea-merkityksessä, eikä se tavoita Wingin alkuperäistä ajatusta. Reijo Kupaisen suomentamassa Martin Heideggerin teoksessa (Heidegger 2002) esiintyy käsitteet filosofinen ajattelu ja laskennallinen ajattelu, mutta tämä seikka ei toki välttämättä estä termin uudelleenkäyttöä. Pääsyyksi voidaan katsoa, että suomeksi ”computer” vastineena ei käytetä termiä ”laskentakone” vaikka se olisi suora käännös, mikä vahvasti viittaa siihen, että compute-termillä on laajempi merkitys kuin vain laskenta tai laskeminen (engl. calculate).
Tietojenkäsittelytieteestä johdettava termiä ”tietojenkäsittelyajattelu” ei tunnu luonnolliselta. Termi ”algoritminen ajattelu” on pitkä ja suomalaiselle vaikeasti lausuttava vaikka muissa kielissä termin ”computational” käännös sisältääkin algortimi-sanan. Tietokoneita paljon käyttävien tieteenalojen nimistä, kuten numeerisen fysiikan, etuliitteestä johdettu ”numeerinen ajattelu” on vielä kömpelömpi termi. Kun todellista maailmaa kuvataan ohjelmakoodilla, käytetään termiä mallintaminen, mutta ”mallintamisajattelu” ei vaikuta kuvaavan kaikkia niitä aspekteja, joita Wing ja Papert näkivät alkuperäisessä englanninkielisessä termissä. Ohjelmointiajattelu ja ohjelmoinnillinen ajattelu olisivat johdettu ohjelmointi-teemasta, mutta termit tuntuvat kömpelöiltä eivätkä ne istu Wingin testiin ”can be computed” jos se suomennetaan ”onko ohjelmoitavissa”. Paras käännös lienee ”automatisointiajattelu”. Se ei ole käytössä muussa tarkoituksessa ja kaikki mitä voidaan ohjelmakoodilla tehdä, on samalla automatisoitua. Suomeksi on luontevaa sanoa, että ohjelmoimalla oppii ymmärtämään, mikä on automatisoitavissa ja mikä ei.
Epistemologinen näkökulma ajattelukyvyn kehittymiseen
Lego-yhtiön tekemä lapsille suunnattu ohjelmoitava robotteja sisältävä tuoteperhe Mindstorms on nimetty Seymour Papertin vuodelta 1980 peräisin olevan klassikkoteoksen mukaan. Kirjassaan Papert ennustaa, että tulevaisuudessa tietokoneiden yleistyttyä lapsilla tulee olemaan aivan uudenlainen mahdollisuus kehittää omaa älykkyyttään ja ajatteluaan (Papert 1980, 20). Tässä kirjassa Papert ei vielä käytä termiä ”computational thinking”, mutta hän kuvaa laajasti, akateemiseen tutkimukseensa epistemologian saralla nojautuen, miten tämä uusi väline kehittää ajattelua ja oppimista, ongelmanratkaisukykyjä sekä syy-seuraussuhteiden tunnistamista.
Automatisointiajattelulle läheinen käsite voisi olla epistemologiassa käytettävä termi ”muodollinen ajattelu” (engl. formal thinking). Papertin mukaan (1980, 21) se on ajattelun laji, joka kehittyy kulttuurissamme vasta varhaisteini-iässä, ja joillakin ihmisillä se ei kehity kunnolla koskaan. Tämän vastakohta on konkreettinen ajattelu, joka on käyttökelpoisella tasolla jo ensimmäisen luokan aloittavilla koululaisilla.
Samassa teoksessa Papert käyttää termiä ”mekaaninen ajattelu” kuvatessaan minkälaista ajattelua hän on yrittänyt opettaa lapsille, jotta nämä osaisivat ratkaista tietynlaisia ongelmia. Wingin computable vs. non-computable -ajattelun kanssa yhdenmukaisesti Papert toteaa, että ohjelmointityyppisillä harjoituksilla lapsi oppii ymmärtämään, mikä on mekaanista ja mikä ei. (Papert 1980, 27.) Jälkikäteen Papert lienee hylännyt termin mekaaninen, koska se ei ole englanniksi eikä suomeksi kovin osuva, sillä tietotekniikassa mekaanisuudella voidaan tarkoittaa myös jotakin, mikä on elektronisen vastakohta.
Papertin elämäntyö liittyi tietokoneen toiminnan ja ohjelmoinnin abstraktin tason konkretisoimiseen siten, että lasten olisi mahdollista kehittyä paremmiksi ajattelijoiksi, tai oikeastaan paremmiksi oppijoiksi maailmassa, joka koostuu äärettömästä määrästä opittavia asioita. Kaikki faktat ovat jo olemassa, ihmiskunta ei vain ole vielä oppinut niitä kaikkia.
Taitavat ohjelmoijat erottaa muista ohjelmoijista heidän kykynsä ratkoa vaikeita ongelmia ja poistaa ohjelmakoodista virheitä (engl. bug). Tällaisille ihmisille on ominaista ajattelutapa, että mikään ei ole liian vaikeaa, pitää vain löytää ratkaisu. Moni lapsi ajattelee uusista asioista, että hän joko osaa tai ei osaa niitä, ja kokeet sekä arvosanat vahvistavat lasten käsityksiä itsestään. Ohjelmoinnin kautta lapsi voi oppia ajattelemaan, että minkä tahansa ongelman ratkaiseminen on kiinni ratkaisun löytämisestä, ja ratkaisu löytyy ongelman systemaattisella kartoittamisella. Tällä ajattelumallilla lapsi omaksuu menestyksekkäämmin uusia asioita. (Papert 1980, 27.)
Ohjelmoimalla oppii automatisointiajattelua
Ongelman systemaattisen kartoittamisen voidaan ajatella olevan aina jonkinlainen sovellus siitä, että tunnistetaan toistuva prosessi ja tarkastellaan sitä riittävän pienissä vaiheissa. Silloin yksittäisen vaiheen voi ymmärtää, kuvitella mielessään ja havaita mahdollisen virheen ideaalitilan ja tosiasiallisen tilan välillä. Tällaisen mallin soveltaminen ei ole sidottu millään tavalla tietokoneeseen tai ohjelmointiin, mutta ohjelmointitaito opettaa nimenomaan tällaista ajattelumallia, koska ohjelmoinnissa luodaan itse koko ajan uusia toistettavissa olevia prosesseja ja automaatiota. Ohjelmointi on siksi erinomainen tapa harjoitella taitoa nimeltä automatisointiajattelu.
Lähteet
- Anttikoski, P. (2014). Keksikö paholainen tietokonepelit? Pääkirjoitus-palsta. Helsingin Sanomat 6.11.2014. <http://www.hs.fi/paivanlehti/06112014/paakirjoitukset/Keksik%C3%B6+paholainen+tietokonepelit/a1415165404670> (käytetty 7.11.2014)
- Heidegger, M. (2002). Silleen jättäminen. Suomentanut Reijo Kupiainen, alkuperäisteos vuodelta 1945. Eurooppalaisen filosofian seura
- Perusopetuksen opetussuunnitelman perusteet: Opetus vuosiluokilla 1–2. Luonnos 19.9.2014. Opetushallitus. <http://www.oph.fi/download/160360_opsluonnos_perusopetus_vuosiluokat_1_2_19092014.pdf> (käytetty 16.11.2014)
- Papert, S. (1980). Mindstorms: Children, computers, and powerful ideas.
- Papert, S. (1996). An exploration in the space of mathematics educations. International Journal of Computers for Mathematical Learning, 1(1), 95-123.
- Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33-35.
Tämä artikkeli on julkaistu myös Tampereen yliopiston julkaisussa Tuovi 13: Interaktiivinen tekniikka koulutuksessa 2015-konferenssin tutkijatapaamisen artikkelit. Julkaisu on ladattavissa vapaasti PDF-muodossa.
Itse tykästyin ”ohjelmoinnillinen ajattelu” -termiin, jonka opin viime Netforum:ssa.
Automatisointiajattelu ei ole käännöksenä hyvä, koska se kattaa alkuperäisestä termistä vain osan. Mm. Wing:in määritelmä Computational Thinking:ille sisältää sekä abstrahoinnin että automatisoinnin, painottaen erityisesti abstrahointia.
http://www.cs.cmu.edu/~wing/publications/Wing08a.pdf