Perustietorakenteet,kuten pinot, jonot, puut ja verkot, sekä niiden käsittelyalgoritmit.

Anmäl dig

Tidsschema

Kurssi kestää koko kevätlukukauden (periodit III ja IV).

Luennot: ma, ke 10-12 A111.

Harjoitustehtävät palautetaan viikoittain sähköisesti. Tarkemmat määräajat ilmoitetaan kurssin alettua.

Harjoitustehtävien tekemiseen saa ohjausta algoritmipajassa. Ohjausajat löytyvät algoritmipajan sivulta https://courses.helsinki.fi/fi/tkt20000/126082463 . Ohjaukseen osallistuminen on täysin vapaaehtoista.

DatumTidPlats
mån 14.1.2019
10:15 - 12:00
ons 16.1.2019
10:15 - 12:00
mån 21.1.2019
10:15 - 12:00
ons 23.1.2019
10:15 - 12:00
mån 28.1.2019
10:15 - 12:00
ons 30.1.2019
10:15 - 12:00
mån 4.2.2019
10:15 - 12:00
ons 6.2.2019
10:15 - 12:00
mån 11.2.2019
10:15 - 12:00
ons 13.2.2019
10:15 - 12:00
mån 18.2.2019
10:15 - 12:00
ons 20.2.2019
10:15 - 12:00
mån 25.2.2019
10:15 - 12:00
ons 27.2.2019
10:15 - 12:00
mån 11.3.2019
10:15 - 12:00
ons 13.3.2019
10:15 - 12:00
mån 18.3.2019
10:15 - 12:00
ons 20.3.2019
10:15 - 12:00
mån 25.3.2019
10:15 - 12:00
ons 27.3.2019
10:15 - 12:00
mån 1.4.2019
10:15 - 12:00
ons 3.4.2019
10:15 - 12:00
mån 8.4.2019
10:15 - 12:00
ons 10.4.2019
10:15 - 12:00
mån 15.4.2019
10:15 - 12:00
ons 17.4.2019
10:15 - 12:00
mån 29.4.2019
10:15 - 12:00

Övrig undervisning

14.01. - 25.02.2019 mån 12.15-14.00
11.03. - 15.04.2019 mån 12.15-14.00
29.04.2019 mån 12.15-14.00
Jyrki Kivinen
Undervisningsspråk: Finska
15.01. - 26.02.2019 tis 10.15-12.00
12.03. - 16.04.2019 tis 10.15-12.00
30.04.2019 tis 10.15-12.00
Undervisningsspråk: Finska
15.01. - 26.02.2019 tis 12.15-14.00
12.03. - 16.04.2019 tis 12.15-14.00
30.04.2019 tis 12.15-14.00
Undervisningsspråk: Finska
15.01. - 26.02.2019 tis 14.15-16.00
12.03. - 16.04.2019 tis 14.15-16.00
30.04.2019 tis 14.15-16.00
Undervisningsspråk: Finska

Material

Kurssi on päättynyt. Alla on saatavana kurssin loppuyhteenveto, jossa on tilastoja, opiskelijapalautteen yhteenveto ja luennoijan kommentteja.

--

Kurssi noudattaa pääosin Antti Laaksosen oppikirjaa Tietorakenteet ja algoritmit.

Viikoittaiset tehtävät, luentomateriaalit jne. julkaistaan kurssin Moodle-alueella.

Kurssin aihepiiristä on saatavana lukuisia englanninkielisiä oppikirjoja. Eräs kurssin oheismateriaaliksi suositeltava teos on Cormen et al., Introduction to Algorithms, joka on saatavilla yliopiston kirjaston kautta sähköisessä muodossa.

Övriga

Video

Kursbeskrivningen

Kurssiin kuuluu kaksi pakollista kurssikoetta. Kokeiden lisäksi kurssisuoritukseen kuuluu harjoitustehtävien tekeminen.

Kurssin maksimipistemäärä on 60 ja jakautuu osasuorituksille seuraavasti:
a) kaksi kurssikoetta: kumpikin 20 pistettä, eli yhteensä 40 pistettä
b) laskuharjoitukset: 20 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 20 (eli puolet maksimista). Laskuharjoitukset eivät ole pakollisia, mutta parhaisiin arvosanoihin pääseminen edellyttää luonnollisesti, että myös harjoituksista saa pisteitä.

Kurssikokeet ovat periodien III ja IV koeviikoilla Kumpulassa Exactum-rakennuksessa. Kurssikokeiden ajankohdat ovat ma 4.3.2019 klo 16.00 ja ke 8.5.2019 klo 9.00. Tarkista kokeiden tarkempi ajankohta WebOodista lähempänä niiden ajankohtaa ja muista myös, että kurssikokeisiin pitää ilmoittautua erikseen. Kokeessa saa olla mukana yhdelle A4-arkille itse käsin kirjoitettu "lunttilappu", jonka molemmilla puolilla saa olla tekstiä.

Kurssikokeiden uusintamahdollisuus on kurssin erilliskokeessa ke 12.6. klo 10.00. Siinä voi uusia joko jomman kumman kurssikokeen tai molemmat kerralla.

Harjoitustehtävien ratkaisut palautetaan sähköisesti viikoittain annetun määräajan puitteissa. Tehtävät julkaistaan ja ratkaisut palautetaan käyttäen sekä Moodlea että TMC-järjestelmää. Tarkemmat ohjeet tulevat kurssin Moodle-alueelle https://moodle.helsinki.fi/course/view.php?id=32099 .

Harjoitustehtävien ratkaisemiseen saa ohjausta Algoritmipajassa. Ohjausten aikataulu on pajan kotisivulla https://courses.helsinki.fi/fi/tkt20000/126082463 . Pajassa käyminen on täysin vapaaehtoista, mutta erittäin suositeltavaa; siellä saa käydä niin usein kuin haluaa.

Feedback

Beskrivning

  • 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.

Kurssille ilmoittautuessa ei valita laskuharjoitusryhmää tms. Laskuharjoitustilaisuudet pidetään pajamuotoisesti: viikon aikana on useita ohjaustilaisuuksia, ja opiskelija voi valita, mihin niistä osallistuu (jos osallistuu). Ohjauksiin osallistuminen on täysin vapaaehtoista. Pisteiden saaminen laskuharjoituksista perustuu ratkaisujen palauttamiseen sähköisesti eikä edellytä läsnäoloa. Yksityiskohdista ilmoitetaan myöhemmin.

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.