Algoritminen ajattelu

Mitä on algoritminen ajattelu?

OPS:ssa TVT-taitojen päätavoitteena on oppia algoritmista ajattelua. Ohjelmointi taas on se väline, jolla saavutetaan uusia ajattelun tapoja. Näitä voidaan ajatella kuten kirjainten piirtämisen opettelua. Kirjaimet ovat vaihe lukemaan ja kirjoittamaan oppimisessa. Kaikkien ei tarvitse osata ohjelmoida, mutta algoritminen ajattelu on tulevaisuuden perustaito.Oppilaiden tulevaisuuden taidot


Matematiikan päättöarvioinnin kriteerit hyvälle osaamiselle (arvosanalle 8) oppimäärän päättyessä

T20 ohjata oppilasta kehittämään algoritmista ajatteluaan sekä taitojaan soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisemiseen (OPS 2016, 379).

Algoritminen ajattelu ja ohjelmointitaidot (OPS 2016, 379).

Oppilas osaa soveltaa algoritmisen ajattelun periaatteita ja osaa ohjelmoida yksinkertaisia ohjelmia (OPS 2016, 379).


Algoritmi on yksiselitteinen kuvaus tai ohje, jota seuraamalla saadaan selville miten tietty ongelma ratkaistaan. Algoritmissa toiminnot ovat yksiselitteisiä ja tietyssä järjestyksessä. Algoritmi on alkujaan metematiikan käsite. Nykyisin käsite liittyy ennen kaikkea tietotekniikkaan.

Algoritmisella ajattelulla tarkoitetaan ongelmien purkamista osiin, toiminnan kaavojen tunnistamista ja algoritmien muodostamista sekä toimintojen automatisointia.

Ongelman purkaminen osiin on oleellinen taito kaikilla elämän osa-alueilla, ei vain ohjelmoinnin opettamisessa. Tyypillisiä esimerkkejä ongelman purkamisesta osiin ovat ajo-ohjeiden antaminen toiselle ja hyvän ruokareseptin kirjoittaminen ylös.

Kaavojen tunnistamisessa on kyse toistuvien toimintatapojen havaitsemisessa, jotka auttavat arkipäiväisten ongelmien ratkaisemisessa. Olemme oppineet miten kertolaskut lasketaan. Jos seuraamme oppimiamme sääntöjä täsmällisesti, osaamme vastata mihin takansa kertolaskuun.

Algoritmien eli toimintaohjeiden luomisessa on kyse jonkin tehtävän suorittamiseksi tarvittavien toimenpiteiden kuvaamisesta. Hyvänä esimerkkinä voidaan pitää ruokareseptin laatimista. Reseptin luoja kirjoittaa ylös tietyn ruoan valmistukseen tarvittavat ainekset, niiden määrän ja suhteet sekä ohjeen ainesten käyttämiseksi josta lopulta syntyy haluttu ruoka-annos. Kyseistä toimenpidettä voidaan kutsua ruoan valmistukseen liittyvän algoritmin kuvaukseksi.

Toimintojen automatisoinnissa on kyse ongelmien ratkaisujen yleistämisestä. Kertolaskussa ei kannata tyytyä vain tiettyjen lukujen kertomiseen, vaan etsitään yleinen laskentakaava kaikkin kertolaskuihin. Kun kerran olemme oppineet kertolaskun algoritmin ei meidän tarvitse opetella sitä aina uusien numeroiden kohdalla uudelleen.

Teoria

Kirjoittaja: Veera Hasala ( veera.m.hasala@student.jyu.fi )

KEOSissa on esitelty seuraavat asiat (suluissa luokat, joille aihealueen opettaminen sopii hyvin):
  • Totuusarvo (1-6)
  • Ehtolause (1-6)
  • Muuttuja (3-6)
  • Silmukka (3-6)
  • Luokka (7-9)
  • Olio (7-9)
Totuusarvo

Jotkin asiat ovat joko tosia (true) tai epätosia (false). Kuvitellaan, että meillä on punainen kumipallo. Siitä voisi keksiä seuraavanlaisia väittämiä, jotka ovat joko tosia tai epätosia:

Se on punainen. Tosi
Se on sininen. Epätosi
Se on pyöreä. Tosi
Se on neliskulmainen. Epätosi
Se on valmistettu metallista. Epätosi
Se on valmistettu kumista. Tosi

Samanlaisen arvon voi antaa myös abstrakteillekin asioille. Onko kahvi loppunut? Tosi vai epätosi. Onko käyttäjä opettaja? Tosi vai epätosi. Onko kesäloma alkanut? Tosi vai epätosi.

Ehtolause

Usein halutaan tehdä jotain sen perusteella, miten jokin asia on. Tällöin voidaan käyttää ehtolausetta. Esimerkiksi:

Jos ulkona sataa
->ota sateenvarjo

Ehtolauseissa voidaan hyvin käyttää myös totuusarvoja, ja tarvittaessa myös kertoa vaihtoehto ehdolle.

Jos kahvi loppunut == tosi
->keitä kahvia
Muutoin
->juo kahvia

Tai vaikkapa sisäkkäisiä ehtolauseita:

Jos tiskejä ei ole tiskattu == tosi
->tiskaa
Muutoin
->Jos pyykkejä ei ole pesty == tosi
-->pese pyykit
->Muutoin
-->rentoudu

Ehtolauseissa usein esiintyy myös JA ja TAI -ilmaisuja. Näillä voi olla suurtakin merkitystä, pohdi esimerkiksi seuraavien eroa:

Jos tiskit on tiskattu == tosi TAI pyykit on pesty == tosi
->rentoudu

Jos tiskit on tiskattu == tosi JA pyykit on pesty == tosi
->rentoudu

Mitäköhän ensimmäisessä tapauksessa kävisi pyykeille tai tiskeille? Voisi jäädä jompikumpi hoitamatta...

Muuttuja

Muuttuja on symboli, jolla on joku arvo. Muuttujien hyödyntäminen helpottaa uudelleenkäytettävyyttä ja ylläpidettävyyttä. Seuraava teksti ei ole kovin uudelleenkäytettävä:

Hei Erkki!
Mitä sinulle Erkki kuuluu?
Toivon mukaan sinulla Erkki on kaikki hyvin.
Nähdään Erkki sitten pian.

Jos tekstiä haluttaisiin käyttää uudelleen jonkun muun kanssa, nimi pitäisi vaihtaa aika moneen kohtaan. Mutta kun tilannesidonnaisen nimen tilalle vaihdetaan muuttuja jonka arvo asetetaan vain yhdessä paikassa, tekstin muokkaus onnistuu hetkessä:

nimi = [laita nimi tähän]

Hei nimi!
Mitä sinulle nimi kuuluu?
Toivon mukaan sinulla nimi on kaikki hyvin.
Nähdään nimi sitten pian.

Muuttujia on erilaisia. Muuttuja voi esimerkiksi olla merkkijono (kuten ylläoleva nimi), numero tai totuusarvo (tulee alla). Näitä käsitellään lisää seuraavassa osiossa.
Muuttujan voi selittää pienemmille laatikoiden avulla. Piirretään taululle laatikoita. Jokaiseen laatikkoon mahtuu vain yksi asia. Kun laatikkoon laitetaan seuraava asia, edellinen putoaa siitä ulos.

Silmukka

Silmukka sen sijaan toistaa tietyn asian monta kertaa. Kuvitellaan, että meillä on viisi perunaa jotka pitää kuoria. Kuorimisen voisi ohjeistaa seuraavasti:

kuori peruna
kuori peruna
kuori peruna
kuori peruna
kuori peruna

Mutta ehkä helpommin asian voisi ohjeistaa näin:

Toista 5 kertaa:
kuori peruna

Useissa ohjelmointikielissä voi myös ilmaista asian jotenkin näin:

Toista kunnes perunat loppuvat:
kuori peruna

Luokka

Oikeastaan melkein mitä tahansa asioita voidaan määritellä luokan kautta. Luokka tarjoaa raamit jonkin asian ominaisuuksille. Luokkia voisivat esimerkiksi olla huonekalu, kulkuneuvo ja käyttäjä.
Luokan ominaisuudet ovat varsin yleisiä. Määritellään vaikkapa, että huonekalulla on nimi, jalkojen määrä, materiaali ja väri. Kulkuneuvolla on myöskin nimi, renkaiden määrä, ja vaikkapa tieto siitä, kulkeeko kyseinen kulkuneuvo bensalla. Käyttäjällä taas voi olla esimerkiksi sellaisia tietoja kuin käyttäjätunnus, salasana, sähköposti ja syntymäpäivä.

Olio

Olio on luokan varsinainen edustaja. Luokan huonekalu pohjalta luodut oliot voisivat näyttää vaikka tältä:

nimi: tuoli
jalkojen määrä: 4
materiaali: puu
väri: ruskea

nimi: sohva
jalkojen määrä: 6
materiaali: nahka
väri: musta

Luokan kulkuneuvo pohjalta voisi luoda vaikka seuraavanlaisia olioita:

nimi: pyörä
renkaiden määrä: 2
kulkee bensalla: epätosi

nimi: auto
renkaiden määrä: 4
kulkee bensalla: tosi

Esimerkki käyttäjän pohjalta luodusta oliosta:

käyttäjätunnus: erkkinen
salasana: salasana123
sähköposti: erkki.erkkinen@jokumail.com
syntymäpäivä: 1980-12-24

Tehtävät jotka kehittävät algoritmista ajattelua

Kirjoittaja: Veera Hasala ( veera.m.hasala@student.jyu.fi )

1. Totuusarvo

Valitse suosikkilelusi ja keksi siitä väittämiä (esim. se on keltainen, se ei ole karvainen). Kaverin pitää sanoa, oliko väittämä tosi vai epätosi.

2. Ehtolause

Käytössäsi on sadevaatteet, talvitakki ja uimapuku. Minkä valitset...

-jos olet menossa uimaan?
-jos ulkona sataa?
-jos ulkona on pakkasta?

Miten seuraavat esimerkit eroavat toisistaan:

koiralla on turkki JA häntä
koiralla on turkki TAI häntä

Oppilaat voivat keksiä lisää hullunkurisia esimerkkejä.

3. Muuttuja

Sanotaan että lasi on nyt muuttuja. Lasi on aluksi tyhjä, eli arvo on 0.
Lisätään lasiin 1dl vettä. Nyt lasin arvo on 1.
Kaadetaan toinen dl vettä. Nyt lasin arvo on 2.
Kaadetaan lasista vähän vettä pois. Mikä lasin arvo on nyt? Mitataan.

4. Silmukka

Ohjeista kaverille, miten hän voi kävellä omalta pulpetiltaan luokan ovelle. Keksitkö asian, joka toistuu monta kertaa? Miten monta kertaa se toistetaan?

5. Luokka & olio

Pohdi jotakin luokkaa, esimerkiksi käyttäjää jossakin palvelussa jota käytät tai pelihahmoa jossakin pelissä. Minkälaisia ominaisuuksia sillä on? Mihin niitä käytetään? Listaa luokka, jossa ominaisuudet määritellään, sekä esimerkkiolio, jossa ominaisuuksilla on jokin arvo.

Peda.net käyttää vain välttämättömiä evästeitä istunnon ylläpitämiseen ja anonyymiin tekniseen tilastointiin. Peda.net ei koskaan käytä evästeitä markkinointiin tai kerää yksilöityjä tilastoja. Lisää tietoa evästeistä