2. OPS2014
Laaja-alainen osaaminen vuosiluokilla 7-9
Tieto- ja viestintäteknologinen osaaminen
Ohjelmointia harjoitellaan osana eri oppiaineiden opintoja.
(OPS2014, s. 284)
KOODIAAPINEN MOOC - SYKSY 2015
3. OPS2014
Matematiikka 7-9
Tavoitteet:
T20 ohjata oppilasta kehittämään algoritmista ajatteluaan
sekä taitojaan soveltaa matematiikkaa ja ohjelmointia
ongelmien ratkaisemiseen (OPS2014, s. 375)
KOODIAAPINEN MOOC - SYKSY 2015
4. OPS2014
Matematiikka 7-9
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)
KOODIAAPINEN MOOC - SYKSY 2015
5. OPS2014
Matematiikka 7-9
Arvosanan kahdeksan osaaminen:
Oppilas osaa soveltaa algoritmisen ajattelun periaatteita ja
osaa ohjelmoida yksinkertaisia ohjelmia. (OPS2014, s. 379)
KOODIAAPINEN MOOC - SYKSY 2015
6. OPS2014
Käsityö 7-9
Käsityön opetuksen tavoitteet vuosiluokilla 7-9:
Käytetään sulautettuja järjestelmiä käsityöhön eli
sovelletaan ohjelmointia suunnitelmiin ja valmistettaviin
tuotteisiin. (OPS2014, s. 431)
KOODIAAPINEN MOOC - SYKSY 2015
7. Jotta OPS:ia voi toteuttaa on
selvitettävä itselleen mitä on:
1) ohjelmointi
2) algoritmi
3) algoritminen ajattelu
4) algoritmisen ajattelun soveltaminen
5) algoritmisen ajattelun periaatteet
6) hyvät ohjelmointikäytänteet
7) yksinkertainen ohjelma
Matematiikan opettajan on lisäksi tiedettävä miten:
8A) soveltaa matematiikka ja ohjelmointia ongelmien ratkaisuun
Käsityön opettajan on lisäksi tiedettävä miten:
8B) sovelletaan ohjelmointia suunnitelmiin ja valmistettaviin tuotteisiin
KOODIAAPINEN MOOC - SYKSY 2015
9. Laskennallinen ajattelu (suom.)
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
KOODIAAPINEN MOOC - SYKSY 2015
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
10. Algoritmic Thinking
Algorithmic thinking is a way of getting to a solution through the clear
definition of the steps needed – nothing happens by magic. Rather than
coming up with a single answer to a problem, like 42, pupils develop
algorithms. They are instructions or rules that if followed precisely
(whether by a person or a computer) leads to answers to both the
original and similar problems.
For example, we all learn algorithms for doing multiplication at school.
If we (or a computer) follow the rules we were taught precisely we can
get the answer to any multiplication problem. Once we have the
algorithm we don’t have to work out how to do multiplication from
scratch every time we are faced with a new problem.
The power of algorithmic thinking is that it allows solutions to be
automated.
http://teachinglondoncomputing.org/resources/developing-
computational-thinking/algorithmic-thinking/
KOODIAAPINEN MOOC - SYKSY 2015
11. Algoritminen ajattelu (suom.)
Algoritmisen ajattelun avulla ratkaistaan ongelma määrittelemällä
selkeät vaiheet jotka siihen tarvitaan – mitään ei tapahdu vahingossa.
Sen sijaan, että löydetään yksi vastaus ongelmaan, kuten 42, oppilaat
kehittävät algoritmeja. Ne ovat ohjeita tai sääntöjä, joita seuraamalla
tarkasti (olipa se sitten ihminen tai tietokone) saavutetaan vastaus sekä
alkuperäiseen ongelmaan, että kaikkiin samanlaisiin ongelmiin.
Esimerkiksi, opimme koulussa kertolaskualgoritmin. Jos me (tai
tietokone) seuraamme näitä meille opetettuja ohjeita tarkasti, saamme
vastauksen mihin tahansa kertolaskuongelmaan. Kun meillä on tämä
algoritmi meidän ei tarvitse jokaisen uuden ongelman kohdalla miettiä
miten se tehdään.
Algorimin voima on siinä, että sen avulla ratkaisut voidaan
automatisoida.
KOODIAAPINEN MOOC - SYKSY 2015
12. Tapoja opettaa
ohjelmointia/algoritmista ajattelua
1) Kirjallisen materiaalin/videon/tutoriaalin seuraaminen ja sen esimerkkien
kopiointi ja kokeileminen
2) Opettaja näyttää esimerkin, joka kopioidaan ja kokeillaan
3) Suunnitellaan itse funktio ”tyhjästä” check-expect:ien avulla
4) Muokataan valmista koodipohjaa eteenpäin, lisäämällä omaa logiikkaa
(koodia) tiettyihin kohtiin
5) Kokeillaan ja leikitään koodin kanssa, ihmetellään lopputulosta
6) Debugataan toisen koodia, etsitään yhdessä virheitä ja korjataan ne
7) Opetetaan peruspalikat, tehdään miniharjoituksia niiden avulla ja lopuksi
saadaan tehtyä jokin ”oikea” iso sovellus (esim. peli)
8) Tehdään ”oikeaa sovellusta” (esim. peli) ja opitaan sitä mukaa
ohjelmointitekniikoita, kun niitä tarvitaan sovelluksen tekemisessä
KOODIAAPINEN MOOC - SYKSY 2015
13. Kurssin ”diplomityö”
Viimeisen tehtävän tarkoitus on miettiä miten ohjelmoinnin opetuksen voisi
käytännössä jalkauttaa omaan luokkaansa. Kaikki diplomityöt palautetaan
samalla tavalla, eli teet tehtävän haluamaasi pilvipalveluun (Google Docs,
O365, tms.) ja jaat lukulinkin siihen kurssin Padlet – sivulla. Tämän lisäksi
palautat saman linkin myös Eliademyn Tasks/Tehtävät – kohdan kautta.
Padlet – seinällä jakaminen tehdään siksi, että kuten olette huomanneet
kurssin sokeri ja suola on tullut siitä, että on nähnyt muiden kurssilaisten
koodailujen tuloksia. Nyt jaamme toisillemme ajatuksiamme ja
suunnitelmiamme ohjelmoinnin opettamisesta käytännössä.
Valitse näistä yksi (tai yhdistele soveltaen):
A - työssä reflektoit OPS:ia ja kurssin sisältöjä yleisellä tasolla
B - työssä suunnittelet yhden uuden ohjelmointiharjoituksen
C - työssä suunnittelet ohjelmoinnin opintokokonaisuuden oman oppiaineesi
sisältöihin liittyen
KOODIAAPINEN MOOC - SYKSY 2015
14. Diplomityö A: Reflektoi OPS:ia
Tällä kurssilla on käyty läpi paljon asiaa, ja nyt sinulla pitäisi olla hyvä pohja pohtia
OPS:in vaatimuksia. Pohdi (reflektoi) seuraavia kysymyksiä (tai keksi paremmat):
1) Miten ohjelmoinnin opettamisen voisi integroida oppiaineesi sisältöihin tai
millaisessa oppiainerajat ylittävässä projektissa sitä voisi hyödyntää? (mitä
voisivat olla ”yksinkertaiset ohjelmat”?)
2) Mitkä taidot/sisällöt ovat mielestäsi tärkeimpiä oppia algoritmisen/laskennallisen
ajattelun osalta luokilla 7-9? (mitä on algoritminen ajattelu?)
3) Miten opettaisit ohjelmointia omille oppilaillesi, mitä menetelmiä käyttäisit,
miten ohjelmointia voi ylipäätään oppia? (pedagogiset ratkaisut)
4) Mikä on mielestäsi luovuuden ja teorian suhde ohjelmoinnin opetuksessa?
(pedagogiset ratkaisut)
5) Mitä oivalluksia tämä kurssi sinulle antoi aiheesta?
Liitä juttuusi mukaan jokin kurssilla ohjelmoimasi kuva tai linkki sovellukseen, ja kerro
mitä opit harjoitusta tehdessäsi.
KOODIAAPINEN MOOC - SYKSY 2015
15. Diplomityö B: Luo harjoitus
Tällä kurssilla on tehty monenlaisia harjoituksia. Mieti seuraavia asioita ja suunnittele
uusi harjoitustehtävä, jota voisit hyödyntää omassa opetuksessasi.
1) Millainen on hyvä ohjelmointiharjoitus, ohjelmointityökalu, ohjelmoinnin
materiaali? (pedagogia)
2) Miten ohjelmointia/algoritmista ajattelua pitäisi opettaa/miten sitä oppii
parhaiten? (pedagogia)
3) Mihin algoritmisen ajattelun (tai matematiikan) osa-alueen opettamiseen tähtäät
uudella tehtävälläsi? (mitä on algoritminen ajattelu, miten ongelmia ratkotaan sen
avulla?)
4) Mitä ”hyviä ohjelmointikäytänteitä” tehtäväsi opettaa? (mitä ovat hyvät
ohjelmointikäytänteet?)
Suunnittele uusi ohjelmointitehtävä/harjoitus (sellainen joka puuttuu nykyisestä
Koodausta kouluun materiaalista). Tee tehtävänanto (voi sisältää tekstiä ja kuvia, se
voi olla myös yksi .rkt-tiedosto tai jaettu WeScheme-koodi). Ohjelmoi myös yksi
esimerkkiratkaisu. Voit käyttää tässä pohjana jotain kurssilla jo aloittamaasi koodia ja
muokata sen tehtävän muotoon. Liitä tehtävän mukaan lyhyt kuvaus, jossa kerrot
tehtävän pedagogiset tavoitteet.
KOODIAAPINEN MOOC - SYKSY 2015
16. Diplomityö C: Luo suunnitelma
Tällä kurssilla on käyty läpi paljon asiaa sekä suuri määrä erilaisia tehtäviä.
Suunnittele niiden pohjalta ohjelmoinnin opetuskokonaisuus (korkeantason
tuntisuunnitelmat tai projektikuvaus), siitä mitä voisit opettaa, missä
järjestyksessä, millä luokalla, minkä asian yhteydessä.
Merkitse suunnitelmaan mitä harjoitustehtäviä voisit käyttää/soveltaa
Koodausta kouluun materiaalista (katso ideoita myös Padlet-seiniltä). Kirjaa
ylös myös mieleesi tulleet uudet tehtäväideat, joihin materiaalissa ei ole
(vielä) ohjeita/malliratkaisuja. Perustele valintojasi, miksi juuri nämä
tehtävät.
Mieti myös työskentelymuotoja, miten organisoisit opetuksen luokassa
(parityö, ryhmätyö, esitykset, jakaminen somessa,...).
Jos olet jo ehtinyt aloittaa suunnitelman käytännön kokeilun oppilaiden
kanssa kerro myös miten se on sujunut.
Liitä mukaan myös jokin itse kurssilla koodaamasi koodi/kuva ja kerro aiotko
ottaa ko. tehtävän mukaan omaan opetukseesi.
KOODIAAPINEN MOOC - SYKSY 2015
19. Tiedoston jakaminen O365:n
kautta (A,B,C)
Jos sinulla on käytössäsi O365-palvelu, voit tehdä diplomityösi sen avulla.
Kirjoita pohdintasi (A)/tehtäväkuvauksesi (B)/suunnitelmasi (C) Word Online
dokumenttiin. Voit liittää siihen myös kuvia ja linkkejä. Lopuksi jaa se
katselua varten ja liitä linkki Padlet seinälle.
1) kirjaudu O365 (valitse Word Online)
2) valitse ”Uusi tyhjä tiedosto”
3) Kirjoita juttusi, nimeä se näin:
4) ”Jaa”, ”Hanki linkki”, valitse:
”Tarkastelulinkki-sisäänkirjautumista
ei vaadita”, liitä linkki Padlet-seinälle sekä
Eliademyn vk. 6 Tasks/Tehtävään
KOODIAAPINEN MOOC - SYKSY 2015
1.
2.
4.
3.
20. DrRacket-tiedoston jakaminen
O365:n kautta (B)
1) Kirjaudu O365, valitse OneDrive
2) Hinaa DrRacket-tiedosto hiirellä OneDriven päälle ja päästä irti
3) Valitse tiedosto ja valitse hiiren oikealla napilla ”Jaa”
4) Hiiren oikealla
napilla valitse
”Hae linkki”, valitse:
”Tarkastelulinkki-
sisäänkirjautumista
ei vaadita”
(kopioi linkki Word
Online:en)
KOODIAAPINEN MOOC - SYKSY 2015
2.
1.
4.
22. Tiedoston jakaminen Google
Docs:in kautta (A,B,C)
Sinulla pitäisi olla nyt käytössäsi Google-tunnukset. Kirjoita pohdintasi
(A)/tehtäväkuvauksesi (B)/suunnitelmasi (C) Google dokumenttiin. Voit
liittää siihen myös kuvia ja linkkejä. Lopuksi jaa se katselua varten ja liitä
linkki Padlet seinälle.
1) kirjaudu Googleen (valitse Drive)
2) valitse Uusi -> Google Doc
3) Kirjoita juttusi, nimeä doc näin:
4) Liitä linkki Padlet:iin sekä
Eliademyn vk. 6 Tasks/Tehtävään
KOODIAAPINEN MOOC - SYKSY 2015
1.
2.
4.
3.
23. DrRacket-tiedoston jakaminen
GoogleDriven kautta (B)
1) Kirjaudu Googleen, valitse Drive
2) Hinaa DrRacket-tiedosto hiirellä Oman Driven päälle ja päästä irti
3) Valitse tiedosto ja valitse hiiren oikealla napilla ”Jaa”
4) Hanki jaettava
linkki
(kopio Ctrl+C,
liitä Ctrl+V
GoogleDoc)
KOODIAAPINEN MOOC - SYKSY 2015
2.
3.
4.
24. Koodausta kouluun materiaalin
kehittelyssä käytetyt lähteet
1) Bootsrap – projektin nettisivut (WeScheme)
http://www.bootstrapworld.org/
2) How to design programs – nettikirja (”2. painos”)
http://www.ccs.neu.edu/home/matthias/HtDP2e/
3) Realm of Racket – kirja
http://www.amazon.com/dp/1593274912/ref=cm_sw_su_dp
4) Systematic Program Design MOOC (osa 1)
https://www.edx.org/course/systematic-program-design-part-1-core-ubcx-spd1x-0
5) Mindstorms - Children, Computers and Powerful Ideas - kirja
http://www.amazon.com/Mindstorms-Children-Computers-Powerful-Ideas/dp/0465046746
6) Racket – dokumentaatio
http://racket-lang.org/
7) OPS2014
http://www.oph.fi/download/163777_perusopetuksen_opetussuunnitelman_perusteet_2014.pdf
KOODIAAPINEN MOOC - SYKSY 2015
25. Miten tästä eteenpäin?
1) Liity FB-ryhmään Koodausta kouluun
- siellä saat tietoa Racket – kursseista ja materiaalin kehittymisestä
- siellä voit myös keskustella yleisemmin aiheeseen liittyen (myös muista
koodausympäristöistä)
https://www.facebook.com/groups/koodaustakouluun/
2) Liity koodausta-kouluun-racket – google-ryhmään (UUSI)
- siellä voit kysyä teknisempiä Racket/DrRacket/WeScheme-kysymyksiä
- tämä on se foorumi joka toimii jatkossa kuin Eliademyn ”keskustelualue”, täällä
voimme jatkossakin debugata koodia, ja selvittää muita koodaamisen mysteereitä,
pikkuhiljaa tästä muodostuu tietopankki muille opettajille
https://groups.google.com/forum/#!forum/koodausta-kouluun-racket
Jos mielessäsi on jotain jatkoideoita, ehdota rohkeasti näillä foorumeilla!!! Yhdessä
tekeminen ja jakaminen kannattaa aina!!!
KOODIAAPINEN MOOC - SYKSY 2015