Millaista matematiikkaa opinnoissa tarvitaan
Tässä käsitellään, millaisia matematiikan taitoja tietojenkäsittelytieteen kursseilla tarvitsee. Vaikka ehdottomia esitietovaatimuksia ei juuri ole, matematiikan opinnoista on hyötyä jo melkein alusta asti.
Huom: Tieto on lukuvuonna 2011-2012 ainakin osittain vanhentunutta. Sivu on jätetty historialliseksi referenssiksi.
Perus- ja aineopintotason kurssit
Tässä on lueteltu perus- ja aineopintojen kursseja, joilla lukiotasoa laajemmat matematiikan tiedot ovat hyödyksi. Pakollisen kurssin puuttuminen tarkoittaa, että lukiomatematiikka riittää kurssilla täysin. Valinnaisista on lueteltu vain ne, joilla matematiikkaa tarvitaan ja joille olen itse osallistunut. Harjoitustyökurssien (Ohjelmoinnin ja Tietorakenteiden harjoitustyöt, Tietokantasovellus, Ohjelmistotuotantoprojekti ja Tieteellisen kirjoittamisen kurssi) matemaattinen vaativuus riippuu suuresti valitusta aiheesta.
Algoritmisen tietojenkäsittelyn perusteet
Selkeimmät suositukset ovat logiikan ja joukko-opin alkeet sekä relaatiot. Nämä voi hankkia esimerkiksi kurssilta Diskreetti matematiikka I, Algebra I tai Logiikka I. Kurssilla ehditään vain raaputtaa käsiteltävien aiheiden pintaa, joten matematiikan tunteminen ei ole välttämätöntä, vaan lähinnä nopeuttaa asioiden ymmärtämistä.
Laskennan mallit
Joukko-opin ja logiikan perusteista sekä relaatioista on hyötyä. Kurssin lähestymistapa on varsin matemaattinen — joissain toisissa yliopistoissa vastaava automaattiteorian ja formaalien kielten peruskurssi järjestetään matematiikan laitoksella. Parhaiten esitietosuosituksiin vastaa kurssi Johdatus diskreettiin matematiikkaan (syksystä 2008 alkaen pakollinen esitietovaatimus), mutta myös Algebra I ja Logiikka I ajavat saman asian. Olennaisinta on matemaattisen ajattelun omaksuminen, joten mikä tahansa tätä ennen suoritettu matematiikan kurssi auttaa.
Rinnakkaisohjelmointi
Logiikan tuntemuksesta on apua, vaikka Logiikka I ei olekaan välttämätön. Monet asiat määritellään formaalia logiikkaa käyttäen. Lisäksi yksinkertaisetkin rinnakkaisjärjestelmät käyttäytyvät usein erittäin monimutkaisesti ja vääntävät aivot solmuun, jos ei ole mitään logiikan kaltaista kiintopistettä, johon tukeutua.
Tietokannan hallinta, Tietokantojen perusteet
Kummallakin kurssilla matematiikan taitoja tarvitaan lähinnä relaatioalgebran ymmärtämiseen. Tarpeet ovat samat kuin Ohjelmoinnin ja laskennan perusmalleissakin: joukko-oppia, logiikkaa ja relaatioita. Myös kurssisuositukset ovat samat: Diskreetti matematiikka I, Algebra I tai Logiikka I. Toisaalta tietokantakurssit eivät ole yhtä matemaattisia kuin Ohjelmoinnin ja laskennan perusmallit. Tarvittavan matematiikan oppii myös kurssien aikana, jolloin kurssit ovat luonnollisesti työläämpiä.
Tietorakenteet
Algoritmianalyysissa tarvitaan lukujonojen raja-arvoja ja sarjojen summia. Koulutiedotkin riittävät, mutta kertaus esimerkiksi kurssilla Analyysin peruskurssi tai Analyysi I ja II ei ole ainakaan pahitteeksi. Vähemmän yllättäen myös joukko-oppi, logiikka ja relaatiot ovat avuksi tietorakenteiden ja algoritmien ymmärtämisessä, kurssisuosituksena jälleen kerran Johdatus diskreettiin matematiikkaan, Algebra I tai Logiikka I. Syksyllä luennoitava kurssi on kevään kurssia teoreettisempi, joten suositukset ovat silloin voimakkaampia kuin Wiklan "Java II:ssa".
Syventävien opintojen kurssit
Syventävien opintojen kurssien lista jää väkisinkin vajaaksi. Kursseja on paljon ja monet niistä luennoidaan vain harvoin. Monien kurssien kohdeyleisö on muutenkin niin rajoittunut, ettei kurssille tule vuosien tauon jälkeenkään kuin parikymmentä opiskelijaa. Niinpä olen katsonut parhaimmaksi keskittyä vain sellaisiin joka vuosi luennoitaviin kursseihin, joiden sisällöstä minulla on kunnollinen käsitys.
Algoritmien oikeellisuus ja johtaminen
Logiikka I. Vaikka kurssilla käsitelläänkin kaikki tarpeellinen logiikka, on invarianttien löytäminen ja algoritmien todistaminen oikeellisiksi huomattavasti helpompaa, jos logiikkaa ei tarvitse opetella heti alussa tiivissä muodossa. Myös Algebra I:n käymisestä on hyötyä, sillä yleistetyt kvanttorit rinnastuvat kätevästi monoideihin.
Algoritmien suunnittelu ja analyysi
Algoritmianalyysissa hyödynnetään Analyysi I:n ja II:n oppeja. Myös Analyysin peruskurssi riittänee. Vaativammissa analyyseissa myös kurssin Todennäköisyyslaskenta I opeista on apua. Joidenkin algoritmien ymmärtämistä helpottaa, jos vektorit ja matriisit ovat jo tuttuja esimerkiksi Lineaarialgebra I:stä. Joukko-opilta, logiikalta ja relaatioilta ei välty täälläkään, minkä lisäksi myös verkkoja käsitellään runsaasti. Niinpä kurssit Diskreetti matematiikka I, Diskreetti matematiikka II, Algebra I ja Logiikka I ovat kaikki hyödyllisiä, vaikka eivät olekaan välttämättömiä.
Laskennan teoria
Joukko-oppia, relaatioita ja logiikkaa tarvitaan täälläkin ja vieläpä tavallista enemmän. Logiikka I on erittäin suositeltava, ja sen lisäksi olisi hyvä käydä myös Diskreetti matematiikka I tai Algebra I ennen Laskennan teoriaa. Verkkoihin liittyvien peruskäsitteiden tulisi myös olla tuttuja joko Tietorakenteista tai kurssilta Diskreetti matematiikka II.
Tietokannan suunnittelu
Kurssin ensimmäinen puolikas on käytännössä pelkkää logiikkaa ja joukko-oppia, joten Logiikka I on siis erittäin hyödyllinen. Kurssin loppupuolen algoritmien ymmärtäminen helpottuu, jos relaatioiden perusominaisuudet ovat jo tuttuja, joten myös Diskreetti matematiikka I tai Algebra I on suositeltava.
Tietoturva
Tämä koskee lähinnä Timo Karvin keväällä 2002 luennoimaa kurssia. Kurssin aikaisemmat versiot käsittelivät selvästi enemmän kryptografiaa ja olivat siten matemaattisempia.
Kurssin alkupuolella käsitellään kryptografiaa. Sen ymmärtämisessä auttaa erityisesti lukuteorian ja ryhmäteorian osuus Algebra I:stä sekä todennäköisyyslaskennan perusteiden ymmärtäminen (esimerkiksi Todennäköisyyslaskenta I ja joko Analyysin peruskurssi tai Analyysi I ja II). Myöhemmin kurssilla käsitellään erilaisia protokollia ja yritetään löytää järjestelmistä porsaanreikiä, joten asioiden systemaattinen tarkastelu kannattaa. Tässä suhteessa mikä tahansa matematiikan kurssi auttaa, mutta erityisen hyödyllisiä ovat sellaiset, joilla käsitellään logiikkaa.
Erikoistumislinjat ja suuntautumisvaihtoehdot
Tässä yhteydessä on tarkoitus antaa jonkinlainen käsitys siitä, millaista matematiikkaa laitoksen eri erikoistumislinjoilla ja suuntautumisvaihtoehdoissa tarvitaan syventävien opintojen vaiheessa. Perus- ja aineopintovaiheessahan opetus on ainakin toistaiseksi kaikille linjoille yhteistä. Linjojen laajuuden vuoksi tarkoitus on kuvata lähinnä tyypilliset tarpeet — kaikilla linjoilla on matemaattisesti kevyempiä ja vaativampiakin vaihtoehtoja.
Erikoistumislinjoista ja suuntautumisvaihtoehdoista on esitetty vain ne, joiden sisällöstä minulla on omakohtaista kokemusta. Muiden mielipiteitä ja kokemuksia otetaan mielellään vastaan.
Algoritmien erikoistumislinja
Algoritmilinja on kaikista laitoksen tarjoamista vaihtoehdoista ehkä se matemaattisin. Tämä on ymmärrettävää, sillä linja kattaa varsin hyvin teoreettisen tietojenkäsittelytieteen, jota ei ole aina helppo erottaa matematiikasta. Linjalla vaaditaan 60 op:n laajuinen matematiikan tai menetelmätieteiden perus- ja aineopintokokonaisuus. Olennaista ei ole kuitenkaan tiettyjen kurssien käyminen, vaan laaja työkalupakki ja kyky ajatella matemaattisesti.
Hyvä lähtökohta on suorittaa matematiikan kanoninen aineopintokokonaisuus parin ensimmäisen vuoden aikana tai jopa nopeammin. Tämä minimilaajuinen perus- ja aineopintokokonaisuus koostuu niistä kursseista, joita tkt:n opinto-opas eniten suosittelee. Vektorianalyysi on hyödyllistä mutta ei kuitenkaan välttämätöntä jatketta matemaattiselle yleissivistykselle algoritmianalyysin kannalta.
Algoritmiikasta ja laskennan teoriasta kiinnostuneille soveltuvat hyvin loogikoiden järjestämät kurssit, kuten Diskreetti matematiikka II, Matemaattinen logiikka, Laskettavuuden teoria ja Verkkoteoria. Koneoppijoiden taas kannattaa opiskella diskreetin matematiikan ja logiikan ohella myös analyysiä ja todennäköisyyslaskentaa; kurssit Mitta ja integraali ja Todennäköisyysteoria lienevät hyödyllisiä.
Älykkäiden järjestelmien erikoistumislinja
Älykkäiden järjestelmien linja on jokseenkin omalaatuinen. Omaa opetusta on vähän, varsinkin kun tekoäly ja koneoppiminen on tuupattu algoritmilinjan puolelle. Linjan profiili onkin varsin tutkimussuuntautunut, mikä ei kuitenkaan tarkoita sitä, etteikö linja sopisi myös soveltajille. Vakiintuneiden instituutioiden puuttuessa linjalaiset määräävät poikkeuksellisen voimakkaasti linjan sisällön, jos sellaista nyt edes on. Matematiikkaa ei välttämättä tarvita paljonkaan, mutta sitä ei kuitenkaan saa pelätä. Halutessaan voi kuitenkin erikoistua juuri niin matemaattisiin ja teoreettisiin asioihin kuin vain kantti kestää.
Lähtökohdaksi sopii joko laajempi perusopintokokonaisuus tai kanoninen opintokokonaisuus. Edellistä ei tosin kannata valita, jos matemaattinen linja tuntuu potentiaaliselta vaihtoehdolta. Tätä pidemmälle mentäessä tarvetta ei ole niinkään algoritmilinjan perinteiselle käpistelymatematiikalle, vaan ennemminkin analyysille, todennäköisyyslaskennalle ja matemaattiselle tilastotieteelle. Tirrin mukaan fyysikoille suunnatut matematiikan kurssit ovat nekin hyödyllisiä, mikä kertoo siitä, että yleisten rakenteiden ja teoreettisen ymmärryksen sijasta tarvitaan enemmän käytännön laskutaitoa.
Aineopintojen yli mentäessä Vektorianalyysi, Mitta ja integraali ja Todennäköisyysteoria ovat matemaatikkojen tarjoamista kursseista hyödyllisimpiä. Stokastikot ovat muutenkin ystäviä — stokastiikan linja tarjoaa läjän mukavia kursseja, joilla opiskelija voi hirttää itsensä summiin, tuloihin, integraaleihin ja gammafunktioihin oppien samalla jotain hyödyllistä.
Ohjelmistotekniikan erikoistumislinja
???
Hajautettujen järjestelmien ja tietoliikenteen erikoistumislinja
Hajautettujen linja on varsin laaja, ja matematiikan tarpeet riippuvat myös linjan sisäisestä sijoittumisesta. Linjalla keskeinen matematiikasta haettava oppi on matemaattinen ajattelu, jota mainostetaan muillakin linjoilla ja jonka opettelussa suoranaisilla kurssivalinnoilla ei ole väliä. Virallisia erikoisvaatimuksia perustutkintovaatimusten lisäksi ei ole.
Viimeistään graduvaiheessa voi huomata, että linjan projekteihin kuuluu usein mittaustuloksia ja niiden käsittelyä. Esimerkiksi protokollan toteutuksen suorituskykyä mitataan erilaisilla parametreilla, ja tulosten esittämiseen tarvitaan tilastollisia perustyökaluja. Tässä mielessä kevätkurssi Johdatus tilastolliseen päättelyyn (5 op) on suositeltava. Suorituskykyanalyysissä myös todennäköisyyslaskennan opit tulevat tarpeeseen (Johdatus todennäköisyyslaskentaan — 5 op kevätversio; tilastotieteen Todennäköisyyslaskennan kurssi, osa 1 syksyisin on pehmompaa tavaraa valtiotieteellisille tilastotieteilijöille). MatLabiin ja muihin mallinnus- ja analyysivälineisiin tutustuminen on kenties relevanteinta suurien datamäärien louhijoille kuten biotieteilijöille, mutta esimerkiksi käyrien mittausdataan sovittamisesta kiinnostuneen kannattaa suunnata Tietokoneavusteisen matematiikan kurssille (joka on saattanut muuttaa nimeään).
Tietoturvasta kiinnostunut törmää helposti kryptografiaan, kuten Tietoturva-kurssin kuvauksessakin mainitaan. Tällä kentällä julkisen avaimen kryptografian perustarjonnan ymmärtämiseksi riittää suunnilleen Eulerin fii-funktion ja kongruenssien ymmärtäminen, mitkä avautunevat Algebra I -kurssilla — joka on sen verran teoreettinen että muita matematiikan kursseja kannattaa olla jo pohjalla. Omalla tavallaan kiehtovien elliptisien käyrien kryptografian käsitteet pohjautuvat juuri elliptisiin käyriin, joita voi pitkän matematiikan oppien unohduttua käydä kertaamassa... (mistä yliopistolla nyt sitten opitaankaan, miltä y^2 + x^2 = 1 näyttää ja miten sen eri pisteitä sijoitellaan).
Formaalit menetelmät ja prosessialgebrat, joihin tutustutaan ensimmäistä kertaa aineopintojen kurssilla Laskennan mallit ja joiden käsittelyä jatketaan Spesifioinnin ja verifioinnin kursseilla, perustuvat matemaattiseen logiikkaan ja siten alan kursseista on apua: Logiikka I kannattaa suorittaa pikaoppimistarpeen minimoinniksi. Hieman ylimääräistä matematiikkaa ajattelun malleja ohjaamaan on hyväksi, jos tämän puolen kursseilla alkaa ahdistaa.
Tiedonhallinnan erikoistumislinja
Tietokantoja ihmeteltäessä vastaan tulee nopeasti logiikkaa, joukko-oppia, relaatioita ja algebraakin. Formaali mallintaminen kun on hankalaa ilman formaaliin mallintamiseen tarvittavia työkaluja. Monilla infolinjan syventävien opintojen erikoiskursseista käsitellään suuria datamääriä, jolloin lineaarialgebran ja todennäköisyyslaskennan osaamisesta on hyötyä. Laajempi perusopintokokonaisuus (50 op) lienee riittävä lähtökohta, mutta Laajempi perusopintokokonaisuus (60 op) lukeminen on sekin varteenotettava vaihtoehto. Myös tilastotieteen opintoja kannattaa harkita.
Infolinjan kääntöpuolelta löytyvät käyttöliittymäihmiset, joilla ei ole samanlaista tarvetta matematiikalle. Ainakin minimi-opintokokonaisuus (25 op) täytyy ja kannattaa silti suorittaa, mutta ei ylimääräisestä matematiikastakaan haittaa ole.
Bioinformatiikan ja laskennallisen biologian erikoistumislinja
???
Sovelletun tietojenkäsittelyn suuntautumisvaihtoehto
Huom: Tätä suuntautumisvaihtoehtoa ei enää ole lukuvuonna 2005–2006 voimaan astuneessa tutkintojärjestelmässä.
Soveltajien matematiikan tarve riippuu lähes täysin sovellusalasta. Vaikka mitään muodollisia vaatimuksia ole, kannattaa vähintään minimi-opintokokonaisuus (25 op) suorittaa, jotta pääaineen opinnot sujuisivat helpommin. Luonnontieteellisissä sovelluksissa analyysi ja todennäköisyyslaskenta ovat kovia sanoja, ja niitä saattaa joutua opiskelemaan runsaastikin. Humanistisemmissa aineissa, kuten kieliteknologiassa tai kognitiotietessä, saattaa hyvinkin törmätä logiikkaan. Maantieteilijöiden kanssa tekemisissä oleva taas saattaa huomata tarvitsevansa geometriaa, diskreettiä matematiikkaa ja ehkä topologiaakin.
Opettajan suuntautumisvaihtoehto
Huom: Tätä suuntautumisvaihtoehtoa ei enää ole lukuvuonna 2005–2006 voimaan astuneessa tutkintojärjestelmässä.
Opettaja ei välttämättä tarvitse lainkaan matematiikkaa, mutta sen opiskeleminen helpottaa kummasti tietojenkäsittelytieteen opiskelemista. Toisaalta matematiikka on usein luonteva vaihtoehto toiseksi opetettavaksi aineeksi, jolloin siinä joutuu suorittamaan perus- ja aineopinnot. Matematiikan kanoninen opintokokonaisuus on hyvä lähtökohta, jota tosin kannattaa laajentaa kurssilla Geometria. Kurssit Analyysi I ja II ovat joka tapauksessa pakollisia, minkä lisäksi matemaatikot suosittelevat Geometriaa ja Todennäköisyyslaskenta I:tä.
Paremmin tietävät voivat tarkentaa.
Tietokonematemaatikon suuntautumisvaihtoehto
Huom: Tätä suuntautumisvaihtoehtoa ei enää ole lukuvuonna 2005–2006 voimaan astuneessa tutkintojärjestelmässä.
Tietokonematemaatikko on harhaanjohtava nimike. Se antaa mielikuvan differentiaaliyhtälöistä ja lineaarisesta optimoinnista ja muusta varsin sovelluspainotteisesta tieteellisestä laskennasta. Sitäkin jotkut tietokonematemaatikot tullevat tekemään, kunhan heitä joskus valmistuu. Suuntautumisvaihtoehdon profiiliin kuulunevat kuitenkin yhtä lailla teoreetikot, jotka ovat kiinnostuneita sekä käpistelystä että matematiikasta, eivätkä kammoksu harhaanjohtavaa nimikettä.
Suuntautumisvaihtoehdon luonteesta johtuen sen valitseville on vaikea antaa hyviä ohjeita. Jos erikoistumissuunta on selvä, kannattaa ottaa käteen matematiikan opinto-opas ja noudattaa lähimmäksi osuvan linjan tutkintovaatimuksia.