2
Koodausta kouluun projekti 2014-2016
Koodausideoita matematiikan tunneille uuden OPS:in mukaisesti
Koodaus on matematiikkaa
Koodaus ei ole pois matematiikan opiskelusta, kunhan tehtävät on suunniteltu oikein
Koodaus on luonnollinen tapa tuoda tietokoneet osaksi matematiikan opiskelua
Matematiikan opettajien itse kehittämä materiaali (12 matikistia Pirkanmaalta)
Testattu oikeilla oppilailla
Ilmainen suomenkielinen oppimateriaali, ilmaiset työkalut, opettajan opas
3
Pedagogiset tavoitteet Opettaa systemaattista ongelmanratkaisua, ei vain ”koodaustemppuja”
Opettaa automatisointiajattelun pääsisällöt, riittävästi että niillä voidaan toteuttaa joitain yksinkertaisia toimivia ”sovelluksia”
Lähestyä aihetta visuaalisesti, kuvien ja animaatioiden kautta
Kannustaa luovuuteen ja oman koodin ”keksimiseen”
Painottaa funktionaalista ohjelmointiparadigmaa sekä test-driven design:ia
Tukea opettajaa uuden aihepiirin haltuunottamisessa (koodarin käsikirja, oppilaan tehtävät, opettajan materiaali, malliratkaisut, tutoriaalivideot)
4
Ohjelmointi yläkoulussakoulutukset
Kaikille matikisteille (7.lk ohjelmointiharjoituksia):
13.09.2016 12:30 - 15:30 Kaarilan koulu, luokka B307
15.09.2016 12:30 - 15:30 Nokianvirran koulun tietokoneluokka B202
20.09.2016 12:30 - 15:30 Sääksjärven koulun ATK-luokka
22.09.2016 12:30 - 15:30 Pohjois-Hervannan koulu, medialuokka C 15
26.09.2016 12:30 - 15:30 Linnainmaan koulu, luokka AT2 (TÄYNNÄ)
28.09.2016 12:30 - 15:30 Pikkolan koulu, ATK7
05.10.2016 12:30 - 15:30 Hatanpää, aulan ATK1 -luokka
Jatkokoulutus:
01.11.2016 12:30 - 15:30 Voimakatu 11, Fröbel
http://tampere.eeventti.fi/koulutukset/ryhma/ohjelmointi-ylakoulussa
Innosta
kollegasi
mukaan!
5
Koodiaapinen MOOC Syksy 2016
- ScratchJr esi- ja alkuopetus
- Scracth – luokat 3. – 6.
- Racket – luokat 7. – 9.
- Python – luokat 7. – 9.
Uusi kurssi alkaa 15.10. 2016
Ilmottautuminen:
http://koodiaapinen.fi/mooc/
Tarmo Toikkanen
VuokkoKangas
TeroToivanen
TiinaPartanen
eEemeli kilpailun – kunniamaininta 2016
IT-kouluttajat ry
6
Miksi Racket? Käytössä USA:ssa matematiikan opetuksessa perusopetuksessa
Bootstrap – project ”Teaching algebra by programming videogames”
Hyvät ilmaiset, open source työkalut DrRacket (Win, Linux, MacOS) WeScheme – selaimessa pyörivä ohjelmointiympäristö
Suunniteltu opetuksen tarpeisin Kehitetty portaittain kehittyvä ”student language” (Beginning Student -> Advanced Student) Uskomattoman selkeät virheilmoitukset Tulkki ja stepperi Monipuoliset ja opetukseen soveltuvat grafiikka- ja animaatiokirjastot Helppoa tehdä itse laajennuskirjastoja (Racket Turtle, display-read)
Valmis pedagoginen malli How to design programs, test-driven design
Voi koodata myös pelejä Realm of Racket
7
Ohjelman suoritus on vain lausekkeiden sieventämistä
(/ (+ 4 8) (- 3 -3))
(/ 12 (- 3 -3))
(/ 12 6 )
2
(4 + 8) / (3 –(-3))
12 / (3 –(-3))
12 / 6
2
(overlay (circle 50 ”solid” ”red”)
(circle 100 ”solid” ”black”))
(overlay
(circle 100 ”solid” ”black”))
8
Ohjelman suoritus on vain lausekkeiden sieventämistä
(overlay (circle 50 ”solid” ”red”)
(circle 100 ”solid” ”black”))
(overlay
(circle 100 ”solid” ”black”))
(overlay
)
9
Pedagoginen lähestymistapa
Oppilaalle on saatava mentaalimalli siitä miten ohjelmakoodi toimii.
Miten tähän päästään?
1. Käytetään◦ käytetään valmiita piirtofunktioita (kuvat, Turtle)
2. Muokataan◦ 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
https://users.soe.ucsc.edu/~linda/pubs/ACMInroads.pdf
10
7. Luokan materiaaliOppilas harjoittelee kirjoittamaan ohjelmakoodia, joka suorittaa yksinkertaisia laskutoimituksia tai piirtää geometrisia kuvioita.
Oppilas harjoittelee vertailuoperaattoreiden käyttöä väite- ja ehtolauseissa tutustuessaan totuusarvoihin.
Seudullinen OPS
11
7.lk Kuvakoodaus- motivaatio, opitaan funktion käsite käyttämällä valmiita funktioita, jaetaan ongelma osiin
12
Kilpikonna-grafiikkaa- Racket Turtle – kirjaston avulla voidaan opiskella geometriaa (mm. monikulmion kulmien ja sivujen suhteita, peilausta, koordinaatistoa...)
7.lk 7.lk 9.lk
13
8. Luokan materiaali Oppilas oppii suunnittelemaan ja ohjelmoimaan algoritmin, jolla voidaan ratkaista jokin ongelma tai tehtävä, joka voi olla esim. animaatio tai peli.
Seudullinen OPS
14
8.lk Animaatio- ehdollisuus, toistuvan jakson tunnistaminen, valmiin funktion muokkaaminen (muuttujana aika)
http://www.wescheme.org/view?publicId=dt7UzDWgmb
15
9. Luokan materiaali Oppilas oppii käyttämään funktioita ja muuttujia ohjelmointitehtävissä. Oppilas osaa jakaa ongelman osaongelmiin, ratkaista ne ohjelmoimalla ja yhdistää osat yhdeksi ratkaisuksi.
Seudullinen OPS
16
Funktion suunnitteluportaat
How to design programs – design recipe
17
9.lk Automatisointi- matemaattisen kaavan ohjelmointi automaattilaskuriksi, oman funktion kirjoittaminen ja testaaminen
Koodi voidaan jakaa WeSchemen kautta (laskuri toimii selaimessa):http://www.wescheme.org/view?publicId=gyRmetZwR0
http://www.wescheme.org/view?publicId=GsterQxRVj
Ajatusten lukija:
18
Muissa oppiaineissa- tietokilpailu (quiz) tehtävät kertaamiseen, lista tietorakenteena, valmiin koodin muokkaaminen omaan käyttöön
Esimerkkejä:
http://www.wescheme.org/view?publicId=K83HHMonx2
http://www.wescheme.org/view?publicId=bdDRSxD3U0
19
Matematiikan käsitteet Peruslaskutoimitukset ja laskujärjestys
Mittasuhteet
Koordinaatisto
Kierto, skaalaus, peilaus
Tasogeometriset kuviot
Kulman suuruus (monikulmiot)
Totuusarvot, väitelauseet, vertailuoperaatiot
Kulmien nimeäminen
Kolmion kulmien summa
Pythagoraan lause
Pyöristäminen
Yksikkömuunnokset
Jakojäännös (modulo)
Boolen logiikka (and, or, not)
Polynomit, kuvaajan piirtäminen
Funktiot ja muuttujat
Määrittelyjoukko, arvojoukko
Pinta-alan kaavat (ml. ympyrä)
Avaruuskappaleiden levityskuvat
Trigonometriset funktiot
Muutosprosentti
Keskiarvo, mediaani, moodi
Alkuluvut, satunnaisluvut
Aritmeettiset lukujonot
Fraktaalit
20
Ohjelmoinnin käsitteetTietotyypit (luku, totuusarvo, kuva, merkkijono)
Funktio, argumentti, paluuarvo
Evaluointi
Vakioiden määrittely (globaalit muuttujat)
Kirjasto
Funktion määrittely, funktion parametrit muuttujina, funktion testaaminen
Totuusarvot, vertaisluoperaattorit, predikaatit, ehtolauseet, valintalauseet
Boolean operaattorit (and, or, not)
Rekursio (alkeistapauksen avulla, akkumulaatorin avulla, silmukkana)
Puhtaat funktiot vs. Sivuvaikutukset
Lokaalit muuttujat
Koodilohko
Listat
Higher Order - funktiot
* Call-back funktiot
* Eventit
22
Keskustelua (valitkaa toinen):
PEDAGOGIA:◦ Mitä haasteita ohjelmoinnin opettamiseen liittyy?◦ Miten ne ratkaistaan? ◦ Laatikaa koodiopettajan 10. käskyäTEHTÄVÄT:◦ Millainen on toimiva tehtävä? Millainen tehtävä ei
toimi? ◦ Analysoikaa jokin ohjelmointitehtävä: Mitä
tehtävä opettaa kolmesta A:sta.