Matematiikan soveltava projekti
Algoritmit
- Algoritmi on joukko toimenpiteitä (käskyjä), joilla jokin annettu tehtävä saadaan suoritettua.
- Toimenpiteissä edetään askel askeleelta.
- Toimenpiteiden tulisivat olla mahdollisimman selkeitä ja yksiselitteisiä.
- Toisin sanoen, kannattaa pitää huolta siitä, ettei annettuja käskyjä ole mahdollista tulkita väärin.
Miten löytää perille?
Miksi tämä ei ole toimiva algoritmi?
- Lauantaina lounaan jälkeen
- Kävele puiston läpi
- Joonas asuu kioskin lähellä
Miten algoritmistä voisi saada toimivamman? Kirjoita oma ehdotus!
Haluat käydä moikkaamassa Annaa. Anna asuu osoitteessa Teikäläisentie 18.
Miksi tämä ei ole toimiva algoritmi?
- Kävele samaa tietä suoraan eteenpäin
- Parin talon jälkeen olet perillä
Miten algoritmistä voisi saada toimivamman? Kirjoita oma ehdotus!
Muodot
Keskilinja
Pystytaso ja vaakataso
Piirustusalgoritmi 1
- Piirrä neliö paperin alaosalle.
- Väritä neliö ruskeaksi.
- Piirrä neliötä isompi tasasivuinen kolmio neliön päälle siten, että reunat koskettavat toisiaan ja kuviot ovat keskilinjassa.
- Piirrä hieman pienempi tasasivuinen kolmio edellisen kolmion yläpuolelle siten, että edellisen kolmion kärki koskettaa ylemmän kolmion kantaa ja kuviot ovat keskilinjassa.
- Piirrä hieman pienempi tasasivuinen kolmio edellisen kolmion yläpuolelle siten, että edellisen kolmion kärki koskettaa ylemmän kolmion kantaa ja kuviot ovat keskilinjassa.
- Piirrä hieman pienempi tasasivuinen kolmio edellisen kolmion yläpuolelle siten, että edellisen kolmion kärki koskettaa ylemmän kolmion kantaa ja kuviot ovat keskilinjassa.
- Väritä kaikki kolmiot vihreiksi.
Ota lopuksi kuva piirustuksestasi.
Voiko tästä ohjeesta tehdä lyhyemmän, miten?
Piirustusalgoritmi 2
-
Piirrä ympyrä paperin alaosalle.
-
Piirrä hieman pienempi ympyrä edellisen ympyrän yläpuolelle siten, että ympyröiden reunat koskettavat toisiaan ja ovat keskilinjassa.
-
Piirrä vielä pienempi ympyrä edellisen ympyrän yläpuolelle siten, että ympyröiden reunat koskettavat toisiaan ja ovat keskilinjassa.
-
Piirrä pienintä ympyrää pienempi neliö pienimmän ympyrän yläpuolelle siten, että ympyrän ja neliön reunat koskettavat toisiaan ja ovat keskilinjassa.
-
Väritä neliö mustaksi.
-
Piirrä paksu vaakatasossa oleva viiva pienimmän ympyrän ja neliön väliin. Viivan tulisi olla neliön sivua pidempi.
-
Piirrä pieni, ylösalaisin oleva tasasivuinen kolmio pienimmän ympyrän sisälle, aivan keskelle.
-
Piirrä pienimmän ympyrän sisälle ja kolmion alle keskilinjassa oleva, todella pieni puolikas ympyrä.
-
Piirrä kaksi toisiinsa nähden vaakatasossa olevaa pistettä pienimmän ympyrän sisälle, kolmion yläpuolelle.
-
Piirrä kaksi keskilinjassa ja toisiinsa nähden pystytasossa olevaa pistettä keskimmäisen ympyrän sisälle.
-
Piirrä kolme keskilinjassa ja toisiinsa nähden pystytasossa olevaa pistettä alimman ympyrän sisälle.
-
Piirrä vaakatasossa oleva viiva, jonka alkupiste on keskimmäisen ympyrän vasemman puolen reunassa.
-
Piirrä vaakatasossa oleva viiva, jonka alkupiste on keskimmäisen ympyrän oikean puolen reunassa.
Ota lopuksi kuva piirustuksestasi.
Voiko tästä ohjeesta tehdä lyhyemmän, miten?
Koodin lyhentäminen
- Määritellään käsky (työvaihe), jolle annetaan täsmällinen nimitys.
- Määriteltyä työvaihetta ei tarvitse määritellä uudestaan ja koodaaja säästää aikaa ja vaivaa. :)
- Pidempi algoritmi voidaan valmiiksi määriteltyjen työvaiheiden ansiosta kirjoittaa näin ollen paljon lyhyemmin.
- Jos jokin työvaihe toistuu, jokaista vaihetta ei myöskään tarvitse kirjoittaa erikseen (ks. esimerkki).
Esimerkki:
Piirrä kolme ympyrää siten, että ympyröiden reunat koskettavat toisiaan ja muodostavat "kolmion", työvaiheen nimi = (ympyräkolmio)
:left small
Piirrä neljä kolmiota siten, että kolmiot muodostavat keskenään neliön, työvaiheen nimi = (kolmioneliö)
Algoritmi:
- Piirrä (ympyräkolmio) (kolmioneliö):n päälle siten, että kuvioiden reunat koskettavat toisiaan.
- Toista edellinen työvaihe (kolmioneliö):n toisillakin sivuilla, eli yhteensä kolme kertaa.
:left medium
Tee oma piirustusalgoritmi!
- Tee ensin yksinkertainen mallipiirustus.
- Piirustuksen tulisi sisältää vain selkeitä geometrisiä kuvioita (neliöitä, (tasasivuisia) kolmioita, ympyröitä ja suoria viivoja).
- Mieti piirustuksen vaiheita ja laadi samanlainen ohje kuin edellisissä tehtävissä. Käteviä termejä ovat keskilinja, pysty- ja vaakataso.
- Mieti tarkkaan, voitko lyhentää joitakin työvaiheita piirustusalgoritmissäsi. Onko toistuvia kuvioita tai työvaiheita?
- Palauta piirustusohjeesi palautuslaatikkoon.
- Kun kaikki ovat palauttaneet tehtävänsä, saat toisen oppilaan kirjoittaman piirustusohjeen.
- Tehtävänäsi on piirtää kuva ohjeiden mukaisesti ja antaa palautetta ohjeen kirjoittajalle.
Ihminen vs. tietokone
Antaessa ohjeita tietokoneelle joutuu olemaan todella, todella täsmällinen. Tietokone ei tee omia tulkintoja, vaan lopputuloksesta tulee todennäköisimmin virheellinen tulkinnanvaraisia ohjeita antaessa. Pahimmassa tapauksessa lopputulosta ei ole ollenkaan, koska tietokone "menee solmuun tai jumiin" (error). Tietokone voi tehdä vain sen, mitä se on koodattu tekemään. Ohjeen antajan pitää olla tietoinen siitä, mitä tietokone voi tehdä ja millä tavalla ohje pitää muotoilla ymmärrettävään muotoon. Tämän sivun piirustusohjeet eivät kävisi sellaisinaan tietokoneelle, vaan kaipaisivat tarkat mitat kaikista työvaiheista. Tietokone ei osaa tulkita mitä "hieman pienempi" käytännössä tarkoittaa ja kaipaa täsmällisiä ohjeita.
Ihmisillä ja tietokoneilla on kuitenkin yksi yhteinen piirre. Kumpikaan ei voi tietää miten juuri SINÄ olet tulkinnut tai ajatellut jotain ja tarvitsee todella tarkkoja ohjeita kyetäkseen toteuttamaan kaikki käskyt samalla tavalla kuin itse toimisit!
BONUS: Vuokaavio

Vuokaavion (flowchart) avulla on helpompi nähdä prosessin vaiheita ja millaisia ongelmia siinä mahdollisesti on. Kysymysvaiheessa (oranssi) vastaus on aina joko kyllä tai ei. Tavoitteena on aina päästä alusta loppuun.
Tee oma helppo vuokaavio jostain arkipäivän toiminnasta!