• Etusivu
  • Blogi
  • Arkisto
  • Kirjasto
    • ScratchJr-kurssi
    • Scratch-kurssi
    • Racket-kurssi
  • MOOC
    • ScratchJr
    • Scratch
    • Racket
    • Python
  • UKK
  • Yhteystiedot
  • In English

Koodiaapinen

Opettajan opas koodaukseen koulussa

  • Mitä?
    • Usein kysytyt kysymykset
    • Koodauksesta sanottua
    • Tutkimusta Koodiaapisesta
  • Miten?
    • MOOC
    • Kirjasto
  • Miksi?
    • OPS2016
    • Usein kysytyt kysymykset
    • Koodaus opiskeluvälineenä
    • Koodauksen merkitys yhteiskunnassa
  • Ketkä?
    • Tekijät
    • Yhteisöt ja verkostot
    • Osallistu
    • Yhteystiedot
Olet täällä: Alkuun / Kirjasto / Racket-kurssi / Racket MOOC – 4. jakso

Racket MOOC – 4. jakso

Tervetuloa Racket-kurssin jaksolle 4

1. Opiskeltava sisältö

Racket-kurssin jaksolla 4. opimme tekemään hieman isomman sovelluksen, jossa toiminnallisuus toteutetaan useamman funktion avulla. Opimme myös käyttämään rekursiivisia funktioita, jotka kutsuvat itse itseään ja näin pystyvät ratkaisemaan ongelman paloissa tai toteuttamaan toiminnallisuutta, joka vaatii toistoja tai silmukan. Käymme läpi kaksi erilaista tapaa kirjoittaa rekursiota: alkeistapauksiin perustuvan sekä akkumulaattorin käyttöön perustuvan. Tutustumme myös siihen mitä ovat ns. sivuvaikutukset.

Tämän jakson tehtävät kannattaa tehdä kahdessa osiossa:

  • videot 1-3 ja tehtävät A
  • videot 4-5 ja tehtävät B

Kuuntele videot ja koodaa itse samalla esimerkkejä niin asiat avautuvat paremmin.

Videot
1. Funktion jakaminen osiin (10:49 min) https://youtu.be/l45YMjAc5r0
2. Rekursio (11:44min) https://youtu.be/et-l5eBAOaw
3. Rekursio akkumulaattorilla (8:16 min)

Tiedosto, jota mukataan videolla.

https://youtu.be/WHX9pTIM0oI
4. Lokaalit muuttujat (8:10 min) https://youtu.be/-Oecr486bPg
5. Display-read – kirjasto https://youtu.be/yYeL0CTeQBM

 

Videoita täydentävät diat

Racket MOOC (kevät 2016) – jakso 4 from Tiina Partanen

2. Harjoitustehtävät

A) Rekursio

Harjoittelemme ensin kuvien ohjelmointia rekursiivisten funktioiden avulla. Voit valita käytätkö alkeistapauksiin perustuvaa vai akkumulaattoria käyttävää rekursiota. Molempia ei tarvitse oppia käyttämään aktiivisesti, kunhan tiedät ja tunnistat myös sen toisen tavan, koska sellaista koodia voi tulla vastaan vertaisarvioinnissa.

Perustehtävät:

  • Tikkataulu
  • Ruudukko tai Epäkesko

Lisätehtävät:

  • Pienenevät pallot
  • Tutustu rekursion käyttöön fraktaaleissa sierpinskin kolmion koodin avulla (katso tässä kohtaa video nro. 4).

Yritä ensin itse, mutta jos ei onnistu katso malliratkaisut täältä (5. Rekursio). Tämän viikon tehtävät ovat vaikeita, joten katso vaikka ensin yksi malliratkaisu ja yritä sitä matkimalla tehdä jokin toinen kuvio.

B) Interaktiiviset ohjelmat

Tässä osiossa tutustutaan sivuvaikutusten käyttöön silmukassa. Tehtävissä käytetään display-read -kirjastoa.

Perustehtävät

  • Tarina tai Lähtölaskenta
  • Laskuautomaatti

Lisätehtävät

  • Kertotaulupeli
  • Arvaa numero -peli

Erityisesti lisätehtävät ovat tällä viikolla sen verran vaativia, että voit koodaamisen sijaan katsoa suoraan malliratkaisuja ja pohtia ymmärrätkö mitä koodissa tapahtuu, jotta pystyt soveltamaan sitä jakson palautustehtävässä. Katso malliratkaisut täältä (5. Rekursio).

3. Palautettava koodaustehtävä

Tämän jakson palautettava harjoitustyö on sovellus, joka käyttää rekursiota sekä sivuvaikutuksia. Ohjelman tulee pyytää käyttäjältä syötteitä ja näyttää ohjelman tuottama tulos käyttäjälle display-read kirjaston avulla, käyttää yhtä rekursiivista funkiota sekä yhtä apufunktiota. Apufunktiot voivat laskea jotain, piirtää jotain tai tehdä molempia. Sovellus, jonka teet voi olla laskuautomaatti (kysyy käyttäjältä lähtöarvot), se voi olla pieni peli, joka testaa päässälaskutaitoa (arpoo luvut ja kysyy käyttäjältä vastausta, jonka se tarkistaa) tai se voi piirtää jonkin kuvan rekursiivisesti (käyttäjä päättää mittasuhteet, toistojen määrän, värin tms.). Pidä huolta siitä, että rekursiivisessa funktiossasi on jokin lopetusehto!

Koska käyttäjä voi antaa vääränlaisia syötteitä, muista testata syötteet ennen kuin niitä käytetään ja anna virhetilanteessa käyttäjälle ohjeita oikeanlaisesta syötteestä. Testaa apufunktiosi käyttäen check-expect:iä mutta muista että sivuvaikutuksia (tässä kaikki display-read kirjaston funktiot) sisältäviä koodin osia ei voi testata muuten kuin ajamalla koodia ja katsomalla toimiiko se. Tätä palautustehtävää varten voit katsoa mallia kaikista tämän jakson malliratkaisuista ja käyttää malliratkaisuja pohjana omalle sovelluksellesi.

Tämän jakson palautustehtävä vertaisarvioidaan samalla tavalla kuin jakson 2 tehtävä. Huolehdi siis siitä, että palautat työsi riittävän ajoissa. Jos ohjelman aihepiirin keksiminen tuottaa ongelmia, mieti millaisesta ohjelmasta voisi olla sinulle tai oppilaillesi hyötyä…

4. Ongelmia

Kysy rohkeasti apua kurssin keskustelufoorumilla.

  • Facebook
  • RSS
  • Twitter
  • YouTube

Viimeisimmät artikkelit

  • Koodiaapinen vaikuttaa peruskoulussa
  • R05AN K00D1 tulee kouluihin tänä syksynä
  • Koodiaapisen suoritti keväällä lähes 500 opettajaa
  • Koodaus kouluissa, kuulumiset ITK:sta
  • Äänestä parasta oppimisen ratkaisua eEemeli-kilpailussa

Koodiaapinen

Koodiaapinen on talkoilla syntynyt ja monien tahojen rahoittama opas peruskoulun opettajille ohjelmoinnista koulutyössä. Koodiaapiseen kuuluvat avoin kirjasto sekä maksuttomat verkkokurssit.

Käyttölupa

Creative Commons -lisenssi
Tämän sivuston sisältö on lisensoitu Creative Commons Nimeä-JaaSamoin 4.0 Kansainvälinen -lisenssillä ellei muuta ole mainittu.
IT-kouluttajat ry TIVIA ry Aalto-yliopisto, Taiteiden ja suunnittelun korkeakoulu Aalto-yliopisto, Perustieteiden korkeakoulu Innokas-verkosto Opetushallitus rahoittaa Helsingin yliopiston opettajankoulutuslaitos
Teknologiateollisuuden 100-vuotissäätiö Suomen eOppimiskeskus ry Open Knowledge Finland ry Yle

Copyright © 2025 · Education Pro / Genesis Framework · WordPress · Kirjaudu sisään