Ohjelmoinnillinen ajattelu

Ohjelmoinnillisen ajattelun opetus luokilla 0-2


Ohjelmoinnillisen ajattelun opetus sijoittuu ohjelmoinnin oppimispolun alkuun luokille 0-2.

Ohjelmoinnillista ajattelua voitaisiin aivan yhtä hyvin kutsua loogiseksi ajatteluksi tai systemaattiseksi ajatteluksi. Tällaista ajattelua tarvitaan ihan jokapäiväisessä elämässäkin. Me kaikki suoritamme joka päivä useita tehtäviä, jotka muodostuvat vaiheista. Monissa tehtävissä asiat tulee suorittaa oikeassa järjestyksessä, jotta pääsemme haluamaamme lopputulokseen. Esimerkiksi pukeutumisessa housut ja sukat tulee pukea ennen kenkiä, muuten koko pukeutuminen ei onnistu.

Ohjelmoinnillisessa ajattelussa harjoitellaan tehtävien ja ongelmien jakamista pieniin vaiheisiin ja niiden laittamista oikeaan suoritusjärjestykseen. Oleellista on myös oppia antamaan täsmällisiä komentoja, joilla vaiheet voidaan suorittaa. Ohjelmoinnin perusidea on varsin yksinkertainen, laitetaan vain oikeat komennot oikeaan järjestykseen. Näin muodostetaan toimintaohje, eli algoritmi, joka suorittaa jonkin tehtävän tai ratkaisee jonkin ongelman. Esimerkiksi ruuan valmistamiseen käytettävä resepti on myös algoritmi. Reseptissä koko ruuan valmistus on jaettu vaiheisiin, jotka tulee suorittaa oikeassa järjestyksessä. Reseptissä myös kuvataan hyvin tarkasti, miten vaiheet suoritetaan. Jos kuvaus on epämääräinen, ei ruuan valmistus onnistu toivotulla tavalla. Algoritmi onkin vain tarkka, yksikäsitteinen kuvaus jonkin tehtävän suorittamisesta vaihe kerrallaan.

Ohjelmoinnillisen ajattelun opettaminen on hyvä aloittaa ilman tietokonetta, jotta oppilaat oppivat ensin ajattelun mahdollisimman tehokkaasti. Tähän voidaan käyttää erilaisia leikkejä, pelejä, harjoituksia ja välineitä. Koulutusmateriaalista löydät kuvauksia ja linkkejä sopiviin menetelmiin. Esimerkiksi kynällä ja ruutupaperillakin voidaan tehdä jo paljon. Harjoituksia voi keksiä myös itse, oleellista on opettaa niiden kautta miten:
  • Annetaan täsmällisiä komentoja.
  • Miten tehtävä jaetaan järjestettyihin vaiheisiin.
  • Mitä komentoja käyttämällä yksittäiset vaiheet voidaan suorittaa.
  • Miten oikeaan järjestykseen asetetut oikeat komennot muodostavat toimintaohjeen, joka ratkaisee koko tehtävän suorituksen.

Ohjelmoinnillisen ajattelun perusidean oppimisen jälkeen opetuksessa voidaan ottaa mukaan tietokoneella tehtäviä harjoituksia. Oppiminen on pelillistetty siten, että oppimispelissä pelihahmoa ohjataan pelaajan muodostamalla ohjelmakoodilla. Koodia suunnitellessaan pelaaja joutuu jakamaan koko ongelman vaiheisiin ja miettimään missä järjestyksessä vaiheet suoritetaan sekä mitä komentoja käyttämällä vaiheet voidaan ratkaista. Usein miten pelaajan tulee tehdä koodi, joka ohjaa pelihahmon pisteestä A pisteeseen B. Tämä tehdään käyttämällä koodissa oikeassa järjestyksessä oikeita komentoja, joilla pelihahmo liikkuu tai kääntyy haluttuun suuntaan. Tietokoneellakin tehtävissä harjoituksissa kyse on vain oikeiden komentojen laittamisesta oikeaan järjestykseen haluttuun lopputulokseen pääsemiseksi. Koulutusmateriaalista löydät lisätietoa ohjelmoinnillisen ajattelun opettamiseen tarkoitetuista oppimispeleistä ja ympäristöistä.

Koulutusmateriaali

Alla olevista linkeistä voit ladata koulutusmateriaalin käyttöösi
sekä Power Point että pdf-muodossa.


Ohjelmoinnillinen ajattelu, opetus luokilla 0-2 Power Point PDF
Code.org: Kurssi 1 Power Point PDF


Code.org, Kurssi 1, tietokoneella tehtäviä harjoituksia:
Taso 4, tehtävä 11 Linnun ohjaus ohjelmakoodilla käyttäen neljää peruskomentoa.
Taso 7, tehtävä 11 Mehiläisen ohjaus ohjelmakoodilla. Liikkumisen lisäksi matkan
varrella tulee kerätä mettä ja lopuksi tehdä hunajaa omilla
komennoillaan.
Taso 10, tehtävä 2 Ohjelmakoodilla ohjataan taiteilijaa piirtämään viivoja haluttuun
kohtiin.
Taso 13, tehtävä 7 Linnun ohjaus ohjelmakoodilla toistorakennetta käyttäen.
Tehtävässä tulee pohtia, milloin toistorakennetta kannattaa
käyttää ja milloin ei.
Taso 13, tehtävä 9 Tässä tehtävässä toistorakenteen sisään muodostetaan
toistettava sekvenssi, eli sarja komentoja.
Taso 14, tehtävä 7 Tässäkin tehtävässä on sekvenssi, jota toistetaan
toistorakenteella.
Taso 14, tehtävä 10 Sisäkkäisellä toistorakenteella voidaan muodostaa "tehokasta"
ohjelmakoodia.

Tietokoneettomia harjoituksia

Wikikirjasto peruskoulun ohjelmoinnista
(Useita esimerkkejä myös ohjelmoinnillisesta ajattelusta.)

Hello Rubyn nettisivun harjoitukset ja materiaalit (englanniksi)

Code.org: Kurssi 1. Harjoitusten kuvaukset löytyvät tuntisuunnitelmista.
Iloiset kartat
Liikuta, liikuta
Tosielämän algoritmit: Kylvä siemen, hankkeen suomentama harjoitus
Rakennetaan perustus
Mennään silmukoille
Suuri tapahtuma, hankkeen suomentama harjoitus
Menossa turvallisesti

Code.org: Kurssi 2. Harjoitusten kuvaukset löytyvät tuntisuunnitelmista.
Ruutupaperiohjelmointi, hankkeen suomentama harjoitus
Tosielämän algoritmit, paperilentokoneet
Releohjelmointi
Ehtolausekkeet
Binäärikorut
Digitaalinen jalanjälkesi

Code.org:n tietokoneettomista harjoituksista kannattaa perehtyä vähintäänkin
hankkeen suomentamiin harjoituksiin.

CS Unplugged
Sivusto
Harjoitukset (pdf)
Videot

Tietokoneella tehtäviä harjoituksia

Code.org-palvelun Kurssi 1 on tarkoitettu neljästä ikävuodesta ylöspäin. Kurssin harjoitukset eivät edellytä lukutaitoa, mutta siitä on toki hyötyä. Pelaajan tulee osata laskea yhdestä viiteen ja tuntea nämä numerot. Kaikki koodit tulee pyrkiä laatimaan niin, että niissä käytetään mahdollisimman vähän komentopalikoita. Ohjelmoinnin yleinen periaate on, että turhia komentoja tulee välttää.

Kurssi 1, pääsivu.

Kurssin 1 tietokoneella tehtävät tasot:
Taso 3 Harjoitellaan palikan vetämistä ja pudottamista oikeaan paikkaan,
palapelin kokoamista liittämällä palikoita yhteen ja palikoiden irrottamista
toisistaan. Nämä ovat "vedä ja pudota" -tyyppisen ohjelmoinnin perustaitoja.
Taso 4 Kuvallisista komentopalikoista muodostetaan yksinkertainen koodi, jolla ohjataan
pelihahmoa. Käytettävissä on vain neljä eri komentoa, joilla liikutaan yksi ruutu ylös,
alas, vasemmalle ja oikealle. Kääntymiselle ei ole vielä omaa komentoa. Koodipalikat
sijoitetaan allekkain, jolloin muodostuu järjestetty käskyjono. (Angry Birds).
Taso 5 Ohjelmassa on valmiina ohjelmakoodi, jossa on kuitenkin virheitä. Pelaajan tulee
korjata koodi lisäämällä puuttuvat komennot oikeisiin kohtiin, poistamalla ylimääräiset
komennot tai vaihtamalla väärät komennot oikeisiin.
Taso 7 Käytettävien komentojen lukumäärä kasvaa kuuteen. Neljän liikkumiskomennon lisäksi
koodissa tarvitaan komentoja, joilla kerätään mettä ja tehdään hunajaa. Näitä komentoja
tulee myös osata käyttää oikea määrä, 1-3 kertaa tehtävästä riippuen.
Taso 8 Koodilla ohjataan taiteilijaa, joka piirtää viivoja komentojen mukaisesti. Toiminta on
visuaalisesti aivan eri näköistä kuin aiemmilla tasoilla, mutta käytännössä kyse on vain
viivan piirtämisestä ylös, alas, vasemmalle ja oikealle päin liikuttaessa. Käytettävissä o
myös komennot, joilla hypätään ylös, alas, vasemmalle ja oikealle päin piirtämättä viivaa.
Näitä komentoja tulee osata käyttää kaikissa niissä kohdissa, joihin viivaa ei tule piirtää.
Taso 10 Tämä taso on hyvin saman tyyppinen kuin taso 8. Käytettävissä on mm. kaikki samat
komennot. Nyt piirtämisessä keskitytään vain laajempien muotojen piirtämiseen
ohjelman koodilla.
Taso 11 Tämän tason tehtävät edellyttävät kirjainten tuntemista. Sokkelossa pelihahmona
toimivaa mehiläistä ohjataan komennoilla liikkumaan englanninkielisessä sanassa
olevien kirjainten luo. Liikkuminen tulee tehdä kirjain kerrallaan lähtien sanan
ensimmäisestä kirjaimesta ja jatkuen aina viimeiseen kirjaimeen.
Taso 13 Toistorakenteet ovat tärkeitä ohjelmoinnissa. Niitä käyttämällä voidaan toistaa
rakenteeseen upotetut komennot niin monta kertaa, kuin haluamme. Esimerkiksi sen
sijaan, että sijoittaisimme koodiin kymmenen "Liiku ylöspäin" komentopalikkaa, voimme
upottaa tämän koodipalikan toistorakenteeseen, jota toistetaan kymmenen kertaa.
Näin koodista tulee lyhempi ja selkeämpi.

Tasolla 13 esitellään "Toista <x> kertaa" toistorakenne. Katso tästä linkistä lyhyt ohje
tämän toistorakenteen käytöstä. Lähes kaikissa tason tehtävissä käytetään
toistorakennetta. Aluksi tulee osata vain sijoittaa oikeat komentopalikat
toistorakenteen sisään. Myöhemmin tulee vielä oppia toistojen lukumäärän
asettaminen valintalistasta. Tehtävät opettavat myös, milloin toistorakennetta
on järkevää käyttää ja milloin ei. Toistorakenteen sisällä käytetään neljää
komentoa, jolla pelihahmoa liikutetaan ylös, alas, vasemmalle ja oikealle päin.
Useimmissa tehtävissä on tarve sijoittaa toistorakenteeseen useampi kuin yksi
komentopalikka. Näissä joudutaan miettimään, mitkä ovat oikeat toistettavat komento.
Taso 14 Neljän liikkumiseen käytettävän komentopalikan lisäksi on käytettävissä komentopalikat,
joilla kerätään mettä ja tehdään hunajaa. Kaikkia näitä komentopalikoita tulee käyttää
toistorakenteissa. Koodia muodostettaessa joudutaan miettimään lyhyitä toistettavia
komentosarjoja, eli mitä komentoja toistetaan ja montako kertaa.

Videoesimerkki tehtävästä 7:


Videoesimerkki tehtävästä 10:

Taso 16 Poikkeuksena muihin tämän kurssin tehtäviin tämä taso edellyttää luku- ja kirjoitustaitoa.
Tehtävissä on mahdollista ohjelmoida hahmot "puhumaan" puhekuplalla
komentopalikkaan parametriksi kirjoitettu teksti. Hahmoja voidaan myös liikuttaa
aiemmin opituilla komennoilla. Tason viimeinen tehtävä mahdollistaa jo oman tarinan
digitaalisen tarinan muodostamisen, mutta se voi olla jo liiankin haastava luokkien 0-2
oppilaille.
Taso 18 Tämä on muuten hyvin samankaltainen kuin tasot 8 ja 10, mutta mukana on nyt myös
toistorakenne. Toistorakennetta käyttämällä taiteilija voidaan ohjelmoida piirtämään
enemmän viivoja lyhemmällä koodilla.

Kurssi 2, pääsivu

Kurssin 2 tehtävät edellyttävät jo lukutaitoa, sillä komentopalikoissa oleva teksti kertoo mitä komento
tekee. Uutena ohjelmoinnillisena asiana tämän kurssin harjoituksissa on mukana komentojen
parametrit ja niiden asettaminen sekä ehtorakenteet. Tehtävät edellyttävät syvällisempää pohdintaa
ja mukana on jo useampia ohjelmoinnin peruselementtejä, joiden käyttöä tehtävissä harjoitellaan.

Kurssin 2 harjoituksia on käsitelty ohjelmointikoulutuksessa. Alla olevassa taulukossa on linkit
koulutusmateriaaleihin.
Code.org-palvelun ohjelmointiharjoitukset, Kurssi 2 Power Point PDF

Oppimispelejä

Oppimispeleissä opetellaan muodostamaan komennoista lyhyitä käskyjonoja, joilla ohjataan pelihahmoa. Ohjelmointi on yksinkertaista ”vedä ja pudota” -tyyppistä. Oikea komento vain vedetään ja pudotetaan oikeaan kohtaan käskyjonoon ja tarvittaessa asetetaan komennon parametri oikeaksi. Parametri on komennon lisämääre, joka määrittää tarkemmin mitä komento tekee. Esimerkiksi meillä voi olla komento ”liiku yksi askel” ja siinä asetettavana parametrina suunta. Suunta voi olla ”vasemmalle” tai ”oikealle”. Näin yhdellä komennolla voidaan toteuttaa liikkuminen sekä vasemmalle että oikealle komennon parametrin mukaisesti.

Pelaaja muodostaa tehtävissä tarvittavan käskyjonon kokonaisuudessaan valmiiksi ennen sen suoritusta ohjelmoinnin periaatteen mukaisesti. Käskyjonoa muodostaessaan pelaajan tulee jakaa pelihahmon liikkuminen järjestyksessä oleviin vaiheisiin ja käyttää jokaisessa vaiheessa oikeaa komentoa. Näin peleissä harjoitellaan ohjelmoinnin keskeistä periaatetta: Ongelman jakamista vaiheisiin ja niiden ratkaisemista oikeaan järjestykseen asetetuilla oikeilla komennoilla.

Linkkejä oppimispeleihin:
Esittelyvideo

The Foos
"The Foos"-linkki vie suoraan tietokoneelle tarkoitettuun versioon. Jos haluat pelata
peliä Android- tai iPad-tabletilla, siirry tästä linkistä pelin pääsivulle ja valitse
tablettiversio. Tietokoneversiossa peli-ikkunan voi suurentaa koko kuvaruudun
kokoiseksi ikkunan oikesta yläkulmasta löytyvästä "suurenna" -painikkeesta
Lightbot "Lightbot"-linkki vie suoraan tietokoneelle tarkoitettuun versioon. Jos haluat pelata
peliä Android- tai iPad-tabletilla, siirry tästä linkistä pelin pääsivulle ja valitse
tablettiversio. Tietokoneessa toimivan pelin käynnistäminen vaatii muutamia
hiiren klikkauksia ennen aloitusta. Katso tarvittaessa ohjeet, miten peli
käynnistetään.

Oppimispelejä tableteille:
Tynker Android iPad
Kodable Android iPad
Cody's App Academy Android iPad

Scratch Junior

Ominaisuuksia:
  • Ilmainen graafinen ohjelmointiympäristö Android ja iPad-tableteille.
  • Soveltuu käytettäväksi 5-7 ikävuodesta ylöspäin, eikä sen käyttö edellytä lukutaitoa.
  • Graafinen ”vedä ja pudota”-tyyppinen ohjelmointiympäristö.
  • Ei sisällä valmiita pohjia, vaan ohjelmoija voi itse täysin vapaasti päättää, mitä ohjelma tekee.
  • Mahdollistaa oman tuottamisen omien ideoiden pohjalta.

Linkit:

Ohjeita:

Peda.net käyttää vain välttämättömiä evästeitä istunnon ylläpitämiseen ja anonyymiin tekniseen tilastointiin. Peda.net ei koskaan käytä evästeitä markkinointiin tai kerää yksilöityjä tilastoja. Lisää tietoa evästeistä