racket materiaali (koodausta kouluun - projekti)

22
Koodausta kouluun OHJELMOINTIHARJOITUKSIA MATEMATIIKAN TUNNILLE Tiina Partanen 7.9.2016

Upload: tiina-partanen

Post on 14-Apr-2017

198 views

Category:

Education


0 download

TRANSCRIPT

Koodausta kouluunOHJELMOINTIHARJOITUKSIA MATEMATIIKAN TUNNILLE

Tiina Partanen 7.9.2016

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

21

Ohjelmointitehtävien analysointi kolmen A:n pohjalta

algoritmi

abstraktioautomatisointi

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.