Tietotekniikka luonnontieteilijän toisena oppiaineena - mitä ja miksi?
(Biologian HOPS-iltapäivä 11.9.2017; Ynnän sivuaineinfo 13.9.2017; Tiedoksi syksyllä 2017 myös kemian fukseille)
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. Kuten huomaat, IT-opintokokonaisuuksissa on monta hyvää vaihtoehtoa, mutta alla kerrotaan erityisesti tietotekniikasta, koska se on luonnontieteilijälle perinteisesti erityisen hyödyllinen. Vuoden 2017 uutuutena voi kuitenkin olla hyvä huomata Digitalisaation kokonaisuus laajennoksineen. Opetus tapahtuu yllä olevan kuvan Agora-rakennuksessa (kuvaaja: Sergei Chernov)
Tietotekniikan perusopinnot (vähintään 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ä! Vaikka ei muuta, niin jokaisen yliopisto-opiskelijan kannattaisi käydä ainakin tämä kurssi!!
- Web-julkaiseminen: Nimestään huolimatta tämä kurssi täydentää ja laajentaa edellä mainitun työvälinekurssin sisältöjä, johdatellen jo myös tietotekniikan syvällisempään ymmärrykseen. (sisältyi aiemmin laajempaan työvälinekurssiin!)
- Ohjelmointi 1 (Peruskivijalka kaikkeen): kuinka tietokone saadaan ratkomaan ongelmia ihmisen puolesta. Ensimmäisellä kurssilla sovellusalueena on pelit, katso esim. aiempia 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.:
- Ohjelmointi 2: Miten konetta käsketään paremmin (ja paremmin ja paremmin, jatkokursseilla...)?
- 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?
- 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?
- 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?
- 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ä?
- 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.
Syventävät opinnot (+60 op) vastaavat läheisesti tietotekniikan pääaineopintoja.
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ä.
Esimerkkejä opintokokonaisuuksista ja ajoituksista:
Tässä ihan vain muutamia esimerkkejä opinto-oppaan speksin soveltamisesta:
- Perusopinnot sisältäen myös aineopintojen pakolliset osat (30op). Soveltuu kenties parhaiten, jos tietää, että aika riittää vain perusopintopakettiin, mutta haluaa silti edetä ydinkysymyksissä mahdollisimman pitkälle:
- Syksy: Tietokone ja tietoverkot työvälineenä, 2 op
- Syksy: Web-julkaiseminen, 2 op
- Syksy: Ohjelmointi 1, 6 op
- Kevät: Tietoverkot, 3 op
- Kevät: Ohjelmointi 2, 8 op
- Kevät: Algoritmit 1, 4 op
- Kevät: Tietokannat ja tiedonhallinnan perusteet, 5 op
- Minimaaliset perusopinnot keväästä kevääseen (27op). Ihan vain esimerkki siitä, että tietotekniikka on mahdollista aloittaa sekä syksyllä että keväällä:
- Kevät: Tietokone ja tietoverkot työvälineenä, 2 op
- Kevät: Web-julkaiseminen, 2 op
- Kevät: Ohjelmointi 1, 6 op
- Syksy: Tietokoneen rakenne ja arkkitehtuuri, 3 op
- Kevät: Tietoverkot, 3 op
- Kevät: Oliosuuntautunut suunnittelu, 3 op
- Kevät: Ohjelmointi 2, 8 op
- Minimaaliset perusopinnot yhdessä lukuvuodessa (25op):
- Syksy: Tietokone ja tietoverkot työvälineenä, 2 op
- Syksy: Web-julkaiseminen, 2 op
- Syksy: Ohjelmointi 1, 6 op
- Kevät: Tietoverkot, 5 op
- Kevät: Ohjelmointi 2, 8 op
- Kevät: Ohjelmointi 2 lisäosat, 1+1 op
- Minimaaliset perusopinnot numeriikkaan painottuen (27op):
- Syksy: Tietokone ja tietoverkot työvälineenä, 2 op
- Syksy: Web-julkaiseminen, 2 op
- Syksy: Ohjelmointi 1, 6 op
- Kevät: Tietoverkot, 4 op
- Kevät: Ohjelmointi 2, 8 op
- Syksy: Numeeriset menetelmät, 5 op
- Hieman tukevammat perusopinnot numeriikkaan painottuen (31op):
- Syksy: Tietokone ja tietoverkot työvälineenä, 2 op
- Syksy: Web-julkaiseminen, 2 op
- Syksy: Ohjelmointi 1, 6 op
- Kevät: Tietoverkot, 3 op
- Kevät: Ohjelmointi 2, 8 op
- Syksy: Numeeriset menetelmät, 5 op
- Syksy: Lineaarinen ja diskreetti optimointi, 5 op
- Perus- ja aineopinnot sisältäen tietotekniikan ohjelmistoteknisen LuK:n ydinosaamisen (63op):
- Syksy: (P) Tietokone ja tietoverkot työvälineenä, 2 op
- Syksy: (P) Web-julkaiseminen, 2 op
- Syksy: (P) Ohjelmointi 1, 6 op
- Syksy: (P) Tietokoneen rakenne ja arkkitehtuuri, 3 op
- Kevät: (P) Tietoverkot, 5 op
- Kevät: (P) Oliosuuntautunut suunnittelu, 3 op
- Kevät: (P) Ohjelmointi 2, 8 op
- Kevät: (P) Ohjelmointi 2 lisäosat, 1+1 op
- Kesä: (A) Käyttöjärjestelmät, 4 op
- Syksy: (A) Tietojärjestelmien kehittäminen, 5 op
- Syksy: (A) Funktio-ohjelmointi 1, 5 op
- Kevät: (A) Algoritmit 1, 4 op
- Kevät: (A) Algoritmit 2, 4 op
- Syksy: (A) Automaatit ja kieliopit, 5 op
- Kevät: (A) Tietokannat ja tiedonhallinnan perusteet, 5 op
- ... Vastaavalla tavalla voi rakentaa myös numeriikkaan tai aineopettajuuteen tähtäävän aineopintopaketin.
- ... Ja kuten jo sanottu, pakollisen ydinpaketin ympärille tietotekniikan sivuaineeseen voi poimia aika vapaasti juuri itselle tärkeitä tai kiinnostavia kursseja IT-tiedekunnan tarjonnasta.
Miksi opiskella tietotekniikkaa erillisenä opintokokonaisuutena (ent. sivuaineena)?
Melko uusi (2015) esimerkki sovelluksesta, jossa yhdistyy monitieteinen osaaminen melkein kaikilta luonnontieteen aloilta: Agora Centerin 3d-4c projekti. (linkki kansantajuiseen lehtijuttuun v. 2014)
Tässä 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)
- Biologia: esimerkki tutkimusartikkelista (PDF saatavilla ainakin yliopiston verkosta käsin) - toinen esimerkki paikallisesta tutkimuksesta, jossa yhdistyy matematiikka, tilastotiede, tietotekniikka ja biologia.
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, tuolla ja tuolla).