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

Enrol

Timetable

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.

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

Other teaching

14.01. - 25.02.2019 Mon 12.15-14.00
11.03. - 15.04.2019 Mon 12.15-14.00
29.04.2019 Mon 12.15-14.00
Jyrki Kivinen
Teaching language: Finnish
15.01. - 26.02.2019 Tue 10.15-12.00
12.03. - 16.04.2019 Tue 10.15-12.00
30.04.2019 Tue 10.15-12.00
Teaching language: Finnish
15.01. - 26.02.2019 Tue 12.15-14.00
12.03. - 16.04.2019 Tue 12.15-14.00
30.04.2019 Tue 12.15-14.00
Teaching language: Finnish
15.01. - 26.02.2019 Tue 14.15-16.00
12.03. - 16.04.2019 Tue 14.15-16.00
30.04.2019 Tue 14.15-16.00
Teaching language: Finnish

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.

Other

Video

Conduct of the course

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

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.

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.