Koetan perustella näkökantaani, ja
se on oikeastaan aika helppoa. Ohjelmointi on tietysti vain teknistä
suunnittelua, mutta se perustuu aivan erityiseen ajattelutapaan. Eräs
koodauksen määrittely on, että siinä laaditaan algoritmeja
(toisiaan seuraavista vaiheista koostuvia toimintakuvauksia). Se ei
kuitenkaan ole koko totuus. Kaikki ohjelmoinnilla tuotetut ratkaisut
eivät nimittäin ole kovin "algoritmisia". Koodaus on selvästi sukus matematiikalle, mutta nykyinen matematiikan opetus ei
perehdytä siihen ajatteluun, jota koodauksessa tarvitaan. Koodaus ei
nimittäin ole itsenäinen matematiikan haara. Matematiikka tarjoaa
kyllä melkoisen joukon kiinnostavia formalismeja: ne ovat
kalkyylejä, joita voidaan hyödyntää ohjelmointikielissä ja tietokonalaitteissa. Mutta se on jo kokonaan "toinen juttu".
Koodaus poikkeaa matematiikasta muun
muassa siksi, että siinä pitää kiinnittää huomio kahteen
asiaan: pitää keskittyä siihen ongelmaan, joka koodauksella
yritetään ratkaista, ja samalla pitää ohjata sen järjestelmän
(tietokoneen ja sen ohjelmien) toimintaa, jonka avulla laadittu
ohjelma sitten suoritetaan. Yksinkertainen esimerkki on laskea
matemaattisen lausekkeen arvo, jossa on erilaisia laskutoimituksia,
vaikkapa yhteen- ja vähennyslaskua, kerto- ja jakolaskua ja
potensseja. Jos koodaajalla on käytössään kehittynyt
ohjelmointikieli, riittää, että hän vain kirjoittaa laskettavan
kaavan. Koko ohjelma on vain muutama rivi koodia.
Mutta jos käytössä
olisi vain symbolinen konekieli eli assembler, koodaajan pitäisi
huolehtia lukujen ja laskennan välitulosten talletuksista muistiin, laskutoimituksien kokoamisesta yksinkertaisista konekäskyistä,
ja koko laskentaprosessin vaiheittaisesta kontrolloimisesta. Koko
ohjelma on varovaisestikin arvioiden useita satoja koodirivejä,
paperille painettuna kymmeniä sivuja ohjelmalistausta. Kun
kehittyneellä ohjelmointikielellä tehtävän ratkaisu on koodattu
alle minuutissa, assembler- kielellä koodaukseen voi kulua useita
päiviä. Siis, toisin kun abstraktissa matematiikassa, koodauksessa
käytössä oleva tietokone ja sen ohjelmointikielet vaikuttavat
voimakkaasti tehtävän suoritukseen.
Toistan vielä, että
koodaamisen opettaminen pikku koululaisille on ehdottomasti hyvä
idea. Tietenkään koulussa saatu koodausopetus ei ole välittömästi
hyödyllistä työelämässä, ehtiihän tekniikka muuttua aika
paljon ennen kuin oppilaat menevät töihin, eikä koulussa päästä
alkeita pidemmälle. Mutta kysymys onkin muusta: yleissivistyksestä
ja hyödyllisen ajattelutavan omaksumisesta. Kaikkien on syytä ymmärtää, millaista ohjelmointi on.
Asiantuntijat osannevat valita opetuksessa
käytettävät välineet: ohjelmointikielen ja laskentaympäristön. Kielen tulee olla riittävän yleinen, ja
ympäristön tulee olla sellainen, että koodaamalla voidaan saada
aikaan konkreettisia tuloksia. Tehtävät voivat olla mitä vain:
pelejä, robotin ohjaamista, musiikkia, grafiikkaa, animaatiota. Tämä
houkuttelee varmaan oppilaita. Koodaaminen kehittää oppilaiden
keskittymiskykyä ja lisää motivaatiota. Ja mikä parasta, sen voi
oppia, se ei ole ylivoimaista. Sekin on tärkeä oppi: "minä
pystyn tähän!".