1 of 59

Järviseudun Koodikoulu

Scratch 3.0 ohjelmointi

Scratch 3.0 ohjelmointi

2 of 59

2

Ohjelmoinnin opetuspolku

Hankkeen koulutuksilla rakennetaan kokonaisvaltainen OPS2014 ja OPH:n “Uudet lukutaidot” -kehittämisohjelman mukainen, myös robotiikan ja automaation sisältävä, ohjelmoinnin opetuspolku perusopetukseen luokille 0-9.

Ohjelmoinnillinen

ajattelu 0-2 lk.

Graafinen ohjelmointi 3-6 lk.

Ohjelmoitavat laitteet alakoulussa 3-6 lk.

Ohjelmoitavat laitteet ja mobiiliohjelmointi yläkoulussa 7-9 lk.

Koulutusten kautta opettajilla on hieno mahdollisuus kehittää ammatillista osaamistaan ja tietämystään ohjelmoinnin, robotiikan ja automaation opetuksen osalta.

Järviseudun Koodikoulun

3 of 59

OPH:n Uudet Lukutaidot -kehittämisohjelma

  • uudetlukutaidot.fi
  • Ohjelmoidaan graafisessa ohjelmointiympäristössä.
  • Ohjelmointi oppimisen välineenä: Oppilas osaa käyttää ohjelmointiin liittyviä työskentelytapoja ja -välineitä luovaan ilmaisuun ja omaan tuottamiseen sekä erilaisten ilmiöiden ja aiheiden tutkimiseen ja selittämiseen eri oppiaineissa ja niitä yhdistävissä kokonaisuuksissa.
  • Oppilas osaa laatia täsmällisiä ja yksityiskohtaisia toimintaohjeita käyttäen toisto- ja valintarakenteita. Oppilas etsii ja korjaa virheitä toimintaohjeissa sekä ohjelmakoodissa.
  • Käytännön taidot: Oppilas osaa käyttää graafista ohjelmointiympäristöä ja osaa laatia sillä oman ohjelman, animaation tai pelin.

4 of 59

Kumulatiivinen jatkumo

Ohjelmoinnillinen ajattelu

Tietokoneettomat harjoitukset

Scratch-ohjelmointi

Ohjelmointi

tietokoneella

Ohjelmoinnin keskeiset käsitteet ja rakenteet

5 of 59

Koulutuksessa perehdytään

  • Ohjelmointiin Scratch 3.0 ympäristössä.
  • Algoritmiin
  • Tapahtumiin
  • Komentoihin
  • Komentojen parametreihin
  • Ehtorakenteeseen
  • Toistorakenteeseen
  • Muuttujaan
  • Scratchin hahmoihin ja taustoihin

6 of 59

Yleistä Scratchistä

  • Ilmainen graafinen ohjelmointiympäristö.
  • Käyttöliittymä ja komennot suomenkielellä.
  • Selaimella käytettävä online-palvelu sekä tietokoneeseen asennettava ohjelma.
  • Suositeltavaa käyttää palveluna ja rekisteröityä käyttäjäksi.
    • Mahdollista tallentaa ohjelmat palveluun.
    • Mahdollista jakaa ohjelmia, mm. palautus opettajalle.
  • Mahdollistaa oman tuottamisen omien ideoiden pohjalta.

7 of 59

Rekisteröityminen

  • Siirry selaimella osoitteeseen scratch.mit.edu
  • Jos olet aiemmin rekisteröitynyt Scratch 2.0 -versioon, niin sama tili on edelleen käytettävissä. Voit kirjautua sisään klikkaamalla tekstiä “Kirjaudu sisään”.
  • Jos olet unohtanut salasanan, koeta ensin palauttaa se.
  • Jos sinulla ei ole tiliä tai haluat kokonaan uuden, tee se klikkaamalla tekstiä “Liity Scratchiin” ja jatka ruutuun tulevien ohjeiden mukaisesti.

  • Oppilaat voivat rekisteröityä Scratchiin omatoimisesti ja käyttää rekisteröitymisessä G-Suiten @edu-sähköpostiaan.

8 of 59

Ohjelmointiympäristö

  • Kirjautumisen jälkeen ohjelmointiympäristöön siirrytään klikkaamalla tekstiä “Luo”.
  • Jos ympäristön kieli ei ole “Suomi”, niin vaihda se klikkaamalla maapallon kuvaketta ja valitse “Suomi”.
  • Ohjelmalle on hyvä aina ensimmäiseksi antaa kuvaava nimi. Klikkaa tekstiä “Untitled-xx”, pyyhi se pois ja kirjoita haluamasi nimi ohjelmalle.

  • Kaikki ohjelmaan tekemäsi muutokset tallentuvat siihen automaattisesti.

9 of 59

Ohjelmointiympäristö

  • Ohjelmointiympäristö on varsin monipuolinen, mutta ei hätää. Kaikkea ei tarvitse ottaa haltuun osatakseen käyttää sitä.
  • Koodipalikat on jaettu osioihin löytämisen ja käytön helpottamiseksi. Kun valitset osion palkista, sen sisältämät koodipalikat avautuvat oikealle puolelle.

10 of 59

Ohjelmointiympäristö

  • Ohjelma rakennetaan raahaamalla halutut koodipalikat koodialueelle ja liittämällä palikat yhteen.

  • Ja ohjelmoinnin periaatehan on: “Oikeaan järjestykseen asetetut oikeat komennot muodostavat algoritmin, joka suorittaa kokonaisuuden tehtävän.

Koodialue

11 of 59

Ohjelmointiympäristö

  • Oikeassa yläkulmassa on ns. “esiintymislava” (näyttämö). Se on ikkuna, josta nähdään mitä ohjelman suoritus saa aikaan.

Suurentaa esiintymislavan koko kuvaruudun kokoiseksi

Keskeyttää ohjelman suorituksen

12 of 59

Ohjelmointi

  • Ohjelmoinnillinen ajattelu -koulutuksessa tuli tutuksi mm:
    • Algoritmi
    • Tapahtuma
    • Komento
    • Ehtorakenne
    • Toistorakenne
  • Nämä ohjelmoinnin yleispätevät käsitteet ja rakenteet löytyvät luonnollisesti myös Scratchistä.
  • Perehdytäänpä niihin seuraavaksi.

13 of 59

Tapahtuma

  • Aiemmasta koulutuksesta muistamme tapahtumasta tämän:

Tapahtuma

Ohjelmoinnissa koodin suorituksen käynnistää usein jokin tapahtuma, esimerkiksi kun jotain nappia painetaan tai robotiikassa kun havaitaan este robotin edessä.

Tässä algoritmissa koodin suorituksen käynnistää tapahtuma “Kun opettaja nousee seisomaan”.

KUN OPETTAJA NOUSEE SEISOMAAN

14 of 59

Tapahtuma

  • Lähes poikkeuksetta Scratch-koodin käynnistää aina jokin tapahtuma.
  • Ohjelmoijan tulee aina miettiä, mitä tulee tapahtua tai mitä käyttäjän tehdä, jotta tämä koodi suoritetaan.
  • Lähes aina ohjelmassa on useita tapahtumia ja niihin liitettyjä algoritmeja. Yksi tapahtuma suorittaa yhden algoritmin.
  • Tapahtumien koodipalikat löytyvät osiosta “Tapahtumat”.

15 of 59

Tapahtuma

  • Raahaa koodialueelle hiiren vasen painike pohjassa tapahtuma “kun painetaan <välilyönti>”.
  • Tämä tapahtuma reagoi näppäimien painalluksiin. <välilyönti> on tapahtuman vaihdettava parametri, se kertoo minkä näppäimen painallus aktivoi tapahtuman. Klikkaa tekstiä “välilyönti” ja valitse valikosta “Nuoli oikealle”.
  • Nyt tapahtuman alle liitettävät koodipalikat suoritetaan, kun käyttäjä painaa painiketta “nuoli oikealle”.

16 of 59

Komento

  • Aina ennen ohjelmointivaihetta ohjelmoijalla tulee olla hyvin selvillä, mitä hän haluaa kyseisen koodin tekevän.
  • Tässä tarvitaan sitä ohjelmoinnillista ajattelua. Mitä koodin halutaan tekevän? Miten haluttu toiminta toteutetaan käytössä olevilla komennoilla? Mitä komentoja tarvitaan ja missä järjestyksessä ne suoritetaan? Miten komennon parametrisoidaan?

Komento

Koko algoritmin toimimisen kannalta on erittäin oleellista, että siinä on oikeat komennot oikeassa järjestyksessä.

NOUSE SEISOMAAN

ASTU YKSI ASKEL ETEENPÄIN

17 of 59

Komennon parametri

  • Ohjelmointikielissä komennoista on pyritty tekemään mahdollisimman monikäyttöisiä.
  • Tämä on toteutettu lisäämällä komentoihin parametri.
  • Komennon parametri on lisämääre, se määrittää tarkemmin miten komento toimii, millaisen suorituksen se tekee.
  • Ohjelmoijan tehtävänä on asettaa parametri oikeaan arvoon.

18 of 59

Komennon parametri

  • Katsotaanpa esimerkiksi komentoa “sano”, jossa on kaksi parametriä.
  • Ensimmäisessä määritetään, mikä teksti näytetään puhekuplassa.
  • Toisessa määritetään, kuinka kauan puhekupla on näkyvissä.
  • Molemmat parametrit ovat ohjelmoijan vapaasti asetettavissa.

  • Samaa komentoa voidaan käyttää erilaisilla parametreillä.

komennon suoritus

19 of 59

Komennot ohjelmaan

  • Raahaa tapahtuman alle “Liike”-osiosta kuvan mukaiset komennot.

  • Lisää vielä osiosta “Ulkonäkö” komento “seuraava asuste”.

Komennoissa on oletuksena parametrit oikein asetettu, joten niitä ei tällä kertaa tarvitse muuttaa.

20 of 59

Ohjelman selitys

  • Testaa ohjelma, paina näppäintä “nuoli oikealla” ja katso toiminta “esiintymislava”-ikkunasta.

Kun näppäimistöstä painetaan näppäintä “nuoli oikealle”, aktivoituu tämä tapahtuma ja silloin suoritetaan kaikki tapahtuman alapuolella olevat komennot.

Komento asettaa hahmon liikesuunnan numeerisella parametrilla. Arvo 90 tarkoittaa suuntaa oikealle.

Komento liikuttaa hahmoa numeerisella parametrilla määritetyn matkan.

Komento vaihtaa hahmon asusteen. Yhdessä samanaikaisen liikkeen kanssa se muodostaa animaatioefektin.

21 of 59

Harjoittelu

  • Miten lisäisit ohjelmaan koodin, joka liikuttaa kissaa vasemmalle, kun näppäintä “nuoli vasemmalle” painetaan?
  • Vinkki: Ohjelmassa voi olla useita eri tapahtumia ja niiden aktivoitumisiin liittyviä algoritmeja.
  • Kokeile…

22 of 59

Ratkaisu

Parametrin arvo “-90” kääntää kissan liikesuunnan vasemmalle. Muutoin komennot ovat samat.

23 of 59

Oman ohjelman suunnittelu ja toteutus

  • Tee uusi projekti ja anna sille haluamasi nimi.
  • Katso “Tapahtumat”-osion tapahtumia ja pohdi, millä tapahtumalla haluat oman ohjelmasi käynnistyvän.
  • Tutki osioiden “Liike”, “Ulkonäkö” ja “Ääni” komentoja. Voit testata yksittäisen komennon suorituksen klikkaamalla sitä suoraan osiosta.
  • Pohdi, mitä komennoilla voi tehdä ja mitä haluat ohjelmasi tekevän. Lisää haluamasi komennot ohjelmaasi ja tarvittaessa määritä komentojen parametrit oikeiksi.
  • Testaa ohjelma ja tee siitä toimiva.

24 of 59

Ehtorakenne

  • Kaikenlainen tutkiminen, jonkin asian tilan selvitys tehdään ehtorakenteella ja ehdolla.
  • Ja kuten aiemmasta koulutuksesta muistetaan, ehtorakenteista on kaksi mallia:
  • Jos <ehto> niin <toiminta>
      • Jos ehto on tosi, niin suoritetaan niin-osassa olevat komennot.

2. Jos <ehto> niin <toiminta> muuten <toinen toiminta>

      • Jos ehto on tosi, niin suoritetaan niin-osassa olevat komennot.
      • Jos ehto on epätosi, niin suoritetaan muuten-osassa olevat komennot.

25 of 59

Ehtorakenne

  • Tee uusi projekti ja anna sille haluamasi nimi.
  • Lisää koodiin kuvan mukainen tapahtuma ja osiosta “Ohjaus” toistorakenne “ikuisesti”.

26 of 59

Ehtorakenne

  • Lisää koodiin osiosta “Ohjaus” ehtorakenne “jos <ehto>, niin”.

27 of 59

Ehtorakenne

  • Lisää osiosta “Toiminnot” kuvan mukainen vertailuoperaattori “suurempi kuin” ehtorakenteen ehtoon.

28 of 59

Ehtorakenne

  • Lisää osiosta “Tuntoaisti” ominaisuuspalikka “äänentaso” vertailuoperaattorin ensimmäiseksi parametriksi.

29 of 59

Ehtorakenne

  • Viimeistele ohjelma upottamalla ehtorakenteen sisälle komento “sano…” ja aseta komennon parametrit kuvan mukaisiksi.

SANO “Kuulen ääntä”

KUN KLIKATAAN LIPPU

ÄÄNEN TASO > 50

TOSI

EPÄTOSI

TOISTA IKUISESTI

30 of 59

Ohjelman selitys

Ohjelman suoritus käynnistyy, kun käyttäjä klikkaa vihreän lipun kuvaketta hiiren vasemmalla painikkeella.

Kuvake löytyy esiintymislavan vasemmasta yläreunasta ja sitä voi käyttää “Start”-painikkeen tyylisesti.

31 of 59

Ohjelman selitys

Tapahtuman jälkeen ohjelman suoritus siirtyy ikuisesti toistettavaan toistorakenteeseen. Tässä rakenteessa ei ole lopetusehtoa ollenkaan, joten käyttäjän tulee pysäyttää ohjelman suoritus klikkaamalla punaista “Stop”-merkkiä esiintymislavan vasemmasta yläreunasta.

32 of 59

Ohjelman selitys

Sitten ohjelmassa on ehtorakenne ja ehto. Jos ehto on tosi, suoritetaan rakenteeseen upotettu komento “sano…”, muuten ei tehdä mitään.

33 of 59

Ohjelman selitys

Ehto on toteutettu vertailuoperaattorilla “suurempi kuin”. Siinä tutkitaan, onko ominaisuuspalikan “äänentaso” numeerinen arvo suurempi kuin 50. Jos on, ehdon arvo on tosi, muuten se on epätosi.

Luvun 50 tilalle voidaan vaihtaa haluttu lukuarvo väliltä 1-100. Mitä suurempi luku on, sitä voimakkaampi tulee äänen olla, jotta ehto olisi tosi.

Ominaisuuspalikasta “äänentaso” voidaan lukea tietokoneen mikrofonin havaitsema ympäristön äänenvoimakkuus numeerisena arvona väliltä 1-100. Kun käytät tätä palikkaa ensimmäisen kerran, joudut aluksi antamaan selaimelle luvan käyttää tietokoneen mikrofonia.

34 of 59

Ohjelman selitys

Jos ehdon totuusarvo on tosi, suoritetaan tämä ehtorakenteen niin-osaan upotettu komento. Tarvittaessa komentoja voi olla useampiakin.

35 of 59

Animaation ohjelmointi

  • Tee uusi projekti ja nimeä se.
  • Kissan lisäksi Scratchissä on myös paljon muita hahmoja valmiina.
  • Käytetään tässä animaatiossa karhua.
  • Poista kissa klikkaamalla roskakoria hahmon kuvakkeesta.
  • Klikkaa kuvaketta “Valitse hahmo”.
  • Klikkaa välilehteä “Eläimet”.
  • Valitse hahmoksi “Bear-walking” klikkaamalla sitä.

36 of 59

Animaation ohjelmointi

  • Valmiita taustoja on myös suuri määrä.
  • Klikkaa näytön oikeasta alareunasta kuvaketta “Valitse tausta”.
  • Valitse haluamasi tausta klikkaamalla sen kuvaketta.
  • Karhun hahmo on vähän liian iso, pienennetään sitä.
  • Valitse karhun hahmo klikkaamalla sen kuvaketta ja kirjoita kenttään koko luku 40.

37 of 59

Animaation ohjelmointi

  • Raahaa karhun hahmo hiiren vasen painike pohjassa kuvan osoittamaan kohtaan esiintymislavalla.
  • Varmista että hahmo ei kuitenkaan kosketa reunaa.
  • Tästä kohdasta karhu lähtee löntystelemään koodin ohjaamana.

38 of 59

Animaation ohjelmointi

  • Määritetään animaatio käynnistymään tapahtumalla “kun painetaan välilyönti”.
  • Lisää tapahtuman alle kuvan mukaiset osiosta “Liike” löytyvät komennot.

39 of 59

Animaation ohjelmointi

  • Lisää osiosta “Ohjaus” toistorakenne “ikuisesti” ja upota sen sisälle ehtorakenne “jos <ehto>, niin”.

40 of 59

Animaation ohjelmointi

  • Lisää ehdoksi osiosta “Tuntoaisti” totuusarvopalikka “koskettaako <hiiren osoitin>?
  • Klikkaa palikan parametria “hiiren osoitin” ja valitse sen tilalle “reuna”.

41 of 59

Animaation ohjelmointi

  • Upota ehtorakenteen sisälle osiosta “Liike” komento “käänny <15> astetta” ja vaihda parametrin arvoksi luku 180.

42 of 59

Animaation ohjelmointi

  • Lisää ehtorakenteen alapuolelle, mutta kuitenkin toistorakenteen sisälle vielä kaksi komentoa.
  • Osiosta “Liike” komento “liiku <10> askelta”, vaihda parametrin arvoksi luku 5.
  • Osiosta “Ulkonäkö” komento “seuraava asuste”.
  • Nyt olet oppinut, miten animaatio tehdään ohjelmoimalla, hienoa! Paina välilyöntiä ja testaa.
  • Suurenna esiintymislava niin animaatio näyttää vielä paremmalta.

43 of 59

Ohjelman selitys

Ilman tätä komentoa hahmo kääntyisi ylösalaisin liikkuessaan oikealta vasemmalle.

Asettaa hahmon liikesuunnan oikealle.

Ikuisesti toistettava toistorakenne. Ohjelman suoritus päättyy vasta kun käyttäjä lopettaa sen punaisesta “Stop”-merkistä.

44 of 59

Ohjelman selitys

Ehtorakenne, ehdossa tutkitaan koskettaako hahmo esiintymislavan reunaa. Jos koskettaa, niin ehto on tosi ja silloin suoritetaan rakenteeseen upotettu komento.

Komento kääntää hahmoa 180 astetta, jolloin sen liikesuunta myös muuttuu 180 astetta, eli päinvastaiseen suuntaan.

45 of 59

Ohjelman selitys

Komento liikuttaa hahmoa aiemmin asetettuun suuntaan viisi askelta.

Komento vaihtaa hahmolle seuraavan asusteen. Yhdessä liikuttamisen kanssa asusteen vaihto muodostaa tälle hahmolle kävelyä esittävän animaation.

46 of 59

Harjoitus

  • Mieti ja kokeile, miten koodaisit hahmon sanomaan puhekuplalla tekstin “Käännyn” jokaisen kääntymisen yhteydessä?
  • Tutki osion “Ulkonäkö” komentoja ja pohdi, mihin kohtaan ohjelmassa komento tulee sijoittaa.

47 of 59

Harjoituksen ratkaisu

  • Upotetaan ehtorakenteen sisälle komento “sano..” ja asetetaan sen parametrit halutuiksi.
  • Ensimmäinen parametri määrittää puhekuplassa näytettävän tekstin, kirjoitetaan siihen teksti “Käännyn”.
  • Toinen parametri määrittää, kuinka kauan puhekupla on näkyvissä. Kirjoitetaan siihen vaikkapa luku “0.5” (piste desimaalierottimena).

48 of 59

Muuttuja

  • Muisti on ihmiselle perus toimintaedellytys.
  • Myös tietokoneohjelmat tarvitsevat muistia tietojen tallennukseen.
  • Koodissa haluttu tieto tallennetaan muuttujaan, mistä se voidaan myöhemmin tarvittaessa lukea.
  • Muuttujaan tallennettu tieto voi olla numeerinen tai tekstijono.
  • Muuttujaan tallennettua tietoa voidaan muuttaa ohjelman suorituksen aikana.
  • Koko muuttujan sisältö voidaan vaihtaa toiseksi.
  • Numeerisen muuttujan arvoa voidaan pienentää ja kasvattaa.

49 of 59

Muuttuja

  • Muuttujalla on nimi, joka yksilöi sen ja jolla siihen viitataan. Ohjelmassa ei voi olla kahta samannimistä muuttujaa.
  • Muuttujaan tallennettua tietoa voidaan muuttaa ohjelman suorituksen aikana ja tieto voidaan lukea muuttujasta.

laskuri

Kokonaan uuden tiedon tallennus muuttujaan tai numeerisen muuttujan arvon muutos.

Muuttujaan tallennetun tiedon luku.

7

Muuttujan nimi

Muuttujaan tallennettu tieto

tallennus

luku

50 of 59

Muuttuja

  • Lisätään animaatio-ohjelmaan laskuri, joka laskee kuinka monta kertaa karhu on kääntynyt.
  • Avaa osio “Muuttujat” ja klikkaa painiketta “Tee muuttuja”.

51 of 59

Muuttuja

  • Kirjoita muuttujalle nimeksi “laskuri” ja klikkaa painiketta “OK”.

  • Muuttujan nimi ja arvo tulee oletuksena näkyviin esiintymislavan vasempaan yläreunaan, mutta poistetaan se sieltä. Poista ruksi muuttujan nimen edestä.

52 of 59

Muuttuja

  • Muuttujalle tulee aina antaa aloitusarvo. Tallennetaan muuttujaan kokonaan uusi arvo heti ohjelman käynnistyksen yhteydessä.
  • Raahaa koodiin kuvan mukainen komento heti tapahtuman alapuolelle. Komento tallentaa muuttujaan nimeltä “laskuri” luvun 0. Muuttujan laskuri arvoksi siis tulee nolla.

53 of 59

Muuttuja

  • Muuttujan arvoa tulee kasvattaa yhdellä jokaisen käännöksen yhteydessä.
  • Rahaa ehtorakenteen sisälle kuvan mukainen komento. Se kasvattaa muuttujan laskuri arvoa yhdellä jokaisen kääntymisen yhteydessä.

54 of 59

Muuttuja

  • Pyyhi komennosta “sano…” pois teksti “Käännyn”.
  • Avaa osio “Toiminnot” ja raahaa sieltä kuvan mukainen koodipalikka komennon “sano…” ensimmäiseksi parametriksi.

55 of 59

Muuttuja

  • Avaa osio “Muuttujat” ja raahaa sieltä ominaisuuspalikka “laskuri” palikan “yhdistä…” ensimmäiseksi parametriksi.
  • Ominaisuuspalikasta “laskuri” luetaan tähän muuttujaan tallennettu tieto (tässä arvo, koska muuttuja on numeerinen).

56 of 59

Muuttuja

  • Kirjoita palikan “yhdistä…” toiseksi parametriksi teksti “. käännös”.

  • Tämä koodipalikka yhdistää muuttujasta “laskuri” luetun numeerisen arvon ja tekstin “. käännös”.
  • Yhdistämisen tulos näytetään lopuksi puhekuplassa.
    • 1. käännös, 2. käännös, 3. käännös, jne…
  • Testaa ohjelma.

57 of 59

Harjoitus

  • Miten muuttaisit ohjelmaa niin, että karhu pysähtyy kun sen hahmoa koskettaa hiiren osoittimella. Tämän jälkeen karhu sanoo puhekuplalla tekstin “Lenkki tehty” ja ohjelman suoritus päättyy.
  • Nykyinen toistorakenne tulee korvata rakenteella, jossa on lopetusehto.
  • Ehdossa tutkitaan, koskettaako hahmo hiiren osoitinta.
  • Pohdi ja kokeile.

ANIMAATION

TOISTETTAVA

KOODI

LOPPU

KOSKETTAAKO HAHMO HIIREN OSOITINTA

EPÄTOSI

KUN PAINETAAN VÄLILYÖNTI

TOSI

Sano “Lenkki tehty”

toistorakenne lopetusehdolla

58 of 59

Ratkaisu

59 of 59

Harjoitus

  • Miten muuttaisit ohjelmaa niin, että karhu pysähtyy kun se on tehnyt kymmenen käännöstä?
  • Tarvitaan muuttujan arvo.
  • Tarvitaan vertailuoperaattori, löytyy “Toiminnot”-osiosta.