Kaisa_2012_3_photo by Veikko Somerpuro

Enrol
30.12.2019 at 09:00 - 19.1.2020 at 23:59

Timetable

Description

  • Tietojenkäsittelytieteen kandiohjelma vastaa opintojaksosta
  • Opintojakso kuuluu tietojenkäsittelytieteen aineopintoihin (pakollinen oman koulutusohjelman opiskelijoille)
  • Opintojakso on tarjolla myös muiden koulutusohjelmien opiskelijoille

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

Opintojaksolla opittuja menetelmiä sovelletaan opintojaksolla Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit.

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

Ensimmäisen opiskeluvuoden kevätlukukausi

Opintojakso pidetään joka kevät koko lukukauden mittaisena (periodit III-IV). Opintojakso voidaan lisäksi järjestää muinakin ajankohtina esim. itseopiskeluversiona.

Opintojakson tarkempaa sisältöä päivitetään tarpeen mukaan. Keskeisiä aihealueita ovat esim.

  • algoritmien suunnittelun ja analyysin perustekniikoita: rekursio, silmukkainvariantti, iso-O-merkintä, iteratiivisten ja rekursiivisten algoritmien aika- ja tilavaativuus
  • järjestämisalgoritmit: lisäysjärjestäminen, lomitusjärjestäminen, pikajärjestäminen
  • perustietorakenteet: pino, jono, lista
  • hakemistorakenteet: hajautustaulu, hakupuut
  • verkot eli graafit: peruskäsitteet, polunetsintä, virittävät puut

Opintojakso perustuu laitoksella laadittuun luentomateriaallin. Suositeltu oheislukemisto on Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms.

Opiskelja tutustuu opintojakson aiheisiin luennoilla ja perehtymällä itsenäisesti opintojakson materiaaliin, oheislukemistoon ja esim. verkosta löytyvään lisämateriaaliin. Opiskelija syventää osaamistaan tekemällä muodoiltaan ja vaativuudeltaan vaihtelevia harjoitustehtäviä, mitä tuetaan ohjatuilla harjoitustilaisuuksilla.

Sekä harjoitustehtävät että kirjalliset kuulustelut otetaan arvostelussa huomioon. Kuulusteluilla on suurin vaikutus arvosanaan, mutta hyväksytty suoritus edellyttää myös ennalta ilmoitetun vähimmäismäärän tehtyjä harjoitustehtäviä.

Arvosteluasteikko on 1-5.

General exams last 3 hours and 30 minutes. Renewal exam (marked with "(U)") is the first general exam after the course and also a renewal exam of course exam(s). In a renewal exam the points student has earned during the course are taken into account. Exams marked with "(HT)" are allowed only to students who have completed the obligatory projects or other exercises included in those courses. Exams marked with "(HT/U)" are renewals to students who have completed the obligatory projects during the course. General exams might cover different area than the lectured course. Check the course web page and contact the responsible teacher if in doubt.

Opintojaksoon kuuluu luentoja, laskuharjoituksia ja kirjallisia kuulusteluja. Laskuharjoituksia voidaan tehdä itsenäisesti, pienryhmässä tai opettajan ohjaamassa tilaisuudessa. Osa harjoituksista voi olla tietokoneella suoritettavia ohjelmointitehtäviä. Harjoitustilaisuuksissa on läsnäolovelvollisuus silloin, kun tilaisuuden muoto edellyttää sitä.

Vaihtoehtoisesti opintojakson voi suorittaa erilliskokeella, jolloin siihen kuuluu ainoastaan kirjallinen kuulustelu.