Ohje - Oulu

LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
8.10.2015 14:53
MatemaattinenOhjelmointijaYhtälönratkaisu(MOJYR)
Sisällysluettelo
Matemaattinen Ohjelmointi ja Yhtälönratkaisu (MOJYR) ............................................................................. 1
1. Taustaa ................................................................................................................................................ 1
2. MOJYR-ohjelma.................................................................................................................................... 2
2.1 Ohjelman asentaminen .................................................................................................................. 2
2.2 Käyttöliittymä................................................................................................................................. 2
3. Puumalli ............................................................................................................................................... 3
4. MOJYR-ohjelman ominaisuudet ........................................................................................................... 5
4.1 Yhtälön muodostaminen ................................................................................................................ 5
4.2 Muunnokset ................................................................................................................................... 6
4.3 Vaakamalli...................................................................................................................................... 7
4.4 Kuvaajat ......................................................................................................................................... 7
4.5 Vertailu .......................................................................................................................................... 8
5. Ohjelmointi .......................................................................................................................................... 9
Liitteet ....................................................................................................................................................11
1.Taustaa
Opetus-ja kulttuuriministeriön rahoittaman LUMA SUOMI –kehittämisohjelman yhtenä hankkeena on
tammikuussa 2015 käynnistynyt ’Joustava yhtälönratkaisu’, jossa kehitellään yläkouluun sopivaa
oppimateriaalia yhtälönratkaisuun liittyen. Ohjelman tavoitteena on lisätä lasten ja nuorten motivaatiota
opiskella luonnontieteitä ja matematiikkaa sekä uudistaa näiden aineiden opetusta vuodesta 2016 lähtien
käyttöön otettavan uuden opetussuunnitelman mukaan.
Ohjelmointi kuuluu syksystä 2016 lähtien uuteen opetussuunnitelmaan ja pääsääntöisesti ohjelmointia
tullaan opettamaan matematiikan yhteydessä. Joustavan yhtälönratkaisun hankkeessa ohjelmointiin
liittyviä taitoja harjoitellaan tietokoneavusteisesti hanketta varten kehitellyn MATLAB-pohjaan perustuvan
tietokoneohjelman avulla. Tavoitteena on herättää oppilaiden kiinnostus ohjelmointiin matemaattisesti
tutussa ympäristössä ja samalla kehittää oppilaiden yhtälönratkaisutaitoja.
1
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
8.10.2015 14:53
2.MOJYR-ohjelma
2.1Ohjelmanasentaminen
Joustavan yhtälönratkaisun hanketta varten kehitetty ohjelma perustuu MATLAB-tietokoneohjelmistoon
http://se.mathworks.com/products/matlab/ , joka sisältää myös ohjelmointiympäristön. Ohjelman
asentamiseksi ei tarvita MATLAB-ohjelmistoa, vaan ohjelma voidaan ajaa itsenäisenä sovelluksena
lataamalla MATLAB-kirjasto (MATLAB Compiler Runtime) MCR, joka voidaan lataa sivustolta
http://se.mathworks.com/products/compiler/mcr/index.html (koko n. 0,5 Gt). Ohjelmaa varten vaaditaan
MCR versio R2015b (9.0). Windows-käyttöjärjestelmää käyttävät voivat valita 32-bittisen MCR-version.
Asennuksen aikana vaaditaan ylläpitäjän oikeudet. Asennuksen jälkeen voidaan ladata MOJYR-ohjelmassa
tarvittavat tiedostot ja käynnistää ohjelma MOJYR.exe –tiedostolla.
2.2Käyttöliittymä
Ohjelman käyttöliittymä on esitetty alla olevassa kuvassa. Ohjelman käyttöliittymä rakentuu erilaisista
”tiloista”, joista tärkeimpiä ovat oikeassa laidassa oleva ”Muunnokset”-tila sekä keskellä oleva ”Yhtälöt”tila. Vasemmassa laidassa oleva tila voidaan vaihtaa toiseksi. Vaihtoehtoisia tiloja ovat: ”Vaa’at”.
”Kuvaajat”, ”Puut” ja ”Vertailu
Näytä -> Optionsvalikosta voit
vaihtaa
esimerkiksi fontin
asetuksia
Puut-tilan voit vaihtaa
Näytä-valikosta toiseksi.
Vaihtoehtoja ovat puut,
vaa’at, kuvaajat ja vertailu
Moodi-tilasta voit valita,
tarkasteletko yhtälön
vasenta/oikeaa
lauseketta tai kokonaista
YYhtälöt-tilasssa näet
ohjelman tekemän yhtälön
Ilmoitukset-tilassa näet
mahdolliset
virheilmoitukset ja
ohjelman tekemien
laskujen lukumäärän
Muunnokset-tilassa näet
kirjoittamasi komennot. Voit
myös kirjoittaa suoraan tähän
komentoja olevaan Muunnokset –
tilaan voit kirjoittaa erilaisia
Muunnokset-tilassa voit kirjoittaa
erilaisia komentoja, joita ohjelma
suorittaa. Ohjelma suorittaa
komennon kun valitset ”Syötä”
2
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
8.10.2015 14:53
3.Puumalli
Joustavan yhtälönratkaisun projektissa lausekkeen rakennetta havainnollistetaan ns. puumallin (engl.
expression tree) avulla, jolla on keskeinen rooli myös MOJYR-ohjelmassa. Jokaista lausekkeeseen kuuluvaa
osaa merkitään noodin (engl. node) avulla, joka on operaatiota (esim. yhteenlasku tai kertolasku) kuvaava
symboli sekä noodiin kuuluvien lapsien (engl. child) avulla, joita ovat operaation kuuluvat osat.
Yhteenlaskuun kuuluvia osia nimitetään termeiksi ja kertolaskuun kuuluvia osia tekijöiksi. Kuvassa 1 on
esitetty puumallin rakenne.
+
+
Kahden termin
ja
summa
+
Kahden termin
Kahden termin
ja
erotus
−
·
·
ja
osamäärä
Kahden tekijän
ja
tulo
∙
Kuva 1. Puumallin keskeiset käsitteet
Jokaiseen noodiin kuuluu vähintään yksi tai useampi lapsi, jonka seurauksena puumallin ulkoinen rakenne
on alaspäin haarautuva, jonka juurena eli ylimpänä kohtana on se noodi, joka tulee laskujärjestyksessä
viimeisenä. Vastaavasti puumallissa alimmat noodit ovat niitä operaatioita, jotka lausekkeessa tulevat
laskujärjestyksessä ensimmäisinä. Kuvassa 2 on esitetty, kuinka lauseke voidaan muodostaa puumallista.
Joustavan yhtälönratkaisun luvussa 1 puumallia on käsitelty tarkemmin.
3
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
8.10.2015 14:53
2 −3
+
∙
2 + (−3)
2 +
2
2∙
Kuva 2. Lausekkeen muodostaminen puumallista
MOJYR-ohjelmassa yhtälöitä ratkaistaan tekemällä sille sallittuja muunnoksia, joista osa vaatii toimiakseen
erilaisia määritteitä. Näitä määritteitä havainnollistetaan polkurakenteen avulla, jota on helpointa käsitellä
puumallin avulla. Jokainen lausekkeen osa on merkitty polkumuodossa niin, että jokainen osa on numeroitu
vasemmalta oikealle 1,2,3… Vastaavasti esimerkiksi noodiin 1 kuuluvia lapsia merkitään 1.1, 1.2, 1.3…
0
1
1.1.1
2
1.1
1.2
1.1.2
1.1.3
Esimerkki. Lausekkeen
+
+
2
∙
2.1
2.2
3
3.1
2.3
polkuargumentit
0
+
1
1.3
∙
3.2
+
Polku 0
1
x
·
Polku 1
Polku 2
Polku 3
2
3
Polku 3.1
Polku 3.2
4
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
Esimerkki. Puumalli lausekkeesta (
1
1.1
1.2
+
+ )+(
+
+
+ )
0
+
1.3
1.2.2
2
2.1
∙
1.2.1
8.10.2015 14:53
∙
2.1.1
2.2
2.1.2
4.MOJYR-ohjelmanominaisuudet
4.1Yhtälönmuodostaminen
Lausekkeet ja niistä muodostetut yhtälöt ovat MOJYR-ohjelman keskeisin matemaattinen sisältö.
Ratkaistava yhtälö voidaan valita valmiina olevista vaihtoehdoista tai se voidaan myös luoda itse
syöttämällä Muunnokset –tilaan Yhtalo(’’;’’) haluttu yhtälö siten, että yhtälön vasen puoli sijoitetaan
ensimmäisten ’’-merkkien väliin ja oikea puoli vastaavasti toisten ’’-merkkien väliin. ”Yhtälöt”-tilassa
voidaan myös tarkastella erikseen yhtälön vasemman puolen tai oikean puolen lauseketta valitsemalla
yläpalkista ”Moodi”-tilasta ”Lauseke (vasen)”, ”Lauseke (oikea)” tai ”Yhtälö”.
Yhtälö voidaan muodostaa myös helposti valitsemalla aluksi: Tiedosto -> Uusi. Tämän jälkeen yhtälö
voidaan kirjoittaa Muunnokset –tilaan Yhtalo(’0’ ; ’0’) korvaamalla luvut 0 yhtälön vasemmalla ja oikealla
puolella.
Esimerkki.
Ohjelman avulla halutaan ratkaista yhtälö 2 + 3( + 1) = 7
Muunnokset-tilaan kirjoitetaan komento: Yhtalo(’2*x+3*(x+1)’;’7’)
Huom! Ohjelmaa varten kertolaskua merkitään aina *-symbolilla ja vastaavasti jakolaskua /-komennolla.
5
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
8.10.2015 14:53
Yhtälön muodostamisen jälkeen valitaan haluttu esitysmuoto, joka voidaan halutessa vaihtaa myös toiseksi.
Esitysmuoto vaihdetaan valitsemalla yläpalkista ”Näytä” ja valitaan joko vaa’at, kuvaajat, puut tai vertailu.
4.2Muunnokset
Yhtälön muodostamisen jälkeen sille voidaan tehdä sallittuja muunnoksia, joista tärkeimpiä ovat:
lisääminen/vähentäminen, kertominen/jakaminen ja samanmuotoisten termien yhdistäminen.
Samanmuotoisten termien yhdistäminen onnistuu ohjelmassa laske-komennolla, joka vaatii määritteiksi
polun sekä ensimmäisen ja toisen laskettavan termin. Ohjelma yhdistää termit siihen kuuluvan operaation
avulla jos termit ovat keskenään samanmuotoisia. Lisääminen, vähentäminen, kertominen ja jakaminen
ovat esimerkkejä sellaisista muunnoksista, jotka eivät tarvitse erillisiä polkumääritteitä. Esimerkiksi yhtälön
kertominen puolittain kolmella onnistuu muunnoksella kerro(3).
Liitteenä olevassa taulukossa on esitetty ohjelmassa käytettyjä muunnoksia.
Esimerkki 3. Lausekkeen sieventäminen MOJYR-ohjelmalla
MOJYR-ohjelman avulla halutaan laskea lausekkeessa 1 + +
Määritetään ensin polkuargumentit puumallin avulla:
+2+
toinen ja kolmas termi yhteen.
0
+
1
2
3
4
5
Toisen termin polkuargumentti on siis 2 ja kolmannen 3 eli ohjelmalle annettava komento olisi:
1+ + +2+
laske(; 0; 2; 3)
1+2 +2+
Luku 0 tarkoittaa laske –muunnoksessa sitä + noodia, minkä lapsia yhteenlaskettavat termit ovat. Tällä
noodilla on yhteensä viisi lasta, joiden paikat on numeroitu yhdestä viiteen.
Jos seuraavaksi haluttaisiin laskea yhteen termit 1 (polkuargumentti 1) ja 2 (polkuargumentti 3) niin
ohjelmalle annettava komento olisi:
6
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
1+2 +2+
3+2 +
8.10.2015 14:53
laske(; 0; 1; 3)
Seuraava komento voisi olla laske(; 0; 2; 3), jolloin ohjelma laskisi yhteen termit 2 ja
lauseke olisi 3 + 3
ja sievennetty
4.3Vaakamalli
Puumallin ohella yhtälöä voidaan havainnollistaa myös vaakamallin avulla. Vaakamallin
tarkoituksena on havainnollistaa, että yhtälön täytyy pysyä tasapainossa kun siihen tehdään
erilaisia muunnoksia. Ohjelmassa käytetyssä vaakamallissa termejä kuvataan erilaisten
värikoodattujen kuvioiden avulla, joiden selitykset näkyvät vasemmassa alalaidassa. Vaakamallin
periaate on esitetty kuvassa 3.
Kuva. MOJYR-ohjelman vaakamalli
Yksittäiset termit, kuten kuvassa 3 7 ja 5x merkitään vaakamallissa 1 värikoodattuina palloina,
joiden lukumäärä vastaa termien lukumäärää. Vaihtoehtoisessa vaakamallissa 2 termien
lukumäärä ilmaistaan pallon kokona. Sulkulausekkeet merkitään värikoodattuina säkkeinä, joiden
lukumäärä ilmaistaan samalla tavalla kuin yksittäisten termien tapauksessa.
Yhtälön ratkaiseminen voidaan aloittaa myös tekemällä muutoksia suoraan vaakamalliin
klikkaamalla vaakamallin symboleita hiiren oikealla painikkeella, jolloin avautuu omaan ikkunaan
mahdollisia operaatioita, joita kyseiseen termiin voidaan tehdä. Esimerkiksi klikkaamalla termiä
2( − 1) voidaan valita komento: ”Avaa säkit: osita toinen termi”, jolloin ohjelma poistaa sulkeet
ja saadaan uusi termi 2 − 2 ∙ 1.
Termejä voidaan myös esimerkiksi laskea vaakamallissa yhteen. Jotta ohjelma suorittaisi halutun
operaation, ”Muunnoksen syöttö” –tilasta voidaan tarkistaa, että polun ja termien argumentit
ovat oikein. (Termien numerointi on vasemmalta oikealle 1,2,3, …)
4.4Kuvaajat
7
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
8.10.2015 14:53
Yhtälön malliksi voidaan myös valita kuvaajat, jolloin ohjelma piirtää yhtälön vasemmasta ja
oikeasta puolesta kuvaajat samaan koordinaatistoon, jolloin yhtälön ratkaisu löytyy kuvaajien
leikkauspisteestä. Klikkaamalla koordinaatistoa, saadaan suurennos kuvaajista. Kuvaajien
tarkoituksena on havainnollistaa, kuinka yhtälön ratkaisu voidaan löytää myös graafisesti.
Kuvaajien leikkauskohdan koordinaatteja ei voi kuitenkaan määrittää, vaan käyttäjän on
ratkaistava yhtälö algebrallisesti.
Kuva. Kuvaajat.
4.5Vertailu
Joustavan yhtälönratkaisun projektin keskeisenä tavoitteena on saada oppilaat ymmärtämään,
että matematiikassa on tärkeää oppia löytämään ja vertailemaan useita ratkaistutapoja.
Yhtälönratkaisussa erilaisten ratkaisutapojen rinnakkaisen vertailun on todettu edistävän
matemaattista ymmärrystä (ks. http://ouluma.fi/joustava-yhtalonratkaisu/hankkeen-taustaa/)
Ohjelmalla voidaan harjoitella joustavien ratkaisutapojen vertailua vaihtamalla representaatioksi
”Vertailu”, jolloin voidaan verrata kahdessa vierekkäisessä ikkunassa kahta erilaista ratkaisutapaa
samasta yhtälöstä. Vertailun periaate on esitetty kuvassa 5.
8
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
8.10.2015 14:53
Kuva 5. Vertailu.
Vertailussa voidaan käyttää hyödyksi ”Tietokone 1”- ja ”Tietokone 2” –ominaisuuksia. Tietokone
voi vertailutilassa ratkaista yhtälön välivaiheineen ja käyttäjä voi ratkaista yhtälön käyttäen
erilaista lähestymistapaa.
5.Ohjelmointi
Ohjelmointina voidaan pitää ohjelmointikielelle käännettyjen ohjeiden antamista tietokoneelle.
Ohjelmoinnissa tarvitaan loogisia päättelytaitoja ja kykyä ratkaista ongelmia luovasti. Samat taidot ovat
myös matematiikassa tärkeitä ja MOJYR-ohjelman avulla pyritään kehittämään ohjelmointiin
matemaattisessa ympäristössä.
Lausekkeesta muodostettu puumalli täydennettynä polkurakenteella muodostaa MOJYR-ohjelman
tietorakenteen. Puumalli on yleisesti ohjelmoinnissa käytetty tietorakenne ja MOJYR-ohjelmassa sitä
käytetään myös lausekkeen rakenteen havainnollistamiseen. Tämä rakenne mahdollistaa sen, että
ohjelman käyttäjä pystyy operoimaan kahdesta lausekkeesta muodostettua yhtälöä niin, että myös ohjelma
ymmärtää käyttäjän suorittamat komennot.
Yhtälöön tehdyistä muunnoksista ja niihin kuuluvista polkumääritteistä muodostuu ohjelmointikieli, jota
sekä ohjelma, että käyttäjä ymmärtävät. Ohjelmassa on mahdollista myös tallentaa muunnokset erillisenä
skriptinä, joka sisältää käyttäjän muodostaman komentorivin.
9
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
Esimerkki. Yhtälön ( + ) =
8.10.2015 14:53
ratkaisu skriptimuodossa
Skripti
Selitys
Skripti-201510811455.244
Tallennettu skripti
Yhtalo('3*(x+2)', '15')
Muodostetaan yhtälö 3( + 2) = 15
osita(vas; ; 2)
laske(vas; 2; 1; 2)
vahenna(6)
laske(vas; ; 2; 3)
laske(oik; ; 1; 2)
Avataan sulkeet
Lasketaan kertolasku 3 ∙ 2
Vähennetään 6 yhtälön molemmilta puolilta
Lasketaan yhtälön vasemmalla puolella 6 − 6
poistaNeutraalialkio(vas; ; 2)
Lasketaan yhtälön oikealla puolella 15 − 6
jaa(3)
Jaetaan yhtälön molempia puolia kolmella
laske(vas; ; 1; 3)
laske(oik; ; 1; 2)
poistaNeutraalialkio(vas; ; 1)
Poistetaan yhtälön vasemmalta puolelta 0
Lasketaan yhtälön vasemmalla puolella 3/3
Lasketaan yhtälön oikealla puolella 9/3
Poistetaan lopuksi tulon neutraalialkio 1
Alla olevassa kuvassa on esitetty MOJYR-ohjelman tekemänä sama ratkaisu kuin edellisessä esimerkissä.
Kuva Yhtälön 3( + 2) = 15 ratkaisu MOJYR-ohjelmalla
10
LUMA Suomi –kehittämisohjelma
Joustava yhtälönratkaisu
Matemaattinen Ohjelmointi ja Yhtälönratkaisu
8.10.2015 14:53
Liitteet
Muunnos
laske
Selitys
vaihda
Suorittaa kahden termin (argumenttina polku) välisen
operaation.
Vaihtaa kahden termin paikkaa keskenään
yhdista
Yhdistää samanmuotoisia termejä
osita
Kertoo sulut auki sulkujen edessä olevalla tekijällä
ositaOikealta
Kertoo sulut auki sulkujen jälkeen olevalla tekijällä
eriyta
poistaTurhaSulku
Eriyttää termejä muodostamalla sulkulausekkeita
Poistaa ylimääräiset sulut
poistaNeutraalialkio
poistaNollallaKertominen
jako2murtoluku
Poistaa neutraalialkion (kertolaskuissa 1 ja yhteenlaskuissa 0)
Nollalla kertomisen tuloksena saadaan 0
vahennys2negatiivinen
#kumoaVasenPienempi
#kumoaOikeaPienempi
lisaa
Yhdistää samanmuotoisia termejä yhtälön molemmilta puolilta
Yhdistää samanmuotoisia termejä yhtälön molemmilta puolilta
Lisää halutun termin yhtälön molemmille puolille
vahenna
kerro
jaa
Vähentää halutun termin yhtälön molemmilta puolilta
Kertoo yhtälön molempia puolia halutulla termillä
Jakaa yhtälön molempia puolia halutulla termillä
11