Tietorakenteet ja algoritmit

kevät 2026

Kurssin I-osan loppuraportti

Kurssille osallistui 244 opiskelijaa, joista 99 (40.6 %) suoritti kurssin hyväksytysti.

Arvosanajakauma:

Yhteenveto

Kurssi järjestettiin muuten samalla tavalla kuin vuosi sitten, mutta kurssin osana oli nyt tehtävien lisäksi pakollinen tentti. Tentti saattaa olla tärkeä syy siihen, että kurssin osallistujien ja suorittajien määrä romahti noin puoleen vuoden takaisesta ja kurssin palaute oli myös selvästi negatiivisempaa.

Palautteessa tulee esille, että tentin toteutustapaa (paperitentti) ei pidetä hyvänä. Nykyinen toteutustapa ei ole hyvä myöskään kurssin vastuuhenkilön mielestä, mutta valitettavasti tällä hetkellä ei ole tapaa toteuttaa luotettavasti valvottua tenttiä, jossa voisi käyttää ohjelmointiympäristöä.

Lisäksi palautteessa on kritiikkiä tentin vaikeudesta tai ajan riittämättömyydestä tentissä. Kevään ensimmäisessä tentissä tehtävä 4 osoittautui selvästi tarkoitettua vaikeammaksi, minkä takia tentin arvostelua lievennettiin. Useat palautetta antaneet pitivät myös tentin tehtävää 5 ongelmallisena, koska tehtävän aihetta (aikavaativuustodistus) ei käsitellä riittävästi kurssilla. Tämä on selkeästi asia, jota voisi parantaa esimerkiksi käymällä läpi luennolla aihetta tarkemmin.

Kurssin luennot saivat myös enimmäkseen negatiivista palautetta, mikä näkyi ehkä myös siinä, että luennolla kävi vain vähän opiskelijoita. Toisaalta palautteessa ei tule esille selkeää näkemystä siihen, miten luentoja pitäisi kehittää. Saattaa olla myös, että luennot eivät sovellukaan hyvin Tiran kaltaisen kurssin opettamiseen, vaan muunlainen ohjaus olisi hyödyllisempää.

Seuraavassa on tarkempia kurssin vastuuhenkilön kommentteja palautteeseen. Jos haluat vastata kommenttiin, voit lähettää sähköpostia vastuuhenkilölle tai keskustella aiheesta kurssin Discord-kanavalla.

”Sanoisin, että jos kurssi tehdään paperilla, niin pseudokoodin kirjoittaminen olisi parempi tapa mitata henkilöiden osaamista.”

Kommentti: Kurssilla on käytetty aiemmin tenteissä pseudokoodia, mutta siinä on ollut haasteena, miten esittää sillä algoritmeja riittävän tarkasti ja ymmärrettävästi.

”Monessa tapauksessa tehtävä itsessään oli mielekäs, mutta tehtävänanto oli epäselvä tai riittämätön.”

Kommentti: Esimerkkejä tällaisista tehtävänannoista? Tavoitteena on ollut tehdä mahdollisimman selkeitä tehtävänantoja, mutta niitä mielellään parannetaan, jos tulee konkreettista palautetta puutteista.

”Materiaali perustui mielestäni liikaa koodiesimerkkeihin. Itse algoritmeja olisi voinut käsitellä kurssilla enemmän.”

Kommentti: Miten koodi ja algoritmi oikeastaan eroavat toisistaan, eli millaista materiaalin tulisi olla tarkemmin? Yksi parannettava asia voisi olla ainakin lisätä kuvitusta, joka näyttää, miten koodi/algoritmi toimii tietyssä tilanteessa.

”Enemmän tietorakenteita hyödyntäviä algoritmeja LeetCode-tyyppisten leikkialgoritmien sijaan.”

Kommentti: Miten tietorakenteita hyödyntävät algoritmit eroavat kurssin leikkialgoritmeista? Varsin monessa kurssitehtävässä nimenomaan käytetään jotakin tietorakennetta.

”Samoin kyky rakentaa perustietorakenteet (hajautustaulukko, linkitetty lista, jne.) itse tyhjästä pitäisi kuulua kurssin oppimistavoitteisiin.”

Kommentti: Haasteena on, kuinka käsitellä näitä aiheita mielekkäästi Pythonin kaltaisessa korkean tason ohjelmointikielessä. Ensi lukuvuonna alkavalla kurssilla Matalan tason ohjelmointi on suunnitelmana käsitellä näitä aiheita.

”Tämäkin voi olla hyödyksi, mutta itse koin, että teorian ja soveltamisen välissä on joku puuttuva väliaskel – tavallaan aukko, joka täytyy itsenäisesti täyttää.”

Kommentti: Saattaa olla myös, että kyseinen aukko nimenomaan täytyy täyttää itsenäisesti, jotta pystyy oppimaan syvällisesti algoritmien suunnittelua.

”Kurssin ohjaus ja keskustelualusta toisaalle Discordista.”

Kommentti: Mikä olisi parempi alusta?

”Pieni seikka, mutta palautin yhdessä vaiheessa tehtävän, jossa käytin match-case syntaksia (Python 3.10, 10/2021), mutta palvelin ei tätä hyväksynyt. Alkanee olla hiljalleen aika päivittää backend?”

Kommentti: Palvelimella CPython-versio on tällä hetkellä 3.12.3, joten siinä tämän syntaksin pitäisi toimia. PyPy-versio on 3.9.18, joten tosiaan valitettavasti siinä syntaksi ei toimi tällä hetkellä.

”Kuitenkin tuntuu siltä, että jos yli puolet kokeeseen osallistuneista ihmisistä hylätään, niin kurssi on liian haastava ensimmäisen vuoden opiskelijoille, joilla osasta ei ole aikaisempaa kokemusta.”

Kommentti: Loppujen lopuksi 139 opiskelijaa ratkoi tehtäviä läpipääsyyn riittävästi ja 99 opiskelijaa läpäisi tentin, joten 71.2 % riittävästi tehtäviä ratkoneista opiskelijoista läpäisi myös tentin.

Kurssipalaute

Kurssipalautteen antoi 103 opiskelijaa.

Numeerinen palaute

Arvioi seuraavia väitteitä (1 = täysin eri mieltä, 5 = täysin samaa mieltä):

Kurssin raskaus (1 = turhan kevyt, 5 = turhan raskas):

Kurssin kokonaisarvosana:

Miten kehittäisit kurssia?

Muita huomioita

Miten kehittäisit kurssin pajaohjausta?