University of Joensuu - Computer Science

Tietojenkäsittelytieteen teoreettiset perusteet (3 ov)

Theoretical Foundations of Computer Science (3 cu)

FAQ

Luennot 20.1.- 1.4. ma, ti 12-14 Louhelasali Wilhelmiina Hämäläinen (whamalai@cs.joensuu.fi)

Laskuharjoitukset

ti 16-18 TD106 Anssi Kautonen
ke 14-16 B180 Roman Bednarik (englanniksi)
to 14-16 B180 Wilhelmiina Hämäläinen, TD106B Anssi Kautonen

Ajankohtaista

Kuvaus

Kurssin keskeisenä sisältönä on ongelmien formaali mallintaminen ja ratkaiseminen. Formaali mallintaminen voi kuulostaa tylsältä, mutta se kätkee taakseen hyvin tärkeitä ja kiinnostavia löytöjä. Ennen kuin ongelmaan voi alkaa suunnitella parasta mahdollista ratkaisualgoritmia, täytyy tietää, kuinka vaikeasta ongelmasta on kyse tai onko ongelma ylipäätänsä ratkaistavissa. Toisaalta itse ratkaisu - sen olemassaolo tai tehokkuus - on riippumaton käytettävästä ohjelmointikielestä tai muusta laskennallisesta välineestä ja siksi puhtaan abstrakti ratkaisu on useimmiten helpommin analysoitavissa. Ekskursioina kurssi esittelee myös joukon kiinnostavia käytännön sovelluksia formaaleille työkaluille, joihin tutustutaan. Tietojenkäsittelytieteen teoria antaa myös hyvät eväät filosofisille pohdinnoille tietokoneiden luomasta maailmasta sekä ihmisen ja koneen kilpajuoksusta.

Esitiedot

Esitietoina edellytetään Johdatus tietojenkäsittelytieteeseen ja matematiikan perusopintojakso tai vastaavat valmiudet. Kurssin alussa kerrataan tarvittavat matemaattiset peruskäsitteet.

Kurssin suoritus

Kurssin voi periaatteessa suorittaa kolmella vaihtoehtoisella tavalla:
  1. Ongelmalähtöisesti, jolloin suoritus koostuu opintopäiväkirjasta sekä laskuharjoituksista. Ongelmalähtöisestä menetelmästä tarkemmin alla.
  2. Itseopiskellen, jolloin suoritus koostuu kahdesta välikokeesta ja laskuharjoituksista.
  3. Loppukokeella. Kevään viralliset loppukokeet 16.5. ja 13.6. Epävirallinen koe 28.2. niille, joiden valmistuminen edellyttää pikaista tenttiä. Saa osallistua, jos lupaa päästä läpi!
Ongelmalähtöinen vaihtoehto on suositeltavin ja tutkimusten mukaan myös oppimistulokset ovat sillä tavalla parhaimpia. Mikäli haluat valita tämän kokeettoman syväoppimismenetelmän, ole valmis osallistumaan aktiivisesti "luentoihin" ja harjoituksiin sekä panostamaan opiskeluun myös kotona.

Ongelmalähtöinen oppiminen

Ongelmat

Ongelmalähtöinen oppiminen merkitsee sitä, että perinteisten luentojen sijasta asioita opitaan ongelmia ratkomalla. Aina välillä luennoija pitää pieniä opetustuokioita tarpeen mukaan. Kuten lienet huomannutkin, ei tietoa voi "kaataa päähän", vaan se on itse opittava. Ongelmalähtöisessä oppimisessa se kuitenkin tapahtuu melkeinpä varkain ongelmia ratkoessa. Ainoana ehtona on, että olet ennakkoluuloton ja valmis heittäytymään uusien ongelmien kimppuun sekä tarpeeksi sinnikäs selättämään ne. Sinun ei kuitenkaan tarvitse selviytyä yksin vaikeista asioista, vaan ongelmia pohjustetaan ryhmissä ja itseopiskelun jälkeen tulokset puretaan samassa ryhmässä. Tämän jälkeen luennoija voi vielä syventää opittua ja paneutua juuri niihin asioihin, jotka olivat vaikeimpia. Ongelmalähtöinen oppimisprosessi koostuu seuraavista vaiheista:
  1. Epäselvien käsitteiden selventäminen
  2. Ongelman määrittely
  3. Aivoriihi
  4. Ilmiötä kuvaavan selitysmallin rakentaminen
  5. Oppimistavoitteiden määrittely
  6. Itsenäinen opiskelu
  7. Opiskelutulosten purkusessio
Ongelmalähtöiseen metodiin tutustutaan ensimmäisellä luentokerralla. Siksi on tärkeää, että olet paikalla heti ensimmäisellä luennolla! Toimiva ongelmalähtöinen oppiminen edellyttää myös aktiivista osallistumista luentoihin (=ongelmien pohjustus- ja purkutilaisuuksiin). Ongelmalähtöisesti opiskelevilta ei edellytetä koetta, mutta sekä luennoijalle että itsellesi on hyvää palautetta, jos silti teet kokeet. Hyvin mennyt koe voi myös korottaa arvosanaasi! Sen sijaan jokaisen ongelmiaratkovan tulee palauttaa viikottain palanen luentopäiväkirjaa, joka sisältää ongelmaraportin sekä pohdintoja niin opitusta kuin oman oppimisen edistymisestä.

Alustava ohjelma

kaikki materiaali tähän saakka
pdf
  1. Johdanto
  2. Äärelliset automaatit ja säännölliset kielet
  3. Kieliopit ja jäsentäminen
    VIIKKO 8:
    TAIDENÄYTTELY ti 11.3 luennolla
    Välikoe pe 14.3. klo 12.00-15.00 TD106

  4. Turingin koneet ja rajoittamattomat kielet
  5. Ratkeavuus ja ratkeamattomuus
  6. Laskennan vaativuusteoriaa Vapaaehtoinen projektityö 1 ov

Kirjallisuus

Kurssilla ei ole yhtä virallista kurssikirjaa, mutta sen sijaan joukko suositeltavaa kirjallisuutta. Kurssin kuluessa päivitän ylläolevaa listaa kuhunkin aihepiiriin liittyvistä sopivista kirjan kohdista. Kannattaa silti tutustua omatoimisesti muuhunkin kirjallisuuteen! Lisäksi pistän verkkoon luentomateriaalia, joka kattaa koko kurssin sisällön (ja joista luennoidaan tarpeen mukaan) pdf:nä - niitä voi käyttää runkona, joista itse täydentää mieleisensä muistiinpanot. Paras tapa oppia on laatia oma oppimateriaali!

Muuta materiaalia