: Palaute kurssista 58161 Tietorakenteiden harjoitustyö (periodi I) (syksy 2011), Tomi Pasanen

 02.11.2011

Vastausten lukumäärä 6.

  • Kurssilla tuli koodailtua parit tietorakenteet, joten kurssin tavoitteet tuli minusta saavutettua. Kekorakenteen olio-ohjelmointia en kuitenkaan pidä hyödyllisenä sillä se saattaa antaa väärän kuvan tietorakenteen oikeanlaisesta luomisesta (eikö nuo lähes poikkeuksetta tehdä taulukoilla?).
  • TP: Kurssin tavoitteena on dynaamisen tietorakenteiden koodaaamisen harjoittelu; keko on tässä mielessä helppo lähtökohta kun se on kaikille tuttu.
  • Olisi hienoa jos tietorakenteille olisi valmiiksi luodut testit joilla voitaisiin vertailla esim. tehokkuuksia eri operaatioilla, jolloin eri tietorakenteiden ja toteutuksien tehokkuus voidaan huomata. Lisäksi voitaisiin esim. harjoitustilaisuuksia vertailla eri oppilaiden toteutusten nopeuksia, jotta oppilaat näkevät minkälaisia seuraamuksia on tietynlaisilla ohjelmointiratkaisuilla.
  • TP: On tosiaan eri asia todistaa jonkin algoritmin toiminta analyyttisesti verrattuna käytännön testeihin; tähän on herätty tiedepiireissä ja nykyään järjestetäänkin käytännön testaamisen tuloksiin liittyviä kokouksia. Tässä on kyllä hyviä ideoita, täytynee katsoa löytyisikö sopivia tietovarastoja tähän tarkoitukseen.  
  • Opettamista ei käytännössä ollut: puolen tunnin seuranta-aika viikossa (jaettuna kahdelle hengelle) riittää siihen, että katsotaan mitä on tehty ja mihin kannattaa jatkaa, mutta ei siinä mitään opetusta tai oppimista ehdi tapahtua.
  • TP: laitan nyt jokaiselle puolen tunnin tapaamisajat.  
  • Kaikki opiskelu oli siten itseoppimista - mikä oli ihan ok useimpien tehtävien kanssa, koska niistä oli annetussa gradussa olleiden kuvausten (riittämättömät) lisäksi selkeät kuvaukset wikipediassa.
  • TP: tämä on kurssin tapa: itseopiskelu.
  • Viimeiseen ei kuitenkaan ollut muuta kuin hyvin niukka ja erittäin epäselvästi kirjoitettu alkuperäisartikkeli, joka ei anna selvää kuvaa mitä pitäisi tehdä, hyvin vähän kuvaa miten pitäisi tehdä, eikä juurikaan sitäkään miksi pitäisi tehdä. Mitä käytännön merkitystä tällaisella parhaalla worst-case -rakenteella on? Esimerkkejä käytännön sovelluksista olisi ollut hyvä käydä, nyt tämä jäi pelkäksi "tällainen on olemassa joten koetetaan" -kuriositeetiksi ilman mitään kosketusta oikeaan maailmaan. Käy ehkä tutkijalle, mutta onko aineopinnot paikka tutkijan lähestymistavalle? Työläyden se ainakin nosti aivan liian korkealle. (Sinänsä binomikeon ja fibokeon tekeminen oli palkitsevaa, mielenkiintoista ja opettavaista, vaikka siihenkin olisi ehkä kaivannut jotain kokoavaa näkökulmaa: mitä käytännön merkitystä näillä on? Käytetäänkö niitä missään?)
  • TP: Tässä tosiaan mennään tutkimuksen puolelle: mitä analyysit todella todistavat ja mikä on niiden suhde todellisiin tilanteisiin. Paljon on vielä selvittämättä ja osa ihmisistä haluaa meidän tieteeseen "tieteellisen metodin"-ajatusmallin, missä mallinnetaan tilannetta, rakennetaan algoritmi, sitten tehdään testit ja vasta näiden perusteella väitetään jotain tai sitten korjataan algoritmia. Ei siis lähdetä pelkästään suoritusanalyysin perusteella väittämään mitään.
  • TP: Binomiakekoa ja fibonaccikekoa käytetään graafialgoritmien aliohjelmina, Brodalin keko on osoitus siitä että samoihin aikoihin päästään myös pahimmassa tapaukessa.
  • Uskoisin, että ns. vanha kaava toimisi tiralabrassa paremmin. Tällä kertaa opiskelijoilla ei ollut tavallisen labrakurssin tapaan mahdollisuutta valita omaa aihettaan, vaan koodattiin vain erilaisia kekoja. Käsittääkseni labrakurssien tarkoituksena on ennemminkin antaa opiskelijoille mahdollisuus soveltaa jo muilla kursseilla (tässä tapauksessa tirassa) opittuja asioita käytännössä. Tämä ei toteutunut nyt ollenkaan. Myös ohjauksessa olisi ollut parantamisen varaa. Sille oli varattu aikaa hyvin vähän ja silloinkaan ei mielestäni hirveän pätevää tukea saanut epäselviin asioihin.
  • TP: Hmm, niin tämäkin on yksi näkemys, omasta puolestani yritän neuvoa jos joku osaa kysyä, ja tähän toki tuo pidempi tapaamisaika auttaa...