Teoria
Kirjoittaja: Veera Hasala ( veera.m.hasala@student.jyu.fi )
KEOSissa on esitelty seuraavat asiat (suluissa luokat, joille aihealueen opettaminen sopii hyvin):
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
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)
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