170 likes | 188 Views
Ohjelmointia matematiikkaan. Matematiikkaa ohjelmointiin Vaihtoehto e-Opilta Tuomo Riekkinen, Pyhäselän koulu, Joensuu. OPS 2014. ohjata oppilasta kehittämään algoritmista ajatteluaan sekä taitojaan soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisemiseen.
E N D
Ohjelmointia matematiikkaan Matematiikkaa ohjelmointiin Vaihtoehto e-Opilta Tuomo Riekkinen, Pyhäselän koulu, Joensuu
OPS 2014 • ohjata oppilasta kehittämään algoritmista ajatteluaan sekä taitojaan soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisemiseen. • Oppilas osaa soveltaa algoritmisen ajattelun periaatteita ja osaa ohjelmoida yksinkertaisia ohjelmia. • Luokilla 7–9 aloitetaan perehtyminen johonkin oikeaan ohjelmointikieleen
Ohjelmointikielen valinta? • Java • JavaScript • C, C++, C# • Basic • Pascal, Delphi • PHP • Ruby • Python • Racket • PHP • Processing • Scratch • Swift • Koodin selkeys ja yksinkertaisuus, pedagogisesti mielekäs! • Ohjelmointiympäristön ilmaisuus ja jatkuvuus. • Laitteistoriippumattomuus (PC, iPAD) • Tulostus XY –koordinaatistoon, hyvät grafiikkakomennot (Geometria). • Laskukaavat: Ohjelmointi = Matematiikka • Voisiko ohjelmoinnista tulla työkalu matematiikkaan? Miten? • Tekniikka & Talous: Eniten työpaikkoja on tarjolla seuraavien kielten osaajille: C, Java, Python, C++ ja JavaScript.
Racket Racketissa sisäkkäiset funktiot monimutkaistavat koodia. Myös laskutoimitukset käsitellään funktion syötteenä. Lähde: http://racket.koodiaapinen.fi/
Ympyrän piirtäminen: Scratch Scratchissä ei ole piirtokomentoja. Kuviot luodaan liikuttamalla kynää. Jos ympyrä halutaan piirtää tarkasti, niin silloin tarvitaan jo trigonometrian kaavoja.
Python: turtle kirjasto importturtle myTurtle= turtle.Turtle(shape="turtle") myTurtle.penup() myTurtle.setposition(-120, 0) myTurtle.pendown() myTurtle.circle(50) myTurtle.penup() turtle.getscreen()._root.mainloop() Pythonille saatavana kirjastoja, joilla voitaisiin piirtää geometrisiä kuvioita, mutta niitä on hyödynnetty huonosti. Integrointi matematiikkaan jää heikoksi, samoin ohjelmoinnin tulostus jää tekstipohjaiseksi. Lähde: https://www.blog.pythonlibrary.org/2012/08/06/python-using-turtles-for-drawing/
Ympyrän piirtäminen: Processing Selkeät grafiikka-komennot, jotka tulostavat xy-koordinaatistoon. Matematiikan soveltaminen helppoa. voidsetup() { size(450,450); background(255,255,255); fill(0,255,255); } voiddraw() {ellipse(150,150,200,200); } Processing-kielellä on omat komennot. Oikeasti Processing-kieli käyttää taustalla java-tulkkia eli java-kieltä. Processing-kieli on selkeää, mutta yhtä tehokasta kuin java. Vaikka Processing-kieli on opetuskieli, niin silti saavutetaan oikean ohjelmointikielen hyödyt.
Processing: xy-koordinaatisto void setup() { size(400,400); // Koordinaatisto background(255); fill(0); } void draw () { translate(200,200); // Origokeskelle scale(1,-1); // y-kasvaaylös strokeWeight(1); line(200,0,-200,0); // x-akseli line(0,200,0,-200); // y-akseli strokeWeight(10); point(50,100); } Matematiikan xy-koordinaatisto helposti saavutettavissa.
Processing ≈ Scratch void setup() { size(400,400); // Koordinaatisto background(255); // Pyyhi strokeWeight(10); // Kynänkoko stroke(0,0,255); // Kynänväri } void draw () { translate(200,100); // Menekohtaan for (int a= 1; a<=36; a++) { // Toista ellipse(0,0,10,10); // Kynä alas translate(20,0); // Liiku 20 askelta rotate(radians(10)); // Käänny } } Processing-kielellä helppo saavuttaa Scratchiä vastaavat ohjelmointi rakenteet! Voi käyttää rinnan!
Oppikirjan sisältö • 7-luokka (12 h) • Koordinaatisto, ohjelmointiympäristö • Grafiikkakomennot: piste, viiva, teksti, ellipsi, suorakulmio, kolmio, nelikulmio, monikulmio, sektori, värin asettaminen. • Muuttujat, muuttujien väliset laskukaavat (+,-,*,/), pyöristys, satunnaisluku • If-lause, AND, OR operaatiot • 8-luokka (12 h) • Koordinaatiston muokkaus (siirto, skaalaus, peilaus, kierto) • Laskuri ja for-silmukka • Funktiot eli aliohjelmat, Konnagrafiikkaa • Extra: Matemaattiset funktiot, simulaatiot • 9-luokka (12 h) • Kertausta: muuttujat, laskukaavat, if-lause, silmukat (for, while) • Ympyräliike (sin ja cos kaavat) • 1-ulotteinen taulukko = lista • 2-ulotteinen taulukko, tilastojen esittäminen
Perustehtävät Algoritminen ajattelu Piirrä ympyrä, jonka säde on 50 ja keskipiste on paikassa (200,300) Tehtävä: Piirrä kolmio 1) 3) ellipse(200,300,100,100); Vaativammat tehtävät varint x = 200; varint y = 300; varint r = 50; ellipse(x,y,2*r,2*r); 2) 4) Soveltavat tehtävät for (a=5; a<50; a=a+5) { varint x = 200; varint y = 300; varint r = 50; ellipse(x,y,2*r-a,2*r-a); }
Algoritminen ajattelu Kirjan mukana animaatioita, joissa voidaan koodia ajaa riviriviltä!
Kirjan rakenne Opettaja pitää lyhyen (5-10min) opetuskeskustelun yhteenveto-osion esimerkkien avulla, jonka jälkeen mennään tekemään tehtäviä.
Eriyttäminen • LOPPUPÄÄN TEHTÄVÄT • LISÄTIETOA • KERTAUSTEHTÄVÄT YHTEENVETO + ALKUPÄÄN TEHTÄVÄT • SANALLINEN ALGORITMI • ANIMAATIOISTA APUA • PIIRTÄMINEN PAPERILLE • ESIMERKIT • SCRATCH VAIHTOEHTONA
Matematiikkafunktiot monikulmio(x,y,s,n,k); 8. luokan materiaalin mukana valmiita aliohjelma eli funktioita, joilla voidaan havainnollistaa matematiikkaa ohjelmoinnin keinoin. Otetaan käyttöön KOPIOI – LIITÄ toiminnon avulla!
Simulaatiot 8. luokan materiaalin mukana valmiita simulaatioita. Simulaatiot toimivat hiiri-ohjauksella. Otetaan käyttöön KOPIOI – LIITÄ toiminnon avulla!