Tervetuloa Racket – kurssin viikolle 6.
1. Opiskeltava sisältö
Tällä viikolla jatkamme listojen opiskelua ja lisäämme mukaan Turtle grafiikan sekä Higher Order – funktiot. Racket Turtle:a voi käyttää listojen, rekursion sekä Higher Order – funktioiden opettamiseen mutta myös tasogeometrian käsitteiden opettamiseen (mittasuhteet, monikulmioiden kulmat, koordinaatisto, peilaus jne.). Higher Order – funktiot ovat puolestaan algoritmien ”moottorisaha” (rekursio on se ”käsisaha”). Niiden oppiminen voi aluksi tuntua hieman hankalalta mutta ne tarjoavat erittäin tehokkaan ja lyhyen tavan kirjoittaa algoritmeja ja niiden toimintalogiikka soveltuu hyvin matemaattiseen ajatteluun.
Ensimmäinen video esittelee Racket Turtlen perustoiminnot. Toinen video esittelee Higher Order – funktiot eli yhden kätevän tavan tehdä käsitellä listamuotoista tietoa. Viimeinen video esittelee miten Racket Turtlella voi tehdä hienompia kuvia Higher Order – funktioiden avulla (toki nämä voisi tehdä myös rekursiivisen funktion avulla).
Racket Turtle:en toimintaan voit videoiden ja diojen lisäksi tutustua Koodarin käsikirjan avulla. Erityisen hyödyllisiä ovat Turtle esimerkit.
1. Racket Turtle alkeet (16:28 min) | https://youtu.be/L1jjdGe_j6k |
2.Higher Order – funktiot (9:30 min) | https://youtu.be/jFBZp1eVa3I |
3. Racket Turtle jatko (7:12 min) | https://youtu.be/shvc7xtg3cw |
Videoita täydentävät diat:
2. Harjoitustehtävät
A) Racket Turtle – alkeet
Racket Turtlen käyttö alkeet tasolla on helppoa. Kokeile erilaisia toimintoja myös perustehtävien ulkopuolelta. Nyt on lupa kokeilla ja leikkiä!
Perustehtävät
1. Peruskuviot
Lisätehtävät
1. Kukat
2. Tähtirusetti
Yritä näitä ensin itse, mutta jos ei onnistu katso malliratkaisut täältä (Racket Turtle – alkeet).
Huom! Racket Turtle vaatii teachpacks – paketin asentamisen DrRacket:iin. Jos olet tehnyt sen jo aikaisemmin niin kaikki on ok, muuten asenna se nyt. WeSchemessä ei tarvita paketin asennusta, riittää että otat kirjaston käyttöön: (require wescheme/oJ1vcDo5qd).
B) Racket Turtle – jatko (Higher Order – funktiot)
Perustehtävät
2. Tähtilista ja tähtispiraali
Lisätehtävät
Voit tehdä Turtle jatko – tehtävät myös käyttämällä rekursiivista listan luomista. Higher Order – funktiot ajavat saman asian mutta lyhyemmällä koodilla, joten on makuasia kumpaa käyttää. Katso malliratkaisut täältä.
3. Palautettava koodaustehtävä
Tämän viikon palautustehtävä on Racket Turtle -kirjaston avulla piirretty kuva, joka palautetaan png-muodossa samalla tavalla kuin jaksolla 1 eli valitse kuva hiirellä ja valitse hiiren oikealla näppäimellä ”save image”. Kuva voi olla Racket Turtle – alkeet tyyppinen (esim. repeat – komentolla tai peilaamalla tehty kuva), se voi käyttää 2htdp/image -kirjastolla koodattua tai ”add image” – toiminnolla lisättyä kuvaa leimasimena, siinä voi olla käytössä rekursiivinen funktio tai Higher Order – funktio (esim. map).
Voit käyttää malliratkaisuja pohjana, muokata niitä eteenpäin ja tehdä oman versiosi. Kirjoita kuvan yhteyteen myös lyhyt kuvaus siitä miten kuvasi on saatu aikaan.
Pidä hauskaa, ole luova, leiki, kokeile, älä mieti check-expect:ejä vaan anna koodin nyt yllättää itsesi!