Tietojenkäsittelytieteen opiskelu ja matematiikan tarve

Tietojenkäsittelytieteilijöillä on tapana mainostaa fukseille (eli ensimmäisen vuoden opiskelijoille) tarkoitettua IRC-kanavaa hyväksymiskirjeiden mukana. Näin ollen kyseisen aineen fukseihin pääsee tutustumaan jo alkukesästä. Samoin uusilta fukseilta on jo kuultu ensimmäiset “eikai matematiikkaa tarvitse opiskella paljon” -kysymykset, joten lienee taas ajakohtaista puhua matematiikan roolista tietojenkäsittelytieteessä.

Aiheesta on tietysti sanottu muuallakin paljon. Yleisimmin viitatut tekstit aiheesta ainakin täällä Kumpulassa ovat varmaan Jouni Sirenin pätkä aiheesta ja Antti Valmarin Matematiikan tarve ohjelmistotyössä. Puhun tässä osaltaan samoista asioista kuin hekin. Tätä lukiessa kannattaa myös huomata, että olen ensisijaisesti matemaatikko, en tietojenkäsittelytieteilijä, vaikka kokemusta molemmilta aloilta onkin.

Aloittavalle tietojenkäsittelytieteilijälle on ensinnäkin hyödyllistä, jos lukiomatematiikasta on jäänyt jotain käteen. Perustaidot lukujen pyörittelystä ovat tärkeitä, sillä koodatessa joutuu hyvin usein tekemisiin yksikertaisten laskutoimitusten kanssa. Samoin kaavojen lukemisen taidon on suotavaa olla hallussa, jottei tarvitse pelästyä siinä vaiheessa kun niitä tulee vastaan. Lukiossa siis pitäisi olla oppinut numeroidenlukutaitoa ja peruslaskemista. Valitettavasti välillä opiskelijoilla tuntuu olevan lukion jäljiltä perusnegatiivinen asenne matematiikkaa kohtaan, ja koko ainetta halutaan vältellä mahdollisimman paljon – mikä sitten kostautuu siinä vaiheessa, kun matematiikkaa välttämättä tarvitsee.

Tietojenkäsittelytieteestä ja matematiikasta puhuttaessa on tietysti huomattava, että tietojenkäsittelytieteessä tarvittava matematiikka on pääosin formaalia yliopistomatematiikkaa, joka on poikkeaa melko paljon lukiossa opetettavasta matematiikasta – mistä olenkin puhunut aikaisemmin laajemmalti. Tämä tulee yleensä yllätyksenä aloittaville opiskelijoille. Yliopistolla matematiikassa on korostuneesti tärkeää asioiden ymmärtäminen, eikä laskukaavojen ulkoaopettelulla opi mitään tai edes läpäise kursseja.

Matematiikan rooli tietojenkäsittelytieteessä onkin toimia eksaktina kielenä ja työkaluna. Sen avulla voi täsmällisesti ja lyhyesti ilmaista monimutkaisia asioita ja käsitteitä. Toisaalta se tarjoaa abstraktioita ja tehokkaita tapoja käsitellä erinäisiä ilmiöitä. Voimakkuutensa vuoksi matematiikka on keskeisessä roolissa monella tietojenkäsittelytieteen osa-alueella, eikä niiden ymmärtäminen ilman riittävää matemaattista pohjatietoutta ole mahdollista.

Esimerkkejä matematiikan käytöstä on helppo keksiä. Klassisena esimerkkinä kryptografia perustuu vahvasti matemaattiseen teoriaan, erityisesti lukuteoriaan ja elliptisten käyrien teoriaan. Ohjelmointikielten kääntäjien yhteydessä on hyvä tuntea formaalien kielien teoriaa. Koneoppiminen ja laskennallinen data-analyysi taas perustuvat pitkälti todennäköisyyslaskentaan. Äärimmäisenä esimerkkinä toimii laskettavuuden teoria, joka toimii tietojenkäsittelytieteen teoreettisena pohjana ja on käytännössä puhdasta matematiikkaa. Joillain harvoilla osa-alueilla, kuten ohjelmistotuotannossa ja käyttöliittymäsuunnittelussa, formaalia matematiikkaa ei tosiaan varsinaisesti tarvitse, mutta nämä muodostavat vain pienen osan tietojenkäsittelytieteestä.

Loppujen lopuksi matematiikka ja tietojenkäsittelytiede ovat eksakteina tieteinä läheistä sukua toisilleen (ei ole sattumaa, että molemmat laitokset sijaitsevat Kumpulassa Exactum-nimisessä rakennuksessa), ja toisen opiskelusta on hyötyä toisessa. Kuten aikaisemmin viitatut artikkelitkin toteavat, kaikista matematiikan laitoksen kursseista ei aina ole suoraa hyötyä käytännön tietojenkäsittelytieteessä, mutta eksaktin ajattelumallin oppiminen on korvaamattoman arvokasta. Matematiikan opiskelu tulee siis ottaa tosissaan heti alusta lähtien. Suosittelen myös hylkäämään lukiosta perityt ennakkoluulot ja lähestymään yliopistomatematiikkaa avoimin mielin.

(Syksyn lähestyessä palaan varmaan tähän aiheeseen uudelleen, varsinkin kun olen näillä näkymin pitämässä laskuharjoituksia erityisesti tietojenkäsittelytieteen fuksien suosimilla matematiikan kursseilla.)

Post a Comment

You must be logged in to post a comment.