Tietorakenteet ja algoritmit

kevät 2025

Kurssin I-osan loppuraportti

Kurssille osallistui 424 opiskelijaa, joista 226 (53.3 %) suoritti kurssin hyväksytysti.

Arvosanajakauma:

Yhteenveto

Palautteessa on paljon hyödyllisiä kokemuksia, havaintoja ja ehdotuksia. Kurssin kehitys jatkuu ensi lukuvuonna.

Seuraavassa on tarkempia kommentteja joihinkin esille tuotuihin asioihin.

”Kannustaisin muuttamaan kurssin tehtäviä ja arvoiointimenetelmää siten, että kurssista saatu arvosana on vain työstä kiinni, eikä niinkään älykkyydestä kiinni.”

Kommentti: Kurssin arvosanan tarkoituksena on antaa kuva siitä, miten hyvin opiskelija hallitsee kurssin sisällön. Tämän takia ei olisi hyvä, että arvosana perustuisi siihen, paljonko työtä tai aikaa kurssin suorittaminen on vienyt.

”Sillä kurssi suoritetaan nykyään täysin ohjelmointitehtävillä, voi teoreettinen osaaminen jäädä oppimistavoitteita heikommaksi.”

Kommentti: Tämä on tosiaan mahdollinen ongelma nykyisessä toteutuksessa. Kurssia kehittäessä mietitään, miten kurssille saisi lisättyä mielekkäästi teoriatehtäviä.

”Tekoälyn jyrkkä kielto on melkein sama kuin kieltäisi internetin käytön.”

Kommentti: Kurssilla on kiellettyä palauttaa tekoälyn antamia ratkaisuja, mutta muilta osin tekoälyä saa käyttää oppimisen tukena. Kurssilla olisi tosiaan hyvä tuoda paremmin esille, että tekoälyn käyttö ei ole kaikilta osin kielletty.

”Lisää vaihtoehtoisia toteutustapoja, vaikka koodi olisi oikea - se ilmeisesti pitää yhä olla suunnilleen samanlainen kuin kurssin materiaaleissa.”

Kommentti: Useimmissa kurssin tehtävissä riittää saada aikaan mikä tahansa tehokkaasti toimiva ratkaisu, joko käyttäen materiaalin tekniikkoja tai jollakin muulla tavalla. Jos ratkaisua ei hyväksytä oudolta tuntuvasta syystä, kannattaa olla yhteydessä kurssin henkilökuntaan.

”Luennoilla olisi hyvä käyttää editoria jossa 40% kuvapinta-alasta ei mene turhiin ui-elementteihin, jolloin isompi osa ohjelmakoodista olisi luettavissa yhtä aikaa samalla kirjasinkoolla.”

Kommentti: Tämä on hyvä ehdotus, joka tulee käyttöön tulevilla luennoilla.

”Kurssin säännöissä olisi ollut hyvä mainita, mitä Pythonin ominaisuuksia saa ja ei saa käyttää (esim. lajittelu, säännölliset lausekkeet).”

Kommentti: Jos tehtävässä ei ole mainittu muuta, saa käyttää kaikkia Pythonin standardikirjaston moduuleja mutta ei esimerkiksi standardikirjaston ulkopuolista numpy-kirjastoa. Tämä asia olisi tosiaan hyvä tuoda esille nykyistä paremmin.

”Tehtävänannoissa voisi selkeästi kertoa mikä on suurin sallittu aikavaativuus kyseisen tehtävän algoritmille.”

Kommentti: Koska useimmissa tehtävissä toteutetun algoritmin tehokkuus testataan suoritusajan perusteella, ei ole valitettavasti mahdollista ilmoitaa tarkasti, mikä on suurin sallittu aikavaativuus. Esimerkiksi aikavaativuuksien \(O(n)\) ja \(O(n \log n)\) eron havaitseminen suoritusajan perusteella ei ole käytännössä mahdollista.

”Onks tän tarkoituskin olla sellainen epävirallinen RANK & YANK, LUULOT POIS, SYVÄÄN PÄÄTYYN UIMISTA OPETTELEMAAN -juttu?”

Kommentti: Tämä ei ole kurssin tarkoitus, mutta kurssi on selvästi vaikeampi kuin jotkin aiemmat kurssit opinnoissa. Kurssin vastuuhenkilön näkemyksen mukaan on hyvä, että opintojen osana on kursseja, jotka tarjoavat paljon haasteita.

”Tehtävien koodipohjat voisivat olla sellaisia, ettei Python herjaa syntax erroria aina kun koodi liitetään omaan editoriin.”

Kommentti: Tämä on hyvä ehdotus ja tätä on tarkoitus parantaa tulevaisuudessa.

”Tämän ratkaiseminen lienee vaikeaa, mutta mielestäni kurssilla pitäisi jotenkin pitää huolta siitä ettei kurssia voi suorittaa ainoastaan tekoälyn avulla ainakaan hyvillä arvosanoilla.”

Kommentti: Tämä on tosiaan uhkana, koska tekoäly osaa ratkaista lähes kaikki kurssin tehtävät. Tällä hetkellä vaikuttaa siltä, että suuri määrä kurssin osallistujia käyttää tekoälyä vastoin kurssin ohjeita. Tämän takia onkin mahdollista, että kurssin suorituksen osaksi tulee tulevaisuudessa valvottu osuus.

”Arvosanarajat olivat mielestäni liian tiukat siihen nähden, että tehtävätkin olivat vaikeita.”

Kommentti: Kurssin arvosanajakauman perusteella tilanne vaikuttaa kuitenkin siinä mielessä hyvältä, että kurssilla tulee melko tasaisesti eri arvosanoja. Kurssin vastuuhenkilön näkemyksen mukaan on hyvä, että korkeimmat arvosanat vaativat syventävää osaamista ja yleensä paljon työtä.

”Pientä turhautumista meinasi aiheuttaa, kun jonkun tehtävän läpimeneminen oli kiinni siitä, käyttikö lähetyksessä CPython3 vai Pypy3 -vaihtoehtoa.”

Kommentti: Tästä tosiaan aiheutui turhia hankaluuksia ainakin viikon 3 tehtävässä Laskut, jossa tietyn tyyppinen ratkaisutapa oli yllättävän hidas PyPyllä suoritettuna. Tähän koetetaan kiinnittää enemmän huomiota tulevaisuudessa.

”Kun kurssista on jutellut opiskelijakavereiden kanssa, niin moni on tuonut esille, miten kurssi sai tuntemaan itsensä huonoksi ja jotkut jopa sanoivat, että kurssin takia mietti kokonaan, että onkohan tämä ala minua varten vai pitäisikö lopettaa.”

Kommentti: Olisi hyvin ikävä tilanne, jos opiskelija keskeyttää opinnot tämän kurssin takia. Seuraavaa viestiä kurssin vastuuhenkilöltä saa välittää: tietojenkäsittelytiede on laaja ala, jossa voi menestyä erittäin hyvin osaamatta tämän kurssin aiheita.

”Jos kurssilla on esitietovaatimuksia, niin nämä olisi kiva tietää etukäteen ettei kysyessä tule sellainen olo, että nämä asiat pitäisi jo tietää ja, että ne eivät kuulu tälle kurssille.”

Kommentti: Kurssin esitietovaatimukset ovat riittävän hyvä ohjelmointitaito (esim. kurssit Ohjelmoinnin perusteet ja Ohjelmoinnin jatkokurssi) sekä matematiikan perustaidot (esim. kurssi Johdatus yliopistomatematiikkaan). Nämä voisi tosiaan tuoda nykyistä paremmin esille. Esitietoihin liittyvistä asioistakin saa mielellään kysyä kurssin ohjausväylissä, koska on esim. hyvin ymmärrettävää, että ei tiedä tai muista jotain aiemmalla kurssilla käsiteltyä asiaa.

Kurssipalaute

Kurssipalautteen antoi 142 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