Tietotekniikan toisen vuoden opiskelija Tuomas kertoo olio-ohjelmoinnin kurssista:
”Kun ensimmäisen eli fuksivuoden peruskurssit ovat taputeltu, ja pythonin sekä c-ohjelmoinnin perusteet hallussa, siirrytään tietotekniikan ohjelmassa opettelemaan olio-pohjaista ohjelmointia.
Kurssi on tietotekniikan opiskelijoille pakollinen, mutta se on myös niiden sivuaineopiskelijoiden suosiossa, jotka haluavat syventyä sivuaineessaan koodaamiseen käytännössä.
Kurssilla on luentoja, viikoittaisia harjoituksia, tentti sekä suurempi harjoitustyö, jossa pääsimme koodaamaan oman pakettiseurantajärjestelmän googlen karttapalveluita hyödyntämällä. Tehtävät kurssilla etenevät perusasioista suurempiin kokonaisuuksiin ja olio-ohjelmoinnin ominaisuuksien soveltamiseen.
Olio-ohjelmointi (object-oriented programming, OOP) on yleinen tapa mallintaa ja toteuttaa ohjelmistokokonaisuuksia, joita on helpompi ymmärtää, kuin perinteisellä proseduraalisella koodaamisella tehtyjä ohjelmistoja.
Jo opitut loogiset mallit olivat hyvä ja edelleen pätevä pohja osaamiselle, mutta suurempien kokonaisuuksien suunnittelu ja toteutus helpottuivat kurssin edetessä uusien oppien myötä merkittävästi. Olio-pohjainen ohjelmisto muodostaa ikään kuin simulaation ympäröivästä todellisuudesta. Sen perusajatus on kuvata koodin rakenteille todellista maailmaa.
Otetaan tähän pakettiseurantajärjestelmää hieman yksinkertaisempi esimerkki: koodilla luodaan olioita, esimerkiksi vaikkapa pullonpalautusautomaatti.
Perinteisessä proseduraalisessa koodissa pitäisi erotella eri tölkki- ja pullotyypit koodaamalla niille arvot, ja käsitellä näitä vaihtoehtoja jonkinlaisessa while- tai if-rakenteessa. Tämä on maallikolle hieman vaikeaselkoinen ja teknistä osaamista vaativa kokonaisuus, eikä koodia lukemalla välttämättä suoraan pysty ymmärtämään, mitä siinä tapahtuu.
Pullonpalautusautomaatin ja pullon toteutus pseudokoodilla olio-ohjelmoinnin mallilla
Olio-pohjainen koodi on aivan erilaista. Kuvassa on lyhyt esimerkki siitä, miltä olio-pohjainen koodi näyttää. Ensimmäinen kokonaisuus kertoo, mikä palautettava asia on eli pullo, ja mikä ominaisuus yleisellä palautettavalla asialla on eli pantti.
Jälkimmäisessä kokonaisuudessa esitetään automaatin perustoiminnot: pullon vastaanotto sekä kuitin tulostus. Pullon vastaanottamisen yhteydessä kuitin arvoon lisätään syötetyn pullo-olion pantti, ja tulostettavaan kuittiin määritetään tekstinpätkä “Kuitin arvo on xx.xx”. Kun koodia lukee, sen toiminta on kuvattu lähes puhekielisesti.
Olen huomannut kurssin tärkeyden myöhemmin myös työelämässä. Uuden, aiemmin tuntemattoman ohjelmointikielen oppiminen oli nopeaa, sillä ajatusmalli ja perusperiaatteet ovat lukuisissa ohjelmointikielissä samat.
Kurssilla käytetyn javan opit kääntyivät helposti ceesharppiin, vb.net:iin tai vaikkapa javascriptin lukuisiin kirjastoihin. Tämä kurssi, etenkin yhdessä tietokantakurssien ja www-ohjelmoinnin kanssa ovatkin monille opiskelijoillemme avaimet ensimmäiseen oman alan työpaikkaan.”