Tietorakenteet ja algoritmit (ohjattu itseopiskelu)

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

24.10.2014 16.00 A111 ja B123
16.12.2014 09.00 A111 ja CK112
Vuosi Lukukausi Päivämäärä Periodi Kieli Vastuuhenkilö
2014 syksy 01.09-12.12. 1-2 Suomi Antti Laaksonen

Luennot

Aika Huone Luennoija Päivämäärä
Ti 14-16 CK112 Antti Laaksonen 02.09.2014-02.09.2014
Pe 14-16 CK112 Antti Laaksonen 05.09.2014-17.10.2014
Pe 14-16 CK112 Antti Laaksonen 31.10.2014-12.12.2014

Harjoitusryhmät

Group: 1
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Ma 14-16 CK107 Kristiina Paloheimo 08.09.2014—13.10.2014
Ma 14-16 C222 Kristiina Paloheimo 03.11.2014—08.12.2014
Group: 2
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Ma 16-18 D122 Kristiina Paloheimo 08.09.2014—13.10.2014
Ma 16-18 D122 Kristiina Paloheimo 03.11.2014—08.12.2014
Group: 3
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Pe 10-12 D122 Antti Laaksonen 05.09.2014—10.10.2014
Pe 10-12 D122 Antti Laaksonen 31.10.2014—05.12.2014
Group: 4
Aika Huone Ohjaaja Päivämäärä Huomioitavaa
Pe 12-14 C123 Kristiina Paloheimo 05.09.2014—05.09.2014
Pe 12-14 D123 Kristiina Paloheimo 12.09.2014—10.10.2014
Pe 12-14 D122 Kristiina Paloheimo 31.10.2014—05.12.2014

Non finnish students, contact the lecturer beforehand.

Yleistä

Kurssin tulokset julkaistu!

https://docs.google.com/spreadsheets/d/1SkZFd-c-0QrIvd9hCvVGdC8A2XVEBAgIAryIEhQUfsk/pubhtml?gid=594655184&single=true

 

Tervetuloa syksyn kurssille Tietorakenteet ja algoritmit!

Kurssin keskeinen kysymys on: miten ohjelman saa toimimaan tehokkaasti, jos käsiteltävän tiedon määrä on suuri? Kurssilla opetellaan tietorakenteiden ja algoritmien teoriaa sekä niiden soveltamista käytännön ohjelmoinnissa.

Kurssi muodostuu laskaritehtävistä ja TMC-tehtävistä. Laskaritehtävät käsitellään viikoittain laskaritilaisuuksissa, jotka sijoittuvat viikonlopun ympärille: ensimmäinen laskaritilaisuus on perjantaina klo 10-12 ja kaksi muuta seuraavana maanantaina klo 14-16 ja 16-18. TMC-tehtävät ovat ohjelmointitehtäviä, jotka palautetaan automaattisesti tarkistettavaksi TMC-järjestelmään.

Kurssilla on kevään versioon verrattuna vähemmän luentoja: vain yksi perjantaisin klo 14-16. Luennolla käydään läpi kurssin oleellisia asioita, ja silloin on myös hyvä tilaisuus kysyä epäselvistä asioista.

Kurssilla on keskeisessä osassa tietorakenteiden ja algoritmien ohjelmointi, joten kurssille tuleminen vaatii sujuvan ohjelmointitaidon (esitietona Ohjelmoinnin jatkokurssi). Kurssilla tarvitsee myös jonkin verran matematiikkaa tietorakenteiden ja algoritmien analysoinnissa (esitietona Johdatus yliopistomatematiikkaan, voi suorittaa samaan aikaan kurssin kanssa).

Kurssin materiaaliin ja tehtäviin pääset tästä: http://www.cs.helsinki.fi/u/ahslaaks/tira14/

Muistathan tulla myös kurssin IRC-kanavalle #tira.

Uutta! Viikosta 5 lähtien toiminnassa on Tira-paja, jossa saa ohjausta erityisesti TMC-tehtävien tekemiseen. Paja kokoontuu aluksi maanantaisin klo 13–16 ja torstaisin klo 14–16 Linkki-luokassa (C221). Tarvittaessa pajan aikoja lisätään, jos paja saavuttaa suosiota.

Kurssin aikataulu: aikataulussa kursiivilla oheislukemisen sivut Cormenista.

  • aloitusluento ti 2.9. (materiaali)
  • viikko 1: algoritmin tehokkuus
    luento pe 5.9. (materiaali), laskarit pe 5.9. ja ma 8.9., TMC-deadline ma 8.9.
    • Johdanto, tehokkuus: 3-28, 43-60
  • viikko 2: logaritmi ja järjestäminen
    luento pe 12.9. (materiaali), laskarit pe 12.9. ja ma 15.9., TMC-deadline ma 15.9.
    • Logaritmit: 53-59
  • viikko 3: rekursiiviset algoritmit
    luento pe 19.9., laskarit pe 19.9. ja ma 22.9., TMC-deadline ma 22.9.
    • Rekursio:  65-67, (68-83), 83-97
    • Dynaaminen ohjelmointi: 359-370
      • Asia menee Cormenissa syvemmälle kuin mitä kurssilla vaaditaan!
  • viikko 4: pino, jono ja lista
    luento pe 26.9. (materiaali), laskarit pe 26.9. ja ma 29.9., TMC-deadline ma 29.9.
    • Pino, jono ja lista: 229-240
  • viikko 5: puurakenteet
    luento pe 3.10. (materiaali), laskarit pe 3.10. ja ma 6.10., TMC-deadline ma 6.10.
    • Yleistä puista: 1176-1179, 246-247
    • Binäärihakupuu: 286-298
  • viikko 6: tasapainotettu binääripuu
    luento pe 10.10. (materiaali), laskarit pe 10.10. ja ma 13.10., TMC-deadline ma 13.10.
    • Ei Cormenissa!
  • kertausluento pe 17.10.
  • kurssikoe 1 pe 24.10. klo 16 (tehtävät ja ratkaisut)
  • viikko 7: hajautustaulu
    luento pe 31.10., laskarit pe 31.10. ja ma 3.11., TMC-deadline ma 3.11.
  • viikko 8: kekorakenne
    luento pe 7.11., laskarit pe 7.11. ja ma 10.11., TMC-deadline ma 10.11.
  • viikko 9: järjestämisalgoritmit
    luento pe 14.11. (materiaali), laskarit pe 14.11. ja ma 17.11., TMC-deadline ma 17.11.
  • viikko 10: verkkojen alkeet
    luento pe 21.11. (materiaali), laskarit pe 21.11. ja ma 24.11., TMC-deadline ma 24.11.
  • viikko 11: lyhimmät reitit
    luento pe 28.11., laskarit pe 28.11. ja ma 1.12., TMC-deadline ma 1.12.
  • viikko 12: virittävät puut
    luento pe 5.12., laskarit pe 5.12. ja ma 8.12., TMC-deadline ma 8.12
  • kertausluento pe 12.12.
  • kurssikoe 2 ti 16.12. klo 9 (tehtävät)

Kurssilla on mahdollista saada yhteensä 60 pistettä: 10 pistettä laskareista, 10 pistettä TMC-tehtävistä sekä 20 pistettä kummastakin kokeesta. Pistemäärä 30 riittää kurssin läpäisyyn ja pistemäärä 50 arvosanaan 5. Kurssista saa oletuksena 8 op, mutta ratkomalla ainakin 80% tehtävistä saa 9 op ja ratkomalla ainakin 95% tehtävistä saa 10 op.