2. Kurssin tavoitteet
Sisältö:
• mitä on ohjelmointi, koodi, anturit...
• mistä osa-alueista se koostuu
• mitä on ohjelmoinnillinen ajattelu
• millaisia ongelmia ohjelmoimalla voi ratkaista
• tutustumme näihin käsitteisiin ohjelmoimalla pieniä harjoituksia ja samalla
tutustumme ohjelmoinnin moniin mahdollisuuksiin
• kurssin tavoitteena ei ole oppia varsinaisesti ohjelmoimaan, vaan tutustua
siihen
• mitä se on
• antaa näkemystä siitä, mitä aiheeseen liittyy
• mikä siinä on tärkeää
• miten jatkaa eteenpäin
2
3. Lapset ohjelmoimaan 1960
Seymour Papert (MIT)
◦ Ohjelmoinnin Avulla lapset voivat oppia ongelmanratkaisua sekä toteuttaa
itseään luovasti
◦ ”children should be programming the computer rather than being programmed
by it”
◦ Kehitti Logo-ohjelmointikielen ja Turtle grafiikan (matematiikka)
◦ KIRJA: Mindstorms, Children, Computers, And Powerful Ideas (1980)
◦ Ohjelmoitavat legorobotit: Lego mindstorms
◦ Ensimmäiset ”ohjelmoitavat legot” (1986)
◦ RXT (1998)
◦ NXt (2006)
◦ EV3 (2013)
http://cyberneticzoo.com/cyberneticanimals/1969-the-logo-
turtle-seymour-papert-marvin-minsky-et-al-american/
5. Computational thinking 2006
Jeannette M.Wing
◦ Computational thingking - artikkeli (2006)
◦ Taustalla huoli Tietojenkäsittelytieteen oppilasmäärien vähenemisestä
USA:n yliopistoissa
◦ Idea: kaikkien pitäisi tutustua ”laskennalliseen ajatteluun”
opintosuunnasta huolimatta, jotta voisi nähdä automatisoinnin edut
esim. Biologiassa, lääketieteessä jne. (ja saataisiin ehkä lisää
opiskelijoita alalle)
◦ Idea siitä, että nämä ”Laskennallisen ajattelun” taidot auttavat myös
muissa ongelmanratkaisutilanteissa
6. Computational thinking
Automatisointiajattelu,Algoritminenajattelu,ohjelmoinnillinenajattelu,laskennallinenajattelu
Periaatteet:
Logiikka
◦ ennustaminen, analysointi
Algoritmit
◦ vaiheiden ja sääntöjen
tekeminen
Jakaminen osiin
◦ ongelman/ratkaisun
jakaminen osiin
Toistuvat rakenteet
◦ niiden tunnistaminen ja
hyödyntäminen
Abstraktio
◦ turhien yksityiskohtien
poistaminen
Arvioiminen
◦ ratkaisun laadun arviointi
Lähestymistavat:
Kokeileminen
◦ leikkiminen, koodin
”säätö”
Uuden luominen
◦ suunnittelu ja toteutus
Debuggaaminen
◦ virheiden löytäminen ja
korjaaminen
Sitkeys
◦ työn loppuun saattaminen
Yhteistyö
◦ Yhdessä työskenteleminen
7. Koodaus kaikkiin USA:n
kouluihin 2013
Liikemies Hadi Partovi perustaa Code.org - järjestön 2013
What Most Schools Don't Teach (youtube-video 2013)
Taustalla huoli siitä, että (hyviä) ohjelmoijia on liian vähän
VIESTI:
◦ koodaamista pitäisi opettaa joka koulussa
◦ Ohjelmointi opettaa ajattelemaan
◦ koodaaminen on ”super power”
◦ koodaamalla voi muuttaa maailmaa (parantaa maailmaa, auttaa ihmisiä)
◦ Koodarit ovat ”nykyajan rokkitähtiä”
◦ Ei tarvitse olla superälykäs, että voi ohjelmoida
◦ Koodaamalla voi rikastua tai tulla kuuluisaksi
Hour of code – sivusto (2013) → Koodaustunti.fi – sivusto (2014)
code.org
8. Ohjelmointi Suomen
peruskouluihin 2014
Opetusministeri Krista Kiuru tuo idean OPS2014:iin (Tammikuussa
2014)
Linda Liukas ja Juhani Mykkänen kirjoittavat KOODI2016 – kirjasen
”ensiapua koodamisen opettamiseen peruskoulussa” (kesäkuu
2014)
9. OPS 2014
luokat1-2
Luokat 1-2 Tieto- ja viestintäteknologinen osaaminen (L5)
◦ Oppilaat saavat ja jakavat keskenään kokemuksia digitaalisen median parissa
työskentelystä sekä ikäkaudelle sopivasta ohjelmoinnista. (OPS2014 s. 101)
Luokat 1-2 Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet
◦ S1 Ajattelun taidot: Tutustuminen ohjelmoinnin alkeisiin alkaa laatimalla
vaiheittaisia toimintaohjeita, joita myös testataan. (OPS2014 s. 129)
10. OPS 2014
luokat3-6
Luokat 3-6 Tieto- ja viestintäteknologinen osaaminen (L5)
◦ Ohjelmointia kokeillessaan oppilaat saavat kokemuksia siitä, miten teknologian
toiminta riippuu ihmisen tekemistä ratkaisuista (OPS2014 s. 157)
◦ T14 innostaa oppilasta laatimaan toimintaohjeita tietokoneohjelmina graafisessa
ohjelmointiympäristössä (OPS2014 s. 235)
Luokat 3-6 Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet
◦ S1 Ajattelun taidot: Suunnitellaan ja toteutetaan ohjelmia graafisessa
ohjelmointiympäristössä (OPS2014 s. 235)
◦ ARVOSANA HYVÄ: Oppilas osaa ohjelmoida toimivan ohjelman graafisessa
ohjelmointiympäristössä (OPS2014 s.239)
Luokat 3-6 Käsityön tavoitteisiin liittyvät keskeiset sisältöalueet
◦ S3 Kokeilu: Harjoitellaan ohjelmoimalla aikaan saatuja toimintoja, joista esimerkkinä
robotiikka ja automaatio. Kokeilujen pohjalta tuotetta tai teostakehitetään vielä
eteenpäin.
11. OPS 2014
luokat7-9
Luokat 7-9 Tieto- ja viestintäteknologinen osaaminen (L5)
◦ Ohjelmointia harjoitellaan osana eri oppiaineiden opintoja. (OPS2014, s. 284)
Luokat 7-9 Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet:
◦ S1 Ajattelun taidot ja menetelmät: Harjoitellaan väitelauseiden totuusarvon
päättelyä. Syvennetään algoritmista ajattelua. Ohjelmoidaan ja samalla harjoitellaan
hyviä ohjelmointikäytäntöjä. Sovelletaan itse tehtyjä tai valmiita tietokoneohjelmia
osana matematiikan opiskelua. (OPS2014, s. 375)
◦ T20 ohjata oppilasta kehittämään algoritmista ajatteluaan sekä taitojaan soveltaa
matematiikkaa ja ohjelmointia ongelmien ratkaisemiseen (OPS2014, s. 375)
◦ ARVOSANA HYVÄ: Oppilas osaa soveltaa algoritmisen ajattelun periaatteita ja osaa
ohjelmoida yksinkertaisia ohjelmia. (OPS2014, s. 379)
Luokat 7-9 Käsityön tavoitteet
◦ Käytetään sulautettuja järjestelmiä käsityöhön eli sovelletaan ohjelmointia
suunnitelmiin ja valmistettaviin tuotteisiin. (OPS2014, s. 431)
12. JOKA TAPAUKSESSA...
• Mitä on ”computational thinking”? (monta
eri määritelmää)
• Miten sitä mitataan? (arviointi)
• Siirtyvätkö ohjelmoinnin kautta opitut
ongelmanratkaisutaidot muihin elämän osa-
alueisiin esim. Parantuvatko matematiikan
oppimistulokset? (transfer)
• Siirtyvätkö ilman tietokonetta opitut
”computational thinking”-taidot
ohjelmointitaidoiksi? (transfer)
• Onko graafisen ohjelmointiympäristön
jälkeen helpompaa vai vaikeampaa aloittaa
lausekielinen ohjelmointi?
EI AIVAN SELVÄÄ...
• Opitaan käyttämään TVT:tä
• Opitaan jotain uutta ympäröivästä
maailmasta (esim. sähkö, sensorit)
• Annetaan onnistumisen kokemuksia (joku
kiinnostuu ehkä ja hakeutuu
kerhoon/opiskelemaan lisää), oppilastutorit
• Innostetaan luovaan ongelmanratkaisuuN (ei
ole vain yhtä oikeaa vastausta)
• Tarjoaa toiminallisia ja oppiainerajat rikkovia
projektimahdolisuuksia (kuvis, käsityöt,
äidinkieli, matematiikka, fysiikka)
13. Koodikieli
Suunnittele parin kanssa ohjelmointikieli, jonka avulla voi piirtää
suorakulmioita, kolmioita ja ympyröitä.
Kirjoita koodisi avulla ohjeet jonkun yksinkertaisen geometrisista
kuvioista koostuvan kuvan piirtämiseksi (esim. Talo, auto...)
13
Kaikki ohjelmointikielet ovat ihmisen
keksimiä rakennelmia. Niitä syntyy koko ajan
lisää, ne kehittyvät paremmiksi ja osa kuolee
pois. Ohjelmointikieliä kehitetään ratkomaan
tiettyjä ongelmia, ne ovat aikansa tuote.
16. Suunnittelu
vs. koodaus
Keksi sovellus, joka kysyy käyttäjältä jotain, tutkii syötettä ja palauttaa
vastauksen, ja palaa taas alkuun kysymään uudelleen jne.
Suunnittele ohjelmasi
◦ Tarkoitus
◦ Esittele funktion nimi, muuttujat
◦ Kirjoita esimerkit/testit
◦ Kysy käyttäjältä syötteet, tarkista niiden järkevyys!
16
18. Pedagoginen lähestymistapa
Oppilaalle on saatava mentaalimalli siitä miten ohjelmakoodi toimii.
Miten tähän päästään?
1. Käytetään
◦ valmiita piirtofunktioita (kuvat, Turtle)
2. Muokataan
◦ puolivalmiin funktion koodia eteenpäin
3. Luodaan
◦ määritellään oma funktio funktion suunnitteluportaat menetelmän kautta (siirrytään
abstaktioon vasta, kun konkreettinen esimerkki/testi on kirjoitettu)
◦ määritellään oma ohjelma, joka jaetaan funktioihin
18