Mitä koodaus on – koodikoulu aikuisille Raudaskylällä 4.5.2017

Maailman digitalisoitumisesta puhutaan julkisuudessa paljon nykyään. Koodaus on osa sitä. Tämän tilaisuuden tarkoitus on esitellä käytännön läheisesti aikuisille mitä koodauksella eli ohjelmoinnilla tarkoitetaan. Koodaustahan opetetaan nykyään jo alaluokilta lähtien peruskoulussa. Tässä koodaustyöpajassa osallistujat pääsevät kokeilemaan samoja tehtäviä, mitä jopa ekaluokkalaiset tekevät koulussa.

Illan ohjelmaa:

  • Tutustutaan Rauski-roboon: koodaus on käskyjen antamista tietokoneelle
  • Karkkirobotti: koodataan paperilla käskyja
  • Ohjelmointiharjoitus: tehdään koodaustunti- tehtävä code.org
    http://studio.code.org/sections/HPQLZS

TILAISUUDEN TARJOAA RAUDASKYLÄN KYLÄYHDISTYS RY
http://raudaskyla.blogspot.fi/

Kokeilussa Bomberbot – koodauksen oppimispeli alakouluun

Loin itselleni opettajan tunnukset Bomberbot- oppimispeliin kokeillakseni mitä se tarjoaa. Ohjelmistosta voi valita alkeis- tai/ja jatkokurssin. Kokeilutunnuksella oli avoinna vain osa alkeiskurssin sisältöä, mutta sekin riitti vakuuttamaan minut ohjelman käyttökelpoisuudesta alakoulussa.

Alkeet osio sisälsi tuntisuunnitelmat 1-11, jotka tosiaan alkoivat ihan alkeista. Oman aiemman kokemukseni perusteella alkeiskurssi voisi sopia noin 10 vuotiaille, tai saattaisi sopia jopa nuoremmillekin. Mielestäni kuitenkin on hyvä pitää koodauksen opetus sillä tasolla, että se on aluksi mieluummin liian helppoa oppilaille, kuin vaikeaa. Kukin tuntisuunnitelma sisälsi opettajalle perehdytys materiaalia, jolla pääsee aiheeseen sisälle nekin, joilla ei mitään aiempaa kokemusta aiheesta. Tuntisuunnitelmat oli 60minuutin pituisia, joista jokainen sisälsi tietokoneetonta tekemistä ja koodausharjoituksia tietokoneella. Tästä tykkäsin, että ei suoraan syöksytä tietokoneelle, vaan ”kuivaharjoitellaan” asiaa ensin.

Oppilaat kirjautuvat ohjelmaan omilla tunnuksillaan ja opettaja omillaan. Näin opettaja voi tunnin jälkeen omalla tunnuksellaan käydä katsomassa miten oppilaat suoriutuivat tehtävistä. Paras piirre oli mielestäni osio, jossa oppilaan tunnuksella pääsee luomaan oman pelimaailman. Toiset käyttäjät voivat lisäksi nähdä ja käyttää näitä itse tehtyjä maailmoja. Tämä parasta siksi, että aina on niitä lapsia, jotka etenevät nopeammin. Tässä luovassa osioissa he voivat toteuttaa itseään, kun muut vielä tekevät perusharjoituksia.

Näytti siltä, että Alkeet- osan opiskeluun saisi helposti kokonaisen lukuvuoden käytettyä. Kyseenalaistan sen olisiko järkevää jatkaa Jatko- osaan tässä samassa ohjelmassa, vaiko ottaa sen sijaan käyttöön jokin muu ympäristö esim. code.org tai Scratch. Ohjelmoinnin opiskelu alakoulussa ei saisi olla sidottu tiettyyn oppimisympäristöön. Sen sijaan oppilaille tulisi tarjota monipuolisesti vaihtoehtoja useasta eri koodauksen oppimisympäristöstä. Paremmin tulisi oppilaille ymmärrys, että samat ohjelmoinnin perusrakenteethan on käytössä kaikissa oppimisympäristöissä (=ohjelmointikielissä) !

Suosittelen tutustumaan ohjelmaan kokeilutunnusten avulla!!
Parissa viikossa ehtii kokeilla sopisiko tämän omana opetustyyliin..

https://go.bomberbot.com/en/login

 

Koodauksen tunnit peruskoulussa – Mistä tuntisuunnitelmat koko vuodelle?

Olen seuraillut 2014 vuodestä lähtien koodauksen opetuksen rantautumista peruskouluihin Suomessa. Opetussuunnitelma määrittää 2016 syksystä lähtien tasot, jotka ohjelmoinnista tulisi saavuttaa eri luokka-asteilla. Mutta selkeää materiaalia (=kirjoja, nettisivustoa) näiden tavoitteiden saavuttamiseen en vielä ole nähnyt Suomessa. Koulutusta ohjelmoinnin opetukseen on kyllä saatavissa, mutta jääkö silti liikaa koulun tai yksittäisen luokanopettajan vastuulle, että miten loppupeleissä ohjelmointia tietyssä koulussa opetetaan. Ja sehän johtaisi siihen, että oppilaiden kannalta kaikki eivät saavuta lähellekään samaa tasoa…

Maailmalta tälläinen hyvä kokonaisvaltainen materiaali tietojenkäsittelyn opettamiseen löytyy.  Code.org yhteisö on tuottanut materiaalia, jonka avulla voi opettaa tietojenkäsittelyn perusteita varhaiskasvatusikäisistä lukiolaisiin asti. Materiaalin käyttäminen ei edellytä opettajalta erityistietämystä tietotekniikasta. Ohjelmointi ei ole erillinen kokonaisuus, vaan se on osa kokonaisuuttaa ComputerScience. Ja näinhän se on koodarin näkökulmastakin katsoen, että on tiedettävä perusasioita tietotekniikasta, jotta voi ymmärtää ohjelmointia!

Tästä löytyy mm. video, jossa kerrotaan millaista materiaalia löytyy mm. peruskouluikäisille. KS. https://code.org/educate/curriculum/elementary-school

Code.org- sivustolta löytyy sähköistä ilmaista tietoa sisältäen tuntisuunnitelmat ja oppaat opettajille. Opettaja voisi ottaa materiaalista koko lukuvuoden kestävän suunnitelman ja edetä sen mukaan. Tai koko alakoulun tai yläkoulun kestävän suunnitelman. Tieto on pääosin englannin kielistä, joten se saattaa hidastaa käyttöönottoa. Materiaalit ovat moneen kertaan oppilailla testattuja ja ne ovat myös opettajien hyväksymiä. Kehittelyssä on ollut mukana monia monia asiantuntijoita tietotekniikan saralla. Ja materiaali kehittyy jatkuvasti, koska käynnissä on Pilotteja, joilla kehitystä tehdään.

 

Koodauspäivä alakoulussa – Toteuttamiskelpoinen idea

Datasepän koodikoulu pääsi koodauksen kouluttajan ominaisuudessa Raudaskosken alakoululle toteuttamaan koodauspäivää yhdessä koulun opettajien kanssa. Koodauspäiväna aamupäivän tunnit koko koulu opiskeli koodausta, ja sitten mentiin yhdessä ulos mobiilisuunnistusta tekemään! Koululla on ollut vuoden kestävä koodikoulu-hanke aiemmin, joten koodauspäivä oli suurimmalle osalle oppilaita ja opettajia kertausta hankkeessa opitusta.

Päivän ohjelma pääpiirteittäin:

  • 0-2 luokat: robotin ohjausta, karkkirobotti, TurtlesRobo- ja Robogem- lautapelit
  • 3-4 luokat: karkkirobotti, code.org visuaalista ohjelmointia, koodauspläjäys- kortit
  • 5-6 luokat: Kahoot- tietovisa aiheesta Ohjelmointi, Scratch visuaalista ohjelmointia
  • Yhteisesti: TurfHunt- mobiilisuunnistus ulkona

Datasepän koodikoulu hahmotteli päivän sisällön, ja toimitti 0-6 luokien opettajille tuntisuunnitelmat aamupäivän koodaustunneille. Ennen koodauspäivää opettajien kanssa yhdessä käytettiin yksi iltapäivä koodaus-koulutuksen merkeissä, kun opet kokeilivat heille vielä outoa Scratch koodausta. Lisäksi koulutuksessa käytiin läpi TurfHunt- mobiilisuunnistuksen sovellus ja mietittiin sisältö toiminnallisille suunnistusrasteille.

Tuntisuunnitelmat, joita opettajat käyttivät apuna valmistellessaan koodauspäivää:
https://rauskinkoodikoulu.wordpress.com/tehtava/koodauspaiva-raudaskoskella/materiaalit-koodauspaivaan/

Muutamia opettajien kommentteja päivän jälkeen:

1. luokan opettaja:
”…TurtlesRobo- lautapeli toimii hyvin ekaluokalla. Englanninkieliset ohjeet teetti opelle etukäteistyötä. Pelattiin ensin kerta peruskorteilla ja toisella kierroksella otettiin ensimmäinen funktiokortti (jään sulatus). Sitten oli mitta täynnä. Eivät olisi jaksaneet pitempään. Ei myöskään ope, melutaso oli korkea.”

3. luokan opettaja:
”…Kolmannella tunnilla teimme Koodauspläjäys- kortteja. Jaoin jokaiselle tussin ja kasan kortteja per pulpettiryhmä. Hyvin toimi tämäkin. Jokainen löysi mieluisaa tekemistä.”

Eskarien opettaja:
”…Karkkirobotti oli oikein kiva lapsista. Ryhmä vaan on niin iso, että vaikka jaoin sen kahtia niin odotusta silti tuli. Käytin lattiamuotoja ruudukkona. Joistakin lapsista oli helpompi piirtää nuolia samalla, kun hän antoi ohjeita. Ajattelin, että voisin ottaa uudemman kerran tätä. Ja voitaisiin vaikka askarrella oma robotti, jolle annetaan ohjeita ja sitä liikuteltaisiin.”

Datasepän koodikoulun kommentti:
”Kokemuksen perusteella sanona, että idea on varmasti toteutuskelpoinen muissakin kouluissa!! Jos koodausta on jo koulussa opiskeltu jonkinverran, niin tämäntyylinen sisältö käy hyvin vaikka kertauksena. TurfHunt/Creator CMS- ohjelma on ilmainen, ja rastien totetus on näin helppoa!”

 

Raudaskylän Koodileirille kesällä?

           

Miksi koodileirille?
Maailma digitalisoituu. Tietokoneet ovat osana arkeamme monin erin tavoin. Uskot varmasti, että lapsesi on hyvä kasvaa tietäen, että ihminen kuitenkin se, joka määrää miten tietokoneet toimivat! Koodileirillä lapset saavat taitoja, joita tietokoneiden määräämiseen tarvitaan. Lisäksi leirillä leikitään ja ulkoillaan paljon uusien leirikaverien kanssa. Hauskaa pitoa ei unohdeta, koodauksen ei tarvitse aina olla totista 🙂

Aloitamme alkeista, ja etenemme leiriläisten tietojen ja taitojen mukaan. Leirit sopivat hyvin sekä tytöille, että pojille.

Pienemmät leriläiset pääsevät tutustumaan ohjelmointiin mm. robotteja hyödyntäen ja askartelemalla tietokoneen. Isommat keskittyvät tutustumaan erilaisiin koodauksen ohjelmiin, joilla voi tehdä omia ohjelmia ja pelejä (Stratch, KoduLab, Sonic Pi, code.org), ja pääsevät kokeilemaan musiikin tekekemistä koodaamalla. Jokaiselle jotakin.

Datasepän koodikoulu tarjoaa koodileirejä yhteistyössä Raudaskylän Kristillisen Opiston kanssa, joka on tunnettu musiikkileireistään. Ilmoittauminen löytyy Raudaskylän Kristillisen Opiston sivuilta:
http://www.rko.fi/taydennyskoulutus/muut-tapahtumat

Leireillä on paikk0ja rajoitetusti, joten varaa paikkasi ajoissa 🙂

Jaa jotain- tapahtuma: Tuntisuunnitelmia koodauksen alkeisiin alakoulussa

Nyt on meneillään Open Education Week 13vk/2017.
Datasepän koodikoulu haluaa osallistua viikkoon antamalla muiden käyttöön muutamia tuntisuunitelmiaan CC BY-SA lisenssillä.

Tässä tuntisuunnitelmat 1-4, joilla pääsee alkuun ohjelmoinnin alkeiden opettamisessa sellainenkin henkilö, jolla ei kokemusta ohjelmoinnin opettamisesta tai ohjelmoinnista yleensä. Nämä on käytännön tasolla kokeiltuja ja hyväksi havaittuja.

Ohjelmoinnin alkeita peruskoulussa:
https://drive.google.com/file/d/0B9NBzNK8wX3jemRsWHYwYVhJUFU/view?usp=sharing

Tietotekniikan perusteita leikinomaisesti koodauksen opettelun ohessa?

Mitä tarkoitan otsikolla?
Ohjelmoijan tulee tietää jotakin myös tietokoneista, jotta osaa käskyttää tietokoneita. Tässä yksinkertaisia esimerkkejä siitä, miten koodaus ja tietotekniikan perusasiat limittyvät yhteen:

  1. Tietokone on tyhmä.
  2. Tietokone ymmärtää vain nollia ja ykkösiä (=binääriluvut).
  3. Ihmisen on kerrottava koodaamalla tietokoneelle, miten sen pitää toimia (=ohjelmakoodi)
  4. Koodi tallennetaan tietokoneen muistiin (=tiedosto, kansio, tallennus tiedostoon ja kansioon).
  5. Tietokonekone suorittaa koodia prosessorilla (=prosessori).
  6. Ihminen komentaa tietokonetta eli käynnistää koodin esim. näppäimistöllä tai hiirellä tai koskeusnäytöllä (=näyttö, hiiri, näppäimistö).

Näinpä on luontevaa yhdistää koodaustunteihin tietotekniikan perusasioiden opiskelua jossain määrin. Tietotekniikan perusteisiin voi nykyää katsoa kuuluvan myös internetin toiminnan ymmärtämisen. Muutamalla kivasti toteutetulla harjoituksella opetusvuoden aikana voidaan innostaa oppilaita tietotekniikan pariin.

Kivoja esimerkkejä tarkoitukseen löytyy mm. Computer Science Fundamentals plugged sivustolta, joka tarjoaa valmiiksi suunniteltuja oppitunteja eri ikäisille. Kannaa tutustua, tekniikka ei ole aina tylsää!
Näitä tehtäviä tehdään ympäri maailman peruskoulussa, ja tehtäviä voi tehdä oli luokassa tietokoneet käytössä tai ei.

Pari esimerkkiä, jota olen onnistuneesti kokeillut 4.-6. luokkalaisten kanssa:

  • Sivustolla on mm. Internetin sanaston opiskeluun kiva esimerkki leikki. Se havainnollista sitä, miten viestit internetissä liikkuvat käyttäjältä toiselle ja ainahan viestit eivät edes mene perille 🙂
  • Toinen mielestäni hyvin oivallettu esimerkki on kertoa binääriluvuista kuvien avulla, kuten tämä linkin esimerkki.


Miten opettaa ohjelmoinnin peruskäsitteitä peruskoululaisille?

Jo useita vuosia on ollut olemassa oppimisympäristöjä, joilla ohjelmoinnin peruskäsitteet voi opetella pelaajaoppimalla ja leikinomaisesti. Mitä se tarkoittaa?
Se tarkoittaa, että opettaja ei esittele käsitteitä etukäteen, vaan osallistujat oppivat ne käytännön kautta tekemällä. Toki on varmasti hyvä, että opettajan avustuksella kerrataan käsitteet, jotka tuli opittua tehtävässä.

Jos en olisi käytännössä näitä asioita lasten kanssa kokeillut, niin en kyllä uskoisi. Mutta monen ryhmän kanssa asioita kokeiltuani täytyy tunnustaa tosiasia – pelaajaoppiminen toimii lasten kanssa.

Esimerkkejä tehtävistä ohjelmoinnin peruskäsitteiden opiskeluun:

Tässä pieni esimerkki Silent teacher tehtävästä, jossa lähestytään mielestäni nerokkaasti muuttuja- käsitettä. Lähestytään sen kautta, mitä oppija jo osaa:

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!