04.06.2015 Views

1jZ7iKR

1jZ7iKR

1jZ7iKR

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Koodi2016 | Miten ohjelmointia opetetaan?<br />

Koodi2016 | Miten ohjelmointia opetetaan?<br />

parhaan lihakeittonsa ainekset, niiden määrät ja<br />

suhteet sekä ohjeet ainesten valmistamiseksi keitoksi<br />

asti, kyseessä on paitsi keiton resepti myös<br />

sen valmistamiseen liittyvän algoritmin kuvaus.<br />

Kokin kirjaamaa algoritmia tarkalleen toistamalla<br />

kuka vain voi kerta toisensa jälkeen tehdä<br />

yhtä hyvää lihakeittoa kuin huippukokki.<br />

Ohjelmoinnissa ohjelmoija on kokki ja tietokone<br />

on apuri. Se tekee tarkalleen, mitä reseptissä<br />

eli algoritmissa lukee. Ohjeet riittää kirjoittaa<br />

kerran, jonka jälkeen kone toteuttaa ne joka kerta<br />

napin painalluksella.<br />

Ratkaisun yleistäminen<br />

ja automatisointi<br />

Esimerkiksi matematiikassa pyritään ongelmia<br />

ratkaistaessa yleiseen muotoon. Lukiolainen saa<br />

toisen asteen yhtälön 2x 2 - 3x + 1 = 0 ratkaisut selville<br />

suoraan toisen asteen yhtälön ax 2 + bx + c = 0<br />

yleisestä ratkaisukaavasta (ei esitetty tässä),<br />

johon voimme sijoittaa luvut 2, -3 ja 1 lukujen a,<br />

b ja c tilalle.<br />

Ohjelmoinnissa ongelmille haetaan hyvin<br />

usein yleistettyjä ratkaisuja. Kun ohjelman halutaan<br />

piirtävän näytölle suorakaiteen, olisi typerää<br />

kirjoittaa ohjelma siten, että se osaa tehdä vain<br />

suorakaiteita, joiden sivujen pituudet ovat aina 3<br />

ja 5.<br />

Sen sijaan ohjelma on järkevää kirjoittaa siten,<br />

että se osaa piirtää minkä tahansa kokoisen<br />

suorakaiteen riippuen siitä, mitkä mitat käyttäjä<br />

ohjelmaan syöttää.<br />

Parasta ohjelmoinnissa on, että ratkaisuja voi<br />

automatisoida sälyttämällä vastuun niistä koneen<br />

harteille.<br />

Kun ihminen ratkaiseen toisen asteen yhtälöä,<br />

hän joutuu sijoittamaan luvut kaavaan yhä uudestaan.<br />

Kun koneelle opettaa kaavan kerran, se<br />

antaa ajasta ikuisuuteen oikeat yhtälön ratkaisut<br />

nanosekunnissa riippumatta siitä, mitkä luvut<br />

a:n, b:n ja c:n tilalle laittaa.<br />

Kun opettaja lähtee yksin tai luokan oppilaiden<br />

kanssa perehtymään tässä osiossa jäljempänä<br />

esiteltyihin leikkeihin tai harjoituksiin, hän huomaa<br />

pian, että ne kaikki opettavat tai harjoittavat<br />

yhtä tai useampia yllä esitetyistä taidoista:<br />

ongelman pilkkomista, kaavojen hahmottamista,<br />

algoritmien luomista ja ratkaisujen esittämistä<br />

yleistettävässä muodossa.<br />

Ohjelmoinnin opettaminen onkin pohjimmiltaan<br />

näiden taitojen opettamista.<br />

Toki: ohjeet annetaan tietokoneelle ohjelmointikielellä,<br />

jonka säännöt ja merkintätavat on myös<br />

tunnettava. Mutta mitä pidempään ihminen<br />

ohjelmoi, sitä pienemmäksi muuttuu syntaksin<br />

muistamisen rooli ja sitä enemmän korostuu yllä<br />

kuvattujen taitojen merkitys.<br />

”Jos ymmärrät mitä teet,<br />

et opi mitään.”<br />

– Abraham Lincoln<br />

78| |79

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!