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

Avoimessa yliopistossa voit opiskella tietojenkäsittelytieteen perusopinnot ja osia tietojenkäsittelytieteen aineopinnoista. Tarjolla on myös runsaasti kaikille avoimia mooceja (massive open online course) ja alan erikoiskursseja.

Näiden lisäksi (ja yhteydessä) Helsingin yliopiston tietojenkäsittelytieteen osasto tarjoaa yhdessä Avoimen yliopiston kanssa opetus- ja kulttuuriministeriön tukemia, kaikille avoimia, laadukkaita ja maksuttomia opintoja ICT- ja ohjelmistoalan osaajapulan helpottamiseksi:

Digital Education for All (DEFA)
DEFA-kokonaisuuden tietojenkäsittelytieteen perusopinnot vastaa ensimmäisen vuoden kandidaattiopintoja. Voit ilmoittautua kursseille Avoimen yliopiston opinto-ohjelmien Ilmoittaudu-linkistä tai DEFA-hankkeen verkkosivujen kautta. Kaikkiin DEFA-opintoja koskeviin vastataan osoitteesta DEFA-help@cs.helsinki.fi.

Pilvipohjaiset web-sovellukset
Tietotekniikan perusopintojen pohjalle perustuva koodarikoulutus Pilvipohjaiset web-sovellukset soveltuu ohjelmistoalan ammattilaisille ja sellaisiksi haluaville. Kurssien sisältöön tai suoritukseen liittyviin kysymyksiin saat nopeimmin vastauksen kurssisivuilta tai kurssien vastuuhenkilöltä.

Tekoäly ja datatiede sekä Tietoturva (Cyber security base)
Tekoäly ja datatiede sekä Tietoturva (Cyber security base) -kokonaisuudet ovat avoimia kaikille kiinnostuneille, eikä opintojen aloittaminen vaadi tietotekniikan perusopintojen esitietoja. Opinnot soveltuvat muun muassa HR:n, kaupan alan tai viestinnän asiantuntija- tai johtotehtehtävissä toimiville sekä alan opiskelijoille. Osa yksittäisistä kursseista saattaa sisältää esitietovaatimuksia tai suosituksia kurssien suoritusjärjestykseksi. Nämä tiedot löydät opinto-ohjelmista. 

Opintojen sisällöt ja aikataulut löydät opinto-ohjelmista (ks. alla). Opintoihin ilmoittaudutaan kussakin opinto-ohjelmassa olevan Ilmoittaudu-linkin kautta. Lisätietoa Helsingin yliopiston tietojenkäsittelytieteen osaston opintokokonaisuuksista löydät myös osoitteesta mooc.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
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 niin mooc-kurssilla kuin monimuotokurssillakin. Monimuotokurssilla on kuitenkin myös aloitusluento, luentotallenteita, harjoitustapaamisia ja ohjausta ohjelmointiin. Monimuotokurssilla on opetusta kun taas mooc-kurssilla opiskellaan enemmän itsenäisesti. Verkkokurssi on monimuotokurssin harjoitusryhmä ilman harjoitustapaamisia.

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.

Voit suorittaa kurssin täysin verkossa niin mooc-kurssilla kuin monimuotokurssillakin. Monimuotokurssilla on kuitenkin myös luentotallenteita, harjoitustapaamisia ja ohjausta ohjelmointiin.

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://ohjelmointi-19.mooc.fi/

Tietokoneen toiminnan perusteet, 2 op

  • Tietokonelaitteiston pääosat, mikä on sulautettu järjestelmä ja kuinka se eroaa tietokoneesta, väylän toiminnan perusajatus, mikä on ohjelma ja minkälaisia esitysmuotoja sillä voi olla, laitteistokomponenttien väliset suuret nopeuserot ja niiden vaikutukset järjestelmään.
  • Kuinka suoritin toteuttaa konekäskyjen suorituksen käskyjen nouto- ja suoritussyklin avulla, konekäskyjen erilaiset tavat viitata muistiin, välimuistin toiminnan perusteet, prosessorin erilaiset suoritustilat ja erityisesti etuoikeutetun suoritustilan tarkoitus, milloin ja miten prosessorin suoritustila vaihtuu, keskeytysten merkityksen ja toteutuksen konekäskyjen suorituksen tasolla, keskeytysjärjestelmän toiminta, valinta- ja toistorakenteiden toiminnan konekielen tasolla.
  • Kokonaislukujen esitysmuodon muutokset binääri-, heksadesimaali- ja desimaalijärjestelmien välillä, kuinka monitavuinen tieto voidaan tallettaa sanoihin kahdella eri tavalla, kokonais- ja liukulukujen esitysmuodot sekä merkkien ja merkkijonojen tallennuksen periaatteet. Karkealla tasolla kuinka (liikkuvat) kuvat ja äänet esitetään laitteistossa, minkälaista tieto suoritin osaa itse käsitellä ja kuinka muun tyyppisiä tietoja käsitellään ohjelmallisesti.
  • Prosessin käsite ja sen esitysmuodon käyttöjärjestelmässä, prosessin erilaiset tilat ja tilojen väliset tilasiirtymät, milloin ja miten suorituksessa oleva prosessi vaihtuu. Opiskeliaja osaa luetella käyttöjärjestelmän perustoiminnot (prosessien, muistin, tiedostojen, laitteiden ja verkon hallinta), selittää käännöksen, linkityksen ja latauksen tarkoituksen, käyttöjärjestelmän tavoitteet ja perustoiminnot sekä käyttäjän näkökulmasta että käyttöjärjestelmän ylläpitäjän näkökulmasta, käyttöjärjestelmä toteutusmekanismin erilaisten (etuoikeutettujen) aliohjelmien tai prosessien avulla, kuinka tietokoneen laskentakyvyn rajoja voidaan tutkia kokonaislukuarvoisten funktioiden avulla.

On suositeltavaa, että opiskelija osaa ohjelmoida korkean tason kielellä ennen kurssille osallistumista. Esimerkiksi kurssi Ohjelmoinnin perusteet antaa hyvät esitiedot. Ohjelmointitaito ei kuitenkaan ole välttämätöntä.

Tietokoneen toiminnan jatkokurssi, 3 op

  • Osaa selittää väylä- ja muistihierarkian perusajatukset. Osaa selittää välimuistin ja virtuaalimuistin toiminnan perusteet. Osaa selittää, milloin ja miten prosessorin suoritustila vaihtuu. Osaa selittää keskeytysjärjestelmän toiminnan.
  • Osaa toteuttaa globaalien muuttujat, vakiot, tietueet ja yksinkertaiset taulukot ja selittää niiden tilanvarauksien toteutuksen käännöksen, latauksen tai suorituksen aikana. Osaa ohjelmoida valinta- ja toistorakenteet sekä toteuttaa aliohjelmien kutsut. Osaa toteuttaa tietueiden, olioiden ja moniulotteisten taulukoiden (eri tavoin talletettuna) tilanvaraukset ja niihin viittaamisen. Osaa selittää globaalien ja paikallisten tietorakenteiden erot tilanvarauksessa ja niihin viittaamisessa ja osaa käyttää aktivointitietueita ja aktivointitietuepinoa (rekursiivisten) aliohjelmien toteutuksessa.
  • Osaa selittää ja ottaa huomioon liukulukujen tarkkuuden muutokset laskennan aikana. Osaa käyttää tiedon muuttumattomuuden suojauksen perusmenetelmiä (pariteettibitti, Hamming-koodi).
  • Osaa selittää prosessin käsitteen ja sen esitysmuodon käyttöjärjestelmässä sekä prosessin erilaiset tilat ja niiden väliset tilasiirtymät. Osaa selittää, milloin ja miten suorituksessa oleva prosessi vaihtuu. Osaa luetella käyttöjärjestelmän perustoiminnot. Osaa selittää käännöksen, linkityksen ja latauksen perusideat.
  • Osaa selittää käyttöjärjestelmän tavoitteet ja perustoiminnot sekä käyttäjän näkökulmasta että käyttöjärjestelmän ylläpitäjän näkökulmasta. Osaa selittää käyttöjärjestelmäpalvelujen toteutusmekanismin erilaisten (etuoikeutettujen) aliohjelmien tai prosessien avulla. Osaa selittää staattisen ja dynaamisen linkityksen edut ja haitat.
  • Osaa selittää käyttöjärjestelmän laitteistorajapinnan toteutuksen laiteajurien ja keskeytyskäsittelijöiden avulla. Osaa selittää tiedostopalvelimen ja tiedostovälimuistin perusidean. Osaa selittää levymuistin rakenteen ja toiminnan sekä laskea levymuistiin talletetun tiedoston saantiajan. Osaa luokitella erilaiset I/O-menetelmät.
  • Osaa selittää Java-ohjelmien erilaiset suoritustavat ja niiden eroavaisuudet. Osaa selittää Java-virtuaalikoneen (JVM) perusrakenteen ja toiminnan sekä valita tiettyyn sovellukseen sopivan Java-ohjelmien suoritustavan. Osaa selittää JIT-kääntämisen perusidean.

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

Tämä kurssi on suoraan jatkoa Tietokoneen toiminnan perusteet -kurssille, joka tulee olla suoritettuna ensin.

Tietojenkäsittelytieteen aineopintoja

Johdatus tietoliikenteeseen, 2 op

Kurssin suoritettuaan opiskelija

  • osaa selittää ”miten Internet toimii” .
  • osaa kuvailla internetin keskeisten palvelujen toimintaa yleisellä tasolla.
  • osaa selittää yleisellä tasolla miten lähettävän ohjelman viesti saadaan IP-pakettiin ja miten IP-paketti välitetään Internetissä viestin vastaanottajalle.
  • osaa selittää reitittimen, keskittimen ja kytkimen toiminnallisuuksia. Osaa kuvata pakettien, kehysten ja muiden viestien sisältöjä.
  • tuntee kotiverkon toimintaan liityvät keskeiset käsitteet ja osaa niiden avulla arvioida verkon toiminnallisuutta käyttäjän näkökulmasta.

Tietoliikenteen perusteet 2, 3 op

Tämä on opintojakson Tietoliikenteen perusteet jälkimmäinen osasuoritus, siksi oppimistavoitteet ovat pääkurssin kanssa yhtenäiset.

Kurssin suoritettuaan opiskelija

  • osaa selittää ”miten Internet toimii” ja perustellen kuvata siinä käytettyjä rakenteellisia, teknisiä ja toiminnallisia periaatteita (kuten toimintamallit, rakenneosat, erilaiset osoitteet ja tunnisteet, datan siirto protokollapinon avulla, luotettava kuljetuspalvelu, vuonvalvonta, TCP:n ruuhkanhallinta).
  • osaa selittää asiakas-palvelija malliin perustuvien verkkosovellusten sekä niiden toteutuksessa käytettyjen sovellusprotokollien periaatteet. Osaa kuvata vertaistoimijamallin idean. Osaa selittää, mihin tarvitaan nimipalvelua (DNS) ja kuvata sen rakenteen ja toiminnan.
  • osaa selittää toisaalta miten lähettävän ohjelman viesti saadaan IP-pakettiin ja toisaalta miten IP-paketti välitetään Internetissä viestin vastaanottajalle.
  • osaa selittää reitittimen, keskittimen ja kytkimen toiminnan ja erot. Osaa kuvata pakettien, kehysten ja muiden viestien sisältöjä ja rakenteita.
  • osaa kuvata tietoliikenteeseen kohdistuvat riskitekijät ja turvallisuusuhat. Osaa selittää kuinka palomuuri toimii

Edeltävä suoritus Tietoliikenteen perusteet 1.

Lisäksi:

  • Tietokoneen toimintakurssilla käsitellyistä teemoista tarvitaan keskeytykset ja oheislaitteiden käyttötapojen ymmärtäminen, bittitason esityksen tunteminen
  • Tietorakenteet ja algoritmit kurssilta tarvitaan Dijkstran algoritmin ja Bellman-Ford -algoritmin tuntemus tai ainakin yleinen algoritmien lukutaito

Kummankaan kurssin ei tarvitse olla pakollinen ennakkotieto, mutta silloin joutuu nämä teemat opiskelemaan itsekseen kurssin kuluessa.

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.

Algoritmit ongelmanratkaisussa, 10 op

Kurssin jälkeen opiskelija

  • osaa C++-kielen perusasiat ja pystyy toteuttamaan sillä algoritmeja
  • tuntee tärkeimmät C++-standardikirjaston tietorakenteet ja algoritmit
  • osaa käyttää binäärihakua, dynaamista ohjelmointia ja segmenttipuuta monipuolisesti algoritmien suunnittelussa
  • tuntee joitakin edistyneempiä algoritmitekniikoita (esim. Z-algoritmi, verkon 2-yhtenäisyys, treap-rakenne)

Esitietovaatimuksena on kurssi Tietorakenteet ja algoritmit (tai vastaavat tiedot)

Kurssilla on hyötyä hyvästä ohjelmointitaidosta ja matemaattisesta yleissivistyksestä

Computing and Society, 5 op

After successful completion of the course, the student will be able to:

  • describe some major social promises and risks associated with the developments in information and communications technology, identify some technical solutions and evaluate some hardware and software designs in their social context
  • analyze and formulate ethical arguments and identify some common logical fallacies and express some of the main differences between the major theories in normative ethics
  • explain what professionalism, the ethical responsibility of a professional and professional ethics are about. Knows some major information technology organizations. Can analyze the roles of professionals and public policy in a global computing issue, distinguish between some different views on computer ethics and summarize the main points in the history of the research field
  • identify ethical issues in software development, apply codes of ethics, conduct and practice in decision-making, evaluate the codes and describe some of their strengths and weaknesses, explain the importance of public good in decision-making and identify the progressive stages in a whistle-blowing incident
  • discuss the philosophical foundations of privacy rights and refer to some relevant legislation, give a wide overview of the challenges to privacy in the networked world, including the collection and merging of user data, various kinds of surveillance and cloud computing. Can explain some technological solutions for privacy protection and the importance of proper anonymization. Understands and is able to express the main idea of differential privacy at a general level, describe some background for and some social implications of the so-called hacktivism
  • discuss the philosophical bases of intellectual property, refer to some relevant legislation and discuss some associated problems. The topics include copyright, software patents, licensing and plagiarism. Understands and is able to explain the ideas behind open-source software development and free software. Can distinguish between some relevant and widely-used open source licenses and is able to describe some of the main differences between them
  • identify the aspects of sustainable development, explain how ICT and the choices made by the developers and the users can both promote and threaten sustainable development
  • understands the importance of effective professional communication, including clear documentation, can identify some associated problems, distinguish between different types of collaboration tools and evaluate some of their strengths and weaknesses

The student should also be familiar with the other topics listed under the title "Course content". The topics covered in the course are found in the knowledge area "Social Issues and Professional Practice" as presented in the Computer Science Curricula by ACM and IEEE.

No prerequisites.

Tietotekniikka ja yhteiskunta, 5 op

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

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.

Pilvipohjaiset web-sovellukset

Tämä maksuton kurssisarja antaa perustiedot modernien verkkopohjaisten sovellusten kehittäjälle. Se soveltuu ohjelmistoalan ammattilaisille ja sellaisiksi haluaville. Esitietoina kursseille ovat tietotekniikan perusopinnot tai vastaava osaaminen.

Web-palvelinohjelmointi Java, 5 op

1. Johdanto web-sovellusten toimintaan ja internetin perusosiin.

2. Näkymät, tietokannat ja tietokanta-abstraktiot.

3. Tietokannat ja tietokanta-abstraktiot.

4. Mediatyypit ja tiedostojen tallentaminen. Ohjelmistokehitysprosessi, kerrosarkkitehtuuri ja sovellusten automaattinen testaaminen. Sovelluksen siirtäminen verkkoon.

5. HTTP-protokolla ja evästeet. Autentikaatio ja autorisaatio.

6. Toistuvat rakenteet ja fragmentit. Tyylitiedostojen käyttäminen. Syötteiden validointi. Rajapinnat ja REST.

7. Selainohjelmistot ja palvelinohjelmistot. Hieman tietoturvaa. Sovellusten skaalautuvuus. Reaktiivinen ohjelmointi.

Esitietovaatimuksena on kurssit Ohjelmoinnin perusteet (TKT10002), Ohjelmoinnin jatkokurssi (TKT10003) ja Tietokantojen perusteet (TKT10004).

Full Stack -websovelluskehitys, 3-8 op

Full Stack Web Development, 3-8 op

Full Stack -websovelluskehitys harjoitustyö, 1-10 op

Full Stack Web Development Project, 1-10 op

DevOps with Docker, 1-3 op

1-3 credits depending on course exercise completion.

1. credit: Student has learned what docker is and knows how to use it in different scenarios.
2. credit: Student has general understanding of docker-compose and is able to implement advanced docker configurations.
3. credit: Student has deeper understanding of docker ecosystem and its use cases.

Course does not have prerequisites, but it is recommended for students to have at least some experience in web development.

Ohjelmistotuotanto, 5-6 op

Kurssin suoritettuaan opiskelija

  • Tuntee ohjelmistoprosessin, erityisesti ketterän prosessin vaiheet

  • Tietää miten vaatimuksia hallitaan ketterässä ohjelmistotuotantoprosessissa

  • Ymmärtää suunnittelun, toteutuksen ja testauksen vastuut ja luonteen ketterässä ohjelmistotuotannossa

  • Ymmärtää ohjelmiston laadunhallinnan perusteet

  • Osaa toimia ympäristössä, jossa ohjelmistokehitys tapahtuu hallitusti ja toistettavalla tavalla

Esitietovaatimuksena ovat Ohjelmoinnin jatkokurssi ja Tietokantojen perusteet tai vastaavat tiedot.

Ohjelmistotuotantoprojekti, 10 op

Kurssin suoritettuaan opiskelija osaa toimia osana ketterien periaatteiden mukaan toimivaa ohjelmistokehitystiimiä määrittelyä, suunnittelua, toteutusta, laadunhallintaa ja tuotannossa operointia edellyttävissä rooleissa.

Esitietovaatimuksena ovat kurssit Ohjelmistotuotanto ja Full stack -websovelluskehitys.

Tekoäly ja datatiede

Tässä maksuttomassa kurssisarjassa annetaan perustiedot tekoälystä ja koneoppimisesta. Opinnot voi aloittaa ilman ohjelmointitaitoa. Syventävillä kursseilla päästään perehtymään myös tekoälyn toteutustekniikkoihin.

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: Introduction to AI, 2 op

Elements of AI: Grunderna i artificiell intelligens, 2 op

Efter avslutad kurs kan den studerande

  • ange de egenskaper som kännetecknar artificiell intelligens (autonomi och adaptivitet)
  • skilja på science fiction-litteratur och äkta artificiell intelligens
  • beskriva de filosofiska frågeställningarna inom artificiell intelligens som har att göra med Turingtestet och tankeexperimentet det kinesiska rummet
  • formulera problem från verkliga livet som sökproblem
  • beskriva enkla spel (t.ex. luffarschack) som spelträd
  • tillämpa minimax-principen för att reda ut de optimala dragen i ett avgränsat spelträd
  • uttrycka sannolikhetsvärden som naturliga frekvenser
  • tillämpa Bayes sats i enkla scenarier
  • förklara vilseledande prevalens och undvika den
  • med hjälp av bayesiansk slutledning förklara varför maskininlärning behövs
  • skilja mellan situationer med övervakad och oövervakad maskininlärning
  • förklara följande tre principer inom övervakad maskininlärning: närmaste granne-metoden, linjär regression och logistisk regression
  • förklara vad neuronnät är och för vilka ändamål de är lämpliga
  • förstå också de begränsningar som finns i neuronnätens underliggande modeller
  • förstå svårigheterna i att förutspå framtiden, så att hen bättre kan ta ställning till trovärdigheten i påståenden om artificiell intelligens
  • känna igen några av de mest betydelsefulla konsekvenserna artificiell intelligens kan ha i samhället, till exempel algoritmisk diskriminering, förfalskat innehåll, integritetsskydd och förändringar i arbetslivet.

För kursen krävs inga formella förhandskunskaper utöver gymnasiematematik (grundläggande aritmetik, bråktal). Aritmetik betyder grundläggande matematik; addition, subtraktion, multiplikation och division.

Data Analysis with Python, 5 op

  • Can confidently write basic level Python programs without constantly consulting language/library documentation.
  • Can apply efficient and elegant Pythonic idioms to solve problems
  • Knows the different phases of data analysis pipeline
  • Knows the fundamental data types array, Series and DataFrame
  • Can clean data to form consistent Series and DataFrames without anomalies
  • Can select subsets, transform, reshape and combine data
  • Can extract summary statistics from data (min, max, mean, median, standard deviation)
  • Knows the main types of machine learning (supervised learning: regression and classification, unsupervised learning: clustering, dimensionality reduction, (density estimation))
  • Knows the estimator API of Scikit-Learn (choose model class, choose hyperparameters, form feature matrix and target vector, fit model, transform data or predict labels or responses)
  • Can form feature matrix and target vector suitable for Scikit-Learn's model fitting algorithms
  • Can visualize data as simple plots or histograms
  • Can apply basic data analysis skills to a simple project on an application field

Programming skills and basic knowledge of probability calculus and linear algebra.

The compulsory basic level courses in Bachelor's Programme in Computer Science form a sufficient background.

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

Cyber Security Base: Course Project II, 1 op

Cyber Security Base: Capture The Flag, 1 op

Tietojenkäsittelytieteen muut opinnot

Tietokone työvälineenä, 1 op

Varmistaa, että opiskelijalla on tarvittavat käytännön taidot tietojenkäsittelytieteen opintoihin. Tavoite on, että opiskelija oppii komentorivin alkeet, käyttämään versionhallintaa suoraviivaisesti koodiprojektissa, sekä luomaan yksinkertaisen staattisen verkkosivun.

Ei esitietovaatimuksia.

Computing Tools for CS Studies, 1 op

Ensure that student has required practical skills for studies in Computer Science. The goal is that student learns basics of command line, using VCS (Version control systems) in simple coding project, as well as making a simple static website.

No prerequisites.

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ä