Kuva: Pexels

mitä ovat tietorakenteet?

Kurssilla käsitellään perustietorakenteita, kuten pinoja, jonoja, puita ja verkkoja, sekä niiden käsittelyalgoritmejä.

Keväällä 2020 kurssi pidetään monimuotokurssina, johon kuuluu pakollisina osina verkossa tehtäviä harjoituksia ja kaksi kirjallista kuulustelua sekä vapaaehtoisia Kumpulan kampuksella pidettäviä luentoja (julkaistaan myös videotallenteina) ja harjoitustehtävien ohjaustilaisuuksia.

Tämä on sama kuin Helsingin yliopiston tietojenkäsittelytieteen kandiohjelman samanniminen kurssi. Katso tiedot materiaaleista, tehtävistä, kurssin suorittamisesta jne. kyseisen kurssin kotisivulta https://courses.helsinki.fi/fi/tkt20001/131058732.

**HUOM**
Opetusjärjestelyt muuttuneet (18.3.2020). Lue lisää:
- tältä sivulta kohdasta 'Muutoksia opetusjärjestelyissä'
- kurssin Moodle-alue

Ilmoittaudu

Aikataulu

**HUOM** Lähiluennot peruttu 18.3.2020 alkaen. Luennot verkkokokous työkalu Zoomin kautta. Ohjeet luentojen seuraamiseen löydät kurssin Moodle-alueelta.

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

Muutoksia opetusjärjestelyissä (päivitetty 27.3.2020)

Opetus siirtyy etäopetukseksi.
- Luennot: Lähiluennot peruttu 18.3.2020 alkaen. Luennot verkkokokous työkalu Zoomin kautta. Ohjeet luentojen seuraamiseen löydät kurssin Moodle-alueelta.
- Pajaohjaukset: Pajaohjaukset siirretty Zoomiin. Lisätietoa kurssin Moodle-alueella.
- Tentit: Lähitentit (ti 5.5.2020 & ti 9.6.2020) korvataan verkkotenteillä. Lisätietoja päivitetään kurssin Moodle-alueelle.

Ilmoittautuminen ja opintomaksu

Kurssi on maksuton.

Kurssille voit ilmoittautua tältä sivustolta Ilmoittaudu-linkistä. Tarkka ilmoittautumisaika näkyy klikkaamalla Ilmoittaudu-painiketta.

Käytännön ohjeita opiskeluun
Järjestelyt erityistä tukea tarvitseville

Varaamme oikeuden muutoksiin opinto-ohjelmassa.

Kuvaus

Kurssi on osa DEFA-hankkeen opintotarjontaa ja se on avoin kaikille.

  • Tietojenkäsittelytieteen kandiohjelma vastaa opintojaksosta
  • Opintojakso kuuluu tietojenkäsittelytieteen aineopintoihin (pakollinen oman koulutusohjelman opiskelijoille)

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

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

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.

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

Kurssin voit suorittaa osana Tietojenkäsittelytieteen osaston DEFA-opintoja (Digital Education For All).

Kurssiin liittyvät kysymykset:

Katso tiedot materiaaleista, tehtävistä, kurssin suorittamisesta tiedekunnan kurssin sivulta.

Laskuharjoitukset + lähtentit (2).

Kirjalliset kuulustelut järjestetään ma 2.3. klo 16.00-18.30 ja ti 5.5. klo 16.00-18.30. Molemmat tentit ovat pakollisia: ensimmäinen on kurssin alkupuolen ja toinen loppupuolen asioista. Uusintatentti järjestetään 10.6., ja sillä voi korvata joko ensimmäisen tai toisen kurssikokeen tai molemmat. Tentti-ilmoittautuminen 10 pv. ennen weboodiin.

Lähitenttipäivät
ma 2.3.2020 klo 16.00-18.30 (kurssin alkupuolen asiat)
ti 5.5.2020 klo 16.00-18.30 (kurssin loppupuolen asiat)

ti 9.6.2020 klo 10.00-13.30 (uusintatentti)

Tietojenkäsittelytieteen koulutusohjelma järjestää lähitentit.

Ilmoittaudu tenttiin viimeistään 10 vuorokautta ennen tenttipäivää WebOodissa (ilmoittautuminen vaatii kirjautumisen WebOodiin). Mene WebOodiin tämän linkin kautta (HUOM! Mikäli olet Helsingin yliopiston perustutkinto-opiskelija ilmoittaudu tämän linkin kautta). Valitse listasta haluamasi tentti ja ilmoittaudu. Tentti on tarkoitettu niille opiskelijoille, jotka ovat ilmoittautuneet (ja sen myötä saaneet opinto-oikeuden) tälle kurssille.

Tenttiohjeet
Käytännön ohjeita opiskeluun

Tentit edellyttävät läsnäoloa, mutta muuten kurssin voi suorittaa kokonaan verkossa. Voit osallistua haluamiisi luennoille ja pajaohjauskerroille. Sekä harjoitustehtävät että kirjalliset kuulustelut otetaan arvostelussa huomioon. Pisteiden saaminen laskuharjoituksista perustuu ratkaisujen palauttamiseen sähköisesti eikä edellytä läsnäoloa. Kuulusteluilla on suurin vaikutus arvosanaan, mutta hyväksytty suoritus edellyttää myös ennalta ilmoitetun vähimmäismäärän tehtyjä harjoitustehtäviä.

Käytössä on verkko-oppimisympäristö Moodle. Moodle aukeaa 13.1.2020. Moodlessa sinun täytyy lisätä itsesi kurssin opiskelijaksi oikean ylälaidan hammasratasvalikon kautta, jotta pystyt tekemään laskuharjoitukset. Löydät linkin opintojakson Moodle-tilaan tiedekunnan kurssisivulta.

Linkin opintojakson Moodleen saat kirjautumalla tähän opinto-ohjelmaan (=kurssisivulle) Helsingin yliopiston käyttäjätunnuksella. Huom! Tämä onnistuu aikaisintaan ilmoittautumistasi seuraavana päivänä. Saat käyttäjätunnusta koskevaa lisätietoa sähköpostiisi ilmoittautumisesi jälkeen.

Huom! Mikäli haluat ruotsinkieliset tenttikysymykset, ota yhteyttä kurssin opettajaan viimeistään 10 päivää ennen tenttiä. Mikäli tarvitset verkkotentissä erityisjärjestelyitä (esim. pidennetyn vastausajan), tutustu niitä koskeviin ohjeisiin: Järjestelyt erityistä tukea tarvitseville. Erityisjärjestelyiden tarpeesta tulee ilmoittaa viimeistään 10 päivää ennen tenttiä.