Opetustapahtumapalautteen sanalliset vastaukset

TKT21012 Algoritmit ongelmanratkaisussa 14.01.2019-29.04.2019

DATA7 Kommentoi kurssin toimintaa, sisältöä, opettajien tai ohjaajien toimintaa; hyödyllisyyttä, mielekkyyttä, relevanssia, vaikeustasoa; kehitysehdotuksia, kritiikkiä, kiitoksia

Minulle sopii hyvin kurssi jossa ei ole viikottaista palautusaikatalua vaan harjoituksia voi tehdä myöhemminkin. Toisaalta on vähän huono että tehtävistä joita ei saa ratkaistua ei näe malliratkaisuja ja siksi niistä ei opi niin hyvin. Tilastointi lisäsi jonkin verran mielenkiintoa, oli mukava nähdä itsensä listoilla.

PLUSSAA: -Kurssin ohjaajat olivat hyviä, heille kiitos avusta! Tiistain ohjaaja löysi hienosti virheitä koodista ja osasi neuvoa eteenpäin. Torstain ohjaaja auttoi idean löytämisessä tai perustelussa miksi oma idea ei mahdollisesti toimi. -Koodiesimerkit ja toteutustavat materiaalissa mielenkiintoisia ja hyödyllisiä. -Opettaja vaikutti innostuneelta ja osaavalta. -Joustava dedis. -Ei tenttiä (taikaa palaa muutenkin). MIINUSTA: -Alussa sivusto tökki usein. Tämä haittasi tekemistä, sillä voin tehdä vain tiettyyn aikaan viikossa. -Mallivastauksissa liian vähän selitystä ja muuttujien nimet epäselviä. Mielestäni ideana on oppia uutta ja uusia toteutustapoja. Jos ei ymmärrä mallivastausta, ei opi mitään uutta ja erilaista tapaa ratkaista samaa tehtävää. Ymmärtämisestä olisi enemmän hyötyä jatkoa ajatellen oppilaalle. -Kurssimateriaali voisi olla hieman laajempi (esim. enemmän koodiesimerkkejä ja sen selitystä viikoille, joissa sitä ei juuri ollut). -Vaatimustaso tosi korkealla. En ollut kuullut kurssista mitään huhuja, sillä en ole esim. Tiran Telegrammissa. Tästä olisi kiva saada jotain tietoa, että paljonko keskimäärin porukalla menee tekemiseen tai muu varoitus vaikeustasosta. Arvosanarajat läpipääsyyn tuntuvat varmasti hyvin korkeilta niille, jotka ovat esim. käyneet vain ohjan&ohpen sekä tiran (ja varmaan muillekin). -Hacking on hyvä idea siinä mielessä, että testit tulevat kattavammiksi. Homma meni kuitenkin melko kikkailuksi kun porukka hakkeroi itseään. Mietin myös sitä, että mahdollinen maksimi pistemäärä hakkeroinnista oli melko korkea. Mielestäni pääpointti kurssilla ei ole hankkia lisäpisteitä hakkeroimalla muiden koodeja, vaikkakin toki pisteet ovat motivoiva tekijä muiden koodin tarkasteluun kriittisellä silmällä saadakseen itselleen plussaa. Hakkeroinnin kohteen ei pidä jatkossakaan missään tapauksessa menettää pisteitään! -Ohjausta olisi voinut olla enemmän! Kokonaisuudessaan kurssi oli opettavainen, mutta aiheutti rehellisesti sanoen eniten päänvaivaa ja epätoivoa kaikista käymistäni kursseista. Uskon, että vaikeus näkyy myös läpäisyprosentissa. Kiitos kuitenkin kurssista ja hyvää kesää! :)

Kurssi on tähän mennessä palkitsevin yliopistokurssi, jonka olen käynyt. Kurssilla sai tosissaan haastaa itseään, ja tehtävät olivat mielenkiintoisia ja hyödyllisiä. Viimein tuntuu, että ymmärtämisen lisäksi myös osaa toteuttaa asioita. Ohjaajat yleisesti antoivat hyviä ja hyödyllisiä vinkkejä, kun niitä päätti itse kysyä. Osa tehtävistä olisivat olleet mahdottomia ilman neuvoa, mutta se ei ole ongelma, sillä neuvoa oli saatavilla. Varsinkin aluksi kurssi tuntui haastavalta ja ehkä jopa hiukan epätoivoiselta, mutta edetessä tälläiset ajatukset katosivat. Kurssin alussa kannattanee mainita, että kurssi on vaikea ja siihen kannattaa varata hyvin aikaa ja että lopulta se on hyvin palkitseva. C++ oli oikein mukava kieli työstää tehtäviä, sillä siinä moni asia on toteutettu mukavalla tavalla. Ekoilla viikoilla aikaa meni paljon kielen sisäistämiseen, mutta se onneksi oli hyvin lähellä Javaa. Erityisesti kurssi oli todella kiva ja haastava. Kurssi sisälsi paljon mielenkiintoisia ongelmia ja oli kiva, että oli viikkoja, jolloin oli valmiina koodia, ja viikkoja, jolloin ei ollut kuin aiheen selitystä ja piti itse implementoida asia. Oma käsitys osaamisesta tämän vaihtelun avulla kasvoi paljon.

Kurssi oli mielenkiintoinen ja työläs. Mallivastuksiin suosittelisin laittamaan aina pienen kerronnan mitä vastauksessa tapahtuu, niin niistä voisi oppia enemmän ja ymmärtämään mitä toinen on ajatellut. Muuttujat olisivat myös hyvä nimetä sopivasti, mikä helpottaisi mallivastauksien lukemista.

tirakirja ja kkkk hyvää materiaalia

Paja-ohjaus oli loistavaa, ilman sitä en varmasti olisi jaksanut taistella osaa tehtävistä läpi.

Kurssi oli hyvin työläs joten sen olisi voinut jakaa kahteen osaan

Ihan ok

Mielenkiintoinen ja työläs kurssi, otti kyllä luulot pois. Materiaali auttoi hyvin alkuun kullakin viikolla. Vaikeuskäyrä oli alun jälkeen todella jyrkkä, mutta se toisaalta taitaakin kuulua asiaan. Vihreiden testien näkeminen pitkän pähkäilyn jälkeen tuntui mahtavalta. Tehtävien palautusjärjestelmä ansaitsee myös kiitosta, se toimi todella hyvin ja nopeasti ja oli selkeä käyttää. Kaiken kaikkiaan hyvä kurssi, opin paljon uutta ja lisää jo tutuista asioista.

Välillä tuntui että kurssilla oli hieman outo tiedon pimityksen kulttuuri. Ymmärrän kyllä myös "siperia opettaa"-henkistä näkökulmaa, että laittamalla opiskelija pohtimaan kunnolla jotain kysymystä hän oppisi asian paremmin. Tuntui kuitenkin hölmöltä ja epäkiitolliselta että jotain kysymystä voi päätyä miettimään peräti päiväkausia eikä koskaan saa tietää sen vastausta. Kuitenkin malliratkaisuistakin voisi oppia paljon, ja ehkä malliratkaisusta jonkun tietyn logiikan opittuaan opiskelija osaisi soveltaa logiikkaa eteenpäin. Tehtävät olivat kuitenkin mielekkäitä ja kiinnostavia. Luennoilla asiat selitettiin hyvin selkeästi ja kysymyksiä kuunnellen.

Kurssi oli antoisa. Kurssi oli haastava ainakin pyrittäessä korkeampiin arvosanoihin. Tämän tason haastavuus on poikkeuksellista kandivaiheen opinnoissa, mutta pidän sitä ehdottomasti hyvänä asiana. Ainoana "harmittavana" asiana kurssilla on mielestäni työläys, mutta toisaalta tehdessä useamman tehtävän samasta aihepiiristä, matkalla oppii ja viikon jälkimmäisissä tehtävissä pystyi käyttämään hyväksi viikon ensimmäisistä tehtävistä oppimaansa. Työläyden kanssa on myös helpompi tulla toimeen, kun tehtävillä on yksi deadline toukokuun lopussa. Tämä antaa joustavuutta suorittaa kurssi omiin tavoitteisiin sopivasti. Itse sain vielä toukokuun puolella tehtyä hyvin suuren määrän tehtäviä oppien samalla paljon uutta ja saaden korotettua arvosanan 1->5. Ilman aikataulun mahdollistamaa joustoa tässä ei olisi ollut mahdollista onnistua muiden työläiden kurssien puristuksessa. Kannatan siis yhtä deadlinea, joka on reilusti 4. jakson päätyttyä. Viikottaiset palautukset ei toimi tällaisissa hyvin syvällistä ajatustyötä vaativissa palautuksissa. Viikkopalautusten aikataulupaineen aiheuttama stressi haittaisi tehtävien vaatimaa ajatuskykyä. Hakkerointiin ei muutamaa tehtävää lukuunottamatta aikaa jäänyt juurikin kurssin työläyden takia. Siinä pääsisi kyllä tutustumaan toisten tapaan kirjoittaa koodia ja algoritmeja

erittäin haastava, mutta hyvä kurssi. opettaja tuntuu olevan innostunut ja perillä asioista.

Oikealla tavalla haastava kurssi.

Paja on ollut korvaamaton apu, kun yrittänyt päästä kurssia läpi. Ensimmäistä kertää kävin tätä kurssia ja nyt voi jo tätä kirjoittaessa sanoa, että läpi pääsin. Tosin tähän mennessä käytetty vaivaset 300-400 työtuntia ja siltikin vain hädin tuskin läpi. Eli työläs on todellakin ollut eikä läpi olisi todellakaan päässyt ilman pajaa. Materiaalista taas ei kahta ensimmäistä viikkoa lukuunottamatta ollut pahemmin itse tehtävissä hyötyä vaikka kyllähän niistäkin oppi asioita.

Tykkään itse tällaisesta yhden deadlinen systeemistä, vaikka tässä vaiheessa en kyllä ole yhtään varma siitä jos itse pääsen läpi kurssista, olen silti tykännyt tehdä tehtäviä. Sivuaineopiskelijana, joka ei ennen tätä kurssia tiennyt mitään C++ kielestä, olen tyytyväinen siihen että sain perusteet kieleen. Kävin itse viimeisellä luennolla jossa keskustelimme kurssin tulevaisuudesta ja miten voisi parantaa suorittamisprosenttia. Itse uskon että kurssin jakaminen kahteen osaan olisi hyvä parannus. Kurssi on todella työläs, luultavasti työläämpi kuin monet olettavat, ja kun he ovat kokeilleet muutaman viikon tehtäviä voin hyvin ymmärtää että kurssi droptaan jos tuntuu siltä että ei suju hyvin, ja koska tiedossa on kahden periodin mittainen kurssi. Jos se jaettaisiin kahtia ehkä jotukut opiskelijoista jotka olisivat muuten dropanneet kurssin, jaksavat puskea edes yhden puoliskon läpi. Tällä saataisiin ehkä suoritusprosenttia ylös. Kurssista voisin ehkä sanoa sen verran että materiaaleja voisi vähän laajentaa. Tällä hetkellä tuntuu siltä että, ainakin itse aika aloittelijana, käytän StackOverflowta ja GeeksforGeeksiä enemmän kuin kurssimateriaalia, joka on yleensä aika lyhyt.

Tehtäviin saa upotettua todella suuren määrän aikaa ja energiaa siihenkin nähden, että kyseessä on 10 opintopisteen kurssi, mutta olen kehittynyt algoritmien ratkaisijana uudelle tasolle ja jokainen hetki on ollut mielekäs. Tehtäviä ei ole "spoilattu" materiaalissa tai luennoilla, mutta annettu kuitenkin riittävästi työkaluja ongelmanratkaisun avuksi. Joskus oli hyödyllistä hakea oheismateriaalia itsenäisesti. Uskon kurssilla opitun ongelmanratkaisutaidon olevan suuri etu työelämässä. Kurssilla alkuvaiheessa opetettu binäärihakutekniikka on mullistavan paljon helpompi kuin yleensä opetettu. Hakkerointi oli mielekästä, ja sitä kautta oppi paljon koodin optimoinnista ja ns. pahimmista tapauksista, joita koodi voi kohdata.

Kurssi oli tosi hyvä ja mielenkiintoinen. Olisi voinut kertoa paljon tarkemmin siitä, minkä verran on tarkoitus lukea kirjallisuutta, kun ratketaan tehtäviä, ja kannattaako lukea kkkk:n kirjan luvun ennen kuin tekee jonkun viikon tehtäviä. Joillain viikoilla ohjaajat kannustivat lukemaan jotain siitä kirjasta, ja jos ei olisi tiennyt, ei olisi voinut ratkea niitä. Ja toisinpäin esimerkiksi, jos olisin lukenut Z-algoritmin lukua ennen sen viikon tehtäviä, siinä olisi ollut 2-3 jo ratkaistuna (onneksi luin sen vasta kun olin miettimässä Pisin palindromi -tehtävää). Toinen esimerkki, hyppytaulukon viikolla ei kerrottu tarkasti miten muodosteta hyppytaulukko; sitten jotkut mietti sitä jonkun aikaa, kun taas muut joko etsii sitä tai saa tietää ohjaajasta miten se tehdään. Eli, siinä viikossa olisi pitänyt kertoa tarkasti, onko hyppytaulukon rakentamistavan keksiminen yksi osa viikon haasteista, vai onko se tarkoitettu luettavaksi/kysyttäväksi valmiiksi. Tehtävien vaikeus vaihteli ehkä pikkusen liikaa, esim. Z-algoritmin viikko oli TODELLA paljon helpompi kuin mikään muu viikko. Ja ehkä Suunnatut verkot viikko oli vaikeampi kuin muut. Hakkerointi oli hyvä idea, mutta siinä on parannettava. Voisi esim. kieltää sellaiset suht hyödyttömiä ja liian helposti toistettavia hakkerointeja, kuten unorderered_map hakkerointi. Voisi myös olla statistics-sivu hakkeroinneista, samalla tavalla kun on tehtäväpisteistä. Voisi myös päättää, että jos ohjaaja tai Antti huomaa virheen koodissa, hän ei voi ihan heti hakkeroida sitä, mutta pitää kertoa siitä ja antaa mahdollisuutta opiskelijoille hakkeroida sitä. Tämä siis koska ohjaaja tai Antti eivät saa pisteitä hakkeroinnista, kun taas toinen opiskelija olisi voinut saada pisteitä siitä. Tehtävät olivat tosi hyviä ja mielenkiintoisia. On minusta aika hyvä tuo idea joka Antti esitti luennolla, että olisi yksi iso paketti tehtäviä missä tira, alon ja daa tehtäviä, ilman aikarajoja. Mutta silti pitäisi pitää myös aikataulutettu suoritusmahdollisuus, koska se auttaa monia. Luennot olivat tosi hyviä, rauhallinen tyyli joka sopii aiheeseen, ja aivoin kysymyksiin ja ehdotuksiin. Olisi voinut olla enemmän kirjallista materiaalia, esim. voisi tarkasti viitata kkkk kirjaan, kuten jo mainittu. Ohjaajat olivat tosi hyviä, auttavaisia ja ystävällisiä.

Ennen kurssin aloittamista olin hyvin skeptinen sen muotoa kohtaan. En pitänyt testaavasta ajattelutavasta ollenkaan, vaan olisin toivonut enemmän materiaalia, ja eksplisiittisiä työkaluja tehtävien ratkomiseen. Kurssin lopulla on kuitenkin myönnettävä, että algoritmista ajattelemista on todella vaikea opettaa: niitä voi oppia vain tekemällä. Kurssin lopulla tuntui, että tehtävien tekeminen helpottui merkittävästi, mikä oli varsin voimauttava tunne. Ongelmaksi tällöin muodostuu, että opiskelijat turhautuvat, kun tehtävät tuntuvat vaativan jo valmiiksi jonkinlaista osaamista, tai jotain mysteeristä hoksaustaitoa, jotta niissä onnistuu. En toivoisi kenenkään kokevan, että heillä ei vain ole tarpeeksi synnynnäisiä lahjoja kurssin läpipääsemiseen. Olen itsekin ajatellut näin tirassa ja tämän kurssin alussa. Ongelma ei missään nimessä ole helppo ratkaista. Itselleni paja oli avainasemassa kurssin suorittamisessa, ja yksi mahdollisuus olisikin pyrkiä korostamaan pajan merkitystä kurssilla. Monille ei myöskään ole itsestäänselvää, että kaikki käyttävät tehtäviin paljon aikaa, ja siksi ajattelevat olevansa muita huonompia. Opiskelijoita voisi pyrkiä kannustamaan yhteistyöhön enemmän (mikä alallamme on varmasti erityisen vaikeaa). Eräs mahdollisuus olisi esimerkiksi joidenkin pienryhmäkeskustelujen järjestäminen, mutten tiedä miten tämä toimisi käytännössä, ja se olisi toki kallista resurssien suhteen. Kaiken kaikkiaan kurssi oli erittäin opettavainen kokemus, Se sai minut sekä turhautumaan, että tuntemaan suurta ylpeyden tunnetta, kun tehtäviä sai pikkuhiljaa ratkottua. Suurin ongelma minulle oli julkinen leaderboard. Vaikka loppujen lopuksi kurssi sujui osaltani hyvin, en olisi kirjautunut kurssille "omalla" nickilläni, mikäli olisin tiennyt sen näkyvän kaikille. Ymmärrän, että kilpailuhenkisyys on iso osa kilpaohjelmointipiirejä, joista kurssi varmasti kumpuaa, mutta mielestäni omien pisteiden vertaileminen muihin voi olla myös hyvin haitallista. Erityisen ongelmallista on, kun menestys henkilöityy joihinkin ihmisiin, mikä voi vahvistaa jo suorituksen eteen taistelevissa opiskelijoissa mielikuvaa, että he eivät vain ole tarpeeksi hyviä. Mielestäni yksilösuoritusten korostaminen ei ole mieleäkstä tai hedelmällistä. Toisaalta toki leaderboard teki selväksi, että kurssi on kaikille vaikea. Toivoisin, että näin julkisen listauksen sijaan kurssilla näytettäisiin esimerkiksi prosentteina, moniko on tehnyt tietyn määrän tehtäviä. Ainakin olisi reilua ilmoittaa leaderboardista etukäteen, jotta opiskelija saisi valita, esiintyykö kurssilla tunnistettavalla nimellä. Kaiken kaikkiaan kurssi oli minulle positiivinen kokemus. Tiedän, että monelle se ei olisi ollut. Itselleni siitä teki opettavaisen realistiset odotukset, pajassa ahkerasti käyminen, ja kanssaopiskelijat, joiden kanssa tehtäviä pystyi ratkomaan. Aiheet olivat mielestäni erittäin mielenkiintoisia, ja oli esimerkiksi mukavaa, että myös merkkijonoalgoritmeja käsiteltiin. Oli myös mukavaa, että aiheet olivat eri tavalla vaikeita. Esimerkiki maksimivirtausviikko oli mielenkiintoinen, vaikka samaa koodia tulikin käytettyä monesti, sillä vaikeaa oli ongelmien asettaminen maksimivirtuaksen viitekehykseen. Oli hyvä, että joillain viikoilla oli tarjolla koodia, ja toisilla vain sanallinen esitys algoritmista. Vaikeuskäyrä oli johdonmukaisesti suunnilleen samanlainen joka viikko, mikä helpotti tehtävien tekoajan allokoimista, kiitos siitä. Kehittämisen varaa on mielestäni julkisen pistelistan lisäksi luennoissa, jotka eivät aina tuntuneen hyödyllisiltä. Esimerkiksi käytännön ajanmittaus oli periaatteessa mielenkiintoista, muttei mielestäni usean luennon arvoista. Avuliaimpia olivat luennot, joissa käytiin läpi algoritmien intuitiota, tai tehtäviin rinnasteisia ongelmia. Ensimmäisillä viikoilla olisi hyvä olla enemmän materiaalia, sillä ongelmat, joille ei ole tarjolla mitään ratkaisukonsteksia, ovat ainakin omasta mielestäni vaikeimpia. Ohjaajat olivat erittäin hyviä, ja kurssin vetäjä vaikutti olevan opiskelijoiden menestyksestä aidosti kiinnostunut. Kiitos vielä kurssista, opin paljon sekä algoritmeista että itsestäni :)

Kurssi olisi hyvä jakaa kahteen osaan, nyt 10op kokonaisuus on todella työläs

Kurssin tehtävät ovat lähinnä aivopähkinöitä, joihin ikään kuin pitää vain "hoksata", kuinka jokin tietty ilmiö saadaan mallinnettua. Paljon aikaa menee vain tehtävän miettimiseen ja pohtimiseen sen sijaan, että asia tulisi opittua. Minulle jäi sellainen olo, että olisin voinut oppia samassa ajassa enemmän, jos tehtävänannoissa olisi annettu hieman enemmän osviittaa siitä, kuinka tehtävä tulisi ajatella. Mielestäni olisin siis oppinut enemmän, jos olisi pidetty vähän enemmän "kädestä kiinni". Voihan olla, että olen vain väärässä ja olisi pitänyt olla vain parempi.

Useamman kerran kävi niin, että tehtävä jälkeenpäin hylättiin ilman, että sai "compensation" pointtia.

Olisi kiva jos voisi saada jälkikäteen viittauksia syventävään lisämateriaaliin kurssin aiheista tai läheisesti niihin liittyvistä aiheista (muu kuin KKKK).