SlideShare uma empresa Scribd logo
1 de 19
Kurkistus koodaukseen
TURKU
19.4.2016
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
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/
1970 2016
http://cyberneticzoo.com/cyberneticanimals/1969-the-logo-turtle-seymour-papert-marvin-minsky-et-al-american/
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
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
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
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)
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)
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.
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)
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)
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.
Robotiikka
Graafinen ohjelmointi
14
- Kierrä este
- Pysähdy mustalle viivalla
- Pysähdy seinään
- Imuroi lattia
Sovellusten ohjelmointi
Lausekielinen ohjelmointi
-Muuttujat, funktiot, suunnittelu/testaaminen, tietotyypit,
kirjasto, käsikirja
-Totuusarvot, ehtolauseet, silmukka, syötteet
15
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
Kokeileminen
vs. suunnittelu
Piirrä Racket Turtlella peruskuviot
Kokeile mitä muuta saat aikaan...
17
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
Mistä jatkaa?
Koodiaapinen MOOC: http://koodiaapinen.fi
◦ ScratchJr (esi- ja alkuopetus)
◦ Scratch (3.-6. luokat)
◦ https://scratch.mit.edu/
◦ http://www.teromakotero.fi/scratch-klubi/
◦ Racket (7.-9. luokat)
◦ http://racket.koodiaapinen.fi
◦ Python (7.-9. luokat)
Lego – ohjelmointi
◦ http://www.innokas.fi/fi/training/asimov
Code.org / Koodaustunti
◦ http://code.org
◦ http://koodaustunti.fi
19

Mais conteúdo relacionado

Semelhante a Kurkistus koodaukseen

Pedagoginen piristysruiske 130217
Pedagoginen piristysruiske 130217Pedagoginen piristysruiske 130217
Pedagoginen piristysruiske 130217Matleena Laakso
 
Miten opettajien uusi sukupolvi mullistaa opetuksen? Vai mullistaako sittenkään?
Miten opettajien uusi sukupolvi mullistaa opetuksen? Vai mullistaako sittenkään?Miten opettajien uusi sukupolvi mullistaa opetuksen? Vai mullistaako sittenkään?
Miten opettajien uusi sukupolvi mullistaa opetuksen? Vai mullistaako sittenkään?Jari Laru
 
Ohjelmointia & monilukutaitoa
Ohjelmointia & monilukutaitoaOhjelmointia & monilukutaitoa
Ohjelmointia & monilukutaitoaEmilia Hjelm
 
Ohjelmoinnin historiaa
Ohjelmoinnin historiaaOhjelmoinnin historiaa
Ohjelmoinnin historiaaTiina Partanen
 
Mobiililaitteiden hyödyntäminen opetuksessa 12.10.2017
Mobiililaitteiden hyödyntäminen opetuksessa 12.10.2017Mobiililaitteiden hyödyntäminen opetuksessa 12.10.2017
Mobiililaitteiden hyödyntäminen opetuksessa 12.10.2017Matleena Laakso
 
Tieto ja viestintätekniikka pedagogisena työvälineenä. luento 1
Tieto  ja viestintätekniikka pedagogisena työvälineenä. luento 1 Tieto  ja viestintätekniikka pedagogisena työvälineenä. luento 1
Tieto ja viestintätekniikka pedagogisena työvälineenä. luento 1 Jari Laru
 
Kaisa Vähähyyppä Opetushallitus: Ajatuksia tulevaisuuden koulusta
Kaisa Vähähyyppä Opetushallitus: Ajatuksia tulevaisuuden koulustaKaisa Vähähyyppä Opetushallitus: Ajatuksia tulevaisuuden koulusta
Kaisa Vähähyyppä Opetushallitus: Ajatuksia tulevaisuuden koulustaUnelmakoulu
 
Lapset ja Ohjelmointi
Lapset ja OhjelmointiLapset ja Ohjelmointi
Lapset ja OhjelmointiMaikku Sarvas
 
Oman osaamisen tunnistaminen ja näkyväksi tekeminen -tilaisuuden materiaali
Oman osaamisen tunnistaminen ja näkyväksi tekeminen -tilaisuuden materiaaliOman osaamisen tunnistaminen ja näkyväksi tekeminen -tilaisuuden materiaali
Oman osaamisen tunnistaminen ja näkyväksi tekeminen -tilaisuuden materiaaliSuomen Ekonomit
 
TVT- ja some-taidot -harjoitus
TVT- ja some-taidot -harjoitusTVT- ja some-taidot -harjoitus
TVT- ja some-taidot -harjoitusHarto Pönkä
 
Tekoälystä puhutaan, mutta mitä se oikeastaan on?
Tekoälystä puhutaan, mutta mitä se oikeastaan on?Tekoälystä puhutaan, mutta mitä se oikeastaan on?
Tekoälystä puhutaan, mutta mitä se oikeastaan on?Loihde Advisory
 
21. vuosisadan taidot - mitä ja miksi?
21. vuosisadan taidot - mitä ja miksi?21. vuosisadan taidot - mitä ja miksi?
21. vuosisadan taidot - mitä ja miksi?Harto Pönkä
 
Pedagoginen piristysruiske 20.2.19
Pedagoginen piristysruiske 20.2.19Pedagoginen piristysruiske 20.2.19
Pedagoginen piristysruiske 20.2.19Matleena Laakso
 
Korkea-asteen massaluentokurssin pelillistäminen
Korkea-asteen massaluentokurssin pelillistäminenKorkea-asteen massaluentokurssin pelillistäminen
Korkea-asteen massaluentokurssin pelillistäminenTanja Välisalo
 

Semelhante a Kurkistus koodaukseen (20)

Ohjelmointi ja OPS
Ohjelmointi ja OPSOhjelmointi ja OPS
Ohjelmointi ja OPS
 
Pedagoginen piristysruiske 130217
Pedagoginen piristysruiske 130217Pedagoginen piristysruiske 130217
Pedagoginen piristysruiske 130217
 
Miten opettajien uusi sukupolvi mullistaa opetuksen? Vai mullistaako sittenkään?
Miten opettajien uusi sukupolvi mullistaa opetuksen? Vai mullistaako sittenkään?Miten opettajien uusi sukupolvi mullistaa opetuksen? Vai mullistaako sittenkään?
Miten opettajien uusi sukupolvi mullistaa opetuksen? Vai mullistaako sittenkään?
 
Ohjelmointi
OhjelmointiOhjelmointi
Ohjelmointi
 
Ohjelmointia & monilukutaitoa
Ohjelmointia & monilukutaitoaOhjelmointia & monilukutaitoa
Ohjelmointia & monilukutaitoa
 
Ohjelmoinnin historiaa
Ohjelmoinnin historiaaOhjelmoinnin historiaa
Ohjelmoinnin historiaa
 
ISOverstas 28.10.15
ISOverstas 28.10.15ISOverstas 28.10.15
ISOverstas 28.10.15
 
Mobiililaitteiden hyödyntäminen opetuksessa 12.10.2017
Mobiililaitteiden hyödyntäminen opetuksessa 12.10.2017Mobiililaitteiden hyödyntäminen opetuksessa 12.10.2017
Mobiililaitteiden hyödyntäminen opetuksessa 12.10.2017
 
Tieto ja viestintätekniikka pedagogisena työvälineenä. luento 1
Tieto  ja viestintätekniikka pedagogisena työvälineenä. luento 1 Tieto  ja viestintätekniikka pedagogisena työvälineenä. luento 1
Tieto ja viestintätekniikka pedagogisena työvälineenä. luento 1
 
Kaisa Vähähyyppä Opetushallitus: Ajatuksia tulevaisuuden koulusta
Kaisa Vähähyyppä Opetushallitus: Ajatuksia tulevaisuuden koulustaKaisa Vähähyyppä Opetushallitus: Ajatuksia tulevaisuuden koulusta
Kaisa Vähähyyppä Opetushallitus: Ajatuksia tulevaisuuden koulusta
 
Lapset ja Ohjelmointi
Lapset ja OhjelmointiLapset ja Ohjelmointi
Lapset ja Ohjelmointi
 
Racket MOOC jakso 7
Racket MOOC jakso 7Racket MOOC jakso 7
Racket MOOC jakso 7
 
Oman osaamisen tunnistaminen ja näkyväksi tekeminen -tilaisuuden materiaali
Oman osaamisen tunnistaminen ja näkyväksi tekeminen -tilaisuuden materiaaliOman osaamisen tunnistaminen ja näkyväksi tekeminen -tilaisuuden materiaali
Oman osaamisen tunnistaminen ja näkyväksi tekeminen -tilaisuuden materiaali
 
Mobiilirata VAMK 2014
Mobiilirata VAMK 2014Mobiilirata VAMK 2014
Mobiilirata VAMK 2014
 
TVT- ja some-taidot -harjoitus
TVT- ja some-taidot -harjoitusTVT- ja some-taidot -harjoitus
TVT- ja some-taidot -harjoitus
 
Pepi 15, osa 1
Pepi 15, osa 1Pepi 15, osa 1
Pepi 15, osa 1
 
Tekoälystä puhutaan, mutta mitä se oikeastaan on?
Tekoälystä puhutaan, mutta mitä se oikeastaan on?Tekoälystä puhutaan, mutta mitä se oikeastaan on?
Tekoälystä puhutaan, mutta mitä se oikeastaan on?
 
21. vuosisadan taidot - mitä ja miksi?
21. vuosisadan taidot - mitä ja miksi?21. vuosisadan taidot - mitä ja miksi?
21. vuosisadan taidot - mitä ja miksi?
 
Pedagoginen piristysruiske 20.2.19
Pedagoginen piristysruiske 20.2.19Pedagoginen piristysruiske 20.2.19
Pedagoginen piristysruiske 20.2.19
 
Korkea-asteen massaluentokurssin pelillistäminen
Korkea-asteen massaluentokurssin pelillistäminenKorkea-asteen massaluentokurssin pelillistäminen
Korkea-asteen massaluentokurssin pelillistäminen
 

Mais de Tiina Partanen

Computational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsComputational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsTiina Partanen
 
Racket mooc 2017 - yleistä
Racket mooc 2017 -  yleistäRacket mooc 2017 -  yleistä
Racket mooc 2017 - yleistäTiina Partanen
 
Racket mooc 2017 - aikataulu
Racket mooc 2017 -  aikatauluRacket mooc 2017 -  aikataulu
Racket mooc 2017 - aikatauluTiina Partanen
 
Ohjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: JatkokurssiOhjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: JatkokurssiTiina Partanen
 
Racket materiaali (Koodausta kouluun - projekti)
Racket materiaali (Koodausta kouluun - projekti)Racket materiaali (Koodausta kouluun - projekti)
Racket materiaali (Koodausta kouluun - projekti)Tiina Partanen
 
Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Tiina Partanen
 
Koodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynoteKoodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynoteTiina Partanen
 
Racket MOOC (kevät 2016) - jakso 4
Racket MOOC (kevät 2016) -  jakso 4Racket MOOC (kevät 2016) -  jakso 4
Racket MOOC (kevät 2016) - jakso 4Tiina Partanen
 
Racket perusteet - Sovellukset A
Racket perusteet - Sovellukset ARacket perusteet - Sovellukset A
Racket perusteet - Sovellukset ATiina Partanen
 
Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Tiina Partanen
 
Koodauksen ensiaskeleet
Koodauksen ensiaskeleetKoodauksen ensiaskeleet
Koodauksen ensiaskeleetTiina Partanen
 
Racket MOOC - viikko 6
Racket MOOC - viikko 6Racket MOOC - viikko 6
Racket MOOC - viikko 6Tiina Partanen
 

Mais de Tiina Partanen (20)

Computational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of MathematicsComputational Thinking as an Emergent Learning Trajectory of Mathematics
Computational Thinking as an Emergent Learning Trajectory of Mathematics
 
Racket mooc 2017 - yleistä
Racket mooc 2017 -  yleistäRacket mooc 2017 -  yleistä
Racket mooc 2017 - yleistä
 
Racket mooc 2017 - aikataulu
Racket mooc 2017 -  aikatauluRacket mooc 2017 -  aikataulu
Racket mooc 2017 - aikataulu
 
Ohjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: JatkokurssiOhjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: Jatkokurssi
 
Racket materiaali (Koodausta kouluun - projekti)
Racket materiaali (Koodausta kouluun - projekti)Racket materiaali (Koodausta kouluun - projekti)
Racket materiaali (Koodausta kouluun - projekti)
 
Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)
 
Koodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynoteKoodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynote
 
Racket Turtle
Racket TurtleRacket Turtle
Racket Turtle
 
Racket MOOC - jakso 6
Racket MOOC -  jakso 6Racket MOOC -  jakso 6
Racket MOOC - jakso 6
 
Racket MOOC - jakso 5
Racket MOOC - jakso 5Racket MOOC - jakso 5
Racket MOOC - jakso 5
 
Racket MOOC (kevät 2016) - jakso 4
Racket MOOC (kevät 2016) -  jakso 4Racket MOOC (kevät 2016) -  jakso 4
Racket MOOC (kevät 2016) - jakso 4
 
Racket MOOC - jakso 3
Racket MOOC - jakso 3Racket MOOC - jakso 3
Racket MOOC - jakso 3
 
Racket MOOC - jakso 2
Racket MOOC - jakso 2Racket MOOC - jakso 2
Racket MOOC - jakso 2
 
Racket perusteet - Sovellukset A
Racket perusteet - Sovellukset ARacket perusteet - Sovellukset A
Racket perusteet - Sovellukset A
 
Racket MOOC - jakso 1
Racket MOOC - jakso 1Racket MOOC - jakso 1
Racket MOOC - jakso 1
 
Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)Racket MOOC 2016 - yleistä (SYKSY)
Racket MOOC 2016 - yleistä (SYKSY)
 
Legorobottialkeet
LegorobottialkeetLegorobottialkeet
Legorobottialkeet
 
Lapset koodaa?
Lapset koodaa?Lapset koodaa?
Lapset koodaa?
 
Koodauksen ensiaskeleet
Koodauksen ensiaskeleetKoodauksen ensiaskeleet
Koodauksen ensiaskeleet
 
Racket MOOC - viikko 6
Racket MOOC - viikko 6Racket MOOC - viikko 6
Racket MOOC - viikko 6
 

Kurkistus koodaukseen

  • 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.
  • 14. Robotiikka Graafinen ohjelmointi 14 - Kierrä este - Pysähdy mustalle viivalla - Pysähdy seinään - Imuroi lattia
  • 15. Sovellusten ohjelmointi Lausekielinen ohjelmointi -Muuttujat, funktiot, suunnittelu/testaaminen, tietotyypit, kirjasto, käsikirja -Totuusarvot, ehtolauseet, silmukka, syötteet 15
  • 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
  • 17. Kokeileminen vs. suunnittelu Piirrä Racket Turtlella peruskuviot Kokeile mitä muuta saat aikaan... 17
  • 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
  • 19. Mistä jatkaa? Koodiaapinen MOOC: http://koodiaapinen.fi ◦ ScratchJr (esi- ja alkuopetus) ◦ Scratch (3.-6. luokat) ◦ https://scratch.mit.edu/ ◦ http://www.teromakotero.fi/scratch-klubi/ ◦ Racket (7.-9. luokat) ◦ http://racket.koodiaapinen.fi ◦ Python (7.-9. luokat) Lego – ohjelmointi ◦ http://www.innokas.fi/fi/training/asimov Code.org / Koodaustunti ◦ http://code.org ◦ http://koodaustunti.fi 19