SlideShare uma empresa Scribd logo
1 de 22
Koodausta kouluun
OHJELMOINTIHARJOITUKSIA MATEMATIIKAN
TUNNILLE
Tiina Partanen 7.9.2016
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
2
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)
3
Ohjelmointi yläkoulussa
koulutukset
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
4
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/
5
Tarmo
Toikkanen
Vuokko
Kangas
Tero
Toivanen
Tiina
Partanen
eEemeli kilpailun – kunniamaininta 2016
IT-kouluttajat ry
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
6
Ohjelman suoritus on vain
lausekkeiden sieventämistä
(/ (+ 4 8) (- 3 -3))
(/ 12 (- 3 -3))
(/ 12 6 )
2
7
(4 + 8) / (3 –(-3))
12 / (3 –(-3))
12 / 6
2
(overlay (circle 50 ”solid” ”red”)
(circle 100 ”solid” ”black”))
(overlay
(circle 100 ”solid” ”black”))
Ohjelman suoritus on vain
lausekkeiden sieventämistä
8
(overlay (circle 50 ”solid” ”red”)
(circle 100 ”solid” ”black”))
(overlay
(circle 100 ”solid” ”black”))
(overlay
)
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
9
https://users.soe.ucsc.edu/~linda/pubs/ACMInroads.pdf
7. Luokan materiaali
Oppilas harjoittelee kirjoittamaan ohjelmakoodia, joka suorittaa
yksinkertaisia laskutoimituksia tai piirtää geometrisia kuvioita.
Oppilas harjoittelee vertailuoperaattoreiden käyttöä väite- ja
ehtolauseissa tutustuessaan totuusarvoihin.
10
7.lk Kuvakoodaus
- motivaatio, opitaan funktion käsite käyttämällä
valmiita funktioita, jaetaan ongelma osiin
11
Kilpikonna-grafiikkaa
- Racket Turtle – kirjaston avulla voidaan opiskella geometriaa (mm.
monikulmion kulmien ja sivujen suhteita, peilausta, koordinaatistoa...)
12
7.lk 7.lk 9.lk
8. Luokan materiaali
Oppilas oppii suunnittelemaan ja ohjelmoimaan algoritmin, jolla
voidaan ratkaista jokin ongelma tai tehtävä, joka voi olla esim.
animaatio tai peli.
13
8.lk Animaatio
- ehdollisuus, toistuvan jakson tunnistaminen, valmiin
funktion muokkaaminen (muuttujana aika)
14
http://www.wescheme.org/view?publicId=dt7UzDWgmb
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.
15
Funktion suunnitteluportaat
16
How to design programs – design recipe
9.lk Automatisointi
- matemaattisen kaavan ohjelmointi automaattilaskuriksi, oman
funktion kirjoittaminen ja testaaminen
Koodi voidaan jakaa WeSchemen kautta (laskuri toimii selaimessa):
17
http://www.wescheme.org/view?publicId=gyRmetZwR0
http://www.wescheme.org/view?publicId=Gst
erQxRVj
Ajatusten lukija:
Muissa oppiaineissa
- tietokilpailu (quiz) tehtävät kertaamiseen, lista tietorakenteena,
valmiin koodin muokkaaminen omaan käyttöön
18
Esimerkkejä:
http://www.wescheme.org/view?publicId=K83HHMonx2
http://www.wescheme.org/view?publicId=bdDRSxD3U0
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
19
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
Ohjelmoinnin käsitteet
Tietotyypit (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)
20
Rekursio (alkeistapauksen
avulla, akkumulaatorin avulla,
silmukkana)
Puhtaat funktiot vs.
Sivuvaikutukset
Lokaalit muuttujat
Koodilohko
Listat
Higher Order - funktiot
* Call-back funktiot
* Eventit
Ohjelmointitehtävien analysointi
kolmen A:n pohjalta
algoritmi
abstraktioautomatisointi
21
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.
22

Mais conteúdo relacionado

Destaque (9)

Racket MOOC - jakso 1
Racket MOOC - jakso 1Racket MOOC - jakso 1
Racket MOOC - jakso 1
 
Ohjelmoinnin historiaa
Ohjelmoinnin historiaaOhjelmoinnin historiaa
Ohjelmoinnin historiaa
 
Kehittämiskeskus OPINKIRJO. Maaliskuu 2016
Kehittämiskeskus OPINKIRJO. Maaliskuu 2016Kehittämiskeskus OPINKIRJO. Maaliskuu 2016
Kehittämiskeskus OPINKIRJO. Maaliskuu 2016
 
Koodauksen ensiaskeleet
Koodauksen ensiaskeleetKoodauksen ensiaskeleet
Koodauksen ensiaskeleet
 
Racket alkeet 1. Peruslaskut
Racket alkeet   1. PeruslaskutRacket alkeet   1. Peruslaskut
Racket alkeet 1. Peruslaskut
 
Racket perusteet 3. Funktio
Racket perusteet 3. FunktioRacket perusteet 3. Funktio
Racket perusteet 3. Funktio
 
Racket alkeet 2. Kuvat
Racket alkeet   2. KuvatRacket alkeet   2. Kuvat
Racket alkeet 2. Kuvat
 
Racket MOOC - jakso 2
Racket MOOC - jakso 2Racket MOOC - jakso 2
Racket MOOC - jakso 2
 
Racket mooc 2017 - aikataulu
Racket mooc 2017 -  aikatauluRacket mooc 2017 -  aikataulu
Racket mooc 2017 - aikataulu
 

Semelhante a Racket materiaali (Koodausta kouluun - projekti)

Nojanmaan Koulun Tietostrategian PäIvitys
Nojanmaan Koulun Tietostrategian PäIvitysNojanmaan Koulun Tietostrategian PäIvitys
Nojanmaan Koulun Tietostrategian PäIvitys
paku1971
 
Digitaalisuus osana opetusta 14.12.17
Digitaalisuus osana opetusta 14.12.17 Digitaalisuus osana opetusta 14.12.17
Digitaalisuus osana opetusta 14.12.17
Matleena Laakso
 

Semelhante a Racket materiaali (Koodausta kouluun - projekti) (20)

Koodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynoteKoodiaapinen MOOC - keynote
Koodiaapinen MOOC - keynote
 
Ohjelmointi
OhjelmointiOhjelmointi
Ohjelmointi
 
Scratch-ohjelmointia
Scratch-ohjelmointiaScratch-ohjelmointia
Scratch-ohjelmointia
 
Ohjelmointikielet ja -paradigmat - kalvot 2014
Ohjelmointikielet ja -paradigmat - kalvot 2014Ohjelmointikielet ja -paradigmat - kalvot 2014
Ohjelmointikielet ja -paradigmat - kalvot 2014
 
Ohjelmointi ja OPS
Ohjelmointi ja OPSOhjelmointi ja OPS
Ohjelmointi ja OPS
 
Koodiaapinen oulu 28.11.2015
Koodiaapinen oulu 28.11.2015Koodiaapinen oulu 28.11.2015
Koodiaapinen oulu 28.11.2015
 
Verkon helpot palvelut 29.8.17
Verkon helpot palvelut 29.8.17Verkon helpot palvelut 29.8.17
Verkon helpot palvelut 29.8.17
 
Seniorien ohjelmointikoulu
Seniorien ohjelmointikoulu Seniorien ohjelmointikoulu
Seniorien ohjelmointikoulu
 
Processing
ProcessingProcessing
Processing
 
Videota mobiilisti
Videota mobiilistiVideota mobiilisti
Videota mobiilisti
 
OPS2016 ja ohjelmointi
OPS2016 ja ohjelmointiOPS2016 ja ohjelmointi
OPS2016 ja ohjelmointi
 
OPS2016 ja ohjelmointi
OPS2016 ja ohjelmointiOPS2016 ja ohjelmointi
OPS2016 ja ohjelmointi
 
T 121 5300 (2008) User Interface Design 1 Final
T 121 5300 (2008) User Interface Design 1   FinalT 121 5300 (2008) User Interface Design 1   Final
T 121 5300 (2008) User Interface Design 1 Final
 
Digityökaluja ammatillisen open työkalupakkiin 23.2.18
Digityökaluja ammatillisen open työkalupakkiin 23.2.18Digityökaluja ammatillisen open työkalupakkiin 23.2.18
Digityökaluja ammatillisen open työkalupakkiin 23.2.18
 
Cmap Tools
Cmap ToolsCmap Tools
Cmap Tools
 
Veso2012: Videoita vaivattomasti
Veso2012: Videoita vaivattomastiVeso2012: Videoita vaivattomasti
Veso2012: Videoita vaivattomasti
 
Pedagoginen piristysruiske kieltenopettajille
Pedagoginen piristysruiske kieltenopettajillePedagoginen piristysruiske kieltenopettajille
Pedagoginen piristysruiske kieltenopettajille
 
Sähköiset työvälineet ja sovellukset opetuksessa
Sähköiset työvälineet ja sovellukset opetuksessaSähköiset työvälineet ja sovellukset opetuksessa
Sähköiset työvälineet ja sovellukset opetuksessa
 
Nojanmaan Koulun Tietostrategian PäIvitys
Nojanmaan Koulun Tietostrategian PäIvitysNojanmaan Koulun Tietostrategian PäIvitys
Nojanmaan Koulun Tietostrategian PäIvitys
 
Digitaalisuus osana opetusta 14.12.17
Digitaalisuus osana opetusta 14.12.17 Digitaalisuus osana opetusta 14.12.17
Digitaalisuus osana opetusta 14.12.17
 

Mais de Tiina Partanen

Mais de Tiina Partanen (19)

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
 
Ohjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: JatkokurssiOhjelmointi yläkoulussa: Jatkokurssi
Ohjelmointi yläkoulussa: Jatkokurssi
 
Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)Racket MOOC 2016 aikataulu (SYKSY)
Racket MOOC 2016 aikataulu (SYKSY)
 
Kurkistus koodaukseen
Kurkistus koodaukseenKurkistus koodaukseen
Kurkistus koodaukseen
 
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 perusteet - Sovellukset A
Racket perusteet - Sovellukset ARacket perusteet - Sovellukset A
Racket perusteet - Sovellukset A
 
Legorobottialkeet
LegorobottialkeetLegorobottialkeet
Legorobottialkeet
 
Lapset koodaa?
Lapset koodaa?Lapset koodaa?
Lapset koodaa?
 
Racket MOOC viikko 5
Racket MOOC viikko 5Racket MOOC viikko 5
Racket MOOC viikko 5
 
Racket jatko 6. Listat
Racket jatko 6. ListatRacket jatko 6. Listat
Racket jatko 6. Listat
 
Racket MOOC - viikko 3
Racket MOOC - viikko 3Racket MOOC - viikko 3
Racket MOOC - viikko 3
 
Racket jatko 7. oppitunti
Racket jatko 7. oppituntiRacket jatko 7. oppitunti
Racket jatko 7. oppitunti
 
Racket mooc - viikko 2
Racket mooc - viikko 2Racket mooc - viikko 2
Racket mooc - viikko 2
 
Racket MOOC - 1. viikko
Racket MOOC - 1. viikkoRacket MOOC - 1. viikko
Racket MOOC - 1. viikko
 
Racket jatko 5. Rekursio
Racket jatko 5. RekursioRacket jatko 5. Rekursio
Racket jatko 5. Rekursio
 

Último

Immunologian perusteet: valkosolutyyppien yhteistyö, elinsiirrot, allergia
Immunologian perusteet: valkosolutyyppien yhteistyö, elinsiirrot, allergiaImmunologian perusteet: valkosolutyyppien yhteistyö, elinsiirrot, allergia
Immunologian perusteet: valkosolutyyppien yhteistyö, elinsiirrot, allergia
Pasi Vilpas
 

Último (9)

Kasvatus, koulutus, opetus ja osaaminen Suomessa
Kasvatus, koulutus, opetus ja osaaminen SuomessaKasvatus, koulutus, opetus ja osaaminen Suomessa
Kasvatus, koulutus, opetus ja osaaminen Suomessa
 
Immunologian perusteet: valkosolutyyppien yhteistyö, elinsiirrot, allergia
Immunologian perusteet: valkosolutyyppien yhteistyö, elinsiirrot, allergiaImmunologian perusteet: valkosolutyyppien yhteistyö, elinsiirrot, allergia
Immunologian perusteet: valkosolutyyppien yhteistyö, elinsiirrot, allergia
 
Aikuiskoulutus, jatkuva oppiminen, elinikäinen oppiminen ja henkilöstökoulutus
Aikuiskoulutus, jatkuva oppiminen, elinikäinen oppiminen ja henkilöstökoulutusAikuiskoulutus, jatkuva oppiminen, elinikäinen oppiminen ja henkilöstökoulutus
Aikuiskoulutus, jatkuva oppiminen, elinikäinen oppiminen ja henkilöstökoulutus
 
Koululaiset, opiskelija, oppijat ja lapset sekä tutkinnot
Koululaiset, opiskelija, oppijat ja lapset sekä tutkinnotKoululaiset, opiskelija, oppijat ja lapset sekä tutkinnot
Koululaiset, opiskelija, oppijat ja lapset sekä tutkinnot
 
Koulutuksen rahoitus, tulot, menot ja talous
Koulutuksen rahoitus, tulot, menot ja talousKoulutuksen rahoitus, tulot, menot ja talous
Koulutuksen rahoitus, tulot, menot ja talous
 
Jedhi Malee (just do it).pdf
Jedhi Malee             (just do it).pdfJedhi Malee             (just do it).pdf
Jedhi Malee (just do it).pdf
 
Koulutuksen palkat ja kustannukset sekä koulutuksen ansiot
Koulutuksen palkat ja kustannukset sekä koulutuksen ansiotKoulutuksen palkat ja kustannukset sekä koulutuksen ansiot
Koulutuksen palkat ja kustannukset sekä koulutuksen ansiot
 
Tutkimus-, kehittämis- ja innovaatiotoiminnan rahoitus
Tutkimus-, kehittämis- ja innovaatiotoiminnan rahoitusTutkimus-, kehittämis- ja innovaatiotoiminnan rahoitus
Tutkimus-, kehittämis- ja innovaatiotoiminnan rahoitus
 
Oppimateriaaleihin, menetelmiin ja sovelluksiin tutustuminen 2.5.24
Oppimateriaaleihin, menetelmiin ja sovelluksiin tutustuminen 2.5.24Oppimateriaaleihin, menetelmiin ja sovelluksiin tutustuminen 2.5.24
Oppimateriaaleihin, menetelmiin ja sovelluksiin tutustuminen 2.5.24
 

Racket materiaali (Koodausta kouluun - projekti)

  • 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 2
  • 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) 3
  • 4. Ohjelmointi yläkoulussa koulutukset 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 4
  • 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/ 5 Tarmo Toikkanen Vuokko Kangas Tero Toivanen Tiina Partanen 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 6
  • 7. Ohjelman suoritus on vain lausekkeiden sieventämistä (/ (+ 4 8) (- 3 -3)) (/ 12 (- 3 -3)) (/ 12 6 ) 2 7 (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ä 8 (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 9 https://users.soe.ucsc.edu/~linda/pubs/ACMInroads.pdf
  • 10. 7. Luokan materiaali Oppilas harjoittelee kirjoittamaan ohjelmakoodia, joka suorittaa yksinkertaisia laskutoimituksia tai piirtää geometrisia kuvioita. Oppilas harjoittelee vertailuoperaattoreiden käyttöä väite- ja ehtolauseissa tutustuessaan totuusarvoihin. 10
  • 11. 7.lk Kuvakoodaus - motivaatio, opitaan funktion käsite käyttämällä valmiita funktioita, jaetaan ongelma osiin 11
  • 12. Kilpikonna-grafiikkaa - Racket Turtle – kirjaston avulla voidaan opiskella geometriaa (mm. monikulmion kulmien ja sivujen suhteita, peilausta, koordinaatistoa...) 12 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. 13
  • 14. 8.lk Animaatio - ehdollisuus, toistuvan jakson tunnistaminen, valmiin funktion muokkaaminen (muuttujana aika) 14 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. 15
  • 16. Funktion suunnitteluportaat 16 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): 17 http://www.wescheme.org/view?publicId=gyRmetZwR0 http://www.wescheme.org/view?publicId=Gst erQxRVj Ajatusten lukija:
  • 18. Muissa oppiaineissa - tietokilpailu (quiz) tehtävät kertaamiseen, lista tietorakenteena, valmiin koodin muokkaaminen omaan käyttöön 18 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 19 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äsitteet Tietotyypit (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) 20 Rekursio (alkeistapauksen avulla, akkumulaatorin avulla, silmukkana) Puhtaat funktiot vs. Sivuvaikutukset Lokaalit muuttujat Koodilohko Listat Higher Order - funktiot * Call-back funktiot * Eventit
  • 21. Ohjelmointitehtävien analysointi kolmen A:n pohjalta algoritmi abstraktioautomatisointi 21
  • 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. 22