1jZ7iKR
1jZ7iKR
1jZ7iKR
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