Uusi OPS: Ohjelmointia ja robotiikkaa peruskouluihin Ville Sakomaa, TVT-kouluttaja/samanaikaisopettaja Jyväskylän kaupunki, perusopetuspalvelut Keski-Suomen maakuntakirjastokokous 17.11.2016 Cygnaeustalo, Jyväskylä
Mitä ohjelmoinnista sanotaan opetussuunnitelmassa? Koodaustaidot mainitaan osana laaja-alaisia osaamistavoitteita sekä alaettä yläkoulun puolella. Opetus vuosiluokilla 1 2 Tieto- ja viestintäteknologinen osaaminen: Oppilaat saavat ja jakavat keskenään kokemuksia digitaalisen median parissa työskentelystä sekä ikäkaudelle sopivasta ohjelmoinnista (OPS 2016, 101). Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet vuosiluokilla 1 2 Tutustuminen ohjelmoinnin alkeisiin alkaa laatimalla vaiheittaisia toimintaohjeita, joita myös testataan (OPS 2016, 129). Lähde: Koodi2016: http://koodi2016.fi/opetus.html
Opetus vuosiluokilla 3 6 Tieto- ja viestintäteknologinen osaaminen (L5) Ohjelmointia kokeillessaan oppilaat saavat kokemuksia siitä, miten teknologian toiminta riippuu ihmisen tekemistä ratkaisuista (OPS 2016, 157). Matematiikan opetuksen tavoitteet vuosiluokilla 3 6 T14 innostaa oppilasta laatimaan toimintaohjeita tietokoneohjelmina graafisessa ohjelmointiympäristössä (OPS 2016, 235). Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet vuosiluokilla 3 6 Suunnitellaan ja toteutetaan ohjelmia graafisessa ohjelmointiympäristössä (OPS 2016, 235). Matematiikan arviointikriteerit 6. vuosiluokan päätteeksi arviota hyvä / arvosanaa kahdeksan varten T14 innostaa oppilasta laatimaan toimintaohjeita tietokoneohjelmina graafisessa ohjelmointiympäristössä (OPS 2016, 239). Ohjelmointi graafisessa ohjelmointiympäristössä (OPS 2016, 239). Oppilas osaa ohjelmoida toimivan ohjelman graafisessa ohjelmointiympäristössä (OPS 2016, 239). Käsityön tavoitteisiin liittyvät keskeiset sisältöalueet vuosiluokilla 3 6 Harjoitellaan ohjelmoimalla aikaan saatuja toimintoja, joista esimerkkinä robotiikka ja automaatio (OPS 2016, 271). Lähde: Koodi2016: http://koodi2016.fi/opetus.html
Opetus vuosiluokilla 7 9 Tieto- ja viestintäteknologinen osaaminen (L5) Ohjelmointia harjoitellaan osana eri oppiaineiden opintoja (OPS 2016, 284). Matematiikan opetuksen tavoitteet vuosiluokilla 7 9 T20 ohjata oppilasta kehittämään algoritmista ajatteluaan sekä taitojaan soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisemiseen (OPS 2016, 375). Matematiikan tavoitteisiin liittyvät keskeiset sisältöalueet vuosiluokilla 7 9 Ohjelmoidaan ja samalla harjoitellaan hyviä ohjelmointikäytäntöjä (OPS 2016, 375). Matematiikan päättöarvioinnin kriteerit hyvälle osaamiselle (arvosanalle 8) oppimäärän päättyessä T20 ohjata oppilasta kehittämään algoritmista ajatteluaan sekä taitojaan soveltaa matematiikkaa ja ohjelmointia ongelmien ratkaisemiseen (OPS 2016, 379). Algoritminen ajattelu ja ohjelmointitaidot (OPS 2016, 379). Oppilas osaa soveltaa algoritmisen ajattelun periaatteita ja osaa ohjelmoida yksinkertaisia ohjelmia (OPS 2016, 379). Käsityön tavoitteisiin liittyvät keskeiset sisältöalueet vuosiluokilla 7 9 Käytetään sulautettuja järjestelmiä käsityöhön eli sovelletaan ohjelmointia suunnitelmiin ja valmistettaviin tuotteisiin (OPS 2016, 431). Lähde: Koodi2016: http://koodi2016.fi/opetus.html
Käytännössä 1-2 luokat. Opetetetaan toiminta- ja ajattelumalleja leikkien ja pelien kautta. Ei tarvita välttämättä mitään laitteita, vaikka alkupetukseenkin sopivia robotteja (mm.beebot ja BlueBot) onkin kehitetty. 3-6 luokat. Visuaalisten ohjelmointiympäristöjen avulla käydään läpi koodaamisen peruskäsitteitä ja rakenteita. Mm.Lego-robotit ja Scratch. 7-9 luokat. Tavoitteena perehtyä johonkin oikeaan ohjelmointikieleen sekä syventää ja soveltaa osaamista eri aineissa. Päävastuu matematiikan opettajilla.
Millaista on ohjelmoinnillinen ajattelu? Ohjelmointi eli koodaaminen tarkoittaa ohjeiden antamista tietokoneelle. Ohjeet on kirjoitettava tietokoneen ymmärtämällä kielellä. Tietokonetta ohjelmoitaessa on käytettävä tismalleen oikeita sanoja oikeassa järjestyksessä. (algoritmien luominen) Tehtävä on osattava pilkkoa pieniin palasiin. On osattava hyödyntää ohjelmointiin liittyviä termejä, kuten silmukka, ehtolause ja muuttuja. On osattava ratkaista ongelmia, kyettävä loogiseen päättelyyn ja olemaan luova. Tehtäviin on lähes aina useita vaihtoehtoisia ratkaisuja. On opittava sietämään virheitä ja oppimaan niistä.
Robotiikkaa kouluihin Motivoiva ja hauska tapa opettaa ohjelmoinnin alkeita. Ohjelma muuttuu heti robotin toiminnaksi. Soveltuu monen tasoiseen opetuskäyttöön alkuopetuksesta yliopistoon. Robottien määrä ja merkitys yhteiskunnassa lisääntyy vauhdilla. On hyvä ymmärtää niiden mahdollisuuksia ja rajoitteita. Bluebot ja siihen saatavlla oleva aakkosmatto alkuopetuksen robotiikkaharjoituksiin Lego EV3 educationsarjan robotit on suunniteltu oppilaitoskäyttöön.
LEGO EV3 Graafinen EV3-ohjelmointikieli perustuu oikeaan ja laajasti teollisuudessa käytettävään ohjelmointikieleen (LabWiew) EV3 ohjelmointikieli soveltuu kaikille ohjelmoinnin opetuksen tasoille esikoulusta yliopistoon saakka. LEGO robottien eri kehitysversioita ollut opetuskäytössä ja kolmen vuosikymmenen aikana ja ne soveltuvatkin opetuskäyttöön hyvin.
HARJOITUKSIA 1. Yhdistetään Bluetoothasetuksissa ipad ja robotti toisiinsa 2. Avataan ipadeilta Lego Programming sovellus 3. Painetaan sovelluksessa + merkkiä ja avataan ohjelmointiympäristö.
Tehtävä. Ilmeilyä Hyvä tapa aloittaa ohjelmointi oppilaiden kanssa Lego programmer appsilla on ohjelmoida aluksi yhdessä robotille jokin ilme. Hyvä rauhallinen aloitustehtävä: kaikki voivat harjoituksen ajan istua paikoillaan, kuunnella ja kysyä, robotti ei vielä lähde liikkumaan. Tarvitset kahta ohjelmointilohkoa: Display ja Wait. Display lohkolla määrittelet tulostettavan kuvan. Klikkaamalla "Mindstorms" tekstiä saat auki esim. valikon "Eyes" Wait lohkolla määrittelet kuinka pitkään teksti näkyy näytöllä. Laittamalla useamman Display ja Wait lohkon peräkkäin saat robotin vaihtamaan ilmettään. DISPLAY WAIT
Tehtävä. Tarkkuusajo Raivataan luokan keskelle tyhjää tilaa ja vedetään pitkät viivat maalarinteipeillä noin metrin päähän toisistaan. Tehtävä 1. Asetetaan robotit lähtöviivalle. Tavoitteena on saada robotti pysähtymään toisen viivan päälle. Esitellään oppilaille kahden moottorin ohjauslohkon (Move Steering) eri parametrit (vinkki: voit yrittää mitata viivottimella kuinka monta senttiä robotti etenee, kun renkaat pyörähtävät yhden kierroksen) Annetaan oppilaiden kokeilla yrityksen ja erehdyksen kautta, kunnes robotti pysähtyy viivan päälle. Tehtävä 2. Kun robotti saadaan pysähtymään viivalle, annetaan jatkotehtävä: Nyt robotin tulee kääntyä ympäri ja palata takaisin lähtöviivalle. Käännös kannattaa tehdä "move tank" lohkolla, jolloin saat robotin pyörähtämään vaikka paikallaan (=toinen rengas pyörii eteen ja toinen taaksepäin). Nokkelimmat tajuavat, että käännöksen jälkeen robotin saa palaamaan lähtöviivalle lisäämällä loppuun Move Steering lohkon samoilla parametreilla kuin alussa.
Tehtävä: Silmukka Ohjelmoi robotti kiertämään myötäpäivään noin 30 x 30 cm kokoinen neliö Selitetään aluksi oppilaille silmukan periaate: Sen sijaan että koodaisimme lukuisia moottorin ohjauslohkoja peräkkäin voimme käyttää silmukkaa, jonka sisään asennamme vain kaksi ohjauslohkoa. Toisessa käsketään menemään eteenpäin ja toisessa kääntymään oikealle. Silmukkaa toistetaan sitten tarvittavan monta kertaa. Lisähaaste: Silmukoita voi asentaa myös sisäkkäin. Ohjelmoi robotti kiertämään laatikko kolme kertaa ja päästämään ääni jokaisen kierroksen jälkeen.
Tehtävä: Robottitanssi Useita erilaisia toimilohkoja voi ohjelmoida toteutettavaksi yhtäaikaisesti kytkemällä ne rinnakkain langoilla(wire) Ohjelmoi robotille muutama tanssiliike Samaan aikaan kun robotti tanssii sen silmät voi liikkua ja se voi väläytellä valoja. Yhdistä eri toiminnot toisiinsa langoilla ja hyödynnä toiminnoissa silmukkaa. Kuka saa aikaan hienoimman tanssin?
Tehtävä: Viivanseuraaja Tehdään robotille ohjelma, jonka avulla se osaa seurata viivaa. Tarkemmin sanoen mustan viivan vasenta reunaa. Viivan tunnistamiseen käytetään robotin etuosaan kiinnitettyä valokennoa. Tehdään testirata mustalla sähkömiehen teipillä yms. Seuraavaksi pitää tehdä toimintakuvaus: Mitä robotti tekee kun se näkee mustaa (sen tulee kaartaa vasemmalle) entä kun se ei näe... Ohjelman pitää siis valita oikealle/vasemmalle valosensorin antaman tiedon perusteella. Tämä voidaan tehdä ehtolauseke-toimintalohkolla (Switch), joka löytyy oranssilta välilehdeltä. Robotti tarkkailee toteutuuko ehto ja toimii sen mukaan. Lisäksi ehtolauseke täytyy asettaa silmukan sisälle, jotta robotti toistaa ehtolauseketta halutun määrän.
Tehtävä. "Pölynimurirobotti" Ohjelmoi robotti joka osaa kulkea itsenäisesti ja kohdatessaan esteen peruuttaa ja kääntyy eri suuntaan. Tarvitset taas moottorin ohjauslohkoa, ehtolauseketta ja silmukkaa.
Kun perustaidot ovat karttuneet aletaan antaa oppilaille yhä soveltavampia tehtäviä, joissa luovuus pääsee valloilleen. Robotiikkaa voidaan myös yhdistää eri oppiaineiden opetukseen tunneilla tai robotteja voidaan käyttää apuna esim. näytelmien ja musiikkiesitysten hahmoina (kuvaamataidossa ja käsitöissä rakennetaan robotin päälle runko ja puvustus). Robotiikan hyödyntämisessä opetukseen vain mielikuvitus on rajana.
Lähteitä: Hautala, Erkki. EV3 perusteet. 2016 (PowerPoint esitys, Innokaskiertueen materiaalit) Koodiaapinen: http://koodiaapinen.fi/ops2016/ Koodi2016: http://koodi2016.fi/opetus.html Pihola, Pekka. Asimov -ensimmäinen robottini -kirja. 2016. Innokas. Sakomaa, Ville. Miten alkuun robotiikassa? Harjoituksia Lego EV3- ympäristössä. 2016. Opetusmateriaali Peda.netissä: https://peda.net/id/2baa14dcb41