free webpage counters
ETUSIVU materiaalit

01 Ohjelmoinnista yleisesti


Kun haluamme, että kone tekee jotain meidän puolesta, on käytettävä apuna ohjelmointia. Kone ei ymmärrä tavallista puhuttua kieltä vaan sille on annettava ohjeet koodattuina. Siksi joissakin yhteyksissä puhutaan koodauksesta. Myös ohjelmoijista käytettään toisinaan nimitystä koodari, jolla viitataan heidän tekemään koodaustyöhön (kirjoittavat koodia, joista muodostuu ohjelma).

Männikkö (2001) kertoo, että ohjelmointi on yksinkertaisimmillaan toimintaohjeiden antamista ennalta määrätyn toimenpiteen suorittamista varten. Ohjelmointia esiintyy meidän jokaisen arkielämässä lähes päivittäin. Ohjelmoinniksi voidaan laskea esim. se, että annamme jollekulle puhelimessa ajo-ohjeet. Myös sellaiset toiminnot kuten mikroaaltouunin tai videon ajastaminen ovat tavallaan ohjelmointia.

Nykyään tietokoneen ohjelmointi on aiempaa helpompaa, koska on olemassa useita apuvälineitä. Lisäksi ohjelmoinnista on olemassa lukuisia kirjoja, eikä internetistä saatua ohjelmointitietoutta ole syytä väheksyä. Lisäksi ohjelmointikielet ovat kehittyneet inhimillisempään suuntaan, ne ovat siis helpommin tulkittavissa kuin ennen. Esim. ihan alussa ohjeet koneelle annettiin binäärimuodossa. Silloin oli käytettävä ainoastaan ykkösiä ja nollia. Toinen sukupolvi ohjelmointikielissä toi tullessaan assemby-ohjelmoinnin. Nyt oli vaihtoehtona muutakin kuin ykköset ja nollat, mutta koodi piti kääntää konekielelle (Assembly-kääntäjää). Myöhemmin tulivat sitten korkeamman tason kielet kuten FORTRA:n ja Cobol. (Nordqvist 2002.)




Tehtävä 1. Mitä ovat binääriluvut? Paljonko luvut 8, 9 ja 10 ovat binäärlikuna?
Käytä nettiä apuna tiedonhaussa.

Tehtävä 2. Ratkaise binäärivappulounaan arvoitus.

Ohjelmointiprosessi

Wirzenius (2000) määrittelee ohjelmointiprosessin koostuvaksi seuraavista vaiheista.

"Vaatimusmäärittely: selvitetään mitä ohjelman pitäisi tehdä.
Suunnittelu: päätetään miten ohjelma pitäisi tehdä.
Koodaus: tehdään ohjelma.
Testaus: tarkistetaan, että ohjelma toimii ja korjataan virheet." (Wirzenius 2000.)

Ohjelmointi vaatii keskittymistä

Ohjelmoinnille on tunnusmaista, että se vaatii syventymistä. Sitä työtä ei voi tehdä rutiininomaisesti. Suunnitelmien ja yksityiskohtien viidakko vaatii jopa syvää keskittymistä, jotta sitä voisi hallita. Ohjelmoijien keskuudessa tätä syvän keskittymisen tilaa kutsutaan mm. nimellä "hack mode". Psykologian puolella on vastaavasti olemassa käsite "flow". Kun ihminen saavuttaa tällaisen tilan, on hän täysin keskittynyt työhönsä ja unohtaa kaiken muun. Kyseessä on lähes mystinen tila, jossa ihminen kokee suurta mielihyvää. (Wirzelius 2000.)

Sana "Flow" on englantia ja tarkoittaa virtausta. Ihmisen saavuttaessa tällaisen virtaus tilan, onnistuu häneltä kaikki. Esimerkiksi jalkapallossa pallo menee tolpan kautta maaliin eikä tolpan kautta ohi. Silloin urheilijalle kaikki on helppoa ja vaivatonta. Tällaista virtaus-tilaa ei saavuteta helpolla, vaan sen eteen on tehtävä kovasti töitä. Tunnetuin virtaus-tilaa tutkinut lienee Mihaly Csikszentmihalyi.

Wirzelius (2000) käyttää termin virtaus sijaan käsitettä vuo. Hän kuvaa ohjelmoijaa ja virtaus-tilaa seuraavasti: "ohjelmointi onnistuu hyvin vain vuossa. Ilman vuota ohjelmointi on hidasta, koska yksityiskohtia joutuu koko ajan tarkistamaan muualta ja virheitä tapahtuu paljon, koska jokin yksityiskohta jää helposti tarkistamatta. Kirjoittajan oma tehokkuusero vuon ja vuottoman työskentelyn välillä on vähintään tuhatkertainen: vuottomana päivänä esimerkiksi koodia syntyy joitakin rivejä, ehkä joitakin kymmeniä rivejä parhaimmillaan. Vuossa vietetyn päivän aikana koodirivejä voi syntyä useampia tuhansia. [...] viisas työnantaja huolehtii siitä, että ohjelmoijilla on mahdollisuus olla vuossa mahdollisimman suuren osan ajasta, esimerkiksi vähentämällä turhia keskeytyksiä, koska vuohon pääseminen kestää ainakin varttitunnin, joten tiheät keskeytykset estävät sen helposti. "