Kahden vuoden kokemuksia kiteytettynä

Kaksi vuotta innokas hanketta takana ja aika kiteyttää ohjelmoinnista asioita, joita on huomannut, ymmärtänyt ja oppinut hankkeen aikana.

Mitä oppilas tarvitsee ohjelmoinnilta?

Oppilas tarvitsee selkeän polun, jota pitkin mennä eteenpäin. Tällä hetkellä kentällä on omasta mielestä valitettavasti liikaa erilaista sillisalaattia tarjolla, josta ei muodostu selkeää kuvaa ja tavoitetta oppilaalle. Ei oppilas mielestäni opi ohjelmoinnista mitään, jos jokaisella opettajalla on eri laitepohja ja ohjelmointiympäristö. Ei ole syvyyttä oppimisessa.

Ohjelmointi alkaa kielen valinnalla. Ohjelmointikieli olisi aina saman kieliperheen jäsen, jossa ohjelmointikielen harjoittelu menee graafisen ohjelmoinnin kautta tekstipohjaiseen ohjelmointiin. Väline/ohjelmointiympäristö ottaa huomioon myös ne oppilaat, jotka ei ole hyviä ohjelmoinnissa. Heillekin löytyy sopivantasoisia tehtäviä ja harjoituksia.

Jatko-opintokelpoisuus. Niin. Tästähän ei ole puhuttu ohjelmoinnissa mitään. Eihän ohjelmoinnista ole mitään hyötyä jos opittua ei pysty soveltamaan jatko-opinnoissa. Olisiko siis paikallaan myös keskustella ammattikoulutuksen ja lukion opettajien kanssa?

Ohjelmoinnin opetus olisi motivoivaa. Motivoivinta olen sen huomannut olevan silloin kun on laite, joka liikkuu ja jonka kanssa saa tehtyä rakentelu yms. tehtäviä. Välineitä olisi oltava myös riittävästi, jotta jokainen oppilas pääsee välinettä käyttämään ajan ja oman ajatuksen kanssa. Ei 26 oppilaan luokassa kolme välinettä riitä mihinkään. Tässä taas mennään taloudellisiin totuuksiin. Jos panostetaan yhteen – saadaan aikanaan riittävästi välineitä. Jos sillisalaattia… ei välineitä ole ikinä riittävästi.

Mitä opettaja haluaa ohjelmoinnilta?

Opettaja haluaa selkeän kokonaisuuden, jonka kanssa pärjää pitkälle. Ohjelmointi tulee melkein kaikille uutena asiana, eikä opettajilla riitä aikaa ja panostusta opetella erilaisia ohjelmointiympäristöjä ja kieliä jatkuvalla syötöllä lisää.

Ohjelmoinnissa pitää olla selkeä linjaus, jonka kanssa pärjää lukuvuodet 3.-9. aivan mainosti. Yksi selkeä kieliperhe, jonka sisällä mennään ja useamman vuoden aikana saa ajettua itsensä sisälle yhteen kieliperheeseen kunnolla. Koulutustakin tarvitaan 😉

Opettajan kannalta selkeintä olisi puhua kirjasarjan hankkimisesta. Hankitaan kouluun yksi kirjasarja ja sillä mennään.

Taloudellisesti on koulussa myös järkevää panostaa yhteen tai kahteen välineeseen, jolloin niitä voidaan vuosien varrella hankkia aina lisää ja pikkuhiljaa välineitä on oikeasti riittävästi kaikille oppilaille.

Yksi tulevaisuuden ongelmakohdista on nivelvaihe 7.lk tultaessa. Jos ei ole mitään yhtenäistä linjaa alakouluissa, jotka syöttävät yläkoulua… niin opettajalla ei ole muuta vaihtoehtoa kuin aloittaa ohjelmoinnin opetus alusta. Silloin on tavallaan menetetty neljän vuoden työ, koska tausta on ollut liian rikkonaista. Mielestäni koulupiiri on pienin yksikkö, jonka sisällä pitää tehdä yhteistyötä ja ohjelmoinnin sisällä.

Kysymyksiä ja vastuksia

No niin…. Nyt on heitetty ilmaan perustavanlaatuisia kysymyksiä ja lukija odottaa tietenkin näihin kysymyksiin vastausta. Esittelen siis oman käsitykseni siitä millaisella kielellä ja välineistöllä pärjää peruskoulussa vuosiluokat 3.-9. todella erinomaisesti. Ensimmäiseksi esittelemme ohjelmointikielen ja lopuksi hieman välineistä.

Ohjelmointikieli C-pohjainen

Asia pitää ajatella kielen kautta. Kieliperhe pysyy ja kehittyy mutta rauta sekä välineet muuttuvat ja kehittyvät jatkuvasti. Itse kirjoittaja on esim. omassa työssään elänyt jo kolme mikrokontrollerisukupolvea lävitse. Väline, joka koululle hankitaan ei ole ikuinen mutta kieli jolla sitä ohjelmoidaan on aina sama.

Miksi C-pohjainen kieli? C-kielelle löytyy todella hienoja graafisia ohjelmointiympäristöjä, joilla ohjelmointi saadaan alkuun. Graafinen ohjelmointi on aina hieman hankalaa ja heti kun oppilas osoittaa kypsyyttä lähteä kokeilemaan ja kirjoittamaan tekstipohjaista koodia niin siihen pitää olla mahdollisuus. Eli tärkein peruste on laaja käyttö, ohjelmointiympäristö ja kieliperheeseen löytyvä laiteympäristö.

Miten opetus käytännössä menee?

Asian huomaa parhaiten neljän kuvan kautta. Ensin tehdään koodi graafisesti. Sen jälkeen käännetään graafinen koodi tekstipohjaiseksi ja tehdään siihen muutoksia, jonka jälkeen kokeillaan mikrokontrolleri Arduinon ohjelmointia jo tekstipohjaisesti. Kaiken takana on saada oppilas oppimaan tapa, millä koodi rakentuu. Oppilas oppii todella nopeasti mitä tarkoittaa yksinkertainen käsky tai ehto. Kaiken ydin on tavallaan se miten niistä yksinkertaisista palikoista punotaan toimiva ja ongelman ratkaiseva koodi.

Välineet ovat siis VEX IQ robotti ja RobotC-ohjelmointiympäristö. Mikrokontrollerina käytetään Arduino Unoa, jota voi ohjelmoida graafisesti S4A tai Arduinon omalla ohjelmalla tekstipohjaisesti. Kaikki ohjelmat ovat ilmaisia. Laitteet maksavat.

VEX IQ on valmis ohjelmoinnin opetuksen sarja, jota ohjelmoidaan C-kielisesti. VEX on maailmalla iso juttu. Arduino on mikrokontrolleri, jolla on maailmalla hirvittävän laaja käyttäjäkunta ja sen mukaisesti hyvin laaja yhteisö, jolta löytyy kaikenlaista hilpaketta ja ohjetta lisää. Esim. 3D-pritterit yleensä tehdään Arduinon MEGA-mikrokontrollerin ympärille.

Välinettä valittaessa on hyvä ajatella välineen käyttöikää ja tulevaisuutta. Ei kauheasti hymyilytä kun huomaa panostaneensa ympäristöön, joka vain kuoli pois kehityksen puutteen takia. Saa aloittaa kaiken taas alusta.

Miltä asia näyttää siis oppilaan kannalta? Katsotaan neljää kuvaa.

Innokas01VEX IQ ja RobotC

Kuvan koodissa painetaan nappia ja valo alkaa vilkkumaan. Vilkkuminen loppuu kun toista nappia painetaan kerran.

Kuvassa toista ikuisesti silmukka – repeatForever.  Ehtolauseita IF= jos (suorita silmukka jos jotain tapahtuu) ja Toista kunnes = repeatUntil (suorita silmukkaa kunnes jotain tapahtuu).

Näin se ohjelmointi alkaa kehittyä.

Innokas02

Tässä graafinen ohjelmakoodi on käännetty tekstipohjaiseksi.

Ensin katsotaan miltä koodi näyttää tekstinä ja millainen sen rakenne on. Tämän jälkeen tehdään koodiin muutoksia ja kokeiluja. Pikkuhiljaa opitaan luomaan koodia tekstinä.

Kommentointi on hirveän tärkeää. Sen kautta oppilas kirjoittaa auki mitä hänen mielestään koodissa tapahtuu ja opettajakin ymmärtää mitä koodissa pitäisi tapahtua. Kommentointi luo oppilaalle pään sisäistä puhetta.

Miten homma toimii Arduinon kanssa?

Innokas03

Tässä on S4A niminen ohjelma. Sillä esim. alakoululla saadaan käytettyä Arduino mikrokontrolleria.

Yksinkertaisia kokeiluja. Liitetään ledi… joka vilkkuu kun painan välilyöntiä.

S4A ohjelmassa pitää kaapelin olla jatkuvasti kiinni.

Arduinolle löytyy erilaisia ohjelmointiympäristöjä eri kieliin. Kertoo Arduinon suosiosta.

Innokas04Tässä sama koodi Arduinon omassa ohjelmointiympäristössä.

Tekstipohjainen ohjelmointi C-kielellä vaatii omasta mielestäni alkuun graafisen vaiheen.

Graafisesti opetallaan yksittäisiä käsitteitä/käskyjä. Kun käsitteitä hallitaan enemmän on helpompaa siirtyä tekstipohjaiseen ohjelmointiin jossa kaikki asiat ei putoa niskaan kertarysäyksellä.

Pyydän lukijaa myös huomaamaan ettei itse laitteista ole yhtäkään kuvaa esillä. Miksi? Koska laitteet muuttuvat ja kehittyvät. Kieli on se taito, joka kantaa kaikkein pisimmälle. Vasta oikea osaaminen ohjelmointikielessä mahdollistaa itse laitteiden todellisen potentiaalin hyödyntämisen. Tulevaisuudessa huomaat vain eräänä päivänä maahantuojan ilmoittavan, että nyt kyseisen laitteen valmistus loppunut ja uusi malli olisi tälläinen. Miksi näin käy? Koska esimerkiksi piirisarjan (INTEL, Microchip, Atmel jne…) suuri valmistaja vain aloittaa uuden piirisarjan tuotannon ja lopettaa vanhan valmistaminen. Siitä käynnistyy ketju, jossa kaikki valmistajat joutuvat päivittämään tuotteensa ja loppukäyttäjä –koulu- huomaa olevansa uusien välinehankintojen edessä. Väline ei ole ikuinen. Toki niitä vanhoja välineitäkin voi käyttää kunnes ovat kestonsa lopussa. Lisää niitä ei saa vain enää tilattua. Samalla kun vanhoja välineitä käytetään hankitaan uutta sukupolvea ja kokeillaan saada aikaiseksi sellainen hyvä siirtymä vanhasta uuteen.

Tässä lyhykäisyydessään oma käsitys siitä miten ohjelmointia pitäisi kouluissa lähteä viemään eteenpäin.

Kiteytettynä:

  1. Mieti ensin kokonaisuutta. Voisiko yhdellä välineellä/kielellä pärjätä koko peruskoulun lävitse? Oma käsitys on, että kyllä voi. Oma valinta olisi VEX IQ ja Arduino. Kieli C-pohjainen.
  2. Taloudelliset realiteetit. Panostamalla yhteen saadaan enemmän.
  3. Ajattele asiaa kielen kannalta. Laitteet muuttuvat ja kehittyvät mutta kieli on aina sama. Opettelemalla yhden kielen kunnolla teet oman työn helpommaksi.
  4. Kun omassa koulussa kaikki käyttävät samaa ”kirjasarjaa” saadaan sinne massa, joka osaa jo ratkoa ongelmia ja neuvoa/opastaa toisiakin.

Lopuksi vielä linkki videoon jolla VEX pörisee suorittamassa annettua tehtävää. Opettaja leikkii koodilla ja kokeilee erilaisia tehtäviä.

Kyllä se siitä lähtee kun kehittää pitkäjänteisesti.

Terveisiä kaikille Turusta
Harri Bläuer  – Raunistulan koulu Kastun yksikkö

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

w

Muodostetaan yhteyttä palveluun %s