Pelaajaoppiminen: Voiko sitä hyödyntää koodauksen opettelussa ?

Törmäsin viime syksynä ensimmäisen kerran termiin pelaajaoppiminen. Luin siitä Tero Toivasen blogista.
Tero on käsitellyt asiaa muutenkin mm. tässä linkin diasarjassa termi esitellään hyvin.

Itse olen työskennellyt koodauksen parissa noin 20 vuotta. Tietokonepelejä tai pelaamista en kuitenkaan ole koskaan juurikaan harrastanut. Mutta sana pelaajaoppiminen, ja se miten Tero sitä kuvasi sytyttivät idealampun päässäni. Tämähän on juuri sitä mitä koodaustyössäni teen. Koodari pääsee harvoin suunnittelemaan ja toteuttamaan ohjelmia alusta alkaen, vaan valmiiden ohjelmien kehittämisessä ja ylläpidossa on se suurempi työsarka. Ylläpidolla tarkoitan tässä kohtaa sitä, että on etsittävä koodista virheitä (=bugeja), jonka joku muu on sinne vahingossa kirjoittanut. Virheen etsiminen koodauksessa tarkoittaa, että kokeillaan miten ohjelma toimii. Ja kokeillaan millä tavalla virhe saadaan aikaan. Hauskin vaihe on sitten kokeilla ja keksiä miten virhe saadaan korjattua tai kierrettyä. Ratkaisua etsittäessä on järkevää etsiä valmiita malleja esim. netistä tai keskustelupalstoilta. Tätähän se pelaajaoppiminen on 🙂

Lasten kanssa koodausta opetellessa pelaajaoppiminen mielestäni korostuu. He ovat luovia, eikä heillä usein ole ennakkokäsityksiä asioista. Lapset menevät ja kokeilevat ensin, ja luonnolliseti oppivat siinä samalla. Koodaukseen tämä lähestymistapa on sopiva.

Oppimisympäristöjä pelaajaoppijalle:

  • Datasepän koodikoulussa ja ensi askelissa koodauksen maailmaan olen käyttänyt paljon visuaalista code.org oppimisympäristöä, jossa pelaajaoppiminen korostuu. Koodaustunti tehtävän voi helposti aloittaa 3-4 luokkalaisten kanssa ilman, että tekijä juurikaan tietää koodauksesta mitään. Tehtävän suorittanut on kuitenkin oppinut käyttämään jo kolmea ohjelmoinnin perusrakennetta: Lause, Ehtolause ja Silmukka.
  • Astetta vaativampi visuaalinen oppimisympäristö on esim. Tero Toivasen julkaisema Scratch- klubi, jossa on koodaushaasteita ratkottavaksi pelaajaoppijoille. Kokeilin ympäristöä kerholaisten kanssa, ja totesin sen sopivan ryhmäni 5-6 luokkalaisille. Lauseen, ehtolauseen ja silmukan lisäksi opitaan käyttämään: muuttujaa ja funktiota, ja tapahtumankäsittelyä. Klubin haasteet suoritettuaan oppilas on oppinut perusteet ohjelmoinnista ja voi siirtyä vaikka ”oikean” ohjelmointikielen käyttöön.
  • Code.org Koodaustunti ja Scratch- klubi ovat visuaalista ohjelmointia. Siitä seuraava askel on merkkipohjainen ohjelmointi. Tähän on myös helppokäyttöinen oppimisympäristö esim. Scratch-klubin tekijältä eli Python- klubi. Tälle en osaa ikäsuositusta kertoa, kun en ole vielä lasten kanssa kokeillut. Mutta veikkaisin 7. luokkaa ja sellaisia oppilaita, jotka ovat jo ohjelmoinnista kiinnostuneet enemmän!
Mainokset

Koodausharjoitus ilman tietokonetta: Miten koodataan liikennevalot?

Peruskoulussa opetetaan ohjelmointia, ja yksi tärkeä tavoite on oivaltaa mihin kaikkeen ohjelmoinnilla käytännössä voi vaikuttaa. Ohjelmointiharjoituksiin voi ottaa esimerkkejä vaikka lähiympäristöstämme.

Mediakerholaiseni ovat 9-12 vuotiaita. He ovat opiskelleet jonkin verran koodauksen alkeita. Tänään kokeilin teettää heillä harjoituksen, jossa suunnitellaan millainen voisi olla liikennevalojen ohjelmakoodi. Koulumme lähellä kulkee rautatie, jossa on vartioitu tasoristeys (=liikennevalot, puomi, äänimerkki). Ohjelmakoodin tulee sytyttää punainen valo palamaan, laskea puomi alas ja päästä äänimerkkiä junan lähestyessä. Kun juna mennyt ohi, niin ohjelmakoodin tulee nostaa puomi ja sytyttää oranssi valo palamaan.

Kolmasluokkalainen Aleksi oli se, joka ensimmäisenä keksi, että tarvitaan kosketusanturi tunnistamaan junan saapuminen. Että arvaa kuinka vanhan koodarin sydäntä lämmitti, kun näki idealampun syttyvän usean kerholaisen silmissä koodia porukalla suunnitellessa !!

Tässä koodaustehtävä:
Junanradan ylitys, jossa on liikennevalo ja puomi. Kirjoita ohjelmakoodi, joka sytyttää punaisen valo palamaan junan saapuessa, sekä laskee puomin, ja päästää äänimerkkiä.Seuraavia kysymyksiä voidaan yhdessä pohtia:

  • Mikä on liikennevalojen tehtävä tässä tapauksessa ?
  • Miten tämä liikennevalo voisi toimia?
  • Montako valoa tarvitaan?
  • MItä muuta tietoa tarvitaan?

Tehtävän ratkaisussa piirretään paperille kuva junaradan ylittävästä tiestä, junaradasta, liikennevaloista yms. tarpeellisesta. Piirretään kosketusanturit ja saapuva juna/auto kuvaan. Ja kirjoitetaan yhdessä liikennevaloille koodi käyttäen koodauksen kolmea perusrakennetta: lause, silmukka ja ehtolause.

Tässä esimerkki tehtävän mukaisesta ohjelmakoodista:
Koodissa ei voi käyttää junan aikataulua apuna. Miksi ei?
Koska lapsikin sen tietää, ettei VR:n junat kulje aikataulujen mukaan 🙂

Käynnistä = 1;
Toista kunnes Käynnistä = 0
{
Näytä oranssi valo;
Jos juna koskee anturiin 1 tai 2, niin
{
Näytä punainen valo;
Laske puomi;
Anna äänimerkkiä;
Odota kunnes juna koskee anturiin 1 tai 2;
Nosta puomi;
Lopeta äänimerkin anto;
}
}

Code.org ympäristössä kerholaiset ovat oppineet käyttämään lausetta, ehtolausetta ja silmukkaa. Ja helposti ne saatiin ujutettua tähän ohjelmaan mukaan.

Testaamaanhan ei koodia käytännössä päästy, mutta uskotaan sen toimivan!

 

Koodarin työpäivä: millainen se on?

Lapsia ehkä kiinnostaa kuulla, mitä koodarin työpäivään kuuluu. Tässä kertomus tavalllisesta koodarin työpäivästä:

Herään klo 7:20, pimeys väsyttää kamalasti tänäkin aamuna. Onneksi ollaan menossa kohti kevättä ja valoa – myös täällä Raudaskylällä. Laitan aamupalaksi voileipiä, maitoa ja mustikoita. Huolehdin lapset kouluun. Kahvikupposen kanssa siirryn toimistoon kotini yläkerrassa.

Avaan nettiyhteyden ja ensimmäisen läppärin. On tsekattava onko Nivalan asiakkaalta tullut yhteydenotto liittyen toissapäivänä tekemääni ohjelmistopäivitykseen (=ERP). Ei ole yhteydenottoa. Tarkistan myös Skype:stä onko Jyväskylän asiakas saanut kokeiltua eli testattua eilisen ohjelmamuutoksen  jälkeen nettisivut (=Verkkkokauppa). On testannut, joten siinä ensimmäinen työtehtävä:

  • Avaan nettisivujen muokkaukseen tarvittavat ohjelmat (Notepad++, XAMPP ja Filezilla). Kopioin php-tiedostot työasemalta asiakkaan palvelimelle, ja testaan html-sivujen toimivuuden inernetissä. Asia kunnossa ja ilmoitan asiakkaalle Skypessä. Asiakas on tyytyväinen.

Avaan toisen läppärin, jossa odottaa Helsingin asiakkaani yhteydenotto. Heiltä  on tullut ilmoitus kriittisestä bugista eräässä ohjelmassa (=ERP-ohjelmisto). Tässä päivän toinen tehtävä. Kriittiset bugit on korjattava mahdollisimman pian, koska ne usein estävät asiakkaan töiden tekemisen.

  • Avaan Visual Studion ja alan debugata koodia, eli etsiä virhettä…
    Teen tätä lounastaukoon asti, mutta virhettä ei löydy. Lounaan jälkeen virhe löytyy, ja kirjoitan sen korjaamiseksi kaksi riviä koodia ohjelmaan. Toimitan käännetyn koodin asiakkaan järjestelmään. Asiakas on helpottunut.

On päivällisaika. Tuntiraportin tekeminen on tärkeää päivän lopuksi, jotta osaa laskuttaa asiakkaita oikein. Päivällisen jälkeen vetäydyn vielä hetkeksi työhuoneeseeni, ja paneuden omaan tuotteeseen Kiinteistönhallinta ERP:iin. On speksattava eli kirjoitettava mitä vaatimuksia asetetaan huoltomiehen mobiiliversion koodille.  Tänään koodarin päivä päättyy klo 18. Lähdemme lasten kanssa luistelemaan ja pelaamaan lätkää lähipuistoon. Ulkoilun jälkeen saunaan ja nukkumaan. Tämä oli hyvä päivä 🙂

Koodisatukirja: kokemuksia Hello Ruby kirjasta

 

helloruby_kansi

helloruby_tehtavat

 

 

 

 

 

 

 

Kerronpa esimerkin tosielämästä.

Viime viikolla oma tyttäreni 9v tuli koulusta ja kertoi lukeneensa koulussa Koodisatukirjan kokonaan läpi. Hän oli innostunut aiheesta ja halusi, että katsomme yhdessä kirjan tehtäviä. Kyseessä oli juurikin Hello Ruby- kirja!
Etenkin kartan piirtäminen kirjan päähahmon Rubin tyyliin ja ongelmien ratkominen tehtävissä tuntui hänestä kiinnostavalta. MUTTA, huomasin tytön ohittavan kirjan tehtävissä ohjelmoinnin termien määrittelyn ja siirtyvän suoraan tehtävään.

Olin hiukan hämmentyt asiasta, olinhan kokeilin koodisatukirjaa 1-4 luokkien kanssa Rauskin koodikoulussa Raudaskylällä. Juuri kukaan oppilaista eikä oma tyttärenikään tuolloin ollut kirjasta kovin innostunut…  tyttäreni ei ole ollut innostunut mistään koodausjutuista (on kuullut niistä liikaa kotona, olenhan puhunut koodikouluasioista 2014 vuodesta lähtien). Mutta nyt tämä kirja kolahti kunnolla!!

Nyt jälkikäteen pohdittuani minun lähestymistapani kirjaan koulun luokissa oli ehkä väärä: Eli minähän luin luokalle yhteisesti kirjaa pienen pätkän, ja osallistujat tekivät sitten muutamia harjoituksia. Yritin ennen harjoituksia selittää heille ohjelmoinnin termit, jota tehtävässä tulisi vastaan. VÄÄRIN meni. Parempi olisi antaa lasten lukea kirja kokonaan tai sitten lukea se heille pienessä porukassa. Ja tehtävien teossa ohjelmoinnin käsitteet on tarkoitettu ainoastaan opettajille, niitä ei tarvitse heti avata lapsille ollenkaan!!

Kokemuksesta viisastuneena NYT uskallan suositella Hello Ruby koodisatukirjaa muillekin!! Kannattaa kokeilla kirjaa, sen tehtävien avulla aikuinenkin voi tutustua koodauksen maailmaan. Kiitos kirjasta Linda Liukas 🙂

Kirjan saa ostettua mm. Adlibriksen verkkokaupasta – löytyy nimellä Linda Liukas.

Mytrendyphone PUHELINTARVIKKEET