Koodimatskut
Koodimatskut.fi on tarkkaan valikoitu lista ohjelmoinnin pelillisiä harjoituksia organisoituna järkevään etenemisjärjestykseen.
Ensimmäisen koodaustunnin voi aloittaa tietokoneettomasti harjoittelemalla kaverin ohjelmointia:
Kaverin ohjelmointi
Oppilas vie esim. istumatyynyn valitsemaansa paikkaan luokassa ja palaa sitten alkuperäiselle paikalleen. Hänen parinsa tehtäväksi jää koodata oppilas liikkumaan istumatyynyn luokse antamalla käskyjä kuten "Astu 3 askelta eteen", "Käänny vasemmalle", "Käänny oikealle". Viimeisenä annetaan käsky "Nosta tyyny".
(Täydellä luokalla kannattaa varmaan tyytyä yhden henkilön koodaamiseen luokan edessä tai laittaa osa käytävälle)
CodeMonkey Jr toimii hyvänä ensikosketuksena ohjelmointiin ja on täysin symbolinen eli lukutaitoa ei vaadita. Pelin loppupään tehtävät voivat olla hiukan hankalia ekaluokkalaisille, joten suosittelen että harjoitusten tekemiseen varataan vain puoli tuntia (jotteivat oppilaat ehdi niihin saakka). Alkupuolisko meneekin helposti edellämainittuun kaverin ohjelmointiin, sekä tietokoneen avaamiseen ja sivulle navigointiin.
Omalla kokemuksellani CodeMonkey Jr pelin kahden ensimmäisen tehtävän läpikäynti luokan edessä riittää, tämän jälkeen oppilaat pärjäävät melko hyvin omillaan; opettaja voi keskittyä opettajajohtoisen opettamisen sijasta oppilaiden henkilökohtaiseen opastamiseen (ihan kuten matematiikan tunneilla, kysymyksillä johdattamalla).
Kysymyksillä johdattaminen
"Minne apinahahmon pitäisi mennä?"
=> Pitäisikö apinan mennä vasemmalle vai oikealle?
=> "Montako ruutua apinan pitäisi liikkua kyseiseen suuntaan?
=> "Mikä käsky pitäisi laittaa ensimmäiseksi (entä montako sellaista pitäisi laittaa että apina pääsisi perille?").
Opettajan kannattaa korostaa ettei kaikkia käskyjä kannata aina edes yrittää laittaa kerralla, vaan niitä voi lisätä yksi tai kaksi kerrallaan, välillä testaten että käskysarja toimii toivotusti. Näin on helpompi tunnistaa missä kohtaa koodi menee pieleen ja korjata se.
Pelatessa voi havainnoida että tietokoneohjelmat koostuvat peräkkäisistä käskyistä eli
käskysarjoista
. Käskyjen järjestyksellä on merkitystä eikä niitä voi sijoittaa miten sattuu; käskyt suoritetaan järjestyksessä ensimmäisestä viimeiseen, tässä tapauksessa vasemmalta oikealle.
Code Monkey Jr (kuten useimmat muut graafiset ohjelmointiympäristöt) korostaa kirkkaimpana parhaillaan suoritettavan käskypalikan. Tämän takia on helppoa havainnoida missä kohtaa koodin suoritusta ollaan. Tämä on hyödyllistä esimerkiksi silloin kun halutaan selvittää missä kohtaa koodia asiat menevät pieleen.
Pelin viimeinen puolisko sisältää yksinkertaisten käskysarjojen lisäksi myös toista-ikuisesti
-silmukan käyttöä. Ei kuitenkaan haittaa vaikka oppilaat eivät ehtisi näihin tehtäviin saakka, sillä silmukan konsepti opetetaan paremmin seuraavalla tunnilla. Jos oppilaat ehtivät silmukoihin saakka, voi opettaja selittää että ikuisesti-silmukan sisään voi raahata yhden tai useamman käskyn joita toistetaan ikuisesti.
Koodi: IKUISESTI: oikealle
suoritetaan näin: oikealle, oikealle, oikealle, oikealle...Koodi: IKUISESTI: oikealle, vasemmalle
suoritetaan näin: oikealle, vasemmalle, oikealle, vasemmalle...
Silmukan sisälle voi raahata useamman käskynpalikan
Jos oppilaat saavat kaikki tehtävät tehtyä tunnin aikana, pyydä heitä tarkistamaan saivatko he kaikista tehtävistä kolme tähteä (eli läpäisivät tehtävät pienimmällä mahdollisella käskymäärällä). Toki seuraaviinkiin tehtäviin voi jo päästää.
Jos oppilailla on käytössä kosketusnäytöttömät tietokoneet, on CodeMonkey hyvä ympäristö hiiren käytön harjoitteluun, sillä käskyt lisätään ohjelmaan klikkaamalla haluttua käskypalikkaa (toisin kuin esim. Code.org:in harjoituksissa joissa käskypalikat pitää osata raahata paikoilleen) - toki käskyjä voi halutessaan uudelleenjärjestää myös raahaamalla.
Jos pidätte iltapäiväkerhoa koulun ulkopuolella, älkää olettako että oppilaat osaisivat käyttää hiirtä - kouluista suuri osa käyttää vain iPadeja tai kosketusnäytöllisiä Chromebookeja. Näppäimistön ja kymmensormijärjestelmän käyttöä onneksi harjoitellaan useimmissa kouluissa esim. Näppistaiturin avulla.
Huom: Suosittelen laittamaan selaimen fullscreen-tilaan, jotta pelille jää enemmän pinta-alaa näytöllä. Chromen oikeasta yläkuolmasta löytyy kolme pistettä, joita painamalla avautuu valikko josta löytyy fullscreen-ikoni.
Täsmennä oppilaille että tehtävien tarkoitus on harjoitella toista
-silmukan käyttöä, joten sitä on hyvä käyttää aina kun mahdollista. Selitä että vaikka nyt tehtävät voisikin ratkaista ilman sitä, koodatessa tulee tilanteita, jolloin joitakin käskyjä on toistettava jopa satoja tuhansia kertoja. Silloin on pakko osata käyttää silmukoita.
Huom: Jos jonkun toista-silmukan sisään ei laita ainuttakaan käskyä, koodi on virheellistä eikä sitä suoriteta ollenkaan. Jos "Suorita" nappia painaessa ei tapahdu mitään, kyse on todennäköisimmin tästä.
Huomioitavaa
- Sivuston kieli on vaihdettava suomeksi vasemman alakulman kielivalikosta.
- Jos oppilas läpäisee kentän, mutta Code.org ei päästä häntä seuraavaan tehtävään, kannattaa vain koittaa suorittaa koodi uudestaan.
- Jos käytössä ei ole kosketusnäytöllisiä tietokoneita, kannattaa huomioida että käskyjen raahaaminen voi olla haastavaa oppilaille jotka eivät ole käyttäneet hiirtä aiemmin
- Jos oppilas läpäisee kentän täydellisesti pienimmällä mahdollisella käskymäärällä, näkyy se yläpalkissa tummanvihreänä täplänä, muuten vaaleanvihreänä. Jos oppilaalla näkyy vaaleanvihreitä kenttiä, pyri käymään ne uudestaan läpi oppilaan kanssa (todennäköisesti hän ei ole käyttänyt silmukoita). Päästä oppilas oman harkintasi mukaan seuraaviin harjoituksiin vasta kun kaikki tai suurin osa tehtävistä on tummanvihreinä.
toista
-silmukan kertausta.
Huomioitavaa
- Sivuston kieli on vaihdettava suomeksi vasemman alakulman kielivalikosta.
- Jos oppilas läpäisee kentän, mutta Code.org ei päästä häntä seuraavaan tehtävään, kannattaa vain koittaa suorittaa koodi uudestaan.
Huom: Käskypalikoiden raahaaminen ei toimi jostain syystä nettiversiossa kosketusnäytöllä. Käyttäkää nettiversiota ainoastaan hiiren kanssa tai ladatkaa mobiiliversio.
Tietosuoja
Kirjoitushetkellä (18.10.2023) pelin datankeruusta mainitaan mobiilialustoilla:
- App Store: Data Not Collected: The developer does not collect any data from this app.
- Play Store: No data collected. No data shared with third parties.
Pelin alussa pelaajan on valittava kummasta vaikeustasosta haluaa aloittaa. Suosittelen aloittamaan Part 1:llä (jonka loppupään tehtävissä on kyllä haastetta isommillekin). Nopeimmat saavat sen luultavimmin tehtyä ja voivat siirtyä Part 2:n tehtäviin. Jos kaikki aloittavat Part 2:sta, riskinä on että harjoitukset ovat osalle liian vaikeita ja nopeimmat saavat tehtyä ne hetkessä ja heille pitää keksiä lisätehtäviä.
Huom: Pelin Part 2 -osiossa harjoitellaan myös funktioiden käyttöä. Harjoittelemme funktioiden käyttöä enemmän tulevissa harjoituksissa, joten ei haittaa jos/kun suurin osa oppilaista ei niihin saakka todennäköisimmin ehdi. Kannattaa varautua kuitenkin selittämään funktioiden konsepti nopeimmille oppilaille lukemalla tämän ohjeistuksen alaotsikko Part 2: Funktiot.
Huom: Suosittelen koittamaan peliä ennen esimerkkiratkaisuiden lukemista, sillä käytännön oppiminen on parasta oppimista.
Part 1:n esimerkkiratkaisuja
Robocodo on sivuston listaamista koodauspeleistä haastavimpia hahmottaa, joten olen listannut tänne esimerkkiratkaisut vaikeimpiin tehtäviin:
Tähän kenttään jää jumiin suurin osa oppilaista. Tärkeintä on tajuta, että ensin on kerättävä kaksi lähintä kolikkoa ja sitten palattava puun viereiselle teleportille, ei alanurkassa olevalle.
Buggy code (buginen koodi) -osuudessa oppilaalle annetaan valmiiksi tehtyä, virheellistä koodia, joka hänen on korjattava järjestelemällä käskyt oikein. Tämä on jonkin verran haastava osuus sillä oppilas voi vahingossa raahata tarvittavan käskyn pois koodialueelta, jolloin se tuhoutuu ja kenttä on aloitettava alusta (painamalla roskiskuvaketta koodin oikealla puolella). Oppilas ei välttämättä tajua tätä.
Part 1: Silmukat
Silmukkatehtävissä on tärkeää hahmottaa kentän toistuva osuus. Tässä kentässä pitää kolmesti kävellä ylös teleportilla (ja napata kolikko matkalla)
Tässä tehtävässä on kolme kahden kolikon rypästä eli koodin on toistettava kolmesti käyttäen toista
-silmukkaa.
Tässä tehtävässä on neljä identtistä saareketta, joten on käytettävä toista
silmukkaa
Tässä kentässä jokaisen silmukan alussa on käännyttävä. Kenttä koostuu kolmesta L-kirjaimen muotoisesta osasta, jotka pitää kulkea.
Part 2: Funktiot eli aliohjelmat
Funktiot
Käy katsomassa seuraavien Kidbot ja AlgoRun pelien opettajan materiaalit, jos haluat yksityiskohtaisemman selityksen miten funktiot (eli aliohjelmat) toimivat.
Aina kun F
-käsky suoritetaan, Function-laatikon sisällä olevat käskyt suoritetaan. Tässä esimerkissä F
-käsky liikuttaa kissaa kaksi ruutua eteenpäin ja kerää kolikon.
Funktiolaatikon sisällä on käskyt eteen, eteen, kolikko
Nyt jokaisen F
-käskyn kohdalla suoritetaan Function-laatikon käskyt eli eteen, eteen, kolikko
Part2: Lisää funktiotehtävien ratkaisuita
Part 2: Monimutkainen silmukkatehtävä
Pelin nettiversion toimii iPadeilla ja Chromebookeilla, joten suosittelen käyttämään sitä (testatkaa toki nettiversion toimivuus laitteillanne ennen tunnin alkua). Tähän mennessä olemme opetelleet pääasiassa toista
-silmukan käyttöä. Tässä pelissä opettelemme uuden konseption eli funktion
.
Käytämme sanoja funktio ja aliohjelma toistensa synonyymeinä.
Aliohjelmat eli funktiot
A-laatikko on pääohjelma
eli sen sisään laitetut käskyt suoritetaan aina automaattisesti kun koodi suoritetaan (robotti liikkuu kaksi ruutua eteenpäin)
B-laatikko on aliohjelma
eli sen sisään laitettuja käskyjä ei suoriteta automaattisesti (kuvan koodi ei tee mitään)
B-laatikon käskyt suoritetaan ainoastaan kun käytetään B-käskyä (kuvan koodi liikuttaa robottia kahdesti eteenpäin)
Esimerkkikoodissa on kaksi B-käskyä eli B-laatikon sisällä olevat käskyt suoritetaan kahdesti (robotti liikkuu neljä ruutua eteenpäin)
Esimerkkikoodissa robotti liikkuu kaksi ruutua eteepäin, kääntyy oikealle ja liikkuu taas kaksi ruutua eteenpäin
Tehtävä 6: Kentässä käytetään kahdesti B-aliohjelmaa (eli funktiota)
Rekursio
Jos A-laatikon viimeinen käsky on A-käsky, suoritetaan A-laatikon käskyjä ikuisesti uudestaan. Tällaista kutsutaan ikuiseksi silmukaksi (infinite loop).
Koska A-laatikon viimeinen käsky on A-käsky, suoritetaan A-laatikon käskyjä ikuisesti uudestaan (robotti liikkuu ikuisesti eteenpäin).
B-laatikon viimeinen käsky on B-käsky, joten B-laatikon käskyjä toistetaan ikuisesti. Myös A-laatikossa on oltava B-käsky, jotte B-laatikon ikuinen silmukka ("infinite loop") käynnistyy.
Tehtävä 17: Kentässä opitaan uusi käsite eli jos-lause
, jota on tarkoitus opetella vasta tulevilla tunneilla. Jos joku oppilaista sattuisi tänne saakka pääsemään, voi selittää että nuoli tarkoittaa "JOS eteenpäin ei voi liikkua". Ylläoleva koodi tarkoittaa siis: 1) Mene eteenpäin 2) JOS eteenpäin ei voi liikkua NIIN käänny vasemmalle 3) Suorita A-käsky uudestaan (robotti kulkee ikuisesti eteenpäin, kääntyen vasemmalle aina kun seinä tulee vastaan)
Lisää funktioiden treenausta. Pelin kaksi ensimmäistä osaa (Basics ja Functions) ovat ohjeistettuna ekaluokkalaistenkin läpäistävissä. Pelin kolmannen osan (Recursion) viimeiset kentät ovat hyvin vaikeita ja vaativat enemmän hahmottamis- kuin koodauskykyjä eli ei kannata olettaa että oppilaat pääsisivät niitä läpi. Tekemistä pitäisi silti riittää tunniksi ennen tehtävien muuttumista liian vaikeiksi.
Youtubesta löytyy esimerkkiratkaisut rekursio-osion tehtäviin.
Huom: Peli toimii vain mobiililaitteilla, jos sellaisia ei ole käytössä niin suosittelen pelaamaan Rodocodo-pelin Part 2-osion, jossa harjoitellaan funktioita.
Tietosuoja
Kirjoitushetkellä (18.10.2023) pelin datankeruusta mainitaan mobiilialustoilla:
- App Store: Data Not Collected: The developer does not collect any data from this app.
- Play Store: No data collected. No data shared with third parties.
Aliohjelmat eli funktiot
F1-rivi on pääohjelma
eli sen sisään laitetut käskyt suoritetaan aina automaattisesti kun koodi suoritetaan (robotti liikkuu kaksi ruutua eteenpäin)
F2-rivi on aliohjelma
eli sen sisään laitettuja käskyjä ei suoriteta automaattisesti (kuvan koodi ei tee mitään)
F2-rivin käskyt suoritetaan ainoastaan kun käytetään F2-käskyä (kuvan koodi liikuttaa robottia kahdesti eteenpäin)
Pääohjelmassa on kaksi F2-käskyä eli F2-rivillä olevat käskyt suoritetaan kahdesti (robotti liikkuu neljä ruutua eteenpäin)
Esimerkkikoodissa robotti liikkuu kaksi ruutua eteepäin, kääntyy oikealle ja liikkuu taas kaksi ruutua eteenpäin
Jos opettajalla on kiire usean oppilaan auttamisessa, joskus on nopeinta koodata aliohjelmat oppilaan puolesta ja palata myöhemmin katsomaan onko oppilas saanut kentän läpäistyä aliohjelmia käyttäen. Miten F1- ja F2-aliohjelmia pitäisi käyttää kentän läpäisemiseksi?
Rekursio-osion ratkaisut
Jos F1-rivin lopussa on F1-käsky, suoritetaan F1-rivin käskyjä ikuisesti uudestaan. Tällaista kursutaan ikuiseksi silmukaksi (infinite loop). Kuvan robotti liikkuu ikuisesti eteenpäin.
Robotti mutkittelee eteenpäin yksi "porras" kerrallaan rekursion avulla.
Mitenköhän F1
ja F2
-käskyjä pitäisi käyttää kentän läpäisemiseksi?
Rekursio-osan 9. kenttä on jo hyvin kryptinen eikä kukaan oppilaistani ole läpäissyt tätä itsenäisesti.
Jos-lause
Joskus koodatessa tulee tarve testata asioita ennen tekemistä:
- JOS sataa NIIN ota sateenvarjo
- JOS on kesä NIIN syö jäätelöä
- JOS on kylmä NIIN hae villapaita
Argumentit ovat käskyille annettavia lisätietoja. Aseta -käskylle annetaan lisätietona (argumenttina) tieto siitä millainen lankku halutaan asettaa. Käänny-käskylle annetaan lisätietona (argumenttina) tieto siitä mihin suuntaan halutaan kääntyä. Näin vältytään tekemästä kahta erillistä Käänny oikealle ja Käänny vasemmalle käskyä.
Tehtävä 11: Kentän tavoite on tuhota seitsemän hahmon edessä olevaa kivikuutiota, sillä osa niistä on pilkullisia (niissä on hiiltä ja rautaa jotka pelihahmo haluaa). Tuhottujen kivikuutioiden alta saattaa kuitenkin ilmestyä laavaa. Haluammekin asettaa pelaajan eteen mukulakivilohkon JOS edessä on laavaa ja vasta sitten siirtä eteenpäin. Toista seitsemän kertaa:1) Tuhoa edessä oleva kivikuutio 2) JOS edessä on laavaa NIIN aseta mukulakivi eteen 3) Siirry eteenpäin
Tehtävä 12: Tehtävän tavoite on kerätä kolme punapilkullista kiveä (punakiveä). Kentässä toistuu kolmesti samanlainen osuus, joten voimme käyttää toista
-silmukkaa. Punakivien alta saattaa ilmestyä laavaa, joten käytämmä jos-lausetta
Peli poikkeaa edellisistä Minecraft-harjoituksista siten, että pelihahmoa liikutetaan nuolinäppäimillä (tai klikkaamalla) ja robottia ohjataan koodaamalla. Robotti osaa leijua veden päällä eli sitä voi käyttää esimerkiksi siltojen rakentamiseen veden yli.
Tehtävä 1: Robottia on liikutettava ruutu eteenpäin, jotta se astuu painelaatalle, joka on johdotettu avaamaan oven. Tehtävä 2: Jos pelaaja haluaa kerätä molempien ovien takana olevat esineet, on robotti koodattava liikkumaan vasemmalle painelaatalle (sillä laatasta menee johdotus molemmille oville)
Kenttä 8: rakenna silta-käsky suorittaa kaikki rakenna silta-lohkon sisällä olevat käskyt (joista viimeinen on "käänny oikealle")
Tehtävä 9: Raivaa reitti-aliohjelma (eli funktio) tuhoaa jäälohkareen, siirtyy eteenpäin tuhotun jäälohkareen kohdalle ja asettaa alta paljastuneeseen vesikuoppaan sorakuution. Robotti on siis siirrettävä aina jäälohkareen eteen ja käytettävä Raivaa reitti-käskyä
Tehtävä 10: korjaa pitkä reitti-aliohjelma (eli funktio) tuhoaa kolmen sorakuution suoran, korjaa lyhyt reitti-käsky tuhoaa kahden sorakuution suoran. Robotti on siis aina liikutettava sorakasan eteen ja käytettävä oikeaa käskyä.
toista-kunnes
-silmukka toistaa sen sisältämiä käskyjä kunnes tavoite on saavutettu. Tavoite vaihtelee kentittäin.
jos-muuten
-lohkon avulla voi valita mitä tehdään jos ehto on tosi tai epätosi:
- JOS sataa jää sisälle MUUTEN mene ulos
- JOS edessä on tilaa astu eteen MUUTEN käänny oikealle
Koodataan opettaja kiertämään pöytää ikuisesti myötäpäivään
Ope-robotti toistaa kahta käskyä ikuisesti (ope aloittaa oikea kylki pöydän vierellä):
- Astu eteen
- JOS oikealle voi kääntyä NIIN käänny oikealle
Tehtävä 5: Hahmo pitää liikuttaa arkulle. Tehtävä 6: On liikuttava alareunaa jos haluaa kerätä myös kilpikonnan. Tehtävä 7: Jos-lauseiden järjestyksellä on väliä. Tehtävä 8: Jos-lauseiden järjestyksellä on taas merkitystä. Tehtävä 9: Siniset ja punaiset korallit merkitsevät milloin hahmon on käännyttävä minnekin. Värisokeille ei kovin saavutettava tehtävä... Tehtävä 10: Merilyhdyillä on aina käännyttävä oikealle. Tehtävä 11: Rakennetaan neliön muotoinen rakennus, jonka kulmat tulevat merilyhtyjen kohdalle
Tämän sivuston harjoitukset on pyritty rajaamaan harjoituksiin jotka ovat ilmaisia, toimivat nettiselaimessa eivätkä tarvi opettajatilejä tai fyysisten laitteiden ostamista. Teen Microbitin osalta poikkeuksen sillä se on halpa, helppo kuljettaa ja jakaa luokkahuoneiden välillä, sekä monella koululla tuntuu lähtökohtaisesti olevan näitä. Lisäksi koodia voi ajaa koodausympäristön Microbit-simulaattorissa eli laitetta ei välttämättä tarvitse edes ostaa.
Huom: Tehtävänannot löytyvät harjoituksista kommentteina (post-it lappuja joihin voi lisätä tekstiä). Tuoreen Microbit-päivityksen myötä kommentit ovat alussa suljettuna, ja ne on erikseen avattava klikkaamalla niitä vasemmasta reunasta....
Harjoitukset
Harjoitusten tekemiseen menee 3 - 5 oppituntia. Harjoitukset on pyritty tekemään siten, että oppilaat voivat tehdä niitä itsenäisesti omalla tahdillaan, opettajan tukemana. Suosittelen vahvasti että paikalla on yksi opettaja jokaista 10 oppilasta kohden.
Jos oppilaiden itseohjautuvuus ei riitä itsenäiseen työskentelyyn, voidaan tehtäviä käydä läpi myös yhdessä (mahdollistaa myös isommat ryhmäkoot kun oppilaita ei tarvi ohjeistaa yksitellen). Jos luokassa on kosketusnäytöllinen älytaulu, voivat oppilaat tulla laittamaan käskyjä paikoilleen yksi kerrallaan.
Harjoituksissa on annettu koodilohkot valmiiksi joten oppilaiden on vain osattava järjestää ne oikein. Ei ole varmasti pahitteeksi koodata jokin harjoituksista täysin tyhjältä pöydältä opettajajohtoisesti, jolloin oppilaat oppivat miltä välilehdeltä mikäkin käsky löytyy ja minkälaisiin kategorioihin ne on jaoteltu.
Kyllä-ei-kone ja Vastauskone -tehtävien projekteissa oppilaat voivat kysyä Microbitiltä kysymyksiä ja Microbit vastaa ravistettaessa satunnaisesti "Kyllä", "Ei" tai "Ehkä". Kysymysten esittäminen on koettu useassa ryhmässä hauskoimmaksi asiaksi ikinä ja lopputunti onkin mennyt kokonaisuudessaan siihen, kun muiden tehtävien tekemisestä ei ole enää tullut mitään. Kyseiset tehtävät kannattaa jättää tästä syystä lopputuntiin. Näitä projekteja voisi mahdollisesti myös soveltaa kielten opiskeluun, kun Microbitille voisi esittää kysymyksiä vieraalla kielellä, oppilailla olisi ainakin hauskaa.
Huomioitavaa:
- Varoita oppilaita että jos koodilohkon raahaa vasemman reunan valikon kohdalle, se joutuu roskiin ja häviää. Tämän tapahtuessa harjoituksen voi kuitenkin avata tämän sivun linkistä uudestaan jolloin saa alkuperäiset palikat takaisin (tai painaa "undo"-nappia tai sen pikanäppäintä
Ctrl + Z
). - Kuten useimmissa graafisissa ohjelmointiympäristöissä, koodipalikat on värikoodattu eli punaiset koodilohkot löytyvät punaiselta välilehdeltä ja siniset siniseltä välilehdeltä jne.
- Ainakin Chromebookeja käyttäessä Microbitit lakkaavat välillä toimimasta, jolloin itsellä on aina auttanut johdon irroittaminen ja takaisin laittaminen.
- Oppilaat koittavat laittaa Microbittien (ja hiirien) USB-johtoja tietokoneeseen voimalla väärinpäin, vaikka selvästi sanoisi että ne menevät sisään vain oikein päin ja niiden laittamisessa ei saa käyttää voimaa. Jos haluatte varmistaa että tietokoneiden USB-paikkoja ei hajoa (todennäköisesti hajoaa), laittakaa johdot oppilaiden puolesta.
Ratkaisut
- Sydänanimaatio
- Timanttianimaatio
- Suuttuva hymiö
- Ilostuva hymiö
- Aurinkosensori
- Askelmittari
- Laskuri
- Numeronoppa
- Kylla-ei-kone
- Vastauskone
- Kivi-paperi-sakset
- Velmu
- Fiksu lämpömittari
- Salasana-lukko
- Aurinko - kirkkaus
- Aurinko - valosensori
- Aurinko - satunnaisuus
- Aurinko - muuttujat
- Aurinko - kirkkausdaadin
- Nukahtava lemmikki
- Taskulamppu - nappi pohjassa
- Taskulamppu - kaksinappinen toteutus
- Taskulamppu - toimintalogiikka
- Taskulamppu - yksinappinen-toteutus
- Taskulamppu - negaatio
Huomioitavaa:
- Kieli on vaihdettava suomeksi vasemmasta yläkulmasta (Settings => Language => "Suomi")
- Tämä on ainoa materiaali, mitä en ole vielä ehtinyt testaamaan luokkahuoneessa, joten se tuskin on vielä aivan priimaa. Saa antaa palautetta.
- Korosta että aina kannatta lisätä vain yksi lohko kerrallaan ja testata miten ohjelman toiminta muuttuu!
- Varoita oppilaita että jos koodilohkon raahaa vasemman reunan valikon kohdalle, se joutuu roskiin ja häviää. Tämän tapahtuessa harjoituksen voi avata uudestaan (tai voi perua muutoksen
Ctrl + Z
pikanäppäimellä). - Kuten useimmissa graafisissa ohjelmointiympäristöissä, koodipalikat on värikoodattu eli punaiset koodilohkot löytyvät punaiselta välilehdeltä ja siniset siniseltä välilehdeltä jne.
Tehtävissä ei valitettavasti ole suomenkielisiä tehtävänantoja. Lisäksi osassa on englanninkielisiä monivalintatehtäviä, jotka pitää tajuta jättää välistä (muistuta oppilaita!) Suosittelen kuitenkin harjoitusten tekemistä, sillä tarjolla ei ole paljoa muita harjoitteita, jotka harjoittaisivat niin-kauan-kuin
silmukan käyttöä.
niin-kauan-kuin
on oikeastaan käänteinen toista-kunnes
-silmukka. Molemmat seuraavista käskyistä liikuttavat robotin seinän luokse:
- niin-kauan-kuin eteen voi astua => astu eteen
- toista-kunnes eteen ei voi astua => astu eteen
Tehtävissä piirretään geometrisia kuvioita koodin avulla. Tehtävänannoissa kerrotaan useimmiten montako astetta hahmon on käännyttäva (tai vaihtoehtoisesti oikea kääntymisaste on asetettuna valmiiksi käskylohkoon) joten oppilaat eivät tarvi syvää matemaattista osaamista suorittaakseen tehtäviä. Ennalta olisi hyvä hahmottaa että 90 astetta on suora kulma ja 360 ympyrä. Opettaja voi näyttää taululla että 360 / 10 = 36
jne
jump-to
-komentoa käytetään kun halutaan hypätä suorittamaan tiettyä riviä koodissa. Pohjimmiltaan tietokoneet käyttävät tätä komentoa paljon mutta modernit ohjelmointikielet eivät juurikaan, sillä koodia jossa on paljon jump-to
-käskyjä on hyvin vaikea hahmottaa (niinkuin tulette kohta huomaamaan)
jos
on englanniksi if
jos-muuten
on englanniksi if-else
jos-muutenjos-muuten
on englanniksi if-elseif-else
hero - sankari
step - askel
line - (koodi)rivi
back - takaisin
jump - hyppääswitch - kytkin
floor - lattia
hole - reikä
nothing - ei mitään
bonfire - kokko, iso nuotio
Huom: Oppilaan koodi arvostellaan pelissä sekä käskymäärän että koodin suoritusnopeuden perusteella. Ei kannata priorisoida näitä juurikaan, vaan panostaa mahdollisimman selkeän ja luettavan koodin kirjoittamiseen. Monesti kentissä mahdollisimman hyvän pisteytyksen saaminen vaatii epäselvän koodin kirjoittamista.
if-else jos-muuten
function funktio
while niin-kauan-kuin
right oikealle
left vasemmalle
up ylös
down alas
Huomioitavaa:
- Tehkää näppäimistöllisellä laitteella.
- Peli muuttuu nopeasti hyvin vaikeaksi. Jos oppilas jää jumiin, kannattaa hänen kertauksen takia aloittaa uudestaan ensimmäisestä tehtävästi, jolloin hän myös huomaa kehittyneensä.
- Jos ette ole vielä tehneet alkupään funktioharjoituksia (Kidbot, AlgoRun), kannattaa ne tehdä ennen tähän harjoitukseen siirtymistä.
Pelissä on valittava kortti jossa on tilanteeseen sopiva koodi ja sitten tehtävä tietokoneen osuus eli suoritettava kortin koodi nuolinäppäimiä painelemalla. Kortit pitää osata valita oikeassa järjestyksessä. Peli on pelattavissa ilman näppäimistöäkin, mutta se on melko hankalaa.
toista
on englanniksi repeat
.
niin-kauan-kuin
on englanniksi while
.
left - vasemmalle
right - oikealle
up - ylös
down - alasrepeat - toista
again - uudestaan (edellinen käsky)
Huom: Peli muuttuu nopeasti hyvin vaikeaksi. Jos oppilas jää jumiin, kannattaa hänen kertauksen takia aloittaa uudestaan ensimmäisestä tehtävästi, jolloin hän myös huomaa kehittyneensä.
Silent Teacher -harjoituksesta on eri versiot Python- ja Javascript-ohjelmointikielille. Javascriptiä käytetään eniten nettisivujen ja sovellusten kehittämiseen, Pythonia taas esim. tilastotieteessä ja koneoppimisessa. Voi olla hyvä testata molempia ja todeta että niiden toimintalogiikka on sama, vaikka ne näyttävätkin vähän erilaisilta.
Huomioitavaa:
- Peli on tarkoitettu toimimaan ilman opettajan apua. Ei siis haittaa vaikka opettaja ei osaisi opettaa tai sanallistaa tehtäviä täydellisesti.
- Tämä on jo alakoulun OPS:in ulkopuolella, mutta tehkää halutessanne kevyenä ensikosketuksena yläkouluohjelmointiin (:
Sivu päivitetty viimeksi 4.6.2024