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

Ilmoittaudu

Aikataulu

TOIMINTA 18.3. ALKAEN:

Kurssin luennot 18.3. alkaen pidetään videoluentoina Zoomissa. Luennot ovat kuten ennenkin ma, ke klo 10.15-12.00. Tarkemmat ohjeet sekä luentojen videotalleenteet löytyvät kurssin Moodle-alueelta.

Pajaohjaus korvataan Zoomissa annettavalla ohjauksella typistetyllä aikataululla. Tarkemmat tiedot löytyvät Moodlesta.

Toinen kurssikoe järjestetään Moodle-kokeena alkuperäisenä ajankohtana ti 5.5. klo 16.00-19.00. Moodlessa on tarkempia tietoja.

VANHENTUNUT ALKUPERÄINEN OHJE:

Kurssiin kuuluu kaksi pakollista kirjallista kuulustelua, joihin pitää osallistua paikan päällä. Kokeiden alustavat ajankohdat ovat ma 2.3. klo 16.00-18.30 ja ti 5.5. klo 16.00-18.30. Kumpaankin kokeeseen pitää ilmoittautua WebOodissa erikseen (normaalin kurssi-ilmoittautumisen lisäksi). WebOodista kannattaa myös tarkastaa kokeiden ajankohdat, kun ne ilmestyvät sinne.

Luennot ovat ma, ke 10-12 Exactumin auditoriossa A111. Luennoille osallistuminen on täysin vapaaehtoista, ja niistä julkaistaan myös videotallenteet.

Harjoitustehtävien tekemiseen on tarjolla vapaaehtoista ohjausta Algoritmipajassa, jonka ohjausajat julkaistaan myöhemmin.

PäivämääräAikaOpetuspaikka
Ma 13.1.2020
10:15 - 12:00
Ke 15.1.2020
10:15 - 12:00
Ma 20.1.2020
10:15 - 12:00
Ke 22.1.2020
10:15 - 12:00
Ma 27.1.2020
10:15 - 12:00
Ke 29.1.2020
10:15 - 12:00
Ma 3.2.2020
10:15 - 12:00
Ke 5.2.2020
10:15 - 12:00
Ma 10.2.2020
10:15 - 12:00
Ke 12.2.2020
10:15 - 12:00
Ma 17.2.2020
10:15 - 12:00
Ke 19.2.2020
10:15 - 12:00
Ma 24.2.2020
10:15 - 12:00
Ke 26.2.2020
10:15 - 12:00
Ma 9.3.2020
10:15 - 12:00
Ke 11.3.2020
10:15 - 12:00
Ma 16.3.2020
10:15 - 12:00
Ke 18.3.2020
10:15 - 12:00
Ma 23.3.2020
10:15 - 12:00
Ke 25.3.2020
10:15 - 12:00
Ma 30.3.2020
10:15 - 12:00
Ke 1.4.2020
10:15 - 12:00
Ma 6.4.2020
10:15 - 12:00
Ke 8.4.2020
10:15 - 12:00
Ma 20.4.2020
10:15 - 12:00
Ke 22.4.2020
10:15 - 12:00
Ma 27.4.2020
10:15 - 12:00
Ke 29.4.2020
10:15 - 12:00

Muu opetus

Materiaalit

Kurssi noudattaa pääosin Antti Laaksosen oppikirjaa Tietorakenteet ja algoritmit (linkki alla).

Viikoittaiset tehtävät, luentomateriaalit jne. julkaistaan kurssin Moodle-alueella. Luentomateriaaleihin, videoihin yms. pääsee tutustumaan vierailijana (guest) ilman kurssi-ilmoittautumista. Tehtävien palauttaminen jne. vaativat ilmoittautumisen (WebOodiin, josta ilmoittautumistiedot siirtyvät automaattisesti Moodleen parin tunnin viipeellä).

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 (linkki alla).

Muu

Kurssin suorittaminen

PÄIVITYS 18.3.

Alla esitetystä poiketen toinen kurssikoe järjestetään luultavasti Moodle-tenttinä. Yksityiskohdista ei ole vielä päätetty. Kurssin pisteytykseen yms. tällä ei ole vaikutusta.

ALKUPERÄINEN OHJE:

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 alustavat ajankohdat ovat ma 2.3.2019 klo 16.00 ja ti 5.5.2019 klo 16.00. Kurssikokeiden uusintamahdollisuus on kurssin erilliskokeessa ti 9.6. klo 10.00 (alustava aika). Siinä voi uusia joko jomman kumman kurssikokeen tai molemmat kerralla.

Tarkista kokeiden tarkempi ajankohta WebOodista lähempänä niiden ajankohtaa ja muista, että kaikkiin tentteihin, myös kurssikokeisiin, pitää ilmoittautua erikseen. Kokeissa saa olla mukana yhdelle A4-arkille itse käsin kirjoitettu "lunttilappu", jonka molemmilla puolilla saa olla tekstiä.

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 (linkki tämän kurssisivun yläosassa).

Harjoitustehtävien ratkaisemiseen saa ohjausta Algoritmipajassa. Ohjausten aikataulu on pajan kotisivulla (linkki tulee myöhemmin) . Pajassa käyminen on täysin vapaaehtoista, mutta erittäin suositeltavaa; siellä saa käydä niin usein kuin haluaa.

Kuvaus

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

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.