Kurssin II-osan loppuraportti
Kurssille osallistui 83 opiskelijaa, joista 45 (54.2 %) suoritti kurssin hyväksytysti.
Arvosanajakauma:
- Arvosana 1: 14 opiskelijaa (31.1 %)
- Arvosana 2: 5 opiskelijaa (11.1 %)
- Arvosana 3: 8 opiskelijaa (17.8 %)
- Arvosana 4: 6 opiskelijaa (13.3 %)
- Arvosana 5: 12 opiskelijaa (26.7 %)
Yhteenveto
Kuten kurssin I-osassa, suorittajien määrä näyttää jäävän selvästi pienemmäksi kuin aiempina vuosina. Syksyllä 2024 kurssin suoritti 145 opiskelijaa, mutta syksyn 2025 suorittajien määrä ennen korvaavia tenttejä on vain 37 opiskelijaa.
Palautteen perusteella kurssin tenttiä pidetään sinänsä hyvänä asiana, mutta tentin toteutuksessa on kehitettävää. Tenttien järjestäminen ennen tenttiviikkoa sai kritiikkiä, ja keväällä tentit tulevat olemaan tenttiviikolla. Myös paperitenteille etsitään korvaavaa tapaa tulevaisuudessa.
Palautteessa on useita ehdotuksia liittyen kurssin materiaalin parantamiseen. Keväällä tarkoituksena on kehittää materiaalia lisäämällä esimerkkejä algoritmien toiminnasta sekä parantamalla dynaamisen ohjelmoinnin käsittelyä.
Miksi kurssilla ei käsitellä Primin algoritmia? Kyseinen algoritmi muodostaa verkon pienimmän virittävän puun, eli sen käyttötarkoitus on sama kuin Kruskalin algoritmissa. Kurssin vastuuhenkilön näkemyksen mukaan riittää käsitellä yksi algoritmi tähän ongelmaan ja Kruskalin algoritmi tuntuu hyödyllisemmältä.
Kurssipalaute
Kurssipalautteen antoi 36 opiskelijaa.
Numeerinen palaute
Arvioi seuraavia väitteitä (1 = täysin eri mieltä, 5 = täysin samaa mieltä):
- Osaamistavoitteet olivat selvät: 4.67
- Toteutustapa tuki oppimistani: 4.42
- Materiaalit tukivat oppimistani: 4.28
- Arviointi mittasi oppimistani: 4.36
Kurssin raskaus (1 = turhan kevyt, 5 = turhan raskas):
- Työmäärä suhteessa opintopisteisiin oli: 3.08
Kurssin kokonaisarvosana:
- Kokonaisarvosana kurssille: 4.28
Miten kehittäisit kurssia?
- Aineistot voisivat olla vähän kattavempia
- Unohdin ilmoittautua tenttiin ja valmistumiseni viivästyy nyt
- En osaa sanoa.
- mainio tällaisenaan
- Ei tule mitään konkreettista mieleen, todella hyvä kurssi.
- Materiaalissa jäi usein kysyttävää. Lisää esimerkkejä viikon teoriasta olisi kiva. Olisi kiva jos olisi jokaisessa luvussa kohta ”Miten lähestyä tehtäviä” jossa kerrotaan miten opittua materiaalia kannattaa käyttää, tai jos CSES puolella olisi jokin ”vihje” menetelmä.
- Ei tule mitään kehitettävää mieleen.
- Ehdottomasti joku vaihtoehto paperitentille.
- Osa kurssin aiheista olisi saanut sisältää enemmän esimerkkejä ja tietopohjaa, esimerkiksi dynaamisen ohjelmoinnin tehtävät olivat huomattavasti haasteellisempia kuin muut aihealueet
- Mahdollisesti videoita joissa algoritmit esitettäisiin visuaalisesti ja miten ne toimivat läpi esimerkki tehtävän
- Ei ole mitään ehdotuksia
- Olisin kaivannut perinteisiä viikottaisia harjoitusryhmiä. Monesti sellaisissa tehtävien läpikäyminen hyvän assarin ja muiden oppilaiden kanssa on tehokkain tapa oppia.
- Mielestäni kurssi oli oikein hyvä ja kurssimateriaalit (luennot ja esimerkkitehtävät ym.) auttoivat asioiden ymmärtämisessä ja tehtävien tekemisessä. Olisin käynyt kurssin pajaohjauksissa, jos olisin päässyt. Jos laitoksella on lisäksi jonkinlaista avointa pajaohjausta, jossa voisi saada apua tehtäviin, niin sen voisi myös kertoa kurssin tiedoissa.
- Kurssille voisi lisätä kiinnostavampia tai vaikeampia tehtäviä, esimerkiksi TIRA 1 kurssilla oli ”kaksi samaa” tehtävä oli kiinnostava. Melkein kaikkien kurssin tehtävät olivat muotoa ”toteuta tämä algoritmi joka selitetään kurssimateriaalissa.” Myös voisi lisätä hieman haastavempia tietorakenteita tai algoritmeja esimerkiksi AVL puun toteutuksen kurssin tehtäväksi. Lisäksi pythonilla ohjelmointi on ärsyttävää, kurssi olisi ollut mukavempi jos se olisi ollut mahdollista suorittaa esimerkiksi C++:lla.
- Materiaali on selkeää ja tehtävät riittävän haastavia. Materiaalin lisäisin jonkinlaiset alaviitteet eri algoritmeihin lisätietoja varten. Itse opin paljon selailemalla verkkoa (mm. Wikipediaa) erityyppisistä algoritmeistä, myös algoritmin toteutuksesta.
- Kurssin infot voisi olla selkeämmin sivupaneelissa. Linkin takaa löytyvät linkit ovat toisinaan hieman vaikea löytää
- lopputentti tenttiviikolla, jotta tenttiin ehtii valmistautua, 6-8 viikon takaiset tehtävät eivät välttämättä päällimmäisenä mielessä enää
- Toka osa oli selkeempi ku eka suorittaa ku osas jo hahmottaa asioita ja ymmärs myös itse paljon paremmin asioita. Mulla ei oo valittamisen aihetta ainakaa. Tykkään et täs tehtävät alko ain simppelimmin ja siitä edettiin sitten. En tiiä hieno kurssi ja hyvä matsku, opin itse ainakin aika paljon ja no vaikka jäi iteltä tehtävien suoritus vähäiseks nii opin mielestäni perus asiat. Vois esimerkkejä ratkaisujen kanssa lisätä, koska siis itse koen et ku pääsen lähestyy asioita esimerkkien kautta niin opin parhaiten ja voin sanoa, että dynaamista ohjelmointia en aluks ymmärtäny yhtää mut ku sai sen ekan tehtyy ja kävi läpi ja jasseki selitti joku 5 kertaa varmaa saman asian nii kyllä se siitä alko lähtee käyntiin nii saadakseen sellanen rutiinimainen ajattelutapa heti ku tekee tehtäviä, niin itelle esimerkit on todella iso osa oppimista.
- Siirtäisin tentin tenttiviikolle
- Tehtävien kokonaismäärä saisi olla hieman suurempi, jotta eri tehtävätyyppeihin tulee enemmän kosketuspintaa. Muutamassa tehtävässä oli maininta kurssimateriaalin mukaisesta toteutuksesta, mutta esimerkiksi kyseisistä binääripuista ei kovinkaan paljoa materiaalia siinä mielessä löytynyt että olisi triviaalia sanoa, milloin toteutus olisi kurssimateriaalin mukainen ja milloin ei. Olisi myös kiva jos olisi tehtäviä(vai onko ne lomakkeita näiden kohdalla?), joissa tutkitaan eri kielten toteutuksia ja vertaillaan niitä samaan tapaan kuin mitä tälläkin kurssilla vertailtiin esimerkiksi bellman-fordia ja dijkstraa. Esimerkiksi nopein raakapythonin toteutus vs nopeinta mahdollista pythonissa olevaa kirjastoa käyttävä toteutus vs javascriptin toteutus vs C:n toteutus.
- Tehtävässä jos jää jumiin niin silloin on täysin jumissa. Niissä voisi olla jokin vinkki siihen, mistä kohtaa materiaalia kannattaisi etsiä apua. Voisi olla jokin KurreChatin versio, joka antaa vihjeitä, mutta ei ratko puolesta. Nyt liian iso houkutus pattitilanteessa kysyä oikealta tekoälyltä. Tentti on hyvä kun mitataan edes jollain tavalla oppimista, mutta voisi olla reilusti haastavampi. Pääsin siitä helposti läpi, vaikken ollut vielä tehnyt puoliakaan ykköseen vaadittavista tehtävistä.
- CSES:ssä voisi olla kopio nappi, jolla saisi koodipohjan suoraan kopioitua leikepöydälle. Sama juttu kurssimateriaalissa, että aina kun siellä on jokin koodipätkä niin siinä olisi kopio nappi josta sen voisi suoraan kopioida
- Kurssikokeesta ei kannata luopua, koska se motivoi opiskelemaan syvällisesti algoritmien tietoperustaa, jonka osaamista kurssin tehtävät eivät mittaa kattavasti.
- Olisin mielelläni tehnyt vielä lisää keskivaikeita ja vaikeita soveltavia tehtäviä. Jokaisen viikon ensimmäiset harjoitukset olivat usein helppoja, jotka tuli suoritetuksi nopeasti. Sen jälkeen olisi (esim bonus tehtävien muodossa) voinut hyvin tehdä vielä lisää tehtäviä ainakin välillä. Itse kurssin suorittamiseksi nykyinen tehtävämäärä on minusta sopiva niin määrällisesti kuin haastavuustasoltaan. Toinen asia on se, että joihinkin vaikeimpiin tehtäviin olisi kiva saada mallivastaukset kurssin jälkeen. Pari vaikeinta tehtävä jää todennäköisesti minulta ratkomatta ajanpuutteen vuoksi. Todennäköisesti ratkaisu vaatii jonkun asian hahmottamisen, jota en itse ole löytänyt. Olisi kiinnostava saada vastaus myöhemmin.
- ei kehitettävää, kiva kurssi!
- Tehtävissä voisi ehkä olla jonkinlainen vinkki mistä lähestymistavasta kannattaisi aloittaa?
- Materiaalia voisi olla enemmän, toki aiemman kurssiversion materiaali oli myös saatavilla.
- toivoisin jotakin systeemiä joka houkuttelisi ihmisiä pajaan opiskelemaan. etenkin haastavampia tehtäviä olisi kiva ratkoa vertaisten kanssa. ehkä siten, että saa yhden tehtäväpisteen paikan päälle tulemisella, kuten käsittääkseni ohjassa on nyt ollut. vaikea tarkemmin sanoa mikä motivoisi muita tähän, kun itse olen siellä jo koko syksyn istunut.
- Tehtävät joissa tarvitsi vain käyttää jotain kurssimateriaalissa löytyvää luokkaa eivät olleet omasta mielestä kovin mielenkiintoisia.
- Algoritmisen ajattelun harjoittelussa olisi rakenteiden ja tapahtumien visualisointi tärkeää. Erilaisia animaatioista ja kuvista suorituksen eri vaiheista olisi huomattavaa lisäarvoa. Youtubessa on paljon hyödyllisiä videoita joita voisi linkata materiaaliin.
- kurssi oli toimiva. miksi primin algoritmia ei käydä läpi?
- En keksi mitään kehitettävää
- En suurpiirteisesti mitenkään. Viimeisimmissä viikoissa niin keskitytään enemmän valmiiden algoritmien mukauttamiseen jotta saisi vastattua tehtävään. Tämä ei sinänsä eroa edellisistä tehtävistä ideansa kanssa, mutta mielestäni alla piileksivät algoritmit ”abstraktioidaan” siten että alla olevia tekniikoita ei olisi pakko tuntea täysin että kysymyksiin voisi vastata. Jos tämä on se idea niin hyvä niin, mutta mielestäni edelliset tehtävät ei pistäneet samaa määrää vastuuta opiskelijalle ja muutos saattaa johtaa jotkut opiskelijat tuntemaan aiheet huonommin kuin edelliset.
- Kurssi oli muuten ongelmiton, mutta ehkä 16. kappaletta voisi pidentää jollakin esimerkillä.
- Ehkä lisäisin materiaalia jonka perusteella voisi opetella algoritmista ajattelutapaa ilman, että rikkoo kurssin sääntöjä tehtävien suhteen. Muutaman tehtävän kohdalla ei tullut välttämättä varsinaisesti sellainen olo, että olisi tajunnut tai oppinut juuri mitään, vaan pikemminkin sellainen, että tehtävä on saatu läpi lähinnä päätä seinään hakkaamalla ja/tai tuurilla.
Muita huomioita
- Varsinaisen tentin ajankohta ennen tehtävien viimeistä palautusta onnistui hämäämään minua. Toivottavasti voin vielä osallistua korvaaviin tentteihin, vaikka en onnistunut ilmoittautumaan ensimmäiseen tenttiin, jotta pääsisin kurssista läpi.
- Kohtuullisen (esim. 3) arvosanan saadakseen voi joutua tekemään yllättävän paljon töitä, jos algoritminen ajattelu ei ole valmiiksi luontevaa. Yleisesti ottaen kurssin suoritusvaatimukset tuntuvat hieman oudoilta muihin tähänastisiin kursseihin verrattuna (mm. sekä pakolliset tehtävät että koe, jossa ei saisi tulla huteja). Tehtävien ”vaikeusaste” vaihtelee viikottain melko runsaasti ja tehtävät tuntuivat yleisesti ottaen olevan vaikeimpia kurssin alussa. Koe ei sinänsä ollut vaikea, joka on tietenkin asianmukaista jos kaikkiin pakollisiin tehtäviin pitää saada oikea vastaus, mutta siitä huolimatta tuotti omalla kohdalla melkoisesti paineita, kun ei voinut juurikaan ”optimoida” kokeeseen lukua, vaan piti käytännössä yrittää varmistaa, että kaikki asiat ovat muistissa. Mallikokeen perusteella odotin oikeastaan hieman ”vaikeampia” kysymyksiä kokeessa. Tästä syystä kokeeseen valmistautuessakin aikaa tuli käytettyä enemmän ”vaikeampiin” asioihin, ja kokeessa en ollutkaan enää sataprosenttisen varma sinänsä helpon kysymyksen kohdalla tarkalleen siitä mitä kysyttiin (tosin kumpikin vastaus olisi kai ollut ok?). Lähtökohtaisesti lähtisin siis tavalla tai toisella kehittämään ainakin koetta johonkin suuntaan nykyisestä. Ehkä kokeeseen voisi lisätä vaikkapa yhden kysymyksen lisää niin, että ”pakollisia” kysymyksiä on yhteensä 5, mutta oikeita vastauksia tarvitaan näistä neljään? Saattaisi ehkä lieventää paineita ennen itse koetilaisuutta.
- Kokonaisuutena mielenkiintoinen ja oikealla tavalla vaikea kurssi.
- tehtävät olivat hyviä!
- Tämä kakkososa tuntui paljon helpommalta kuin ensimmäinen, suurin haasteeni itsellä oli pythonin käyttäminen. Helppouteen toki saattaa vaikuttaa se että teen ja olen tehnyt kahta kokopäiväistä työtä tässä samaan aikaan kuin nämä kaksi viimeisintä kurssia ovat olleet käynnissä, joten on mahdollista että työstä tullut kokemus kantaa paljon.
- Työn ohella suoritettavana tämä on aika raskas ja isotöinen kurssi. Vaikka tein työsuunnitelman koko kurssin ajaksi tuli kurssin tehtävien kanssa kiire. Osa tehtävistä ratkesi kohtuu nopeasti mutta osassa meni pitkään ja joidenkin kanssa piti tehdä useampi iterointi koska alkuperäinen idea ei ollutkaan toimiva tai riittävän tehokas tms. En ole ollenkaan vakuuttunut että paperille tehtävä koodaaminen mittaa osallistujien osaamista algoritmien ja tietorakenteiden suunnittelussa ja käytössä. Mielestäni osa suunnittelua on nimenomaan iterointi. Alussa on ajatus miten jotain ongelmaa voisi lähteä ratkomaan jota koko ajan sitten iteroidaan ja joskus myös lähestymistapaa vaihdetaan. Paperi ei tarjoa kovinkaan hyvää käyttöliittymää moderniin sovelluskehitykseen. Puhumattakaan ohjelman ajonaikaisen tilan tutkimisen täydellisestä puutteesta.
- Toivoisin että toinen mallitentti olisi julkaistu aikaisemmin.
- Tulin toistamiseen kurssille, sillä viime keväältä jäi uupumaan muutama tehtävä kurssisuorituksesta. Ajattelin aluksi, että tentti tuntuu turhalta, varsinkin kun matkustaa kauempaa tenttimään, mutta nyt kurssin suoritettuani koen, että se antoi itsevarmuutta tehtävien tekemiseen. Eivät ne tenttitehtävät hirvittävän vaikeita olleet, mutta tuli kuitenkin sellainen olo että kun kerran pääsin tentistä läpi niin pakkohan sitä on uskoa että osaa edes jotain, joten motivaatiota tehtävien loppuunsaattamiseen löytyi enemmän. Kiva, että tehtävät pysyivät samoina kuin aikaisemminkin, niin kurssin uusiminen normaalissa jaksoaikataulussa ei ollut kovinkaan uuvuttavaa. Kurssimateriaali on hyvä ja Discordista sai tarvittaessa hyvin apua, kiitos kurssista :)
- hyvä kurssi, inhimillisempi kuin tira I. koen oppineeni perusteet verkkoalgoritmeista, jee