Instruction

Name Cr Method of study Time Location Organiser
Data Structures and Algorithms 10 Cr Examination 9.9.2020 - 9.9.2020
Data Structures and Algorithms 10 Cr Examination 10.12.2020 - 10.12.2020
Name Cr Method of study Time Location Organiser
Datastructures and Algorithms (U) 10 Cr Online Examination 9.6.2020 - 9.6.2020
Datastructures and Algorithms 10 Cr Online Examination 5.5.2020 - 5.5.2020
Datastructures and Algorithms 10 Cr Online Examination 16.4.2020 - 16.4.2020
Datastructures and Algorithms 10 Cr Course exam 2.3.2020 - 2.3.2020
Datastructures and Algorithms 10 Cr General Examination 29.1.2020 - 29.1.2020
Tietorakenteet ja algoritmit 10 Cr Lecture Course 13.1.2020 - 29.4.2020
Datastructures and Algorithms 10 Cr General Examination 4.12.2019 - 4.12.2019
Datastructures and Algorithms 10 Cr General Examination 11.9.2019 - 11.9.2019
Tietorakenteet ja algoritmit 10 Cr Lecture Course 4.9.2019 - 11.12.2019
Datastructures and Algorithms (U) 10 Cr General Examination 12.6.2019 - 12.6.2019
Datastructures and Algorithms 10 Cr Course exam 8.5.2019 - 8.5.2019
Datastructures and Algorithms 10 Cr General Examination 11.4.2019 - 11.4.2019
Datastructures and Algorithms 10 Cr Course exam 4.3.2019 - 4.3.2019
Datastructures and Algorithms (U) 10 Cr General Examination 30.1.2019 - 30.1.2019
Tietorakenteet ja algoritmit 10 Cr Lecture Course 14.1.2019 - 30.4.2019
Datastructures and Algorithms 10 Cr Examination 18.12.2018 - 18.12.2018
Datastructures and Algorithms 10 Cr General Examination 5.12.2018 - 5.12.2018
Datastructures and Algorithms 10 Cr Examination 24.10.2018 - 24.10.2018
Datastructures and Algorithms 10 Cr General Examination 12.9.2018 - 12.9.2018
Tietorakenteet ja algoritmit 10 Cr Lecture Course 3.9.2018 - 10.12.2018
Datastructures and Algorithms (U) 10 Cr General Examination 15.6.2018 - 15.6.2018
Datastructures and Algorithms 10 Cr General Examination 13.4.2018 - 13.4.2018
Datastructures and Algorithms (U) 10 Cr General Examination 24.1.2018 - 24.1.2018
Tietorakenteet ja algoritmit 10 Cr Lecture Course 15.1.2018 - 2.5.2018
Tietorakenteet ja algoritmit 10 Cr Lecture Course 7.9.2017 - 15.12.2017

Target group

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

Prerequisites

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

Learning outcomes

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

Timing

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.

Contents

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

Activities and teaching methods in support of learning

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.

Study materials

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

Assessment practices and criteria

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.

Recommended optional studies

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

Completion methods

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.