Huomaa! Kurssikuvaus vahvistetaan kahdeksi lukuvuodeksi kerrallaan ja esimerkiksi osaamistavoitteet, arviontimenetelmät ja keskeinen sisältö pysyvät pääsääntöisesti samana. Kullakin toteutuskerralla voidaan kuitenkin kurssiesitteen avulla tarkentaa ja muuttaa kurssin toteutustapaa, kuten kontaktiopetuksen järjestämistapaa, arviointimenetelmien painotusta tai materiaaleja.

OSAAMISTAVOITTEET

Kurssin suoritettuasi osaat määritellä, vertailla ja toteuttaa perustietorakenteita ja algoritmeja.

Ymmärrät esimerkiksi kuinka yleisimmät järjestämisalgoritmit, kuten lisäysjärjestäminen, lomitusjärjestäminen ja pikajärjestäminen toimivat, ja olet tutustunut "hajota ja hallitse"-suunnittelutekniikan käyttöön. Olet tutustunut puutietorakenteisiin ja niitä käyttäviin algoritmeihin. Ymmärrät, kuinka joukko- ja hakurakenteita voidaan toteuttaa puurakenteiden ja hajautustaulujen avulla, ja osaat vertailla näiden ominaisuuksia.

Tunnet dynaamisen ohjelmoinnin toimintaperiaatteen ja osaat soveltaa sitä joihinkin ongelmiin. Ymmärrät kuinka keskeiset verkkojen läpikäyntialgoritmit, kuten syvyys- ja leveyshaku, sekä lyhimmän polun etsintäalgoritmit toimivat. Tiedät, että on olemassa laskennallisesti vaativampia ongelmia ja osaat nimetä joitakin.

Olet toteuttanut monia yllä mainituista tietorakenteista ja algoritmeista, tai niiden muunnoksia, itsenäisesti. Hallitset alan perusterminologian ja osaat täten itsenäisesti hakea tietoa muista tietorakenteista ja algoritmeista. Hallitset algoritmianalyysin perusteita ja osaat esimerkiksi päätellä pahimman tapauksen ajoajan yksinkertaille algoritmeille.

Laajuus: 5

Aikataulu: 02.09.2024 - 02.12.2024

Vastuuopettaja (voimassa koko opetussuunnitelmakauden):

Vastuuopettaja (koskee tätä kurssikertaa): Lukas Ahrenberg, Tommi Junttila

Kurssin yhteystiedot (koskee tätä kurssikertaa):

Kurssin CEFR-taso (voimassa koko opetussuunnitelmakauden):

Opetuskieli ja suorituskielet (koskee tätä kurssikertaa):

Teaching language: Finnish. Languages of study attainment: Finnish, English

SISÄLTÖ, ARVIOINTI JA KUORMITTAVUUS

Sisältö
  • voimassa koko opetussuunnitelmakauden:

    Algoritmianalyysin perusteita ja perustietorakenteita.
    Järjestämisalgoritmeja ja "hajota ja hallitse"-suunnitteluperiaate.
    Puutietorakenteita ja -algoritmeja. Puihin perustuvia hakutietorakenteita.
    Hajautusfunktiot ja -taulut.
    Dynaaminen ohjelmointi.
    Verkkotietorakenteita ja -algoritmeja.
    Rinnakkaislaskennan perusteita.
    Laskennallisesti vaativampia ongelmia.

Toteutus, työmuodot ja arvosteluperusteet
  • voimassa koko opetussuunnitelmakauden:

    Harjoitustehtäviä ja tentti.

Työmäärä toteutustavoittain
  • voimassa koko opetussuunnitelmakauden:

    Luennot, laskuharjoitukset, ja itsenäinen työskentely.

PERUSTIETOJA

Oppimateriaali
  • voimassa koko opetussuunnitelmakauden:

    Ilmoitetaan kurssin MyCourses-sivulla.

Korvaavuudet
Esitiedot
  • voimassa koko opetussuunnitelmakauden:

    Esitiedot

LISÄTIETOJA

Lisätietoja
  • voimassa koko opetussuunnitelmakauden:

    Opetuskieli: suomi

    Opetusperiodi: 2024-2025 Syksy I - II
    2025-2026 Syksy I - II

    Ilmoittautuminen:

    The course overlaps with CS-A1143 Data Structures and Algorithms Y, and it is not possible to include both courses into the degree.