Suomen harjoittelukoulujen ohjelmointipolku
1-2 LK – OHJELMOINTIPOLKU
Ohjelmoinnillinen ajattelu:
Oppilas
– osaa järjestää ja vertailla erilaisia asioita eri olosuhteiden ja mallien perusteella
– osaa kertoa havaintojaan käsitteiden ja konkreettisten työkalujen avulla
– osaa jakaa arjen ilmiöihin liittyvät ongelmat pienempiin osiin
– osaa testata erilaisia ratkaisuja ongelmien ratkaisemiseksi
– pystyy kertomaan, miten hän ajatteli – osaa seurata ja luoda vaiheittaisia ohjeita, jotka myös testataan
– osaa laatia ohjeita, jolla hän ohjaa toista opiskelijaa, ohjelmoitavaa laitetta tai yksittäistä hahmoa sovelluksessa.
– osaa seurata reseptityylisiä ohjeita (kävele 2 askelta, käänny)
Tutkiva työskentely ja tuottaminen:
Oppilas
– oppii tekemään yhteistyötä ryhmässä ja eri rooleja ryhmätyössä
– osaa esittää omia ideoitaan, kuunnella muiden oppilaiden ideoita ja testata erilaisia ratkaisuja yhdessä muiden kanssa
– osaa ohjattuna luoda tarinoita tai pelejä sisältävän digitaalisen tuotteen animaation tai yksinkertaisen ohjelmoinnin avulla
– käsittelee eri oppiaineiden sisältöä leikillisesti ja kokeellisesti käyttämällä ohjelmointiin liittyviä liiketoimintamalleja ja työkaluja
Ohjelmoitujen ympäristöjen tunteminen ja niissä toimiminen:
Oppilas
– tunnistaa ja nimeää omasta kokemusmaailmastaan löytyvää tietotekniikkaa ja tutustuu robotiikkaan
– pohtii, kuinka digitaalisissa ympäristöissä kerätään ja tallennetaan tietoa omasta toiminnasta.
– osaa kertoa ainakin yhden esimerkin siitä, mihin kerättyjä henkilötietoja voidaan käyttää
Piirtäjämestari
(Ville s. 10)
https://ville.cs.utu.fi/opintopolku/ville_alakoulun_ohjelmointiopas.pdf
Idea: Oppilaat jaetaan pareihin. Toinen pareista toimii piirtäjänä ja toinen ohjeistajana. Piirtäjä pitää silmät kiinni piirtämisen ajan ja tekee täsmälleen, ohjeistajan ohjeiden mukaan. Ohjeet: Opettaja heijastaa seinälle tai piirtää taululle yksinkertaisia kuvioita (neliö, kolmio, ympyrä) ja ohjeistaja antaa yksinkertaisia käskyjä piirtäjälle. Kuvion nimeä tai mitään siihen liittyvää vertauskuvaa ei saa käyttää. Neliöstä on helppo aloittaa, ympyrä on haasteellinen muoto. Piirtäjää vaihdetaan joka toisen kuvion kohdalla. Valmiita tuotoksia voidaan ihastella yhdessä koko luokan kanssa.
Kanavaompelua ohjelmoiden
Tarvikkeet: ruutupaperia, lyijykynä, vohvelikangasta, tylppä neula ja lankaa
Ensin oppilaat suunnittelevat erilaisia säännöllisiä kuvioita piirtäen ne ruutupaperille. (kaksi oikealle, kolme ylös, yksi oikealle, kolme alas..) Kun kuviot on suunniteltu, ne pyritään mahdollisimman samanlaisena toistamaan ommellen vohvelikankaalle. Lopputuloksena voi olla jokin pehmoeläin, kirjanmerkki tms.
Spagettikoodia
(Ville s. 24)
https://ville.cs.utu.fi/opintopolku/ville_alakoulun_ohjelmointiopas.pdf
Idea: Valitaan yksi oppilas selvittäjäksi. Muut oppilaat menevät piiriin ja ottavat toisiaan kädestä kiinni. Sen jälkeen tehtävänä on muodostaa mahdollisimman vaikea solmu irrottamatta käsiä toisistaan. Kun solmu on valmis, selvittäjä alkaa ratkoa solmua. Tässä voidaan aloittaa niin, että hän avaa solmun käsin, siirtäen muita oppilaita tai sitten niin, että antaa oppilaille käskyjä eikä saa koskea muihin lainkaan. Ohjeet: Valitaan yksi oppilas selvittäjäksi (alaluokilla kaksi). Selvittäjä kääntyy selkä muihin päin, ettei näe miten solmu muodostetaan. Piirissä olevat oppilaat menevät opettajan kehoituksesta hankalaan solmuun. Piirissä olijat eivät saa irrottaa otettaan, vaan muodostavat solmun siten että osa leikkijöistä menee toisten käsien ali tai yli. Selvittäjä ryhtyy työhön. Jos leikki on oppilaille uusi voi selvittäjä ohjata solmussa olevia oppilaita käsillään, mutta kun leikki on tuttu, sovitaan että selvittäjä antaa ainoastaan sanallisia ohjeita. Esittely: “Koodaajan pitää kirjoittaa sellaista koodia että muut ymmärtävät ohjelmakoodin lukemalla mitä ohjelma suorittaa. Joskus ohjelmoijat kirjoittavat ihan käsittämätöntä koodia – joka menee solmuun kuin spagetti. Te saatte nyt olla solmussa olevaa spagettikoodia ja yksi valitaan selvittämään koodisolmu.”
Koodari ja robotit
(Ville s. 27)
https://ville.cs.utu.fi/opintopolku/ville_alakoulun_ohjelmointiopas.pdf
Idea: Yksi leikkijä on koodari. Hän kertoo ensin ohjeet: JOS minä hyppään NIIN te menette kyykkyyn. JOS menen kyykkyyn NIIN te hyppäätte. JOS minä taputan NIIN te tömistätte. Sitten koodari tekee liikkeitä ja muut leikkijät yrittävät seurata niitä ohjeen mukaisesti. Selkeästä virheestä putoaa pelistä. Opettaja seuraa luokkaa ja kertoo ketkä putoavat pelistä ja jäävät istumaan paikalleen. Viimeinen leikkijä pääsee seuraavaksi koodariksi. Esittely: “Tietokone tekee täsmälleen sitä mitä koodaaja on ohjemakoodiin kirjoittanut. Yksi teistä pääsee komentamaan koko luokkaa, kannattaa harkita mitä ohjelmoi tietokoneen tekemään” Ohjeet: Harjoitellaan ensin ideaa opettajan johdolla. Opettaja kertoo pari helppoa sääntöä esim. JOS minä taputan NIIN te taputatte. JOS minä vilkutan NIIN te vilkutatte. Todetaan että kaikki osaavat. Vaihdetaan sääntöjä siten että oppilaat tekevät eri asiaa kuin opettaja, esim. JOS minä hymyilen NIIN te irvistätte. JOS minä vilkutan NIIN te taputatte. Kokeillaan. Kun kaikki ovat tajunneet leikin idea, kerrotaan ohjeet: virheestä jää paikalleen istumaan. Opettaja näyttää vielä pari liikettä, joita koodari voi esimerksi käyttää: tömistää, vilkuttaa, pyörähtää, hypätä, mennä kyykyyn, napsuttaa…
Eriyttäviä lukutehtäviä ohjelmoiden (Bee-bot/Blue-bot ja satataulualusta)
Tehtävä tehdään parityöskentelynä kielellisesti samantasoisen parin kanssa tason mukaan tehtäviä eriyttäen. Opettaja jakaa oppilaat pareiksi etukäteen ja suunnittelee parille soveltuvat lukutehtävät (n. 10-20 tehtävää). Tehtävissä on erilaisia lukutaitoa harjoittavia tehtäviä aina kirjainten nimeämisestä tavu-, sana- ja virketasoiseen lukemiseen. Jos satatauluja on vain yksi, parien tehtävät voi merkitä erivärisillä lapuilla, jolloin saman maton ympärillä voi useampi pari työskennellä samaan aikaan. Botti ohjelmoidaan yhdessä lähtöpaikalta jokaisen tehtävän kohdalla tehtävälapun luokse. Liikekäskysarjojen suunnittelun ja botin muistiin syöttämisen apuna voidaan suunnitella reitti etukäteen kirjoittamalla tarvittavat liikekäskyt oikeassa järjestyksessä (ts. algoritmi) muistiin paperille. Tehtävät luetaan vuorotellen paria arvioiden ja auttaen, ja jos lukeminen onnistuu sujuvasti, saa lukija lapun itselleen. Jos parit saavat kerättyä kaikki laput, he voivat keksiä niistä yhdessä suullisesti tai kirjoittaen pienen tarinan.
Luetun tekstin animointi (Scratch Junior)
Tehtävä tehdään parityöskentelynä kielellisesti samantasoisen parin kanssa tason mukaan eriyttäen. Opettaja jakaa oppilaat pareiksi etukäteen ja valitsee pareille soveltuvan tekstin. Tähän sopii tekstiksi aapisen tai lukukirjan kertomusten lisäksi esimerkiksi pieni satu, katsomusaiheinen kertomus tai uutinen. Parit lukevat tekstin ääneen vuorotellen virke kerrallaan, jonka jälkeen he tekevät tekstistä yhteisen animaation Scratch Juniorilla. Hahmot voidaan ohjelmoida aloittamaan toimintaansa esimerkiksi silloin, kun niitä klikataan, tai ajoittamalla. Lisäksi ne voidaan ohjelmoida esimerkiksi liikkumaan, hyppimään, keskustelemaan ja päästelemään ääniä sekä muuttamaan muotoaan erilaisissa tapahtumapaikoissa. Animaatiot esitetään lopuksi yhteisesti luokalle.
Kirjoittamis- ja tavutehtäviä ohjelmoiden (Bee-bot/Blue-bot)
Tehtävä tehdään parityöskentelynä. Tehtäviä vaihdellaan harjoiteltavan asian mukaisesti kielellisesti samantasoisten parien kanssa tason mukaan eriyttäen. Opettaja jakaa oppilaat kielellisiltä taidoiltaan samantasoisten kanssa pareiksi etukäteen ja suunnittelee parille soveltuvat tehtävät (n. 5 tehtävää). Oppilaat saavat paperiliuskoja (leikattu A4-paperiarkeista pituussuunnassa, joka on kaksi kertaa botin kulkema yksittäinen matka eli 15 senttimetriä), joista he muodostavat yhdessä labyrintin. Tehtävälaput asetellaan reitille. Botti ohjelmoidaan yhdessä ensimmäisen tehtävän luokse, ja kun se onnistuu, tehtävä tehdään, käydään tarkistuttamassa se opettajalla tai tarkistuspisteellä ja jatketaan eteenpäin.
Virkekirjoittamista ohjelmoiden (Scratch Junior)
Harjoitus aloitetaan koko luokan kanssa yhteisesti mallintaen: jokaisella oppilaalla on kynä, kumi, kirjoitusvihko ja oma iPad, jossa Scratch Junior -ohjelma auki. Keksitään yhdessä ensimmäinen virke niin, että siinä on jokin tekijä, jokin tekeminen ja jokin paikka (esim. “Kissa kävelee rannalla”). Jokainen kirjoittaa virkkeen vihkoonsa, ja virkkeet tarkistetaan opettajan taululle tekemästä mallista. Virkkeeseen valitaan myös sopiva hahmo ja tausta Scratch Juniorissa, ja virke ohjelmoidaan. Virkettä ja ohjelmoitua lauseketta verrataan yhdessä: molemmissa tulisi olla aloitusmerkki (esim. kun hahmoa painetaan), toiminta (esim. hahmo liikkuu ja sanoo jotakin) ja lopetusmerkki (esim. ohjelma päättyy ilman erityistoimenpiteitä). Tehtävää voi jatkaa vielä yhdessä, mutta vähitellen on tarkoitus, että sitä jatketaan yhdessä parin kanssa eteenpäin virke kerrallaan kirjoittaen ja ohjelmoiden. Taitavimmat parit voivat yhdistää virkkeensä tarinaksi ja näin muodostaa yhtenäisen animaation.
Vuoropuhelun harjoittelu (Bee-bot/Blue-bot/Scratch Junior)
Kirjoitettu kertomus sisältää vuoropuhelun. Ohje voi olla esimeriksi: “Kirjoittakaa kertomus, jossa kaksi hahmoa lähtevät liikkeelle eri paikoista, kohtaavat matkan varrella, keskustelevat keskenään ja jatkavat yhdessä eteenpäin tiettyyn määränpäähän.” Blue-boteilla ohjelmoidessa huomioidaan keskustelun aikainen pysähtyminen eli ohjelman lopetus tai ajallinen tauotus sekä erillisten ohjelmien (esim. eri hahmoissa tai boteissa) synkronointi. Tehtävä voidaan esittää lukemalla kertomus bottien liikkuessa tai videoida siten, että toinen oppilaista lukee samalla kun toinen kuvaa. Scratch Junior -ohjelmalla tehdessä kertomukseen ohjelmoidaan puhekuplat, ja keskustelun voi myös äänittää.
Lasku ja vastaus (Bee-bot/Blue-bot)
Jokaisella työskentelyparilla on oma botti. Opettaja on tehnyt valmiiksi paperilapuille teemaan liittyviä harjoiteltavia laskuja, kuten yhteen-, vähennys- tai kertolaskuja, joita on asetettu nurinperin satataulualustalle. Parit ohjelmoivat bottinsa vuoronperään lapulle ja ratkaisevat laskun, kunnes alusta on tyhjä. Jos vastaus on oikein, pari saa laskun itselleen. Harjoitteesta saadaan motivoivampi tekemällä siitä kahden parin välinen kisa, tai eriyttämällä laskutehtävät pareille sopiviksi. Liikekäskysarjojen suunnittelun ja botin muistiin syöttämisen apuna voidaan suunnitella reitti etukäteen kirjoittamalla tarvittavat liikekäskyt oikeassa järjestyksessä (ts. algoritmi) muistiin paperille.
Ohjelmointirivi (Bee-bot/Blue-bot)
Satataulualustalle laitetaan merkki johonkin tiettyyn ruutuun, joka on etäällä botin aloituspisteestä. Pari kirjoittaa käskysarjan paperille miettien, mikä on yksinkertaisin reitti kulkea lähtöpaikasta kohderuutuun. Sen jälkeen he ohjelmoivat bottinsa ohjeen mukaan ja kokeilevat, pääseekö botti perille vai tuleeko ohjelmointiohjetta korjata. Virheidenkorjaus eli debuggaaminen on tärkeä ohjelmoinnillinen taito, josta on hyötyä kaikessa ohjelmoinnissa tarkemman ja tehokkaamman lopputuloksen varmistamiseksi.
Animoi luonnonilmiö (Scratch Junior)
Oppilaat tutustuvat itse, pareittain, pienissä ryhmissä tai opettajajohtoisesti käsiteltävään luonnonilmiöön. Ilmiöön tutustumisen jälkeen siitä ohjelmoidaan opetusanimaatio, jossa kyseistä luonnonilmiötä täydennetään kuvien lisäksi tekstillä ja äänellä. Animaatioon voidaan myös ohjelmoida interaktiivisia ominaisuuksia: esimerkiksi klikkaamalla animaation eri osia animaatioon voi ilmestyä tarkentavia lisätietoja kyseisestä luonnonilmiöstä puhekuplien, äänten tai muiden keinojen muodossa.
Harjoituksissa käytetyt materiaalit
Polkuja ohjelmointiosaamiseen. Opas vuosiluokille 1-6.
https://mediataitokoulu.fi/ohjelmointi_alakoulu.pdf
Ville -Alakoulun ohjelmointiopas
https://ville.cs.utu.fi/opintopolku/ville_alakoulun_ohjelmointiopas.pdf
Bee-bot/Blue-bot
https://www.youtube.com/watch?v=Y6hhSNXXUOA
ScratchJr
https://youtu.be/s6XvwEH0xpg
Matatalab
https://matatalab.com/en/education
Monialaisia ohjelmointiharjoituksia
Fagerlund, J., & Roos, S. (2020). Motivoivaa ja tavoitteellista oppimista ohjelmointiympäristöjä hyödyntäen. Teoksessa A. Veijola, O.-P. Salo, & S. Roos (toim.) Merkityksellistä oppimista etsimässä – oppimisympäristöjen moninaisuus nyt ja tulevaisuudessa. Jyväskylä: Jyväskylän normaalikoulu, Jyväskylän yliopisto, 135–162.
Lisää linkkejä
https://www.innokas.fi/materiaalit/
Koodauksen alkeet
Tutustukaa ohjelmoinnin perusteisiin ja yksinkertaisiin käskyihin oppimispeleillä.
https://code.org/
https://www.ulapland.fi/FI/Yksikot/LUMA-keskus-Lappi/Opetusmateriaalit/Auroran-ScratchJr–ohjelmointikoulu
https://minecraft.makecode.com/tutorials/agent-build
Muita materiaaleja
• Pelejä:
• Koodauspläjäys (peli / tehtäväkortit)
• RoboGem (peli) https://www.youtube.com/watch?v=QqyUCmmONik
• Sovelluksia:
• Lightbot (iOS)
• Daisy the Dinosaur
• Bee-Bot
• Kirjallisuutta:
• Linda Liukas: Hello Ruby (2015)
• Jon Woodcock & Carol Vorderman: Koululaisen peliohjelmointikirja (2016)
• Jon Woodcock: Koululaisen ohjelmointikirja (2017)
• eNorssin TVT-julkaisu (uusi, linkki tulossa)