Tietojenkäsittelytiede tutkii informaatiota kuvaavia ja muuntavia algoritmisia prosesseja sekä niiden automatisointia tietotekniikan tarjoamin välinein. Tietojenkäsittelytieteen tutkimuskenttä on laaja: se ulottuu ohjelmoinnista, tietokannoista ja tietoverkoista tekoälyyn ja tieteelliseen laskentaan. Uudet sovellusalueet avaavat jatkuvasti monenlaisia uusia mahdollisuuksia niin tutkimuksessa kuin työelämässäkin.

 

DEFA (Digital Education for All)

Tällä sivustolla näet myös Tietojenkäsittelytieteen osaston DEFA-hankkeeseen (Digital Education For All) kuuluvien opintojaksojen opinto-ohjelmia. Opinto-ohjelmia julkaistaan sitä mukaa kun ne valmistuvat. Huomaathan, että tällä sivustolla näkyy vain osa DEFA-kurssien opinto-ohjelmista. DEFA-sivustolla julkaistaan kaikkien kurssien opinto-ohjelmat. Matematiikan ja tilastotieteen DEFA-kurssit löytyvät matematiikan ja tilastotieteen sivuilta. Kursseille voit ilmoittautua Avoimen yliopiston opinto-ohjelmien Ilmoittaudu-linkistä tai DEFA-hankkeen kurssien koontisivuston kautta. Kaikkiin DEFA-opintoja koskeviin kysymyksiin vastataan osoitteesta DEFA-help@cs.helsinki.fi

Opinnot Avoimessa yliopistossa

Tietojenkäsittelytieteen perusopinnot

Johdatus tietojenkäsittelytieteeseen, 5 op

Kurssin suoritettuasi sinulla on yleiskuva tietojenkäsittelytieteestä, mukaan lukien perustietoa alan etiikasta ja immateriaalioikeudesta. Opit hakemaan tieteellistä kirjallisuutta ja lukemaan tieteellistä kirjallisuutta englanniksi sekä osaat kirjoittaa alan asiatekstiä.

Ei edeltäviä yliopisto-opintoja. Kurssilaisilta ei edellytetä tietojenkäsittelytieteen muiden kurssien aiempaa suorittamista, mutta alan englanninkielistä tekstiä on syytä osata lukea.

Peruttu

Ohjelmoinnin perusteet, 5 op

Opintojaksolla perehdyt ohjelmoinnin keskeisiin periaatteisiin ja ajattelutapoihin. Kurssin sisältönä mm. algoritmit, ohjausrakenteet, aliohjelmat ja olio-ohjelmoinnin perusteet. Ohjelmointikielenä käytetään Javaa.

Voit suorittaa kurssin täysin verkossa joko verkkokurssina tai mooc-kurssina. Kurssin voi suorittaa myös monimuotokurssina, osallistumalla luennolle ja harjoituksiin. Verkkokurssilla on opetusta kun taas mooc-kurssilla opiskellaan enemmän itsenäisesti. Verkkokurssilla on mm. luentotallenteita ja ohjausta ohjelmointiin.

Kurssilla ei ole esitietovaatimuksia, ei edellytetä ennakkotietoja ohjelmoinnista.

Ohjelmoinnin jatkokurssi, 5 op

Kurssin suoritettuasi olet tutustunut mm. periytymiseen ja rajapintoihin, UML-luokkakaavioihin, testivetoisen ohjelmistokehityksen ideaan, poikkeusten käsittelyyn, tiedostoihin kirjoittamiseen ja niistä lukemiseen, graafisiin käyttöliittymiin, ikkunoihin piirtämiseen ja animointiin, kokoelmiin, hajautustauluihin, taulukoihin sekä hakuun ja järjestämiseen. Osaat myös soveltaa oppimaasi ohjelmoinnissa.

Kurssin esitietovaatimuksena on ohjelmoinnin perusteiden tunteminen. Erityisesti Java-kieltä on jo osattava siinä laajuudessa kuin sitä opitaan kurssilla Ohjelmoinnin perusteet (AYTKT10002).

Tietokantojen perusteet, 5 op

Kurssin esitietovaatimuksena on Ohjelmoinnin perusteet (TKT10002) ja Ohjelmoinnin jatkokurssi (TKT10003). Näiden kurssien materiaaliin voi tutustua mm. osoitteessa https://materiaalit.github.io/ohjelmointi-18/

Tietokoneen toiminta, 5 op

Kurssilla opitaan:

  • Tietokonejärjestelmän rakenne
  • TTK-91 -tietokone ja sen simulaattori, konekielinen ohjelmointi, aliohjelmien toteutus
  • Suoritin ja väylä, tiedon esitysmuodot, tiedon muuttumattomuus ja muisti
  • Ohjelman ja käyttöjärjestelmän toteutus, ulkoinen muisti ja I/O:n toteutus
  • Käännös, linkitys ja lataus, tulkinta ja emulointi

On suositeltavaa, että opiskelija osaa ohjelmoida korkean tason kielellä ennen kurssille osallistumista. Esimerkiksi kurssi Ohjelmoinnin perusteet antaa riittävät esitiedot.

Tietojenkäsittelytieteen aineopintoja

Ohjelmistotekniikka, 5 op

Kurssilla tutustutaan eräisiin keskeisiin ohjelmistojen suunnitteluperiaatteisiin, ohjelmistotuotantoprosessin vaiheisiin, versionhallintaan, testaukseen sekä ohjelmiston rakenteen ja toiminnan mallintamiseen UML-kielen avulla. Opittua sovelletaan harjoitustyötä laadittaessa.

Esitietovaatimuksena ovat Ohjelmoinnin jatkokurssi ja Tietokantojen perusteet tai vastaavat tiedot.

Full Stack -websovelluskehitys, 3-8 op

Tietorakenteet ja algoritmit, 10 op

Opintojakson jälkeen opiskelija

  • osaa laatia algoritmeja soveltaen opintojaksolla esitettyjä perustekniikoita ja tietorakenteita sekä toteuttaa ne Java-kielellä
  • osaa analysoida algoritmin aika- ja tilavaativuutta O-merkinnän avulla ja perustella algoritmin oikeellisuuden esim. silmukkainvarianttia käyttäen
  • tuntee yksityiskohtaisesti erilaisten hakemistorakenteiden toteutukset
  • osaa toteuttaa tärkeimmät järjestämisalgoritmit ja tuntee niiden aikavaativuudet
  • tuntee verkkojen peruskäsitteet ja osaa toteuttaa tärkeimmät polunetsintään ja virittäviin puihin liittyvät algoritmit
  • käyttää opintojaksolla esitettyjä peruskäsitteitä (esim. hakemistot, verkot, järjestäminen) osana monimutkaisempien laskennallisten ongelmien ratkaisua ja valita tunnetuista algoritmeista tilanteeseen sopivan esim. aikavaativuuden perusteella

Esitietovaatimuksena on Ohjelmoinnin perus- ja jatkokurssi sekä Johdatus yliopistomatematiikkaan, tai vastaavat tiedot.

Web-palvelinohjelmointi Java, 5 op

Johdatus tietoliikenteeseen, 2 op

Elements of AI: Tekoälyn perusteet, 2 op

Kurssin suorittamisen jälkeen opiskelija osaa:

  • nimetä autonomisuuden ja adaptiivisuuden tekoälyn ominaispiirteiksi
  • erottaa toisistaan tieteiskirjallisuuden tekoälyn ja oikean tekoälyn
  • kuvailla tekoälyn keskeiset filosofiset kysymykset liittyen Turingin testiin ja kiinalaisen huoneen ajatuskokeeseen
  • muotoilla tosielämän ongelmia etsintäongelmina
  • muotoilla yksinkertaisia pelejä (kuten ristinolla) pelipuuksi
  • soveltaa minimax-periaatetta optimaalisten pelisiirtojen ratkaisemiseen rajoitetun kokoeisessa pelipuussa
  • ilmaista todennäköisyysarvoja luonnollisina frekvensseinä
  • soveltaa Bayesin kaavaa yksinkertaisissa skenaarioissa
  • selittää esiintyvyysharhan ja välttää sen bayesilaisen päättelyn avulla selittää miksi koneoppimista tarvitaan
  • erottaa ohjatun ja ohjaamattoman koneoppimisen tilanteet toisistaan
  • selittää seuraavan kolmen ohjatun koneoppimisen menetelmän periaatteet: lähimmän naapurin luokitin, lineaariregressio ja logistinen regressio
  • selittää, mitä neuroverkot ovat ja mihin tarkoituksiin ne sopivat
  • ymmärtää myös neuroverkkojen taustalla olevien menetelmien rajoitukset
  • ymmärtää tulevaisuuden ennustamisen vaikeus, jotta voit paremmin arvioida tekoälystä esitettyjen väitteiden uskottavuutta
  • tunnistaa joitakin tekoälyn merkittävimpiä yhteiskunnallisia vaikutuksia, kuten algoritmista syrjintää, väärennettyjä sisältöjä, yksityisyydensuojaa ja työelämän murrosta

Ei muodollisia esitietovaatimuksia lukiomatematiikan lisäksi (perusaritmetiikka, murtoluvut)

The Elements of AI, 2 op

After completing the course, the student will be able to:

  • Identify autonomy and adaptivity as key concepts of AI
  • Distinguish between realistic and unrealistic AI (science fiction vs. real life)
  • Express the basic philosophical problems related to AI including the implications of the Turing test and Chinese room thought experiment
  • Formulate a real-world problem as a search problem
  • Formulate a simple game (such as tic-tac-toe) as a game tree
  • Use the minimax principle to find optimal moves in a limited-size game tree
  • Express probabilities in terms of natural frequencies
  • Apply the Bayes rule to infer risks in simple scenarios
  • Explain the base-rate fallacy and avoid it by applying Bayesian reasoning
  • Explain why machine learning techniques are used
  • Distinguish between unsupervised and supervised machine learning scenarios
  • Explain the principles of three supervised classification methods: the nearest neighbor method, linear regression, and logistic regression
  • Explain what a neural network is and where they are being successfully used
  • Understand the technical methods that underpin neural networks
  • Understand the difficulty in predicting the future and be able to better evaluate the claims made about AI
  • Identify some of the major societal implications of AI including algorithmic bias, AI-generated content, privacy, and work

No formal prerequisites beyond high-school mathematics (basic arithmetics with fractions)

Tietojenkäsittelytieteen muita opintoja

Tietotekniikka ja yhteiskunta, 5 op

Kurssilla ei ole erityisiä ennakkotietovaatimuksia ja se sopii niin sivu- kuin pääaineopiskelijoille.

Cyber Security Base

Cyber Security Base with F-Secure is a free course series by University of Helsinki in collaboration with F-Secure Cyber Security Academy that focuses on building core knowledge and abilities related to the work of a cyber security professional.

Cyber Security Base: Introduction to Cyber Security, 1 op

Cyber Security Base: Securing Software, 3 op

Cyber Security Base: Course Project I, 1 op

Cyber Security Base: Advanced Topics, 3 op

Open un: Cyber Security Base: Course Project II, 1 op

Cyber Security Base: Capture The Flag, 1 op

Hakijapalvelut
Opinnoista kiinnostuneiden opintoneuvonta ja ilmoittautumiseen liittyvät asiat
Opiskelijaneuvonta
Avoimessa yliopistossa opiskelevien yleisneuvonta
DEFA-opinnot
Kysy hankkeesta ja opinnoista
Jaana Lampikoski, koulutusasiantuntija
Kysy opintotarjonnasta ja opiskelumuodoista
Kai Korpimies, lehtori
Kysy opintojaksojen sisällöistä