sunnuntai 4. toukokuuta 2014

Ohjemointi - Opettajan ja oppilaan painajainen?

Opetussuunnitelman 2016 perusteluonnosten selaaminen aiheuttanee osalle maamme kokeneista ja työssään pärjäävistä matematiikan aineenopettajista epämukavia tunteita. Sana ohjelmointi aiheuttaa saman tuntemusaallokon suuressa osassa valtaväestöäkin. Tunneskaala alkaa pelästymisestä - ikään kuin huomaisi oman viisivuotiaan lapsensa seisovan 1,50m korkean aidan harjalla heiluttaen iloisesti käsiään. Pelästymistä seuraa sekoitus inhoa, pelkoa ja epätoivoa, joka useimmiten purkautuu nenän kautta yhtenä keskimittaisena hymähdyksenä. Opettaja löytää itsensä pienen muistikatkon päätteeksi tietokoneelta, perusteluonnosten kommentointisivu auki, mutta ei keksi miten asiasta huomauttaisi asiallisen tiukasti. Se, mitä tämän hetken jälkeen tapahtuu, on merkityksellistä tämän yksittäisen opettajan ja yksittäisen opetusryhmän, mutta myös koko koululaitoksen kannalta tulevaisuudessa.




OPS 2016 perusteluonnokset


Opetussuunnitelman 2016 perusteluonnokset ovat olleet kohta kuukauden verran yleisesti nähtävillä mm. osoitteessa http://www.oph.fi/ops2016. Paljon asioita pyritään muuttamaan, päivittämään ja syventämään verrattuna voimassaolevaan opetussuunnitelmaan, joka on ollut voimassa viimeistään vuodesta 2006. Joissain oppiaineissa vaatimustasoja selvästi tiukennetaan ja ohjataan tiettyihin suuntiin. Joissain puolestaan pyritään tarjoamaan opetukselle mahdollisuuksia syventyä asiakokonaisuuksiin aiempaa paremmin. Lisäksi perusteluonnoksissa on luetteloitu mm. arvosanaan 8 oppilaalta vaadittavat tiedolliset ja taidolliset kriteerit, mikä varmasti valtakunnallisella tasolla yhtenäistää koulujen arvostelulinjoja.

Ainakin matemaattisten aineiden osalta esiin nousee vahvasti TVT ja matematiikassa päätään nostaa alkeisohjelmointi vuosiluokilta 3-6 lähtien. Yhtenä alakoulun (3-6) opetuksen tavoitteena (T26) on "innostaa oppilasta ohjelmoimaan yksinkertaisia toimintaohjeita graafisesti tietokoneella". Yläkoulussa alkeisohjelmointia pyritään viemään eteenpäin. Ohjelmoinnin ja algoritmisen ajattelun perusajatuksia ja niiden soveltamista kuvaa tavoite (T45) harjoittaa oppilaan "algoritmista ajattelua ja taitoa soveltaa ohjelmoinnin peruskäsitteitä".


Mikä ohjelmoinnissa on hyödyllistä ja kehittävää?


Elämme tietotekniikan keskellä. Jääkaappi kertoo oman lämpötilansa ja ilmoittaa minulle heleällä piipityksellä, jos ovi on unohtunut auki. Älypuhelin kertoo minulle muutamalla pyyhkäisyllä mitä ikinä tietoja tarvitsenkin. Eräs autoni merkkivaloista kertoo polttimon olevan epäkuntoinen ja samaan hengenvetoon kehottaa lisäämään tuulilasin pesunestettä ja käymään määräaikaishuollossa. Kaikkien noiden arkipäiväisten sovellusten takana on fyysisten komponenttien lisäksi satoja, tuhansia ja miljoonia rivejä ohjelmakoodia. On siis vähintäänkin perusteltua tietää ainakin jotain ohjelmoinnista - se on osa nyky-yhteiskunnan yleistietoa.

Ohjelmoinnin harjoitteleminen itsessään kehittää loogista ajattelukykyä sekä auttaa jäsentämään ongelmia pienempiin osiin. Voidaan siis sanoa, että ohjelmointi antaa parhaassa tapauksessa uusia keinoja ja tekniikoita ajatteluun, oppimiseen sekä ongelmanratkaisuun. Mutta eikös ohjelmointi ole pelkästään rillipäisten nörttien hommia? Ei kai kukaan tervejärkinen opettele tulkitsemaan merkityksetöntä ja sekavaa merkkijonoviidakkoa huvikseen?



Ohjelmointikielet ovat ihan oikeita kieliä, joilla on tarkka kielioppi, oma sanasto ja tietty sanajärjestys. Luonnollisista kielistä ohjelmointikielet yleensä eroavat siinä, että mukaan on otettu muutamia erikoismerkkejä, joilla on erilaisia ominaisuuksia toteutuksen ja lopputuloksen kannalta. Näin ollen lauserakenteet saattavat olla hyvin poikkeavan näköisiä totuttuun kirjoitukseen verrattuna. Ohjelmointikielet sisältävät usein myös paljon englanninkielisiä sanoja ja lyhenteitä, jotta mahdollisimman monella olisi mahdollisuus koodata globaalimmalla kielellä ja vieläpä ymmärtää sitä.

Jotta ohjelmakoodi toimisi oikein, on erittäin tärkeää, että kaikki sanat ovat pilkulleen ja merkilleen oikein. Vaikka tietokoneet kohtuullisen älykkäitä jo ovatkin, eivät ne ymmärrä esimerkiksi komentoa "pese pykit", vaikka itse yhden vokaalin puuttumisen valitettavasti pystyn päässäni korjaamaan oikeaksi komennoksi ja joudun tämän nojalla jopa toteuttamaan sen. Jotta ala- tai yläkoululainen oppilas voisi omaksua ohjelmoinnin alkeistason käsitteitä ja perusteita, on lähestyminen aiheeseen tehtävä intuitiivisella ja visuaalisesti havainnollistavalla tasolla. Tähän tarkoitukseen graafiset ohjelmointiympäristöt ovat hyviä lähtökohtia.

Ohjelmoinnin aloittaminen - Koodaustunti ja Light-Bot


Esiteltäköön ensimmäisenä graafinen ohjelmointiympäristö, nimeltä koodaustunti (alkup. The Hour Of Code). Alunperin Yhdysvalloista lähtöisin olevan ympäristön tehtävä on mahdollistaa kaiken ikäisille ohjelmoinnin perusajatuksen ja muutamien komentojen oppiminen yhden tunnin aikana. Ohjelmointiharrastusta on toki mahdollisuus jatkaa vielä yhden tunnin jälkeenkin palvelun avustuksella. Opettajaltakaan ei tämän suorittamiseen vaadita ohjelmointitietoja tai -taitoja, vaan sivustolta löytyy ongelmakohtaiset video-ohjeet niistä selviytymiseen (englanniksi). Myös alakoululaiset selviytyvät koodaustunnista opettajan pienellä englanninkielen avustuksella. Itse ohjelmointi ja ohjelmointiin käytettävät välineet ovat suomeksi, mutta videomateriaali on englanninkielistä.


Lähtökohta on monelle tuttu ja luonnollinen. Punainen vihainen lintu pitää johdattaa ennalta annettujen liikkumisohjeiden mukaan vihreän porsaan luo. Tietysti. Yksi komento liikuttaa luontokappaletta joko yhden ruudun eteenpäin tai kääntää sitä paikallaan 90 astetta joko oikealle tai vasemmalle. Lintua ohjataan ohjepalikoiden avulla, joita ladotaan suoritusalueelle oikeaan järjestykseen. Reitin varrella voi olla esteitä, joita linnun pitää väistellä. Kenttien haastavuus luonnollisesti kasvaa sitä mukaa mitä useamman haasteen ohjelmoija selvittää.



Pidemmällä pelissä käsittelyyn otetaan ehto- ja toistorakenteita edelleenkin palikoiden muodossa ja päähenkilö vaihtuu auringonkukkaa himoitsevaan zombieen. Kaikki 20 kenttää suoritettuaan voi todeta, että ohjelmoinnin alkeet on ainakin ajattelun ja ongelmanratkaisun tasolla saavutettu, minkä merkiksi sähköpostiinsa voi tilata omalla nimellään varustetun diplomin. Kaiken kaikkiaan aktivoiva ja motivoiva peli sekä ala- että yläkouluun. Itse olen teettänyt koodaustunnin neljäsluokkalaisista lähtien yhdeksäsluokkalaisiin asti ja kaikille löytyy pelistä sopivanlainen haaste. Voin suositella.

Toinen graafinen ohjemointiympäristö Light-Bot tarjoaa vastaavanlaisen pelin muodossa ohjelmointihaasteita. Päähenkilö on pieni robotti, jonka pään päällä killuu pieni lamppu. Ideana on sytyttää lamppu jokaisessa sinisessä ruudussa, joita kentässä löytyy. Light-Bot-hahmo liikku edellä mainitun AngryBirdin tavoin eteen tai kääntyy paikallaan, mutta lisäksi se voidaan ohjelmoida hyppäämään eteenpäin. Näin hahmo saadaan johdatettua myös kolmannessa ulottuvuudessa haasteiden läpi. 

Heti aluksi valittavana on (ilmaisversiossa) kolme eri vaikeustasoa: Peruskomennot, aliohjelman (proseduurin) käyttäminen ja aliohjelman itseensä (rekursiivinen) viittaus. Jokaisessa haasteessa ohjeistetaan käyttäjää erittäin hyvin englanniksi, joten pienille oppilaille asiat pitänee käydä vaihe vaiheelta suomentaen läpi. Light-Bot vie ohjelmointiajattelua hieman koodaustunnista eteenpäin kolmannen ulottuvuuden lisäksi mahdollistamalla aliohjelmat, joihin voi viitata käynnistyslohkosta (main). Tämä tekee ohjelmoinnista (ja ajattelusta) monipuolisempaa ja konkretisoi isomman ongelman paloittelemisen pienempiin osiin. Kenttä kentältä ohjelmoijan käyttöön esitellään uusia komentoja, joiden avulla vaikeistakin haasteista selviytyy kävelemällä, hyppimällä, kääntymällä ja niin edelleen.



Vapaus alustan valinnasta tekee molemmista ohjelmointiympäristöistä - koodaustunnista ja Light-Botista hyvin käyttökelpoisen. Toisin sanoen, ne toimivat Windows- , Mac- tai Linux-koneilla, tableteilla (iOS, Android, W8) tai vaikkapa älypuhelimilla. Molemmat ympäristöt ovat myös hyvin intuitiivisiä, joten myös pienet oppilaat hahmottavat kohtuullisen helposti pelien idean ja osaavat rakentaa toimintaohjeita hahmoille. Lisäksi tehtävissä riittää haastetta myös isommille oppilaille tai vaikkapa matemaattisten aineiden opettajalle, joka ei ihan vielä uskalla ottaa oppitunnilla kyseisiä sovelmia esille.



Ei kommentteja:

Lähetä kommentti