Jakso 2
1. Opiskeltava sisältö
Racket-kurssin 2. jaksolla on käsitellään kaksi automatisointiajattelun keskeistä asiaa: A) funktiot
sekä B) ehtolauseet.
A) Funktiot – osassa opettelemme suunnittelemaan, ohjelmoimaan sekä testaamaan omia funktioita.
Funktioiden avulla voimme esittää sääntöjä yleisessä (abstraktissa) muodossa ja niiden toiminnan
ymmärtäminen on erittäin tärkeää.
B) Ehtolauseet – osa käsittelee ehtolauseita ja sitä miten ne liittyvät funktioihin.
Tämän jakson materiaalit kannattaa opiskella osa kerrallaan, eli katso ensin funktioihin liittyvät
videot (1 ja 2) ja tee sitten niihin liittyvät tehtävät. Katso tämän jälkeen ehtolauseisiin
liittyvät videot (3 ja 4) ja tee niihin liittyvät tehtävät. Videoiden katsomisen ohella on hyvä itse
koodata mukana niin saat paremman tuntuman siihen mistä on kyse.
Tällä viikolla on mukana myös animaatiovideoita, jotka selventävät funktion, ehtolauseen, evaluonnin
sekä määrittelyjen toimintaa (animaatio kannattaa pistää pauselle, jos asiat tapahtuvat siinä liian
nopeasti). Näiden animaatioiden tarkoitus on luoda ns. mentaalimalleja käsiteltävistä aiheista,
jotta niiden ymmärtäminen helpottuisi.
Diasarjassa on tällä jaksolla paljon asiaa, täydentäviä esimerkkejä sekä vinkkejä palautettavaa
jaksoharjoitusta ajatellen.
Videot
nro |
Video |
Linkki |
1. |
Funktiot (osa 1): Funktion määrittely (10:37min) |
katso video |
2. |
Funktiot (osa 2): Funktion suunnittelu ja testaaminen (9:21min) |
katso video |
3. |
Totuusarvot, predikaatit ja vertailuoperaattorit (5:01min) |
katso video |
4. |
Ehtolause (if) (8:35min) |
katso video |
Animaatiot
Videoita täydentävät diat
2. Harjoitustehtävät
A) Funktiotehtävät:
Harjoittele funktioiden määrittelemistä sekä testaamista seuraavien tehtävien avulla. Ensimmäisissä
tehtävissä jatkat puolivalmista koodia eteenpäin.
Huom! Kun lataat tehtävätiedoston ja avaat sen DrRacket:illä se on ”read only” tilassa etkä voi
muokata sitä. Tallenna se ensin jonnekin (File->Save definitions as) niin saat muokkauksen
käyttöön.
Perustehtävät:
-
Tee funktioita pinta-alojen laskemiseksi
Avaa tehtävä: Pinta-alatehtävät A.
-
Tee funktiot lämpötilojen muutamiseen eri lämpötila-asteikolta toiselle
Avaa tehtävä: Lämpötilat.
-
Tee funktion avulla eri värisiä kirjaimia
Avaa tehtävä: Värillinen teksti.
Lisätehtävät:
B) Ehtolausetehtävät:
Harjoittele ehtolauseita sisältävien funktioiden määrittelemistä valitsemalla seuraavien tehtävien
avulla.
Perustehtävät:
Lisätehtävät:
- Tutustutaan pyöristämiseen ja käytetään funktiota, jonka sisällä on ehtolause, jonka sisällä on
laskulauseke
Avaa tehtävä: Pyöristäminen.
Malliratkaisut:
Yritä tehdä harjoitukset itse mutta, jos törmäät ongelmiin, katso malliratkaisut tästä.
Funktiot:
Ehtolause:
Harjoittele materiaalin kanssa sen verran, että pystyt tekemään palautettavan koodaustehtävän.
3. Palautettava koodaustehtävä
Tehtävänäsi on suunnitella, määritellä ja testata funktio, jossa käytetään ehtolausetta. Funktio voi
esim. tuottaa kuvia tai laskea jotakin, sinä päätät mitä se tekee.
Kun teet funktiotasi, aloita määrittelemällä sen tarkoitus sekä esittelemällä sen nimi sekä sen
määrittely- ja arvojoukot (syötteen tyypit ja paluuarvon tyyppi). Valitse funktiolle kuvaavat
parametrien nimet (muuttujanimet) ja kirjoita funktion toteutus (koodi) käyttämällä parametreja.
Käytä koodissasi myös ehtolausetta. Voit joko valita sellaisen funktion, jossa on kaksi eri
”toimintavaihtoehtoa” tai testata, että funktion parametrit ovat oikean tyyppisiä. Pääasia että
käytät ehtolausetta jollakin tavalla. Testaa funktiosi jokainen haara kirjoittamalla sille
check-expect -lauseke.
Vinkki opetukseen:
Opiskelijat voivat vertaisarvioida toistensa koodia eli testata toimiiko koodi ja onko se ohjeiden
mukaisesti tehty. Parhaiten vertaisarviointi toimii, jos se tehdään nimettömästi, sekä arvioijat ja
arvioitavat pysyvät anonyymeinä.