Ohjelmointiosaaminen
Ohjelmointiosaaminen on kaikille hyödyllinen taito, jossa ei ole kyse pelkästään koodaamisesta. Osaamiseen kuuluvat olennaisesti myös monipuoliset ajattelun taidot ja ymmärrys digitaalisesta, ohjelmoidusta maailmasta ja siinä toimimisesta sekä siitä, mitä kaikkea ohjelmoimalla voi saada aikaan.
Kuvausten ensimmäinen versio julkaistiin helmikuussa 2021, jonka jälkeen niitä päivitettiin ja kehitettiin edelleen. Osaamisen kuvaukset 2.0 on julkaistu kesäkuussa 2022.
Ohjelmointiosaaminen on…
- …ohjelmoinnillista ajattelua
- …tutkivaa työskentelyä ja tuottamista
- …ohjelmoitujen ympäristöjen tuntemista ja niissä toimimista
Ohjelmointiosaamisen osakokonaisuus on jaettu kolmeen pääalueeseen: 1) ohjelmoinnillinen ajattelu, 2) tutkiva työskentely ja tuottaminen sekä 3) ohjelmoidut ympäristöt ja niissä toimiminen. Pääalueet on jaoteltu teemoittain siten, että ohjelmoinnillisen ajattelun alle kuuluvat kaikki ajattelua, päättelyä, suunnittelua sekä toimintaa ilman teknologiaa sisältävät kuvaukset. Tutkivan työskentelyn ja tuottamisen alle kuuluvat yhteistyöhön ja käytännön tekemiseen liittyvät kuvaukset sekä ohjelmoitujen ympäristöjen tuntemisen ja niissä toimimisen alle syvempi osaaminen sekä yllä mainittujen teemojen yhdistäminen arkielämään.
Pääalueet ja niiden alle jäsentyvät kuvaukset pohjautuvat Varhaiskasvatussuunnitelman (2018) ja Esiopetuksen opetussuunnitelman (2014) sekä Perusopetuksen opetussuunnitelman perusteissa (2014) tehtyyn tarkasteluun. Perusteteksteissä ohjelmointiosaaminen esiintyy laaja-alaisena osaamisena kaikilla oppimisen alueilla, oppimiskokonaisuuksissa ja oppiaineissa.
Ohjelmointiosaaminen varhaiskasvatuksessa sekä esi- ja perusopetuksessa
Varhaiskasvatus
Ohjelmointiosaaminen varhaiskasvatuksessa
Pienten lasten kanssa tutustutaan teknologiseen ympäristöön ja harjoitellaan ohjelmoinnissa tarvittavia valmiuksia ja perustaitoja: Havainnoidaan ja nimetään arjen teknologiaa ja laitteita sekä pohditaan niiden tarkoitusta ja toimintaa. Innostetaan ihmettelemään asioita sekä rohkaistaan tekemään kysymyksiä ja etsimään niihin vastauksia. Harjoitellaan loogisen ajattelun taitoja, kuten luokittelua ja vertailua. Opetellaan kertomaan asioista ja omista ajatuksista sekä toimimaan yhdessä ja annettujen ohjeiden mukaisesti.
Varhaiskasvatuksessa lapset saavat kokemuksia teknologiasta ja harjoittelevat ohjelmointiin liittyviä taitoja leikkien, pelaten ja yhdessä kokeillen sekä omia tuotoksia ideoimalla ja rakentelemalla.
Esiopetus
Ohjelmointiosaaminen esiopetuksessa
Lasten kanssa tutustutaan tietokoneeseen ja havainnoidaan tietokoneiden ohjaamaa teknologiaa arjen ympäristöissä. Tutkitaan yhdessä laitteiden toimintaperiaatteita. Harjoitellaan järjestelemään asioita eri tavoin ja perustein sekä selitetään havaintoja ja ratkaisuja yhdessä. Pohditaan, jäsennetään ja tutkitaan arjen ilmiöitä ja ongelmia. Tutustutaan erilaisiin toimintaohjeisiin sekä kokeillaan leikillisesti toimintaohjeiden noudattamista ja antamista.
Esiopetuksessa lapset saavat kokemuksia luovasta tekemisestä ja ilmaisusta teknologian avulla. He keksivät ja rakentelevat omia laitteita, robotteja ja pelillisiä ympäristöjä sekä kuvailevat niiden toimintaperiaatteita. Heitä kannustetaan esittämään omia ideoitaan sekä kuuntelemaan toisia ja jakamaan tehtäviä yhteisessä työskentelyssä.
Vuosiluokat 1-2
Ohjelmointiosaaminen vuosiluokilla 1-2
Havainnoidaan lasten kanssa heidän kokemusmaailmassaan esiintyvää tietotekniikkaa ja tutustutaan robotiikkaan. Opetellaan kuvailemaan tietoteknisten laitteiden toimintaperiaatteita. Harjoitellaan tunnistamaan toistuvia kaavoja ja säännönmukaisuuksia sekä järjestämään tietoa ehtojen perusteella. Kerrotaan omista havainnoista ja valinnoista käsitteiden ja välineiden avulla. Puretaan arkisia ongelmia osiin ja kokeillaan niihin ratkaisuvaihtoehtoja. Laaditaan leikillisiä toimintaohjeita, joita voidaan testata myös ohjelmoitavilla laitteilla, sekä harjoitellaan tunnistamaan virhetilanteita.
Vuosiluokilla 1-2 ohjelmointiin liittyviä toimintatapoja ja välineitä käytetään luovasti, leikillisesti ja kokeillen eri oppiaineiden sisältöjen käsittelyssä. Harjoitellaan vuorottelua tehtävärooleissa sekä esitellään ja jaetaan omia ideoita toisten kanssa. Toteutetaan tarinallisia tuotoksia käyttäen animointia tai ohjelmointia.
Vuosiluokat 3-6
Ohjelmointiosaaminen vuosiluokilla 3-6
Havainnoidaan ohjelmointia ja robotiikkaa yhteiskunnassa sekä pohditaan teknologisten sovellusten hyödyntämistapoja ja merkitystä oppilaiden elämässä. Keskustellaan kohdennetuista digitaalisista sisällöistä sekä oppilaiden omasta toiminnasta digitaalisissa ympäristöissä.
Ongelman ratkaisuun käytetään erilaisia ratkaisukaavoja, joita kokeillaan luoda myös itse. Arvioidaan ratkaisuja käyttäen jotakin kriteeriä. Tietoa käsitellään ja esitellään käsitteiden ja symbolien avulla. Laaditaan toimintaohjeita ja algoritmeja hyödyntäen ohjelmoinnin perusrakenteita sekä etsitään ja korjataan virheitä toimintaohjeissa. Ohjelmoidaan graafisessa ohjelmointiympäristössä.
Vuosiluokilla 3-6 harjoitellaan sitkeää ja iteratiivista työskentelyä yhteisen tavoitteen saavuttamiseksi. Luovassa ilmaisussa ja omissa tuotoksissa hyödynnetään mittauksia ja antureita, automaatiota ja robotiikkaa sekä erilaisia animointi- ja ohjelmointialustoja.
Vuosiluokat 7-9
Ohjelmointiosaaminen vuosiluokilla 7-9
Tutustutaan algoritmien, automaation ja robotiikan sovelluksiin elämän eri osa-alueilla. Keskustellaan ohjelmoidun teknologian mahdollisuuksista, riskeistä ja eettisistä näkökulmista. Käsitellään kohdennettuja sisältöjä ja personoituja palveluita. Pohditaan digitaalisissa ympäristöissä kerätyn tiedon ja ohjelmoinnin sosiaalista ja yhteiskunnallista merkitystä.
Ongelmia ja niiden ratkaisuja analysoidaan ja visualisoidaan sekä arvioidaan kriteerien avulla. Tiedon käsittelyssä ja esittämisessä käytetään erilaisia yleistyksiä, kaavioita ja merkintätapoja sekä loogisia operaatioita. Tulkitaan ohjelmakoodeja sekä laaditaan itse ohjelmia, joissa hyödynnetään tarkoituksenmukaisesti ohjelmoinnin perusrakenteita. Suunnitellaan ja ohjelmoidaan ohjelmia eri ympäristöissä.
Vuosiluokilla 7-9 hyödynnetään algoritmista ajattelua ja ohjelmointia eri oppiaineissa ja monialaisissa oppimiskokonaisuuksissa. Suunnitellaan ja toteutetaan luovissa yhteiskehittämisen projekteissa ohjelmoituja tuotoksia, jotka ratkaisevat oppiaineisiin tai oikeaan elämään liittyviä ongelmia.
Ohjelmointiosaamisen keskeistä käsitteistöä
Pääkäsitteet
Ohjelmointi (eng. programming) = ohjelmointi sisältää ohjeiden antamista, ongelman analysoimista, mahdollisten ratkaisujen arvioimista, ohjelmointikoodien kirjoittamista, sekä ohjelmoidun sovelluksen testaamista ja virheiden korjaamista. Ohjelmointi on tietojenkäsittelytieteen ajattelua tai algoritmista ajattelua käytännössä.
Ohjelma (eng. program) = suuri algoritmi, joka suorittaa tietyn hyödyllisen toiminnon. Esimerkki: puhelimen sovellukset, tietokoneen tekstinkäsittelyohjelmat sekä kaikki yksinkertaiset tai monimutkaiset ohjelmat, jotka teet itse.
Ohjelmisto = joukko ohjelmia sekä tiedot, menettelyt ja ohjeet, jotka mahdollistavat erilaisten tehtävien suorittamisen tietokonejärjestelmässä
Koodaus (eng. coding)= ohjelmoinnin vaihe, jossa varsinainen ohjelmointikoodi luodaan. Puhutussa kielessä koodausta käytetään nykyään myös ohjelmoinnin synonyyminä. Esimerkki: muuttujien, silmukoiden ja ehdollisien rakenteiden muodostaminen siten, että ohjelma suorittaa mitä haluat.
Koodi (eng. code, program code) = tietyllä ohjelmointikielellä tuotettu algoritmi tai ohjelma, jonka tietokone voi suorittaa. Esimerkki: ohjelman osa, joka laskee koulussa vietettyjen tuntien kokonaismäärän, kun siihen syötetään päivittäin tunnit tai oppilaan lukujärjestys
Algoritmi (eng. algorithm) = toimintaohjeiden sarja, jonka seurauksena jokin ongelma ratkeaa tai asia muuttaa muotoaan. Esimerkki: ruokaresepti.
Ohjelmointikieli (eng. programming language) = tekstipohjainen tai visuaalinen kieli, jonka avulla algoritmit tai ohjelmat koodataan tietokoneen ymmärrettäväksi.
Lisää käsitteitä
Ehtorakenne = ohjelman suoritus haarautuu erilaisiin vaihtoehtoihin ehdosta riippuen. Ohjelman tietty osa toteutetaan, jos annettu ehto täyttyy. Esimerkki: Jos ulkona sataa, laita ulkoiluun sadetta kestävät vaatteet.
IoT (Internet of Things) = esineiden yhdistämistä internettiin. Internetin välityksellä laitteet voivat välittää tietoa toisilleen sekä vastaanottaa tietoa. Esimerkki: langaton sääasema voi välittää tietoa sisällä olevalla näytölle ja internetin kautta pilvipalveluun, josta käyttäjä näkee sen.
Iteratiivinen kehittäminen = kehittämisen tapa, jossa tuotetta kehitetään osissa ja jokainen osa julkaistaan erikseen ja niitä tarvittaessa kehitetään. Esimerkki: luokassa suunniteltu lautapeli, jota ei julkaista täysin valmiina, vaan jokainen osa (esim. pelilauta, nappulat, säännöt) laitetaan valmistuttuaan näytille muiden kommentoitavaksi ja niitä kehitetään tarvittaessa kommenttien perusteella.
Muuttuja (eng. variable) = ohjelmoinnissa tiedon varastointipaikka. Esimerkki: mobiilipeli, joka kysyy alussa pelaajan nimeä ja laittaa sen näkyviin ruudun yläkulmaan tarvitsee muuttujan, johon nimi tallennetaan.
Ohjelmointiympäristö = ohjelma tai alusta, jonka avulla voidaan luoda ohjelmia.
Graafinen ohjelmointiympäristö = ympäristö, jossa koodi tuotetaan visuaalisilla elementeillä. Esimerkki: Scratch.
Tekstipohjainen ohjelmointiympäristö = tekstieditori, jolla tuotetaan koodia. Esimerkki: Notepad++.
Ohjelmointivirhe (bugi) = virhe koodissa, jonka seurauksena ohjelma ei toimi ollenkaan tai ohjelma toimii väärin.
Sulautettu laite (eng. embedded system) = tiettyyn tarkoitukseen tehty laite tai laitteisto, johon on sisälle rakennettuna tietokone. Esimerkiksi: TV, pesukone ja digitaalinen lämpömittari.
Tekoäly = koneen tai ohjelman kyky jäljitellä inhimillisenä pidettäviä toimintoja. Esimerkki: ohjelma, joka suosittelee uusia videoita aiemmin katsomiesi perusteella.
Toistorakenne (silmukka tai luuppi) = toistorakenne ohjelmoinnissa. Monta kertaa toistettava ohjelman osa.
Virheenjäljitys (debuggaus) = virheellisen toiminnan aiheuttaneen virheen paikallistaminen koodissa.
Vuokaavio = diagrammi, joka esittää algoritmia tai prosessia kertoen vaiheet nuolilla ja erityyppisillä muodoilla.
URL (Uniform Resource Locator) = verkkosivuston ainutlaatuinen koodi. Esimerkki: www.uudetlukutaidot.fi