Tietojenkäsittelytiede toisena tai kolmantena oppiaineena - mitä ja miksi?
(BIOYVEn fuksien "sivuaineinfo" 17.2.2025.)
Esityksen pitäjä "tehköön, mistä saarnaa": Pienen ohjelmointiharjoitteen avulla tämän nettisivun saa avattua myös esitysaikakellon kanssa: esitysaika 10 min | 7 min
Tarjonta kuvataan opinto-oppaassa virallisin sanoin
Virallinen tieto näistä opintokokonaisuuksista löytyy samasta paikasta kuin kaikista muistakin eli Opinto-oppaasta.
Edistyneellä haulla saa näppärästi näkyviin esimerkiksi kaikki
Informaatioteknologian tiedekunnan valinnaisena suoritettavat
perusopintokokonaisuudet
(täten).
IT-tiedekunnan opetus tapahtuu yllä olevan kuvan Agora-rakennuksessa
(kuvaaja: Sergei Chernov).
Tällä sivulla kerrotaan erityisesti tietojenkäsittelytieteestä,
koska se on luonnontieteilijälle perinteisesti erityisen
hyödyllinen. Ennen syksyä 2024 tämän
nimi oli meillä tietotekniikka,
mutta nykyinen kuvaa sisältöä paremmin.
Se on muuten ihan samaa sisältöä, joka
kuuluu myös diplomi-insinöörien alkupään koulutukseen.
Täsmälinkit virallisiin
kuvauksiin:
Mitä tietojenkäsittelytieteen opiskelu on käytännössä
Perusopinnoista aina aloitetaan, joten puhutaan tänään eniten
niistä. Ja puhutaan erityisesti oppiaineesta
nimeltä tietojenkäsittelytiede, joka on IT-tiedekunnan
tarjonnasta ehkä suorimmin jonkin muun luonnontieteellisen tutkinnon
opiskelijaa hyödyttävä aine.
Tietojenkäsittelytieteen perusopinnot (vähintään 25 op) alkavat tällaisista kaikille yhteisistä sisällöistä:
- ITKP1010 Digitaalisen osaamisen perusteet (3 op): Kuinka tietokonetta käytetään "oikein" eli tehokkaasti, turvallisesti ja varsinkin ilman tarpeetonta otsahikeä!
Vaikka ei mitään muuta IT-alalta, niin jokaisen yliopisto-opiskelijan kannattaisi käydä tämä kyseinen kurssi!!
- ITKP1011 Web-julkaiseminen (2 op): Nimestään huolimatta tämä kurssi täydentää ja laajentaa edellä mainitun työvälinekurssin sisältöjä, johdatellen jo myös automaattisen tietojenkäsittelyn syvällisempään ymmärrykseen.
- ITKP102 Ohjelmointi 1 (6 op) (Peruskivijalka kaikkeen): kuinka tietokone saadaan ratkomaan ongelmia ihmisen puolesta. Ensimmäisellä kurssilla sovellusalueena on pelit, katso esimerkiksi aiempia Ohjelmointi 1 -kurssin tuotoksia YouTubessa. Pelit motivoivat joitakin enemmän kuin toisia - mutta pelikontekstissa kaikki oppivat ohjelmoinnin perusteet hyvin!
Ohjelmointi 1 on vahvasti suositeltava kurssi jokaiselle luonnontieteellisen alan opiskelijalle, vaikka ei jatkaisikaan perusopintokokonaisuutta sen pidemmälle!
- ITKP104 Tietoverkot (3-5 op) (joita ilman ei nykypäivänä yksinkertaisesti pärjätä): Miten koneet ja niihin asennetut ohjelmat viestivät keskenään verkon kautta?
- Perusopintojen 25 opintopisteen laajuus täytetään vapaasti erilaisilla aihepiireillä. Esimerkkejä tarjonnasta:
- TIEP111 Ohjelmointi 2 (8 op): Miten konetta käsketään paremmin (ja paremmin ja paremmin, jatkokursseilla, joita kohti tämä kurssi vielä johdattelee...)?
- Algoritmit 1 ja 2: Kun käyttäjämäärä 1000-kertaistuu, toimenpiteisiin saattaakin mennä 1 000 000 -kertainen aika... Mistä tämä johtuu, ja miten päästään parempaan tilanteeseen eli vaikkapa vain 1000-kertaiseen ajankäyttöön, joka vastaa käyttäjämäärän kasvua? Onko se ylipäätään mahdollista niille toimenpiteille, joita jokin suunniteltavana oleva järjestelmä tarvitsee?
- Tietokannat ja tiedonhallinta: Harva todellinen järjestelmä toteutetaan ilman käsiteltävän tiedon järjestelmällistä hallintaa. Miten ja millä työkaluilla se tehdään?
- Funktio-ohjelmointi 1 (Erilainen näkökulma ohjelmointiin ja ongelmanratkaisuun - perinteikäs mutta myös potentiaalinen tulevaisuuden tapa ohjelmoida): Onko olemassa ohjelmointivälineitä, joilla väistämättä vältetään monien nykyisiä ohjelmistoja rassaavien ohjelmointivirheiden ja -vaikeuksien mahdollisuus? Ai on.. no mitenkäs sellaisella kielellä sitten ohjelmoidaan?
- Käyttöjärjestelmät: Mistä on pienet Windowsit, Linuxit, MacOS:t ym. tehty? Siis konepellin alla... Mitä tästä seuraa laadukkaiden ohjelmien suunnittelussa ja tekemisessä?
- Lineaarinen ja diskreetti optimointi: "Okei, haluaisin minimoida tämän lineaarisen funktioni näillä rajoitteilla, mutta kynä ja paperi ei oikein riitä 1000-ulotteisiin laskuihin... Miten ratkaisen yhtälön tietokoneella salamannopeasti?"
- Tietokonegrafiikan perusteet: Mihin visualisointijärjestelmät (tieteelliset ja viihteelliset, kuten pelit tai elokuvien tehosteet) perustuvat konepellin alla? Juonipaljastus: Ohjelmoinnin lisäksi lineaarialgebraan ja mm. vektoricalculukseen. "Sneak preview": Tuotantoversio kevään 2018 grafiikkakurssin ensimmäisestä luennosta, sama 4096 tavun koossa, (automaattisesti minifioituna mutta pakkaamattomana javascriptinä).
- ... ja paljon muita tietojenkäsittelytieteen erityiskysymyksiä ...
(3 ensiksi mainittua ja korostettua opintojaksoa kuuluvat pakollisina aineopintokokonaisuuteen, joten niiden kautta voi ottaa vähän näytepaloja tulevasta jo perusopintojen osana; toki kaikki muutkin TIEP/TIEA -opintojaksot ovat hyödyllisiä.)
Aineopinnoissa (+35 op) on lisää aikaa miettiä muun muassa edellisiä kysymyksiä ja oppia samalla paremmaksi ohjelmoijaksi. Aineopinnoissa mukaan mahtuu myös esimerkiksi luonnontieteilijälle hyödyllisiä "numeronmurskaus" -kursseja eli ammattikielellä numeriikkaa. Kun valitsee huolellisesti tietyt ydinkurssit, tietojenkäsittelytieteen perus- ja aineopinnoista (yht. 25 + 35 = 60 op) saa olennaisesti saman ydinosaamisen kuin alan omilla kandidaateilla on.
Syventävät opinnot (+60 op) vastaavat läheisesti
tietojenkäsittelytieteen maisteritutkinnon pääaineopintoja. Kokonaisuutena
tämä tuskin mahtuu mukaan nykyisiin HOPSeihin, mutta yksittäisiä
kurssejakin voi ilman muuta poimia sitten aineopintojen päälle.
Esimerkiksi numeriikka ja datatiede ehditään viedä
perille saakka vasta syventävissä kursseissa.
Mitä on lupa odottaa saavansa?
Tietojenkäsittelytieteen perusopinnot erillisinä opintoina (vanhalla slangilla
"sivuaineena") tarjoavat:
- Hyvän perusohjelmointitaidon
- Yhteisen sanaston ohjelmistoalan ihmisten kanssa
(tarpeen yhteistyöprojekteissa)
- Aineopinnoissa myös ohjelmistojen suunnittelutaitoja
- Syventävissä opinnoissa myös erikoistuneemmat
asiantuntijataidot johonkin kohteeseen, kuten numeriikkaan,
datatieteeseen, koneoppimiseen, tietoliikenteeseen, IoT:hen,
tietoturvaan tai mobiili-/WWW-sovellusten suunnitteluun ja
toteuttamiseen
Sivuaineopintojen suuntautuminen varsinkin pidemmälle edettäessä on jompikumpi seuraavista:
- Ohjelmisto- ja tietoliikennetekniikka
- Teknismatemaattinen mallintaminen ja päätösanalytiikka ("Laskennalliset tieteet")
Tutkijaksi halajaville laskennallisten tieteiden
opiskelu voi tukea oman alan tutkimusta kaikkein suorimmin. Jos
opintoihin ei kuitenkaan luontevasti kuulu lisäksi matematiikkaa tai
luonnontieteitä, Ohjelmisto- ja tietoliikennetekniikka lienee
helpoiten avautuva vaihtoehto.
Opettajuuteen jo määrätietoisesti tähtääville
puolestaan saattaa tarjota hyödyllisiä käytännön apuvälineitä
Koulutusteknologia, joka on ollut syksystä 2020 alkaen ihan erillinen aineensa!
Sen perusopinnoissa on ihan pieni, 2 kurssin kokoinen, eroavuus tietojenkäsittelytieteen perusopintoihin.
Eli aika samasta puusta lähdetään veistämään myös koulutusteknologian opinnoissa.
Opintojen ajoittaminen
Aloitus ensimmäisistä kursseista onnistuu joko jonakin keväänä tai syksynä, lukukauden alkupäivistä alkaen. Ohjelmointi 1 on usein tarjolla myös kesäperiodissa.
Sen jälkeen voi edetä joko nopealla tai hitaalla tahdilla melko joustavasti. Yksityiskohtaiset tiedot kurssitoteutusten aikatauluista löytyy aina vuosittain Sisusta.
Miksi opiskella tietojenkäsittelytiedettä erillisenä opintokokonaisuutena (ent. sivuaineena)?
Tässä esimerkkejä sovelluksista eri alojen opiskelijan tulevalla omalla alalla.
Vain muutamia poimintoja loputtomista reaalimaailman sovellusesimerkeistä
joidenkin koulutusohjelmien pääaineopiskelijoille:
- Kemia: Uusien molekyylien etsiminen laskennallisesti, laskennallinen kemia.
Läheisesti aiheeseen liittyvä esimerkki löytyykin omasta tutkimusryhmästäni äskettäisestä
projektista (linkki projektin ehkä näkyvimpään julkaisuun 2019, ensimmäisen väittelijän väitöstiedotteeseen 2022 ja jatkoprojektiin). Tällaisissa hankkeissa ei tultaisi toimeen ilman porukkaa, joka osaa eniten kemiaa/fysiikkaa, mutta lisäksi tietojenkäsittelytiedettä!!
Kemiallisten prosessien optimointi on perinteinen ja alati tarpeen oleva kenttä (linkki erääseen projektiin takavuosilta ja muihin optimointijulkaisuihin).
- Fysiikka: Higgsin hiukkanen - Tulokset
perustuvat massiivisen datan keräämiseen ja käsittelyyn
(linkki)
- Matematiikka: Numeerinen ja symbolinen laskenta; suunnaton määrä matematiikan
käytännön sovelluksista perustuu tietojenkäsittelytieteen / ohjelmoinnin käyttöön.
(linkki)
Entäs "puhdas matematiikka", filosofia ja logiikka? Todistusvälineet (linkki)
- Tilastotiede: Koneoppiminen, hahmontunnistus, bayesilaiset mallit, ...
tilastotieteen uudet sovellukset edellyttävät tietokoneen käyttöä eli
laskennallista tilastotiedettä (linkki).
- Biologia: esimerkki tutkimusartikkelista ja siihen liittyvästä lähdekoodista - megatrendien (linkki), kuten luontokadon, ratkomista automaattisen tietojenkäsittelyn keinoin täällä meillä Jyväskylässä.
- Biologia: aiempi esimerkki tutkimusartikkelista (PDF saatavilla ainakin yliopiston verkosta käsin) - jyväskyläläinen tutkimus, jossa yhdistyy matematiikka, tilastotiede, tietojenkäsittelytiede ja biologia.
- Biologia: Tulevaisuudessa dronet tekee biologin työn? - ei, vaan tulevaisuuden biologi, joka osaa analysoida valtavaa, automaattisesti kerättävissä olevaa aineistoa, jota esimerkiksi dronen kuvaama peltovideo on! Esimerkiksi ihmisen genomi on kartoitettu, kuten 1000 muun eliölajin, mutta mitä se tarkoittaa biologian kannalta? Lataa data läppärillesi ja ryhdy selvittämään ("pieni" kotitehtävä siinä - haastava ja useamman elämäntyön mittainen - kannattaa osata tietojenkäsittelytiede ja tilastotiede siinä bilsan ohella:))!
- Psykologia: Heitänpä tähän esimerkiksi viimeisimmän oman yhteisjulkaisuni tietojenkäsittelytieteen ja psykologian rajapinnasta
- Humanistiset aineet: Itse yhteiskunnan lisäksi myös humanistinen tutkimus digitalisoituu. Kannattaa pysytellä siinä mukana. Esimerkkinä Suomen Akatemian rahoitusohjelma Digital Humanities (DIGIHUM) 2016-2022. Tällaiset tuskin vähenevät tulevaisuudessakaan.
- Kaikilla aloilla arkipäivän työ tehdään enenevässä määrin tietokoneohjelmilla datan automaattiseen analyysiin perustuen. Ohjelmien ja sovellusten kehittäminen on mahdollista vain yhteistyöllä, jossa sovellusalan asiantuntija osaa kommunikoida mm. ohjelmistokehittäjien kanssa, arvioida ihan itsekin kehittämisen realistisuutta, kustannuksia ja muita ehtoja onnistuneen työkalun tai parannuksen saavuttamiseksi.
Edellä oli vain muutama esimerkki tietojenkäsittelyn (erityisesti laskennan) monista sovelluksista.
Lisäksi ohjelmoinnin osaaminen mahdollistaa aivan uudenlaiset mahdollisuudet
tehostaa omaa työtään (tai aloittaa jännittävä ja palkitseva harrastus!
Esimerkiksi tietojenkäsittelytieteen opiskelijoidemme aikoinaan perustama Instanssi kerää vuosittain digijuttujen harrastelijat oppimaan ja kisailemaan yhdessä, Jyväskylästä ja nykyään kauempaakin.
Omiakin harrastehöpsöttelyjäni päätynyt nettiarkistoihin mm. tuolla, tuolla, tuolla, tuolla ja tuolla).