Tietotekniikka luonnontieteilijän sivuaineena - mitä ja miksi?
(Ynnän sivuaineinfo 9.9.2015; Biologian sivuaineinfo 28.9.2015)
Mitä on tietotekniikan opiskelu
Virallinen tieto löytyy täältä: IT-tiedekunnan sähköinen opinto-opas. Sen alta löytyvät ohjeet IT-tiedekunnan sivuainekokonaisuuksista ja erityisesti tietotekniikasta sivuaineena. Opetus tapahtuu yllä olevan kuvan Agora-rakennuksessa (kuva on varastettu tähän ilman lupaa työkaveriltani Sergei Chernovilta...)
Nykyäänhän tietotekniikan perusopinnot (25op) alkavat mm. tällaisista harjoitteista:
- Tietokone ja tietoverkot työvälineenä: Kuinka tietokonetta käytetään "oikein" eli tehokkaasti, turvallisesti ja varsinkin ilman tarpeetonta otsahikeä! Jos ei muuta, niin jokaisen yliopisto-opiskelijan kannattaisi käydä ainakin tämä kurssi!!
- Ohjelmointi 1 (Peruskivijalka kaikkeen): kuinka tietokone saadaan ratkomaan ongelmia ihmisen puolesta. Ensimmäisellä kurssilla sovellusalueena on pelit, katso esim. viime syksyn Ohjelmointi 1 -kurssin tuotoksia YouTubessa. Pelit motivoivat joitakin, joitakin taas eivät - mutta pelikontekstissa kaikki oppivat ohjelmoinnin perusteet hyvin!
- Tietoverkot (joita ilman ei nykypäivänä yksinkertaisesti pärjätä): Miten koneet ja niihin asennetut ohjelmat "keskustelevat" keskenään verkon kautta?
- Perusopintoja voi edellä mainittujen lisäksi täydentää vapaasti erilaisilla aihepiireillä, esim.:
- 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? Onko se ylipäätään mahdollista niille toimenpiteille, joita järjestelmä tarvitsee?
- Käyttöjärjestelmät: Mistä on pienet Windowsit, Linuxit, OSX:t ym. tehty? Siis konepellin alla... Mitä tästä seuraa laadukkaiden ohjelmien suunnittelussa ja tekemisessä?
- Ohjelmointi 2: Miten konetta käsketään paremmin (ja paremmin ja paremmin, jatkokursseilla...)?
- Funktio-ohjelmointi 1 (Erilainen näkökulma ohjelmointiin ja ongelmanratkaisuun. 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?
- Tietokannat ja tiedonhallinnan perusteet: Harva todellinen järjestelmä toteutetaan ilman käsiteltävän tiedon järjestelmällistä hallintaa. Miten ja millä työkaluilla se tehdään?
- Automaatit ja kieliopit: Mistä on pienet ohjelmointikielet tehty ("mikrotasolla" - laajempi osaaminen edellyttää useamman kurssin paketin nimenomaisesta aiheesta)? Mitä tehtäviä tietokoneella voidaan ratkaista? Mitä sillä taas ei aivan varmasti voida ratkaista?
- 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?
- ... ja paljon muita tietotekniikan erityiskysymyksiä ...
(lihavoidut kurssit kuuluvat pakollisina aineopintokokonaisuuteen, joten niiden kautta voi ottaa vähän näytepaloja jo perusopintojen osana; muutkin ovat sinänsä hyödyllisiä kursseja.)
Aineopinnoissa (+35 op) on lisää aikaa miettiä mm. edellisiä kysymyksiä ja oppia samalla paremmaksi ohjelmoijaksi. Aineopinnoissa mukaan mahtuu myös esim. luonnontieteilijälle hyödyllisiä "numeronmurskaus" -kursseja.
Tietotekniikan sivuaineopinnot tarjoavat:
- Hyvän perusohjelmointitaidon
- Yhteisen sanaston tietoteknikkojen kanssa
(tarpeen yhteistyöprojekteissa)
- Aineopinnoissa myös ohjelmistojen suunnittelutaitoja
- Syventävissä opinnoissa myös erityiset asiantuntijataidot
esimerkiksi numeriikkaan tai mobiili-/WWW-sovelluksiin
Sivuaineopintojen suuntautuminen varsinkin pidemmälle edettäessä on jokin seuraavista:
- Koulutusteknologia
- Ohjelmistotekniikka
- Laskennalliset tieteet
Tutkijaksi halajaville sekä opettajan urasta tässä vaiheessa
epävarmoille suosituksena voisi olla
Laskennalliset tieteet tai Ohjelmistotekniikka.
Opettajuuteen määrätietoisesti tähtääville puolestaan Koulutusteknologia
saattaa tarjota hyödyllisiä käytännön apuvälineitä.
Miksi opiskella tietotekniikkaa sivuaineena?
Otetaan yksi aivan uusi (2015) esimerkki sovelluksesta, jossa yhdistyy monitieteinen osaaminen melkein kaikilta luonnontieteen aloilta: Agora Centerin 3d-4c projekti.
Tässä vielä lisää esimerkkejä sovelluksista luonnontieteen opiskelijan tulevalla omalla alalla. Vain yksi monista reaalimaailman sovellusesimerkeistä pääainetta kohti:
- Kemia: Uusien molekyylien etsiminen laskennallisesti, laskennallinen kemia
(linkki)
- 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 tietotekniikan / ohjelmoinnin käyttöön.
(linkki)
- Tilastotiede: Koneoppiminen, hahmontunnistus, bayesilaiset mallit, ...
tilastotieteen uudet sovellukset edellyttävät tietokoneen käyttöä eli
laskennallista tilastotiedettä (linkki).
- Biologia:
BioImageXD on osin jyväskyläläisvoimin toteutettu ohjelmisto
biologisen datan analysointiin ja visualisointiin. Tällaisen
tekeminen vaatii tiivistä yhteistyötä biologian, matematiikan,
fysiikan ja tietotekniikan ammattilaisten kesken. (linkki Nature-jutun kuvitukseen)
Edellä oli vain muutama esimerkki tietotekniikan (erityisesti laskennan) monista sovelluksista.
Lisäksi tietotekniikan osaaminen mahdollistaa aivan uudenlaiset mahdollisuudet
tehostaa omaa työtään (tai aloittaa jännittävä ja palkitseva harrastus!
(linkki)
Omiakin harrastehöpsöttelyjäni päätynyt nettiarkistoihin mm. tuolla ja tuolla)