Tietorakenteet ja algoritmit

58131
8-10
Algoritmit ja koneoppiminen
Aineopinnot
Perustietorakenteet kuten pinot, jonot, puut ja verkot sekä niiden käsittelyalgoritmit. Esitiedot: Ohjelmoinnin jatkokurssi (Java-ohjelmointi) ja Johdatus yliopistomatematiikkaan (Johdatus diskreettiin matematiikkaan). Huom: Kurssin harjoitukset alkavat jo ensimmäisellä luentoviikolla. Kurssikirja: T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein: Introduction to Algorithms, 3rd ed., MIT Press, 2009.

Koe

06.03.2017 16.00 A111 ja B123
10.05.2017 16.00 A111 ja B123
Vuosi Lukukausi Päivämäärä Periodi Kieli Vastuuhenkilö
2017 kevät 16.01-05.05. 3-4 Suomi Jyrki Kivinen

Luennot

Aika Huone Luennoija Päivämäärä
Ma 10-12 A111 Jyrki Kivinen 16.01.2017-27.02.2017
Ke 10-12 A111 Jyrki Kivinen 18.01.2017-01.03.2017
Ma 10-12 A111 Jyrki Kivinen 13.03.2017-10.04.2017
Ke 10-12 A111 Jyrki Kivinen 15.03.2017-12.04.2017
Ma 10-12 A111 Jyrki Kivinen 24.04.2017-24.04.2017
Ke 10-12 A111 Jyrki Kivinen 26.04.2017-03.05.2017

Harjoitusryhmät

Group: 1
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
To 14-16 D122 Toni Annala 19.01.2017—02.03.2017
To 14-16 D122 Toni Annala 16.03.2017—06.04.2017
To 14-16 D122 Toni Annala 20.04.2017—04.05.2017
Group: 2
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
To 16-18 D122 Toni Annala 19.01.2017—02.03.2017
To 16-18 D122 Toni Annala 16.03.2017—06.04.2017
To 16-18 D122 Toni Annala 20.04.2017—04.05.2017
Group: 3
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Pe 10-12 D122 Saska Dönges 20.01.2017—03.03.2017
Pe 10-12 B222 Saska Dönges 17.03.2017—07.04.2017
Pe 10-12 B222 Saska Dönges 21.04.2017—05.05.2017
Group: 4
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Ke 14-16 C222 Jyrki Kivinen 18.01.2017—01.03.2017
Ke 14-16 C222 Jyrki Kivinen 15.03.2017—12.04.2017
Ke 14-16 C222 Jyrki Kivinen 26.04.2017—03.05.2017

Information for international students

The course will be given in Finnish.  This means that lectures and exercise groups will be in Finnish, and there will be compulsory reading material that is written in FInnish.  If you cannot follow the course in FInnish but still wish to take it, please contact the lecturer (Jyrki Kivinen) as soon as possible to discuss alternative reading materials etc.  However, this option will include some extra work also on part of the student.

If you can follow teaching in Finnish but would still prefer to take the exams in English, this can be arranged, but again please contact the lecturer about this as soon as possible.

 

Yleistä

Ilmoittaudu kurssille ennen se alkua WebOodissa: https://courses.helsinki.fi/fi/58131/117040585.

Kurssin sisältö on oleellisesti samat kuin keväällä 2016.

Myös opetusmuodot ovat pääosin samat kuin keväällä 2016.  Suurimpana muutoksena on, että kurssimateriaalin jakamisessa ja laskuharjoitustehtävien palautuksessa käytetään Moodlea.

Kurssimateriaalia pääsee katsomaan vierailijana ilman kättäjätunnusta, mutta kurssin suorittaminen edellyttää kirjoittautumista Moodleen omalla tunnuksella harjoitusten palauttamista varten. Kurssin Moodle-sivu: https://moodle.helsinki.fi/course/view.php?id=23234.

Kurssilla tehdään myös ohjelmointiharjoituksia TMC-järjestelmällä. Kurssin TMC-sivu: https://www.cs.helsinki.fi/group/tirapaja/k17/

Kurssin suorittaminen

Kurssiin kuuluu kaksi pakollista kurssikoetta.  Kokeet ovat periodien III ja IV koeviikoilla.  Tarkista kokeiden tarkempi ajankohta laitoksen koeaikataulusta.  Kokeessa saa olla mukana yhdelle A4-arkille itse käsin kirjoitettu "lunttilappu", jonka molemmilla puolilla saa olla tekstiä.  Kokeiden lisäksi kurssisuoritukseen kuuluu harjoitustehtävien tekeminen.

Kurssin maksimipistemäärä on 60 ja jakautuu osasuorituksille seuraavasti:

  • kaksi kurssikoetta: kumpikin 22 pistettä, eli yhteensä 44 pistettä
  • tavalliset laskuharjoitukset: 8 pistettä
  • ohjelmointitehtävät (TMC): 8 pistettä.

Kurssin hyväksyttyyn suoritukseen vaaditaan noin 30 pistettä ja korkeimpaan arvosanaan 5/5 vaaditaan noin 50 pistettä.  Lisäksi  hyväksymiseen vaaditaan, että kahden kurssikokeen yhteispistemäärä on vähintään 22 (eli puolet maksimista).  Laskuharjoitukset eivät ole pakollisia, mutta parhaisiin arvosanoihin pääseminen edellyttää luonnollisesti, että myös harjoituksista saa pisteitä.

Ohjelmointitehtävät tehdään TMC-järjestelmällä ja tarkastetaan automaattisesti.  Tavallisest laskuharjoitustehtävät palautetaan sähköisessä muodossa Moodleen ja arvostellaan siellä.  Tehtäviä on tarjolla selvästi enemmän kuin mitä tarvitaan maksimipistemäärään (8+8 pistettä), ja opiskelija voi halutessaan suorittaa enemmän tehtäviä ja saada kurssisuorituksen vastaavasti 9 tai 10 opintopisteen laajuisena.  Tarkemmat ohjeet tehtävien palauttamisesta, pisteytyksestä jne. tulevat Moodleen.

Sekä ohjelmointitehtävien että tavallisten laskuharjoitusten ohjaus järjestetään pajamuotoisesti.  Läsnäolo ei ole pakollista.  Opiskelija voi oman harkintansa mukaan olla osallistumatta ohjaukseen tai käydä yhdessä tai useammassa ryhmässä.  Ohjelmointitehtävien ohjausajat on ilmoitettu kurssin  TMC-sivulla.  Tavallisten laskuharjoitusten ohjausajat ovat tämän sivun yläosassa.

 

Kirjallisuus ja materiaali

Kurssi ei perustu mihinkään yksittäiseen oppikirjaan.  Kokeet perustuvat luennoilla ja harjoitustehtävissä käsiteltyihin asioihin.  Luentomateriaali on oleellisesti sama kuin kurssin edellisellä luennointikerralla.  Päivitetty versio luentomateriaalista ilmestyy Moodleen sitä mukaa kun kurssi etenee.  Tavallisten laskuharjoitusten tehtävät, mallivastaukset ja mahdollinen lisämateriaali ilmestyy Moodleen viikoittain.  Ohjelmointiharjoituksiin liittyvä materiaali ilmestyy kurssin TMC-sivulle.

Tietorakenteista ja algoritmeista on saatavilla lukuisia hyviä oppkirjoja, joita voi käyttää oheislukemistona.  Esitystavaltaan ja aihevalinnoiltaan lähinnä tätä kurssia on Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms.