Ohjelmointia Scratchin kanssa β eta Matti Nelimarkka Noora Vainio Nyyti Kinnunen 2011
2 MateriaalionkäytössäCreativeCommons Nimeä4Tarttuva3.0MuokkaamatonCC BY4SA)lisenssillä. Setarkoittaa,ettävoitjakaajamuokata tätämateriaalia,kunhanmainitsetlähteen. Lisäksimahdollisetmuutoksettuleejakaa samallalisenssillä. Lisätietoalisenssistäsaatavillaverkosta http://creativecommons.org/licenses/by4 sa/3.0/deed.fi Hahmotjaanimointi Toistorakenteet Kuulemmemielellämmemielipiteitäsi materiaalista.mitävoisimmeparantaa, mitenasiatvoisiilmaistaselkeämmin mihinitsekäytättätämateriaalia. Lähetäpalautteestisähköpostitse scratch.kerho@gmail.com Työnvalmistumistaovattukeneet: Multimedia Ehtorakenteet Muuttujatjaloogisetoperaatiot Kynä Tapahtumapohjainenohjelmointi
3 Perusopetuksenvuoden2004opetussuunnitelmassa yhtenäaihekokonaisuutenaonihminen&ja&teknologia. Tämänoppiainekokonaisuudenkeskeisenäsisältönä ontietotekniikan&käyttäminenjateknologian& ymmärtäminen.lisäksikannustetaankehittämään& välineiden,&laitteiden&ja&koneiden&toimintaperiaatteiden& ymmärtämistä.opetussuunitelmassaeikuitenkaan painotetatietokoneidentoimintaa.tämätarkoittaasitä, etteivätoppilaatvälttämättäosaavastatakeskeiseen kysymykseenmiten&tietokoneet&toimivat. Onluonnollista,ettätietotekniikankäyttöonnostettuesiin myösopetussuunnitelmassa.tietotekniikkaonjonyt merkittäväosayhteiskuntaa,jasenroolituleekasvamaan. Käytämmesitänykyisinmyöshuomaamattamme4sinunkin taskustasivoilöytyätietokone. Oppilaidentulisimielestämmeperinteisentietotekniikan käytönlisäksimyösymmärtääjotainsentoiminnasta. Muttamitätietotekniikkaoikeastaanon?PeterJ.Denningin 2003)mukaanseonesimerkiksitietokantoja, tietorakenteitajakäyttöliittymiensuunnittelua. Käytännössänäidenteemojenkanssapäädytäänusein käytännöntoteutuksenkysymyksiin,joissaalgoritmien suunnittelujaniidentoteutuseliohjelmointionkeskeistä. Tietokoneetovatenemmänkuinvalmiitavälineitä, jollaisinanetavallisestiesitetään.pyrimmetämän materiaalinavullatuomaanesilletoisennäkökulman tietokoneidenkäyttöön.haluammekorostaa,että tietotekniikkavoiollamyösongelmanratkaisun.väline. Tokimyösvalmiitohjelmat,kutentaulukkolaskenta, tarjoavatvälineitätähän. Esipuhe Kuitenkin,ohjelmoinninavullaonmahdollistaratkaista erilaisiaongelmiasekäkehittääongelmanratkaisun ajattelutaitojasystemaattisimmiksi. Toisinkuinihmiset,tietokoneeteivätosaatehdäpäätelmiä taimuuttaaongelmanratkaisustrategiaansakeskenohjelman suorituksen.siksiongelmanratkaisustrategiatuleeesittää täsmällisemmin,käyttäenformaalia,etukäteenmääriteltyä kieltä.tätähyödyntäentietotekniikkavoiauttaa ongelmanratkaisutaitojenkehityksessä. TyövälineeksitässämateriaalissaolemmevalinneetScratch4 nimisenohjelmointiympäristön.scratchonmit4yliopistolla kehitettylapsillesuunnattuohjelma,jonkaavullavoitutustua algoritmiseenajatteluuninnostavallatavalla.innostusta auttaaesimerkiksivisuaalisetkäyttöliittymäelementit,jotka rohkaisevatlapsiakokeilemaanjalisäävätohjelmoinnin mielekkyyttä.lisäksiscratchilläoppiiperusteetnopeasti, minkäjälkeenonhelpompaasiirtyäkäyttämään kehittyneempiäohjelmointikieliä. Lopuksionmyössyytämuistaa,ettäohjelmointionväline myösluovuuteen,eivainongelmienratkaisemiseen.tämä tuleepitäämielessämyöskerhontoiminnassa,vaikka olemmemateriaalissakorostaneetongelmanratkaisun keskeistäroolia.luovantoiminnanjaonnistumisen kokemuksienkauttasyntyyomahaluoppiaenemmän.lisäksi arkipäiväistymisenmyötätietotekniikkaonmuuttunut vähemmänvakavaksi4sevoiollamyöshauskaa.
4 Alkuun Scrachin kanssa VoitladataScratchinosoitteesta: http://scratch.mit.edu/.asennettuasiscratchin koneelle,tarkistakieli.tämäopasonsuunniteltu englanninkielistäscratchiakäyttäville.kielenvoit vaihtaaohjelmanyläreunassaolevastamaapallon kuvasta.mikääneisiisestäsinuaopettamasta suomeksi. Scratch4ikkunamuodostuukäytännössäneljästäeri alueesta.vasemmanpuoleisinlaatikkosisältää kaikkikomennot.keskelläonaluejohonvalitut komennotraahataan.komennotraahataanhiiren osoittimellavalikoistakoodialueelle. Josklikkaathiirenoikeallanäppäimellä keskialuetta,saatvalikonjostavoittyhjentääkoko alueen,tallentaakuvanohjelmasikoodistatailisätä koodiaselittävänkommentin.kommenttien lisääminenonkannattavaa,josohjelmaon monimutkainen. Klikkaamallahiirenoikeallanäppäimelläyksittäistä koodilohkoa,saatvalikon,jostasaatohjeitatätä lohkoakoskien,voitpoistaaosantaitehdäkopion osasta.voitpoistaakoodiamyössiirtämälläsenpois keskialueelta.koodikäynnistetään tuplaklikkaamallasitä. Oikeallayläreunassaonnäyttämöelistage,josta näetohjelmasisuorituksen.senalapuolellaon hahmo4valikko,jostanäetluomasihahmotjavoit luodauusihahmoja. Kielenvaihtaminen Tiedostojenavaaminenja tallentaminen Näyttämö Komennot Koodialue Hahmot Ohjelman käynnistäminenja sammuttaminen
5 Hahmot ja animointi TässäkappaleessaluodaanpohjaatulevalleScrach4 ohjelmoinnille.ensiksikäsitelläänhahmoja muokkaustajalisäämistäscratchiin.lisäksi esitetäänyksinkertainenhahmojenliikutus. Tärkeääonymmärtää,ettäyksittäisetScracth4 hahmotovattoisistaanriippumattomia. Scratchissakaikkiohjelmatperustuvathahmoihinja niidentoimintaan.yhdessäohjelmassavoiollauseita hahmojajahahmotvoivatmyöskommunikoida keskenään. Jokaisellahahmollaonomatohjelmakoodista scripts),joidenmukaannekäyttäytyvättoistaan välittämättä.hahmotvoivatmyöskommunikoida keskenäänjaniidentoimintaanvoivaikuttaa esimerkiksitoistenhahmojensijainnit. Hahmojavoidaananimoidaluomallaniille ohjelmakoodeja,jotkaliikkuttelevatniitäjamuuttavat niidenulkonäköä.hahmojenliikuttamiseen komentojalöytyymotion4valikosta.hahmojen ulkonäköönliittyviäkomentojalöytyylooks7valikosta. Luodessasiuudenprojektin,siihenlisätäänautomaattisestiyksi kissa4hahmo.tämänhahmonvoikuitenkinpoistaapainamalla hiirenoikeallanäppäimellänäyttämönalapuolellaolevaahahmon kuvakettajavalitsemalladelete.& & UudenhahmonvoitluodajokovalitsemallajonkinScratchin valmiistahahmoistataipiirtämälläkokonaanuudenhahmon.voit myösvalitasatunnaisenhahmon,jokalisätäänprojektiisi. Myösvalmiitahahmojavoimuokata.Valitsemallahahmonvalikosta costumes4osionvoitmuokatahahmonasua.täällävoitmyöslisätä hahmolleuusiaasuja.uusiaasujalisätäänjokopiirtämälläkokonaan uusiasutaituomallavalmiitaasuja.nämäasuteivätoleuusia hahmoja,vaanhahmosivoimuuttaaulkonäköäänswitch&to&costume7& tainext&costume7komennolla. Piirräitseomahahmo Avaatallennettuhahmo Satunnainenuusihahmo
6 Voitmyösmuokatataustaajasillevoidaanluodaomia ohjelmakoodeja.taustaapääsetmuokkaamaan klikkaamallapienoiskuvaataustastahahmo4valikossa. Taustanohjelmakoodeillavoitmuokatataustaa,joko jatkuvastitaisiihenvoivatvaikuttaaesimerkiksi hahmojensijaintienperusteellatainäppäin4ja hiirikomentojenavulla. Samoinkuinhahmoille,taustallekinvoidaanluoda uusiaasuja.nämäasuttoimivatsamoinkuinhahmojen asut,eliniitävoidaanohjelmanajonedetessävaihtaa. Scratch4ohjelmointiperustuuerilaisiinhahmoihin. Hahmojavoiluodayhteenohjelmaanuseitajane toimivatoletuksenatoisistaanriippumatta.hahmot voivatmyöskommunikoidakeskenääntaimuutoin vaikuttaatoisiinsa. Hahmojavoiliikuttaajaniidenulkoasuavoi muokata.myöstaustaavoimuokatajasillevoi luodatoiminnallisuuksia.
7 Toistorakenteet Oppimistavoitetämänkappaleenosaltaonosoittaa, kuinkaohjelmanrakenteitavoitoistaamuutenkin kuinkopioimalla.tähäntarkoitukseenesitetäänkaksi erilaistatoistorakennetta,for4jawhile4rakenteet. Oppimistavoitteenaonymmärtää,milloinfor4 rakennettatuleekäyttääjamillointaaswhile4rakenne onoikea.tämäntakiakannattaavalitatehtäviäsiten, ettänepakottavatpohtimaanjatekemäänvalintoja näidenkahdenrakenteenvälillä. Joskustarvitsemmeuseankopionsamastapaperista.Sen sijaan,ettäpainammekopiointinappulaahyvinmonta kertaakerrommekopiokoneelle,ettätarvitsemmenäin montakopiota.ohjelmointikielissäkinonjoskustarpeen toistaatiettyärakennetta,jatämäntakiakielissäon yleisestitoistorakenteita. Ensimmäinentoistorakenne,jotakutsutaan.for2 rakenteeksi,toimiiitilanteessa,jossatiedätetukäteen kuinkamontakertaatoistontuleetapahtua.scratch4 ympäristössärakennelöytyycontrol4valikonaltarepeat4 rakenteena.rakenteellekerrotaan,kuinkamontakertaa toistontulisitapahtua. Sivussaonselvästitoistettutiettyä rakennettauseammankerran.tämän takiasevoidaanilmaista yksinkertaisemminkäyttäenfor4 rakennetta. = Toistorakenteenkäyttöselkeyttääselvästiohjelman koodia.koodionlyhyempijailmaiseeselkeämminmitäse tekeeverrattunaoikeanpuoleiseenesimerkkiin. Tehtävä:&Kissa&syö&kissanminttua,&mutta&voi&pahoin&tämän& jälkeen.&pahoinvoivana&kissa&vaihtaa&väriään&kymmenen& kertaa.& Koskatiedetäänetukäteenvarmasti,kuinkamontatoistoa tuleetapahtumaan,for4rakenneonoikeavälinetämän ongelmanratkaisemiseksi:
8 Josetetukäteentiedä,kuinkamontakertaarakennetta tulisitoistaa,tarvitsemmeerilaisenrakenteen.tätä rakennettakutsutaanwhile2rakenteeksi.scratchissä while4rakennelöytyycontrol4valikostakomentona repeatuntil. While4rakenteensisälleasetetaantotuusarvonsaava ehto.totuusarvoistaolennaistaon,ettäseonkaikissa tilanteissajokotositaiepätosi.josseontosi,while4 rakenteensuoritustajatketaan,josseonepätosi jatketaanmuunohjelmansuoritusta.esimerkiksi Sensing4valikostalöytyytotuusarvojapalauttaviaehtoja. Esimerkiksisielläonpalikka,jokakertookoskeeko hahmoreunaavaiei.senarvosiisontosi,kunhahmo koskettaareunaajakunhahmoeikosketareunaa,sen arvoonepätosi. Tehtävä:&Tee&ohjelma,&jossa&kissa&liikkuu&kunnes&se&koskee& seinää.& Ohjelmansuoritustajatketaankunneskissakoskee seinään.etukäteeneitiedetä,kuinkamontaliikuttamista tähänvaaditaan,jonkatakiatarvitaanwhile4rakennetta. Tehtävä:&Kaksi&kissaa&rakastavat&toisiaan&ja&haluavat&olla& toistensa&kanssa& &valitettavasti&niiden&suunnistustaidot& ovat&heikot,&joten&he&vain&kääntyvät&ympäriinsä&ja&menevät& eteenpäin.&jos&he&pääsevät&toistensa&lähellä,&niin&he& pysähtyvät.& Nyttehtävässätarvitaankaksierihahmoa,mutta molemmilletuleesamanlainenkoodi.etukäteeneitiedetä kuinkakaukanakissatovat,jotentoistojenmäärääei tunneta.siksionsyytäkäyttääwhile4rakennetta.while4 rakenteenlopetusehtonaonse,ettätoistakissaa kosketetaan. Kolmaserikoistyyppitoistorakenteestaonloputontoisto. Käytännössätämäonwhile4rakennesellaisessa tapauksessa,jossaehtoonainatosi tällöintoistettavaa rakennettatoistetaankunnesohjelmansuoritus keskeytetään.scrath4ympäristössätätäkutsutaan forever4rakenteksi.huomaa,ettävoitkeskeyttää ohjelmansuorittamisenoikeanyläkulmanpunaisella kahdeksankulmiolla.
9 Tehtävä:&Kissa&vartioi&linnaa&ja&kiertää&sen&ympäri&puolen& minuutin&välein.& Tässätehtävässäyhdistetäänkaksierilaista toistorakennetta.sisempifor4rakennesiirtääkissaa linnanympärikuntaasulompitoistaatätäkiertoliikettä puolenminuutinvälein.tässätuleeollaerityisen tarkkaavainensiinä,mitkäelementitkuuluvatmihinkin toistorakenteeseen.ensiksikannattaaratkaistaosa4 ongelmana kierretäänlinnanympäri jatämänjälkeen ratkaistawhile4rakennettasenympärille. Ohjelmoinnissaonuseintarpeentoistaasamaa rakennettauseammankerran.leikkaa4liimaa4kopio ontokitehokaskeinotähän,muttajohtaalopulta vaikeastiylläpidettäviinohjelmiinjaturhaan toistoon.tämänvälttämiseksionolemassakaksieri rakennetta: For2rakenneontarkoitettukäytettäväksisilloinkun tiedetääntäsmälleen,kuinkamontakertaaasia halutaantoistaa. While2rakenneontarkoitettutilanteisiin,jossaei etukäteentiedetätoistokertojenmäärää. Toisinkuinfor4rakenne,while4rakennetarvitsee ainaehdonkuinkakauanrakennettatoistetaan. Tämäehtoontotuusarvo,eliainajokotositai epätosi.josseontosi,suoritustajatketaanjajosse onepätosi,suorituskeskeytetään.
10 Ehtorakenteet Kappaleenoppimistavoitteenaonymmärtää ehtolauseidenmerkitysohjelmoinnissa.oppilaanon havaittava,ettätietytsuorituksetovatvaihtoehtoisiatai netehdäänvaintietynehdontäyttyessä.tuleesiis ymmärtäätotuuslauseidenperusteetjavaihtoehtoiset suoritustavat. Arkielämässämmeuseinteemmepäätöksienehtojenavulla. Menemmetienylijosautojaeitule,muutoinodotamme, ettäautotohittavattien.tai,menemmeulosjoseisada, muutoinjäämmesisälle. Ohjelmoinnissaonuseintarpeenasettaaohjelmalleehtoja joidenmukaansetoimii.esimerkiksihahmonkoskettaessa reunaasesaatetaanhalutapalauttaatakaisinkeskelletai vaihtoehtoisestipysäyttäähahmonliike.tämätoteutetaan ehtolauseilla. Ehtorakenteetovattärkeäosaohjelmointia.Niidenavulla voidaanjaksottaaohjelmankulkuajajakaaohjelmankulku eriosiintilanteestariippuen.ehtorakenteetovatif4lauseja else4lause.scratchissaehtorakenteetlöytyvätcontrol4 valikonalta. Tehtävä:&Kissa&haluaa&valvoa&näyttämöä.&Tee&ohjelma,& jolla&kissa&käy&mahdollisimman&suuren&alueen&kentästä& läpi.& Toistetaanloputtomastiseuraavaaohjetta:jos kosketetaanseinään,käännykymmenenastetta,muutoin liikukymmenenaskeltasuuntaan,jonneosoitan.näin kissakäyhitaasti,muttavarmastikokonäyttämönläpi. Ainaseinäntullessavastaansekääntyyjamuutoinse liikkuueteenpäin. Ehtolauseidenavullaohjelmansuoritustavoidaan jakaaosiin.osatsuoritetaanehtojentoteutuessa. If2lauseensisälläolevaosasuoritetaanif4lauseen ehdontoteutuessa,else2lauseensisälläolevaosa suoritetaanjosjavainjosif4lauseenehtoeitoteudu. If4lausevoiesiintyäjokoelse4lauseenkanssataiilman sitä.
11 Multimedia Tämäkappaleesittääperusteetäänenliittämisestä Scratch4ohjelmaan.Tavoiteon,ettätämänkappaleen myötäoppilasosaisiliittääyksinkertaisiaääniäosaksi ohjelmaansa.äänenliittämisenkauttaonmyös mahdollistasaavuttaauusiailmaisunmuotoja. Esimerkiksionmahdollistaäänittäärytmejätai tunnettujalaulujajaohjelmoidaniihinsopivaanimaatio. Tehtävä:&Kun&kissa&törmää&seinään,&niin&sitä&sattuu&ja&se& sanoo&mau.& Ehtolauseensisällelaitetaannytkomento,jokatoistaaääntä. Maailmammehavainnotperustuvatuseisiinerilaisiin aisteihin.esimerkiksitelevisio4ohjelmissaäänionvähintään yhtätärkeäosakokemustakuinnäköaistiinperustuva kokemus.myöstietokonepeleissäsekäyhäenemmän muissakinohjelmissamusiikkijaäänetovatkeskeinenosa käyttökokemusta. MyösScratchissäonmahdollistaliittääääniätapahtumiin. TämätapahtuuSound4valikonkautta.Yksinkertaisimmillaan äänentoistaminenonvalmiiksiannetunäänitiedoston toistamista.oppilasvoimyösnauhoittaaomanäänensä tähänvalitsemallarecordsoitettavienäänienvalikoimasta. Matalammantasonäänenkäsittelystäesimerkkinätoimii seuraavamusiikkiesitys.kunvihreäälippuapainetaan,niin toistuuyksinkertainenrytmi. Onmyösmahdollistatehdäyksinkertaisempiayksittäisistä äänistäkoostuviasoitoksia.tähänauttavatyksittäisten tahtiensoittamiseentarkoitetutkomennot Audiovisuaalinenkokemusvoiollamielekäsjaparantaa ohjelmankäytettävyyttäjakäyttökokemusta.scratchissä voisoittaaääntäkahdellaeritavalla:korkeallatasolla suoraanäänitiedostojenkauttataimatalammallatasolla yksittäisiänuottejakäyttäen.
12 Muuttujat Kappaleenkannaltatärkeintäon,ettäoppilasymmärtää muuttujienkäsitteen.lisäksitavoitteenaonoppia käyttämäänmuuttujiajasoveltaaniitäerilaisissa tilanteissa.käyttösisältäämyösoperaatiot,joita muuttujillevoidaantehdä.lisäksiharjoitellaanlistojen käyttöä Koskamuuttujatovatvarattujamuistipaikkoja,einiille kerranannettuarvoolelopullinenvaanmuistipaikassa olevaarvovoidaankorvatauudella.näinvoidaanluoda esimerkiksilaskureita.muuttujallavoiollavainyksi arvokerrallaan.mikälivanhaaarvoamuutetaantai siihensijoitetaanuusiarvo, korvautuuvanhaarvouudella. 3 Useinohjelmoinnissatuleetarvetallentaatietoaohjelman käyttöön,esimerkiksipisteenlaskuavarten. Ohjelmoinnissatämäontoteutettumuuttujienavulla. Muuttujatovattietokoneenmuististavarattuja muistipaikkoja,joihinpäästääntämännimenkautta. Niihinvoidaantallentaaniinsanojakuinlukujakin. Koskamuuttujatovattiettyjämuistipaikkojatietokoneen muistissa,onjokainenmuuttujanimettävä.näintietokone tietää,minkämuuttujanarvoahalutaankäyttää.tästä syystäkahdellamuuttujallaeivoiollasamaanimeä,sillä muutentietokoneeitietäisi,kumpaamuuttujaaon käytettävä.muuttujatkannattaanimetämuuttujien käyttötarkoituksiakuvaaviksi.esimerkiksijosmuuttuja kuvaayhteenlaskunvastausta,onsejärkeväänimetä summaksieikäesimerkiksimaksalaatikoksi.kun muuttujienmääräkasvaa,onjärjettömästinimettyjen muuttujienhallitseminenhyvinvaikeaajavirhealtista. Muuttujan&nimi&ja&muuttujan&arvo& ovat&kaksi&eri&asiaa.muuttujan nimeäeivoimuuttaasenluomisen jälkeen.muuttujanarvosensijaan tarkoittaalukuataisanaa,jonka muuttujasisältää.viereisessä koodissamuuttujan variable arvoksiasetetaan5.tämänjälkeen ohjelmaakäsketään sanoa variable.kunohjelma ajetaan,kissasanoo5eikä variable,sillämuuttujanarvoon5. 5 8 9
13 ScratchissamuuttujaluodaanVariables4valikosta löytyvästämake&a&variable4painikkeesta.muuttujalleon annettavanimi,minkäjälkeenseilmestyyvalikkoon. Muuttujaanimetessävoitvalitavoivatkomuuttujaa käyttääkaikkihahmotvaivainsillähetkellävalittuhahmo. Muuttujanluonninjälkeensenäkyymyösnäyttämön ylälaidassa. Muuttujalleasetetaanarvolisäämälläohjelmaanset&to4 palikka.keskelläolevastavalikostavoitvalitamuuttujan, jonkaarvoamuutetaan.muuttujanarvoavoidaanmuuttaa montakertaa,jolloinviimeisinmuutosjäävoimaan. Muuttujanarvoavoidaanmuuttaamyösniin,ettäsen arvoakasvatetaantaipienennetääntietynverran.tähän käytetäänchange&by4palikkaa.tämäonkätevääsilloin, kunmuuttujanarvoamuutetaanusein,eikämuuttujan arvoatiedetätaisitähalutaasettaatiettyynarvoon esimerkiksilaskureissa. Tehtävä:&Kissa&kehrää&kun&sitä&silittää&välilyöntiä& painamalla).&kun&kissaa&on&silittänyt&kymmenen&kertaa,&se& menee&nukkumaan.&&nukuttuaan&kissa&on&taas&valmis& kehräämään.& & Tehtävässäpitäälaskea,montakokertaavälilyöntiäon painettu.tätävartenluodaanmuuttujakehräys,joka kasvaayhdelläaina,kunvälilyöntiäpainetaan.kun välilyöntiäonpainettu10kertaa elikunmuuttujan kehräysarvoonkymmenen4kissameneenukkumaan.
Listat Joskusohjelmoinnissatuleetarvetallentaauseitaarvoja, jotkaliittyvätsamaanasiaan.tällöineiolejärkeväätehdä useitamuuttujia,silläniitävoitaisiinjoutualuomaan useitakymmeniä.tämäonratkaistuohjelmoinnissa listojenavulla.esimerkiksivoiollasamaanasiaan liittyviäkäyttäjänvastauksia.tällöinsensijaan,ettäniistä tehtäisiinjokaisestaomamuuttujansa,onmielekkäämpää, ettäneovatyhdessälistassa. Listoissatietoalaitetaanperäkkäin.Niitävoiajatella jonoina,joissajokaisellaalkiollaonjärjestysnumero. Numerointialkaaykkösestäjajatkuualkioidenmäärän verran.mikälilistaonviidenalkionpituinen,eilistan kohtaan15voilisätämitään,vaanseaiheuttaavirheen, jokailmeneeskriptinpunaisenaympäröintinä. Listaanvoidaanlisätäalkioadd&& palikalla.tällöin lisättyasiameneelistanperällejalistankokokasvaa yhdellä.listaanvoilisätänumeroita,merkkijonojaja muuttujia. Kutenmuuttujia,myöslistanalkioidenarvojavoi muuttaareplace&item4palikanavulla.tällöinalkion vanhaarvokorvataanuudella. 14 ListaluodaanVariables4valikostalöytyvästäMake&a&list4 painikkeesta.listalleonannettavanimi,minkäjälkeense ilmestyyvalikkoon.listaanimetessävoivalitavoivatko listaakäyttääkaikkispritetvaivainsillähetkellävalittu. Listanluonninjälkeensenäkyystagenylälaidassa. Alkiotavoidaanmyöspoistaalistasta.Tällöinvalittu alkiopoistetaanjakaikkiensenallaolevienalkioiden järjestyslukupieneneeyhdellä,jolloinmyöslistan pituuspieneneeyhdellä. Myöslistankeskellevoilisätäuudenalkion.Tällöin valittuunkohtaansijoitetaanuusihaluttuarvoja kaikkiensenalapuolellaolevienalkioiden järjestyslukukasvaayhdellä,jolloinmyöslistanpituus kasvaayhdellä.
15 Muuttujien ja listojen operaatiot Sellaisinaanmuuttujattoimivatlähinnätiedon säilyttämisessä.tilanneonsamanlainenkuinkirja,jonka voilukea,muttasaatuatietoaeivoisoveltaamihinkään. Mikälimuuttujiavoitaisiinkäyttäävaintiedon tallentamiseen,eilaskutoimitustensuorittaminenolisi mahdollista. Varsinuseatpelitvaativatesimerkiksiyhteenlaskua pisteidenlaskemiseen.tämäntakiaohjelmoinnissaon käytössäkaikkiperusmatemaattisetoperaatiot:yhteen4, vähennys,kerto4jajakolaskusekämoduloeli jakojäännös. Voitoperaattorienavullalaskeamuuttujienarvoilla peruslaskujaniinettätoinen,molemmattaiei kumpikaanluvuistaonmuuttuja.operaattorejavoi myösyhdistääkeskenään. Operators4valikosta&löytyymyöstoimintoja merkkijonojenyhdistämiseen,läpikäymiseensekä pituudenselvittämiseen. Joinyhdistääsilleannetutmerkkijonotyhdeksi merkkijonoksi.yhdistettymerkkijonoeitallennu mihinkäänautomaattisesti,vaansepitäämuistaa tallentaamuuttujaan. & Letter&n&ofpalauttaasilleannetunsanann:nen kirjaimenjalengthofpalauttaasilleannetunsanan pituuden. Tehtävä:&Kissa&on&kerännyt&kaupasta&ostettavat&asiat& listaan.&tee&ohjelma,&jolla&kissa&kertaa,&mitä&hän&aikoo& ostaa&kaupasta.& Koskalistassaonuseitaalkioita,joillekaikille halutaantehdäsamatoiminto,kannattaakäyttää toistorakennetta. Koskalistanpituuseiolevakiokäytetääntoistojen määränälength&of4palikkaa,jokapalauttaalistan pituuden.näinjokainenlistanalkiokäydäänkerran läpi.item&of& palikkapalauttaaalkionarvon,tässä tapauksessasanotaanainaalkiokohdassai,joka kasvaajokaisellatoistokerrallayhdellä. Tämänlisäksimuuttujillatoimivatpienempääkuin, suurempaakuinjayhtäsuurtakuinoperaatio,joihin tutustutaanseuraavassaluvussa. LisäksiScratchissaonpalikka,jokasisältää monimutkaisempiamatemaattisiaoperaatioita,kuten sini,tangentti,neliöjuurijalogaritmi.roundpyöristää silleannetunluvunnormaalienpyöristyssääntöjen mukaan.nelöytyvätoperators4valikonalta.
Muuttujatmahdollistavatmonimutkaisteohjelmien tekemisen.muuttujinpystytääntallentamaanohjelma tilaajaniitäpystytäänmuuttamaanohjelman suorituksenaikana. Muuttujiaonkahdenlaisia:yksittäisiämuuttujiaja muuttujienkokonaisuuksia,listoja. Muuttujillevoidaansuorittaaperusoperaatioita,kuten yhteen44javähennyslaskuataisanastatutkia,mikäon senn:nneskirjain. 16
Loogiset operaatiot Kappaleessakäsitelläänloogisiaehtolausekkeita, kutenpienempääkuinjayhtäsuuri.lisäksi käsitelläänloogistenehtolausekkeidenyhdistämistä operaattoreillajalauseidenkäyttöäohjelmoinnissa. Loogisetoperaattoritsaattavatkuulostaavierailta, vaikkatodellisuudessaniitäkäytetäänjokapäivä. Tekemisellesaatetaanasettaauseitatoisistaan riippumattomiaehtojakäyttäensanojaja,taijaei. Esimerkiksi Lähdenillallaelokuviinjossaan siivottuajatehtyäläksyt.jokuvoisikuitenkinlähteä elokuviinjokunonjokosiivottutaitehtyläksyt.myös ohjelmoinnissaontarpeellistaasettaajoidenkin koodinpätkiensuorittamiselleehtoja,joihinliittyy useampiamuuttujia. Ohjelmoinnissaonuseintarpeellistavertaillaasioita jatehdäasioitavain,jostiettyehtotäyttyy.useinyksi ehtoeikuitenkaanriitähalutunlopputuloksen saamiseksitairiittääettätoinenehdoistatäyttyy. Esimerkiksihalutaan,ettähahmokääntyy,mikälisekoskee vaaleanpunaistareunaa.liikkumisensuorittamiseksitarvitaansiis kaksiehtoa.ohjelmanvoisitoteuttaalaittamallakaksiif4lausetta sisäkkäin,muttakunehtojenmääräkasvaatulisikoodista vaikealukuistajakoodikasvaahuomattavasti. Tämäongelmavoidaanratkaistaloogistenoperaattorienavulla. Niillävoidaanyhdistääjavertaillaerillisiäehtojajamuodostaaniistä kokonaisuus,jollaonvainyksitotuusarvo.kunehdoistamuodostuu yksitotuusarvo,voidaanselaittaasellaisenaanesimerkiksiif4 lauseenehdoksi.allaand4operaattoriakäyttävätoteutusyllä olevastaif4lause4hirviöstä. 17 Loogistenoperaattorienavullavoidaanmuodostaa kokonaisuuksia,jotkakoostuvatpienemmistäosista, lausekkeista.lausekkeetvoivatollamuuttujia,niiden arvontutkimista,hahmoihinliittyviätotuuksiatai muitaloogistenoperaattoreidenavullamuodostettuja lauseita.muodostuneetkokonaisuudetvoivatsiis toimiamyöslausekkeina. Scratchistalöytyykuusierilaistaloogistaoperaattoria: Yhtäsuurikuin Pienempääkuin Suurempaakuin Ei Tai Ja
18 Pienempääkuin,suurempaakuinjayhtäsuurtakuinovat monellevarmastiennestääntuttujaala4asteen matematiikasta.ohjelmoinnissavertailuoperaattorit toimivatsamallatavalla. Allaolevassataulukossaonesimerkkivertailujajaniiden palauttamattotuusarvot.yleensävertailuoperaattoreja käytettäessäainakintoinenvertailtavistaonmuuttuja, jonkaarvomuuttuuohjelmansuorituksenaikana. Ei4operaattorinarvoonsensisällelaitetunlausekkeen totuusarvonvasta4arvon.elimikälisisällelaitettulauseke ontosi,onlauseentotuusarvoepätosijapäinvastoin. A. not.a. Tosi Epätosi Epätosi Tosi 2<5 Tosi 5>9 Epätosi 4=2 Epätosi 3=3 Tosi 5<muuttuja Riippuumuuttujanarvosta And4operaattorijaor4operaattorieivättodennäköisesti oleennestääntuttuja,muttaniidentoimintaonhelppo ymmärtää. And4operaattorion tosi,mikälimolemmatvertailtavat lauseetovattosia. Or4operaattorion tosi,mikälivähintääntoinen vertailtavistalauseistaontosi.tosipalautetaansiismyös, kunmolemmatlausekkeetovattosia. A. B. A.and.B. A.or.B. Tosi Tosi Tosi Tosi Tosi Epätosi Epätosi Tosi Epätosi Tosi Epätosi Tosi Epätosi Epätosi Epätosi Epätosi Kutenalussamainittiin,loogisiaoperaattorejakäytetään useinehtolauseidentaitoistorakenteidenehtoina. If4lauseidentoistamisensijastakäytetäänand4orsekänot, mikäliehtojaonuseampia.näinvältetäänturhaatoistoaja selvennetäänohjelmantoimintaa.
19 Tehtävä& Kissa&haluaisi&pelata&lautapeliä.&Hän&ei&voi&kuitenkaan&pelata&sitä& yksin,&joten&hän&tarvitsee&molemmat&lähellä&asuvat&ystävänsä&miisun& ja&monnin.&kissan&ystävät&ovat&arvaamattomalla&tuulella&ja&heidän& vastauksensa&vaihtelevat.&kissan&onkin&suostuteltava&molemmat& kaverinsa&pelaamaan&kanssaan. Tehtävässäonkaksimuuttujaa,MiisunsuostuminenjaMonnin suostuminen,kunmolemmatmuuttujatovattosia,voidaan lautapeliäalkaapelata.miisunjamonninmuuttuvatmielipiteet saadaanaikaanrandom4luvunavulla. Mikälirandomonväliltä143vastausonmyönteinenjaväliltä4410 kielteinen.kissanystävätasuvatvastakkaisillapuolilla,joten kysyäkseenkissanonjuostavanäyttämöäedestakaisin. MonnillajaMiisullaonmolemmillaomatskriptinsä,jonkaavullane vastaavatkissalle,neovatmuuttujannimiälukuunottamatta samanlaisia.kissallapitääollaskriptiliikkumiseenjamiisunja Monninmielipiteenseuraamiseen. Loogisetoperaattorittarjoavatmahdollisuudenvertaillaja muodostaaehtolauseitamuuttujienarvoihinliittyen.%loogisia% operaattoreitaovatpienempääkuin,suurempaakuinjayhtäsuuri kuin,jotkamahdollistavatarvojenvertailun. Lisäksi&loogiset&operaatiot&ja,&tai&sekä&ei&mahdollistavat& täsmennetyntoiminnanloogisienlauseidenosalta.esimerkiksi pienempää'tai!yhtäsuurta)kuin)kolme)muodostuu)kahdesta)eri) lauseesta:pienempääkuinsekäyhtäsuurtakuin.
20 Kynä Luvunoppimistavoiteonoppiakäyttämään suorempaapiirtotoiminnallisuutta.piirtäminen tapahtuuhahmonliikutuksenavulla, määrittelemälläerikseenollaankonytpiirtotilassa vaiei. Sellaisenaanpiirto4toiminnallisuudensovellukset ovatvarsinvähäisiä..sekuitenkinmahdollistaa aiemminopittujentoisto4jaehtorakenteiden käytönuudellatavalla,minkätakiatätäosuutta voikinkäyttäähyvinaiemminopittujenkäsitteden kertaamiseen. Piirretäänsuoraviiva käyttäenscractchiä. Ensiksiasetetaanviivalle värijakoko,tämän jälkeenliikkuessaan hahmonperässäon sininenviiva. Tähänmennessäolemmekäyttäneetleimasinta, valmiitakuvioitajoitaliikkuvat.kuitenkinscratch tarjoaamahdollisuudenyksityiskohtaisempaanja tarkempaanpiirtämiseenpen4valikonkautta.kynän kokoajaväriävoimuuttaa: Kynäseuraaainahahmoa.Kynävoiollamyösirti piirtopinnastataikiinnisiinä.piirtopinnassakiinni ollessaansepiirtää,irtiollessaaneipiirrä. Nytpiirretään sisäkkäisiäisoja ympyröitä,joidenväri vaihtuu.huomaa,että koonvaihtamiseenarvo voiollamyös negatiivinen.
21 Piirretäänkatkoviiva.Nytajatuson,ettäjokatoisella askeleellakynäotetaanirtipinnastajaaskelotetaan jonkajälkeenkynälaitetaantakaisinpinnalle.huomaa kuinkamuuttujaaonkäytettylaskemaanaskelmäärää. Scratchissäonmahdollistapiirtääpinnallesuoraan käyttäenkynä4toiminnallisuutta.kynällevoimäärittää senkoonjavärin. Kynäpiirtääsilloinkunseonkiinnipinnassajaeipiirrä kunseeiolekiinnipinnassa.
22 Tapahtumapohjainen ohjelmointi Tässäkappaleessatarkoitusonoppiamuodostamaan riippuvuussuhteitaohjelmienvälillä. Riippuvuussuhteidenmuodostaminenhelpottaa ohjelmienluomistajaylläpitämistä.lisäksise mahdollistaauudetinteraktiivisetmuodot. Keskeinenopetettavaajattelutapaonsignaalinja slotinkäyttötapahtumienabstraktoimisessa.tavoite on,ettäoppilasosaakappaleenlopussaaiheuttaa tapahtumansignaalillajaottaatapahtumanvastaan jonkuntoisenhahmotslot4rakenteella. Useinarkielämässäensimmäinentapahtumaaiheuttaa toisentapahtuman.esimerkiksiihminenylittääautotien kunhänhuomaavalonolevanvihreä.tarkemminsiis, vihreävaloaiheuttaasen,ettäihminenylittäätien, muutoinhänolisivainpysähtyneenä. Monimutkaistenohjelmientapauksessasaatetaanpäätyä samanlaiseentilanteeseen:jokutoimintoaiheuttaajotain muutatapahtuvaksiohjelmassa.esimerkiksitallenna4 napinpainaminenaiheuttaaohjelmantallentamisen. Kutsummetätätapahtumapohjaiseksiohjelmoinniksi. Yksinkertaisimmattapauksettapahtumapohjaisesta ohjelmoinnistaonjoesitettyaiemmin.esimerkiksilipun painaminenjavälilyöntiovattapahtumaanperustuvia toimintoja.kunlippuapainetaan,niinsuoritetaansiihen liittyväohjelma.kunvälilyöntiäpainetaan,niin suoritetaansiihenliittyväohjelma. Kutsummeaiheuttavaatapahtumaasignaali4termilläja tapatumastaaiheutuvaarakennettaslot4termillä. Esimerkissäsignaalejaolisivatlipuntaivälilyönnin painaminenjaslotolisiscratchissätähänsignaaliin kytkettykoodi. Nämätokiolivatyksinkertaisiaesimerkkejä, mielenkiintoisempaaonkunhahmotvoivatviestiä keskenään.tämätapahtuulähettämälläsignaalija kirjottamallasenvastaanottavaslot.nämälöytyvät Control4valikosta. broadcast komentolähettääsignaalin. Signaalilletuleevalitanimi,jollasetunnistetaan. Vastaavastion whenireceive onslot4komento,johon liitetäänslottiinkuuluvatoiminto.
23 Tehtävä:&Kaksi&kissaa&pelaavat&hippaa.&Aina&kun&kissa&saa& toisen&kissan&kiinni,&niin&kiinni&saatu&kissa&sanoo& Hippa. & & Esimerkissätoinenkissaetsiikissaajakunsesaakissan kiinni,niinlähettääviestin hippa.toinenkissaottaatämän viestinvastaanjasanoo Olenhippa. Onoikeastaanolemassakahdenlaisiasignaaleja,synkroonisiaja asynkroonisia.asynkrooniset.signaaliteivätkeskeytä ohjelmansuoritustaslotinkäsittelynajaksi,kuntaas synkrooniset.singaalitodottavatettäslotsaadaansuoritettua jajatkavatsittensuoritusta. Vasemmanpuoleinenkoodionasynkrooninensuoritus,eli Hmmm tulostuunäytöllehetikuntaasoikeanpuoleisessa koodissatulostusodottaa,ettäjotaintapahtuu4slotonsaatu käsiteltyä. Tehtävä:&Kissat&pelaavat&viestiä,&jossa&seuraava&kissa&saa& juosta&vasta&kun&edellinen&kissa&on&päässyt&perille.& Koskaemmeetukäteentiedä,kauankokissallamenee juoksemiseen,niinjoudutaankäyttämään tapahtumapohjaistaohjelmointia. Ohjelmoinnissaontarpeenjoskusesittää seuraussuhteitahahmojenvälillä.tätämekaniikkaa kutsutaansignaaliksijaslotiksi. Signaalilähettääviestin.ViestionScratch4kielessäsiis vainjokuilmiötäkuvaavasanatailause. Slotottaaviestinvastaan.Slot4osuuteenkytketän,mitä hahmossatulisitapahtuasignaalinvastaanottamisen jälkeen.
24 Seuraavaksi Tämämateriaalionollutpintapuoleinenjohdanto Scratch4ympäristöönjaohjelmoinninperusteisiin.MIT4 yliopistonkehittämäscratch4ympäristöonollut laajemminkäytössäuseissakouluissa,jasilleoneritoten englanniksisaatavillavalmiitamateriaaleja. Suosittelemmetutustumaanmyösnäihin,huomattavasti kattavempiin,materiaaleihinsekäscratch4verkkosivuilla esiteltyihinprojekteihin.myösscratchinympärillä tapahtuujatkuvastitutkimustyötä,jokavoiolla mielekästäseurata. KuitenkinsellaisenaanScratchsopiiinnostuksen herättämiseenjaperusteidenopiskeluun.kuitenkaansillä eivoitehdävarsinaisiatietokoneohjelmia.seuraavana askeleenaohjelmoinninsarallakannattaasiirtyäyleisesti käytettihinohjelmointikieliin,vaikkaniissäscratchin visuaalinenilmaisupuuttuukin. HyväaloittelijakielionesimerkiksiPython.Pythonon yksinkertainen,muttasiltiilmaisukykyinen ohjelmointikieli.siitäonsaatupositiivisiakokemuksia ainakinyläasteelaistenparissa,jauseissasuomalaisissa korkeakouluissapythononensimäinenopetuskieli.sitä käytetäänopetuksenlisäksikaupallisissasovelluksissa esimerkiksigooglella.kuitenkin,alaluokkalaisillepython4 ohjelmointivoiollakovinhaastavaa,jotensevoiolla sopivampijokerranscratchiäharjoiteilletaiyläasteen kynnykselläoleville. Pythononyleisyytensätakiamelkohyvindokumentoitu. Varsinkinenglanniksimateriaaliaonrunsaastisaatavilla, muttamyössuomeksionhyviäkirjojasekänettioppaita. Scratch2resursseja. http://scratched.media.mit.edu/ http://scratch.mit.edu/ Ohjelmoinnin.opetuksesta.yleisesti. http://www.imped.fi/ Python2kielestä. https://www.doria.fi/handle/10024/63381
25 ettäoppilaatitseideoivatjatoteuttavatloppuunjonkun yksinkertaisenprojektin4esimerkiksipelin4meidän ollessavainapunavaikeidenosiensuorituksessa. Projektijaksoonauttanutoppilaitatoteuttamaanomia ideoitaanjakäyttämääntietotekniikkaavälineenäomien toiveidentoteuttamiseen.lisäksiseonmahdollistanut hyvinkertaamisenopituistasisällöistä.lopputyötvoitoki laittaaesillekokokoululleesimerkiksijulisteiden muodossa. Onneaohjelmointikerhonkanssa, Matti,&Noora&ja&Nyyti&sekä&muut&ohjelmointikerhon& pitämiseen&osallistuneet Kuulemmemielellämme,mitenmateriaaliavoisikehittää. Lisäksihaluaisimmekuulla,mitähyötyätästä materiaalistaonollutkoulunopetustyössäkäytännössä. Meidättavoitatparhaitensähköpostitse scratch.kerho@gmail.com Oppilaatolivatinnostuneitaohjelmoinnistajaolisivat halunneettoteuttaahaastavampiaohjelmiakuinscratchillaon mahdollista.oppilaattekivättehtäviäeritahtiin,mikä kannattaahuomioidakerhoasuunniteltaessa.oppilaatmyös sisäistivätasioitaomaantahtiinsa,toiseteivättarvinneet kertaustaviimeviikonasioista,kuntaastoisetkysyivätapua jokaisessatehtävässä.saattaakinollahyödyllistä,joskerhossa onpaikallauseampiaopettajiavarsinkinjosryhmänkokoon kymmentäsuurempi. Ohjelmoinnissaeiainaoleyhtäjaoikeaatapaatehdäasioita, mikänäkyymyösoppilaidentehtävienratkaisuissa.vaikka oppilaidenratkaisuteivätolisikaanhyviä,kannattaaoppilaiden luovuuttatukeajaantaaheidäntoteuttaaomiaideoitaan.näin oppilaatrohkaistuvattekemäänjakertomaanomistakotona tekemistäänprojekteista. Lisäksikaikkienohjelmienkohdallakannattaakeskustella, miksitoisetratkaisutovatparempiakuintoiset,sekäperustella mitentässäongelmassapäädyttiintähänratkaisuun.muista, ettäohjelmoinnissaepäonnistuminenkinvoiolla oppimiskokemus. Uskommemyös,ettäohjelmointikerhotparantavat ongelmanratkaisukykyäjamatemaattistapäättelykykyä.myös omatpienimuotoisettestimmesekämuuaihepiiriäsivuava tutkimusosoittavatvihjaavattähänsuuntaan.tämävoiolla piilotavoite,jotaeitietenkäänerikseentarvitsemainita oppilaille,muttasitävoidaankäyttääapunakerhontoiminnan perustelussa. Olemmejoillainpitämillämmekerhoillalopussavarsinaisen opetuksensijaanpitäneetprojektityöjakson.tällöinideaon, Kokemuksiamme
26 Sanasto Costume.kuvaayksittäisenhahmonkulloistaulkonäkö. For2rakenne.Toistorakenne,jossatoistojenmääräonmääritelty kokonaisluvulla.kts.toistorakenne. Forever2rakenne.Toistorakenne,jotatoistetaanloputtomasti.Kts. Toistorakenne. If2lause.Rakenne,jossaif4lauseensisälläolevakoodisuoritetaanvain,jos silleasetettuehtoontosi.kts.ehtolause Ehtolause.Rakenne,jokasisältääehtojatiettyjenkoodinpätkien suorittamiseen. Else.Elsensisälläolevakoodisuoritetaanvain,mikäliif4lauseenehtoei toteutunut Ja2operaattori.Palauttaatoden,mikälimolemmatehdotovattosia.Kts. Looginenoperaattori Kynä.onScratchinmatalantasonpiirtotoiminnallisuus.. Lista.Rakenne,jonkaavullavoittallentaamontamuuttujaasamaan paikkaan.kts.muuttuja Looginen.operaattori.Yhdistääuseitatotuusarvollisialausekkeita yhdeksitotuusarvoksi. Modulo.Jakojäännös.Esim5/2moduloon12*2=4ja544=1) Muuttuja.Tiettymuistipaikkatietokoneenmuistissa,johonviitataan muuttujannimellä.arvoavoimuuttaa. Ohjelma.Kokonaisuus,jonkakoodimuodostaa. Ohjelmointi.Komentojenkirjoittaminentietokoneelle,koodaus. Ohjelmointikieli.Formaalia,ihmiselleymmärrettäväksitehtyä konekieltä. Parametri.Tarkennejokaannetaanjollekintoiminnolle.Esim. Yhteenlaskussa3+5,3ja5ovatyhteenlaskunparametreja. Projekti.Kokonaisuus,jossaovatkaikkisamaanasiaanliittyvätkoodit. Signaali.Lähettääviestin.Kts.Tapahtumapohjainenohjelmointi. Skripti.Lyhytsuoritettavakoodinpätkä. Sprite/hahmo.Hahmo,jolleskriptejävoidaanluoda. Slotottaavastaanviestin.Kts.Tapahtumapohjainenohjelmointi. Stage/Tausta.Oikeassaylänurkassanäkyvälaatikko,jossaskriptien suoritusnäkyy. Tai2operaattori.Palauttaatoden,mikälivähintääntoinenehdoistaontosi. Kts.Looginenoperaattori Tapahtumapohjainen.ohjelmointi.mahdollistaahahmojenvälisen kommunikoinnin. Toistorakenne.Rakenne,jollatoistetaankoodinpätkää.Toiston määrä/ehtoriippuutoistorakenteesta. Totuusarvo.Kertoolauseenpaikkansapitävyyden,tositaiepätosi While2rakenne.Toistorakenne,jokatoistaaniinkauankunsilleannettu ehtoontosi.kts.toistorakenne.