Tuoreita näkökulmia ohjelmoinnin ja ohjelmoinnillisen ajattelun opetukseen koulussa

Perusopetuksen opetussuunnitelma 2014 toi ohjelmoinnin ja ohjelmoinnillisen ajattelun ensi kertaa yleissivistävän kasvatuksen kenttään oppiaineita läpäisevästi. Vaikka näitä kaikille opettajille yhteisiksi tarkoitettuja aihepiirejä on pyritty kehittämään ja kouluttamaan aktiivisesti, ne ovat haastaneet kouluja tutkitusti paljon. Nyt opetussuunnitelmakauden noin puolessa välissä on hyvä hetki pysähtyä tarkastelemaan mennyttä ja pohtia kriittisesti, miksi oikeastaan opetammekaan koululaisille näistä aiheista.

Mitä oppilaat oppivat, kun opetamme heitä ohjelmoimaan? Kysymyksen kuultuaan monet saattavat palautella mieliin sanaparsia, kuten ”ongelman purkaminen osiin”, ”algoritmien laatiminen” ja ”kaavojen tunnistaminen”, sillä tällaisia kuvauksia on kaiutettu opettajille tarjotuissa ammatillisissa koulutuksissa ja oppimateriaaleissa jo vuosia. Tärkeä kysymys kuitenkin on, kuinka oleellisia juuri tällaiset tiedot ja taidot ovat, kun kasvatamme osaajia nykypäivän ja tulevaisuuden digiyhteiskuntaan. Tutkittu fakta on nimittäin se, ettei tällaisiin ohjelmoinnilliseen ajatteluun perinteisesti kytkettyihin tietoihin ja taitoihin ole löydetty kovin vahvoja tieteellisiä perusteita nykypäivän kouluopetuksessa. Kouluissa tulisi ilman muuta opiskella ohjelmointia, mutta opetuksen tulokulmia on tarpeen hieman päivittää. Tässä kirjoituksessa pohditaan, millaisista lähtökuopista koulujärjestelmämme on saapunut ohjelmoinnin opetuksen äärelle, mitä koulujen olisi hyvä huomioida jalkauttaessaan näitä aihepiirejä käytännön opetustyössä sekä miten voisimme kasvatus- ja koulutusyhteisönä edelleen kehittää näitä aihepiirejä niin pienessä kuin suuressa kuvassa. Kirjoituksen lopussa esitetään viisi käytännön suositusta ohjelmoinnin ja ohjelmoinnillisen ajattelun kouluopetuksen johdonmukaisempaan kehittämiseen ja jalkauttamiseen tulevaisuudessa.

Ohjelmoinnin tahmeat ensiaskeleet koulussa

Yhteiskunnan alati kiihtyvä digitalisaatio on ollut kuuma aihe yleissivistävän kasvatuksen ja koulutuksen kentässä. Keskustelua on käyty erityisen runsaasti siitä, miten digitaalista teknologiaa voidaan käyttää mielekkäästi oppimisprosessien tukena sen lisäksi, millaiset digitaalista teknologiaa koskevat aihealueet ovat perusteltuja oppimisen kohteita eli opittavia sisältöjä. Jälkimmäisen näkökulman hengessä eri maiden opetussuunnitelmiin on sisällytetty muun muassa robotiikkaa, ohjelmointia, tietotekniikkaa ja tietojenkäsittelyä pakollisiksi tai valinnaisiksi oppimiskokonaisuuksiksi (Bocconi ym., 2018). Suomessa vastaavanlaista kansainvälistä trendiä mukailtiin lisäämällä perusopetuksen opetussuunnitelmaan (POPS, 2014) ohjelmointi kaikille oppilaille yhteiseksi oppisisällöksi.

Ohjelmoinnin opetuksen juuret juontavat ilman muuta nykyopetussuunnitelmaa kauemmas: innokkaimmat opettajapioneerit opettivat oppilaita ohjelmoimaan jo 70-luvulla aikakauden mukaisilla työkaluilla, joskin aihepiiri jäi kenties lähinnä harrastelijoiden kuriositeetiksi. 2000-luvulla lapsille ja nuorille kehitettiin kuitenkin jo aivan uudenlaisia motivoivia ohjelmointiympäristöjä, kuten legorobotiikkasarjoja. Teknokas- ja Innokas-verkoston kaltaisia ohjelmoinnin opetuksen kehittäjäyhteisöjä syntyi. Yhdysvaltalaisprofessori Jeannette Wing ravistutti puolestaan tieteentekijöiden maailmaa lanseeraamalla vuonna 2006 lopullisesti käsitteen ”ohjelmoinnillinen ajattelu” jokaiselle liki välttämättömänä nyky-yhteiskunnan osaamisalueena (Wing, 2006). Sittemmin kouluikäisille kehitettiin Scratchin ja Micro:bitin kaltaisia suureen suosioon päässeitä ohjelmointiympäristöjä, kun samalla yritettiin kirkastaa, mitä tällaisen ”wingiläisen” ohjelmoinnillisen ajattelun universaaleja tietoja ja taitoja opettajien täytyisi sitten opettaa ja oppilaiden oppia. Ensimmäiset (ja monin paikoin yhä tänä päivänäkin ylläpidetyt) tieto- ja taitohahmotelmat sisälsivät fraaseja, kuten ”kaavojen tunnistaminen” ja ”ongelman purkaminen osiin” (Kuva 1), joiden on julistettu olevan keskeisiä taitoja peräti ”kaikilla elämän osa-alueilla” (ks. esim. Koodi2016-opas, JYU Koulutusteknologia).

Englanninkielinen sanapilvi jossa tietojenkäsittelytieteeseen ja ohjelmointiin liittyviä sanoja
Kuva 1. Ohjelmoinnillisen ajattelun kansainvälisessä tutkimuskirjallisuudessa esiintyviä avaintermejä (Fagerlund, 2021).

Ohjelmoinnin ja ohjelmoinnillisen ajattelun taival sekä suomalaisessa että kansainvälisessä koulumaailmassa on käytännössä kompastellut mitä luultavimmin sekä uutuudensa että jonkinasteisen hämäräpiirteisyydensä vuoksi. Käytännössä POPS2014:n käyttöönoton jälkeen vain noin viidennes suomalaisisopettajista oli kokeillut ohjelmointia oppilaiden kanssa. Samalla lähes 70

Henkilökohtaisesti en ole yllättynyt, jos ohjelmoinnille ja ohjelmoinnillisen ajattelulle esitetyt kuvaukset ja perusteet eivät ole toistaiseksi vakuuttaneet kaikkia opettajia erityisen hyvin omaksumaan aihepiirejä kiinteäksi osaksi omaa opetustaan. Käytännössä aihepiirit lienevätkin profiloituneet ennen kaikkea aavistuksen kiinnostuneemmille matematiikan, käsityön ja tietotekniikan opettajille tai jopa jääneet joidenkin opettajien kontolle vastentahtoisesti. Nähdäkseni tällaiset oletetut tilanteet ovat kuitenkin ennen kaikkea pitkään jatkuneen väärinkäsitysten kumuloitumisen harmillisia aikaansaannoksia. Ohjelmointi ja ohjelmoinnillinen ajattelu ovat nimittäin kaikkiallisia tosielämän ilmiöitä, jotka koskevat laaja-alaisesti sivistyneeksi kansalaiseksi kasvua ja siten myös perusopetuksen monia eri oppiaineita ja laaja-alaista osaamista. Nyt olisikin siis tärkeä hälventää ohjelmoinnin ja ohjelmoinnillisen ajattelun opetuksen ydinpäämäärien päällä leijuneita hämäräpilviä, jotka ovat kenties vieraannuttaneet sitä koulujen yleisestä ja kaikille opettajille yhteisestä ydintehtävästä: kriittiseen ja vastuulliseen ajatteluun kykenevien tulevaisuuden osaajien kasvatuksesta ja koulutuksesta.

Ohjelmoinnillisen ajattelun yleissivistävä vaikutus

Ohjelmoinnillisen ajattelun oppimisen laaja-alaista sivistävää merkitystä sekä nykypäivän että tulevaisuuden yhteiskunnassa voidaan taustoittaa tarkastelemalla lyhyesti aihepiirisisällön juurakkona olevan tietojenkäsittelyn historian askelmia. Näitä askelmia esimerkinomaisesti poimien: jo muinaisessa Babyloniassa käsiteltiin tietoa algoritmisesti eli tiettyjä toimintavaiheita järjestelmällisesti toteuttamalla alkeellisella savihelmitauluilla (Denning & Tedre, 2019). Eräs hieman formaalimpi algoritmi kehitettiin matemaattista ongelmanratkaisua varten jakokulmaan (”jaa, kerro, vähennä, pudota”) noin vuonna 1600. Merkittävä edistysaskel puolestaan tapahtui vuonna 1833, kun englantilaismatemaatikko Charles Babbage ideoi automaattisen laskentalaitteen, ”analyyttisen moottorin”, synnyttäen ajatuksen ohjelmoitavasta tietokonelaitteesta. Maailmankuulu pioneeritutkija Alan Turing todisti 1900-luvun alkupuolella tieteellisesti, että universaali tietokone voisi toden totta ratkaista minkä tahansa algoritmisesti esitetyn matemaattisen ongelman automaattisesti. Vuosisadan puolivälissä moinen transistoripohjainen laite rakennettiinkin Yhdysvalloissa, ja 90-luvulla tultaessa niiden koko oli jo pienentynyt merkittävästi, ja erilaisia ”kotimikroja” käytettiin työpaikoilla ja kodeissa runsaasti. Nykypäivänä puolestaan lähes kaikki arjen laitteet, kuten autot ja kodinkoneet, ovat tietokoneita, ja palvelut, kuten pankkipalvelut ja viihdesovellukset, ovat tietokoneohjelmia, jotka ovat verkkotuneet toisiinsa langattomasti. Tulevaisuudessa ilmiöt kuten tekoäly, koneoppiminen, kvanttilaskenta, nanotietokoneet ja esineiden internet tulevat mitä luultavimmin vain yleistymään.

Konkreettisia esimerkkejä ohjelmoitujen laitteiden ja sovellusten aikaansaamista hyödyistä niin arjessa kuin ammatillisissa tilanteissakin on lukuisia. Keinotekoisesti älykkäät järjestelmät voivat havaita syöpäkudoskasvua tietokonemammografioissa. Insinöörit voivat testata matkustajalentojen turvallisuustekijöitä tietokonesimulaatioilla. Kemistit voivat hyödyntää algoritmisia menetelmiä tunnistaessaan kemikaaleja, joiden avulla reaktio-olosuhteita voidaan parantaa saantojen tehostamisessa. Opettajat ja kouluttajat voivat käyttää ohjelmoituja kognitiivisia tutoreita ja mukautuvia oppimisympäristöjä oppijoiden oppimispolkujen yksilöllistämisessä ja oppimistulosten parantamisessa. Koneoppimista on sovellettu muun muassa siinä, että verkon mainosbannereissa esitetään kullekin kuluttajalle mahdollisimman sopivia tuotteita heräteostoksia varten. (Grover, 2018.)

Ohjelmoidut laitteet ja sovellukset ovat toisaalta tuoneet mukanaan myös huolenaiheita, kuten automaation aiheuttamaa työpaikkojen katoamista, digitaalista massavalvontaa, kybersodankäyntiä ja henkilötietojen kauppaamista verkossa (Denning & Tedre, 2019). Jättiyritykset saattavat kerätä käyttäjien henkilökohtaisia tietoja erinäisten älylaitteiden, mobiilisovellusten ja anturien kautta profiloidakseen kuluttajia ja kasvattaakseen tulojaan. Sosiaalisen median palveluissa sovelletaan algoritmeja esittämään käyttäjille valikoituja (esim. urheilullisia tai laihdutusaiheisia) sisältöjä mahdollisesti aiheuttaen alemmuudentunteita ja mielenterveysongelmia. Palvelunestohyökkäykset yhteiskunnan kriittisiin digitaalisiin järjestelmiin lienevät ajankohtaisimpia muotoja digitaalisessa sodankäynnissä ja valeuutiset (esim. ”deepfake”-videot, ks. Kuva 2) mielipidevaikuttamisessa.

Presidentti Niinistö istuu pöydän ääressä, pöydällä Suomen lippu, takana maalaus Turun linnasta.
Kuva 2. Kuvakaappaus YLE:n artikkelista ”Syvä huijaus” 6.9.2019 (https://yle.fi/uutiset/3-10955498).

Kuten tässä kirjoituksessa edellä kuvattiin, ohjelmoinnin ja ohjelmoinnillisen ajattelun kouluopetuksen kehittämisen rinnalla on kulkenut prosessi opittavien tietojen ja taitojen (esim. ”ongelman purkaminen osiin”) täsmentämisestä opettajien opetustyön tukemiseksi. Ohjelmoinnillisuuden moninaisten ällistyttävien tosielämän hyötyjen ja kouriintuntuvien huolienkin aitoutta ja laaja-alaisuutta tarkasteltaessa erinäiset epämääräiset tiedot ja taidot, joita on käytetty jo savihelmitaulujen käytössä muinaisissa korkeakulttuureissa, jäänevät väistämättä jokseenkin toisarvoisiksi. Opiskelevatko oppilaat koulussa ohjelmointia oletettujen geneeristen kognitiivisten hyötyjen vuoksi, kuten esimerkiksi oppiakseen ”tunnistamaan kaavoja” samaan tapaan kuin vaikkapa shakkia pelatessaan tai vierasta kieltä opiskellessaan? Vaikka tällaisille yleiskognitiivisille taidoille ei ole ensinnäkään löydetty tutkimuksellisia perusteita (Kirschner ym. 2006), oleellisempi elinehto ohjelmoinnin opiskelulle koulussa löytynee ennen kaikkea tarkasteltaessa nykypäivän ohjelmoitua yhteiskuntaa.

Ohjelmointia ja ohjelmoinnillista ajattelua on syytä opiskella koulussa sen vuoksi, että elämme ohjelmoidussa maailmassa. Oppilaiden on tärkeä oppia muun muassa, mitä ja missä ohjelmointia on, kuka sitä tekee, miksi sitä tehdään ja miten sitä tehdään. Onko ”diginatiiveilla” valmiuksia elää kaikkiallisen ohjelmoidun teknologian keskellä kriittisesti, luovasti, valikoivasti ja hyvinvoivasti?

Perinteisten TVT-osaamisen ja ongelmanratkaisun sijaan ohjelmoinnin opiskelun voitaisiinkin mieltää sisältyvän ennen kaikkea monilukutaidon kenttään. Kaikille oppilaille pakollista oppimäärää voisikin olla kehittää ymmärrystä digitaalisesta ohjelmoidusta maailmasta, eli esimerkiksi kriittistä tulkinta- ja arviointikykyä sen suhteen, millaisten ohjelmoitujen asioiden vaikutusten ja mahdollisuuksien alaisena elämme. Oppilaiden olisi siis ensiarvoisen tärkeä päästä perehtymään ohjelmoituun arkitodellisuuteen esimerkiksi tutustumalla käytännössä ohjelmoituihin laitteisiin ja sovelluksiin ja tekemällä havaintoja ja pohdiskellen niiden moninaisia käytännöllisiä, sosiaalisia, poliittisia ja esimerkiksi turvallisuuteen liittyviä syy-seurauksia, oppien näin kenties enemmän tai vähemmän ”ohjelmoinnin lukutaidoksi” rinnastettavaa osaamista (Mertala ym. 2020). Tällainen osaaminen, joka voidaan tulkita ehkä makuasiana joko ”ohjelmoinnillisena ajatteluna” tai ei, onkin kuvattu Opetus- ja kulttuuriministeriön Uudet lukutaidot -kehittämisohjelman (www.uudetlukutaidot.fi) kuvauksissa erityisesti medialukutaidon kokonaisuudessa sekä ohjelmointiosaamisen ”Ohjelmoidut ympäristöt ja niissä toimiminen” -osa-alueessa jo huomattavasti perusopetuksen opetussuunnitelmaa johdonmukaisemmin.

Tärkeänä käytännön oivalluksena tällaisessa ohjelmointi lukutaitona -näkökulmassa on se, että ohjelmoinnin opiskelu ei välttämättä aina vaadi sitä, että oppilas oppii ohjelmoimaan itse. Toki sen opiskelu, miten ohjelmoinnilla ratkaistaan erilaisia ongelmia käytännössä, voi syventää oppilaiden ymmärrystä ja osaamista sekä innostaa erityisesti ohjelmoimisesta ja koodaamisesta kiinnostuneempia oppilaita syventymään aihepiiriin. Itse ohjelmoidessa saadaan voimakkaita ”hands-on” oppimiskokemuksia oivaltaen aktiivisen toiminnan kautta, miten ohjelmoidut laitteet ja sovellukset toimivat käytännössä. Tällöin saadaan oivalluksia nimenomaan ohjelmoinnillisen ongelmanratkaisun periaatteista, kuten esimerkiksi siitä, miten ohjelmoinnissa käytetään erilaisia koodirakenteita, miten ohjelmoidut laitteet käyttävät erilaisia sisään- ja ulostulolaitteita (esim. moottoreita, sensoreita), miten ohjelmat varastoivat ja käsittelevät dataa muuttujissa tai miten ohjelmoinnissa sovelletaan erilaisia loogisia operaatioita, kuten Boolen logiikkaa (Fagerlund, 2021).

Ohjelmoinnin asemoiminen enemmän tai vähemmän monilukutaitoon ei myöskään tietenkään tarkoittaisi sitä, etteikö ohjelmoinnissa voisi olla oheishyötyjä. Ohjelmoiminen ja koodin tekeminen itsessään on parhaimmillaan motivoivaa ja mukaansa tempaavaa ongelmanratkaisua, luovaa itseilmaisua ja yhdessä tekemistä ja oppimista. Ohjelmointia voi integroida monin tavoin eri taitojen harjoitteluun, kuten esimerkiksi lukemaan opetteluun alkuopetuksessa (Fagerlund & Roos, 2020) tai liikemittausten tekemisessä yläkoulun fysiikan opetuksessa (ks. esim. Lego EV3: Robotit fysiikan opetuksessa -materiaali). Tällaiset ovat kuitenkin vain ehkä enemmän ohjelmoinnin bonussaldoa ja erinomaisia lisämahdollisuuksia, eivätkä ohjelmoinnin ja ohjelmoinnillisen ajattelun kenties keskeisimpään merkitykseen eli yleissivistävään vaikutukseen tähtäävän oppimisen edellytyksiä.

Viisi suositusta ohjelmoinnin opetuksen tulevaisuuteen

Ohjelmointi ja ohjelmoinnillinen ajattelu ovat jokseenkin kriittisessä vaiheessa, kun tulevina vuosina muun muassa uuden opetussuunnitelmatyön ja opettajien koulutusten kautta täsmennetään ja levitetään tietoisuutta siitä, miksi opettajien on sisällytettävä näitä aihepiirejä opetukseensa. Miten aihepiirin sisällöllinen ydinolemus ja yhteiskunnallinen relevanssi artikuloidaan ymmärrettävästi ja vakuuttavasti? Miten tavoiteltavia tärkeitä tietoja ja taitoja tukevat pedagogiset toiminnot jalkautetaan osaksi yhä useamman opettajan käytännön opetustyötä? Tällaisiin kysymyksiin vastaamisen tueksi nivon yhteen tämän kirjoituksen päähuomiot ja esitän viisi jokseenkin rinnakkaista (ei tärkeysjärjestyksessä olevaa) käytännön suositusta.

1. Arjen ohjelmoidut ilmiöt ohjelmoinnin ja ohjelmoinnillisen ajattelun opetuksen lähtökohdiksi 

Ohjelmoinnin kouluopiskelun prioriteettina olisi hyvä opettaa ymmärtämään oikean elämän eli esimerkiksi oman arjen ja ammattilaismaailman ohjelmoitujen laitteiden ja sovellusten moninaisia hyötyjä ja huolia. Ennen kaikkea opetusta täytyisi tällöin kääntää teknisestä koodin kirjoittamisen osaamisesta kohti ohjelmoinnin lukutaidon kaltaista osaamista, jonka hankkiminen ei välttämättä käytännössä aina vaadi itse ohjelmoimista. Tosielämän ohjelmoituja laitteita ja sovelluksia voidaan tarkastella esimerkiksi sosiomateriaalisina teksteinä, joilla voi olla käytännöllisiä, sosiaalisia, poliittisia ja eettisiäkin merkityksiä ja suhteita. Kouluissa on hyvä kuitenkin edelleen jatkaa myös ohjelmoimista monipuolisesti erilaisilla laitteilla ja ohjelmointiympäristöillä, kuten robotiikan keinoin, Scratchilla, värkkäilemällä sulautettuja järjestelmiä ja kehittämällä omia pelejä erityisesti monialaisissa, tosielämän makuisissa oppimisprojekteissa. Näin ohjelmoinnin oppimisen erityisesti ongelmanratkaisulliset ulottuvuudet voivat olla keskeisemmässä roolissa, eli päästään syventämään omaa osaamista erityisesti siitä, miten ohjelmointia tehdään käytännössä oikean elämän eri tarkoituksia varten.

2. Kehitetään ohjelmoinnin oppimateriaaleja, joissa ei vain ohjelmoida

Käytännössä voi olla niin, että jotkut oppilaat ohjelmoivat itse koulutaipaleensa aikana hyvin vähän, mutta heidän ohjelmoinnin opiskelunsa ei ole tarpeen jäädä siihen. Itse ohjelmoimisen lisäksi tai jopa sitä edeltäen oppilaiden olisi tärkeä päästä tutustumaan muun muassa arjen digilaitteiden (esim. älykellot, kodin teknologia), arjen digipalvelujen (esim. some, pelit, apit, hakukoneet) ja ylipäänsä erilaisten ohjelmointiin liittyvien ilmiöiden tai aihepiirien (esim. robotiikka, tekoäly, esineiden internet) käyttöyhteyksiin ja merkityksiin niiden pelkkää kuluttamista syvällisemmin. Itse ohjelmoimista sisältävien jo runsaslukuisten oppimateriaalien rinnalle olisikin tätä varten oleellista kehitellä hyödyllisiä opettajan tukimateriaaleja ja oppilasmateriaaleja (esim. e-oppimateriaalikokonaisuuksia) tutkivaan oppimiseen, jossa ihmetellään, tutkitaan ja pohditaan kriittisesti esimerkiksi elämää ja työtä helpottavia autenttisia robotiikkajärjestelmiä, verkkopalveluissa sovellettavia moninaisia ohjausalgoritmeja, viihdesovellusten kuten pelien toimintaperiaatteita ja vaikkapa tekoälyn etiikkaa oppilaiden ikä- ja kehitystason mukaisilla tavoilla.

3. Ohjelmoinnillisen ajattelun sekä lukutaidollisten että ongelmanratkaisullisten ydinperiaatteiden kirjaaminen opetussuunnitelmaan johdonmukaisemmin

Ohjelmoinnin ja ohjelmoinnillisen ajattelun kuvaukset vuoden 2014 opetussuunnitelmassa ovat sekä lukutaidollisesta että ongelmanratkaisullisesta näkökulmasta varsin kapeat, minkä vuoksi tämä velvoittava asiakirja ei ole välttämättä onnistunut ohjaamaan opettajia ymmärtämään ja opettamaan näillä aihealueilla tavoiteltavia tärkeitä tietoja ja taitoja kovin monipuolisesti. Uudet lukutaidot -osaamiskuvaukset sekä ajantasainen tutkimustyö ovat viime aikoina tarjonneet erinomaisia konkreettisia kädenojennuksia, joita testataan ja tutkitaan esimerkiksi käytännön koululuokissa parasta aikaa. Ydinosaamiskuvausten sisällyttäminen kattavasti ja selkeästi opetussuunnitelmaan sekä lukutaidollisena että ongelmanratkaisullisena osaamisena hyväksi havaittujen käytänteiden ja toimivien kuvausten pohjalta sekä tietoisuuden aktiivinen levittäminen uusista johdonmukaisemmista tulokulmista esimerkiksi opettajien koulutuksessa voivat johtaa laadukkaampaan opetus- ja oppimistoimintaan kouluissa eri puolilla maata.

4. Säilytetään ja rohkaistaan ohjelmointia mielekkäänä työtapana oppimisessa ja oppiaineintegroinnissa

Ohjelmointi ja ohjelmoinnillinen ajattelu, joiden merkitystä alati ohjelmoinnillistuvassa yhteiskunnassa ei voi paeta, ovat korostuneet tässä kirjoituksessa itsetarkoituksellisina oppisisältöinä. Ohjelmoinnin pedagogiset hyödyt koulukontekstissa voivat kuitenkin yltää laajemmallekin. Vaikka oppiainesidonnaisia tietoja ja taitoja on harjoiteltu jo vuosikymmenet ilman ohjelmointia, olemme voineet havaita monessa yhteydessä, kuinka toimiva ja motivoiva työtapa ohjelmointi voi olla erilaisten taitojen harjoittelussa eri luokka-asteilla ja eri opetussuunnitelman alueilla, mukaan lukien laaja-alaisen osaamisen harjoittamisessa. Mahdollisuuksia ohjelmoinnin integroimiseen eri oppiaineiden tietojen ja taitojen harjoittelussa voidaan löytää taatusti vielä rutkasti lisää, mikä voi toisaalta edellyttää eri oppiaineiden opettajien heittäytymistä mukaan ideoimaan, miten ohjelmointi esimerkiksi tarinankerrontana Scratch-ohjelmointiympäristössä, värkkäilynä Micro:bit-pienoistietokoneilla tai pelinkehityksenä vaikkapa Gdevelop-alustalla voisi aktivoida oppilaita omaksumaan erilaisia oppiainekohtaisia ilmiöitä uusilla ja mielenkiintoisilla tavoilla.

5. Katse kohti ”ohjelmoinnillinen ajattelu 2.0:aa”

Ohjelmoinnillinen ajattelu on edellä esitettyjen näkökulmien lisäksi aivan omassa sisäisesssä murroksessaan siinä merkityksessä, että sen on oivallettu juurtuneen vanhanaikaiseen sääntöpohjaiseen ”step-by-step”-ohjelmointiin, joka jää monessa suhteessa nykyaikaisemman tekoälyn ja koneoppimisen ilmiöistä jälkeen. Scratchin ja legorobottien kaltaiset ohjelmointiympäristöt voivat ilman muuta tutustuttaa lapsia ja nuoria ikätason mukaisesti ohjelmoinnin ihmeelliseen maailmaan. Silti oppilaiden olisi tärkeä päästä ohjelmoinnin lukutaidon hengessä tarkastelemaan sellaisia vähemmän binääriloogisten ”joko-tai” -periaatteiden ja enemmän dataperustaisuuden varaan rakentuvia ohjelmoinnillisia ilmiöitä, kuten itseohjautuvia autoja, ennustejärjestelmiä, kuvan- ja puheentunnistusjärjestelmiä ja profilointialgoritmeja, jotka ympäröivät arkielämäämme enenevissä määrin. Kouluihin pyritään tuomaan paljon esimerkiksi tekoälyä ja koneoppimista hyödyntäviä palveluita, mutta oppivatko oppilaat ymmärtämään, mistä näissä ilmiöissä on kyse? Vaikka aihepiirin käsittelyyn on kehitetty kokeiluluontoisia oppimateriaaleja ja harjoitteluympäristöjä (esim. Googlen TeachableMachine, ks. Kuva 3), ammattipedagogien olisi nyt äärimmäisen hedelmällistä tempautua mukaan kehittämään ja ideoimaan tämän uuden kiehtovan aihealueen opetuksen tulevaisuutta.

Hymyilevä nainen käyttää kuvantunnistukseen perustuvaa tietokoneohjelmaa
Kuva 3. Googlen TeachableMachine-ympäristö (https://teachablemachine.withgoogle.com/).

Lähteet

Bocconi, S., Chioccariello, A., & Earp, J. (2018). The Nordic approach to introducing computational thinking and programming in compulsory education. https://doi.org/10.17471/54007

Denning, P., & Tedre, M. (2019). Computational thinking. MIT Press Ltd.

Fagerlund, J. (2021). Teaching, Learning and Assessing Computational Thinking through Programming with Scratch in Primary Schools. Väitöskirja. Opettajankoulutuslaitos, Jyväskylän yliopisto. https://jyx.jyu.fi/handle/123456789/78190

Fagerlund, J., & Roos, S. (2020). Motivoivaa ja tavoitteellista oppimista ohjelmointiympäristöjä hyödyntäen. Jyväskylän normaalikoulu, Jyväskylän yliopisto.

Grover, S. (2018). STELAR Webinar: Unpacking Computational Thinking & CT’s Role in Interdisciplinary Learning. http://stelar.edc.org/events/stelar-webinar-unpacking-computational-thinking-cts-role-interdisciplinary-learning

Kaarakainen, M.-T., Kaarakainen, S.-S., Tanhua-Piiroinen, E., Viteli, J., Syvänen, A., & Kivinen, A. (2017). Digiajan peruskoulu 2017 – Tilannearvio ja toimenpidesuositukset. http://urn.fi/URN:ISBN:978-952-287-478-8

Kirschner, P. A., Sweller, J., & Clark, R. E. (2006). Why minimal guidance during instruction does not work: An analysis of the failure of constructivist, discovery, problem-based, experiential, and inquiry-based teaching. Educational Psychologist, 41(2), 75–86. https://doi.org/10.1207/s15326985ep4102_1

Leino, K., Rikala, J., Puhakka, E., Niilo-Rämä, M., Sirén, M., & Fagerlund, J. (2019). Digiloikasta digitaitoihin. Kansainvälinen monilukutaidon ja ohjelmoinnillisen ajattelun tutkimus (ICILS 2018). https://jyx.jyu.fi/handle/123456789/66250

Mertala, P., Palsa, L., & Dufva, T. S. (2020). Monilukutaito koodin purkajana: Ehdotus laaja-alaiseksi ohjelmoinnin pedagogiikaksi. Media & Viestintä, 43(1), 21–46. https://doi.org/10.23983/mv.91079

POPS 2014 = Opetushallitus (2014). Perusopetuksen opetussuunnitelman perusteet 2016. Opetushallitus.

Wing, J. M. (2006). Computational thinking. Communications of the ACM, 49(3), 33–35. https://doi.org/10.1145/1118178.1118215


Tilaa Dimension uutiskirje – saat sähköpostiisi aina kuunvaihteessa koosteen tuoreimmista artikkeleista

Kirjoittaja