Algoritmit ongelmanratkaisussa, kevät 2020, sanallinen palaute


Kurssi oli mukava ja opettavainen, mutta myös erittäin työläs.
Iso kiitos kurssista! Tirassa ja Lamassa huomasin olevani kiinnostunut algoritmeista ja Alon ehdottomasti haastoi jälleen pidemmälle. Viikoittaiset aloitusmateriaalit ja Kisakoodarin käsikirja tuntuivat tarpeeksi riittäviltä materiaaleilta alkuun pääsemiseen, ja aika-ajoin tehtävät saivat myös etsimään ja tutkimaan toden teolla muita lähteitä uusine ideoineen -joka on mielestäni vain positiivista ja tärkeää. Muutamilla viikoilla aloitusmateriaalissa olisi voinut omasta mielestäni olla jopa suorempi ohjaus "kannattaa ehdottomasti lukea lähteestä yy kappaleet xx"-tyylisesti, mikäli itse materiaali on suhteellisen kompakti. Esimerkiksi viikkolla 11 kisakoodarin käsikirja oli kullanarvoinen tuomaan mieleen syklinkäsittelyn idean! Toki suoria vastauksia tietenkään ole tarkoitus kertoa ja oletusarvoisesti materiaalit luetaan neuvomattakin, mutta kurssin ollessa todella vaikea kaikkien apujenkin kanssa jokainen pienikin ohjaus antoi monesti tarvittavaa alkuselkeyttä poukkoileviin ideoihin! Poikkeuskeväästä huolimatta oli kiva kuitenkin huomata Telegram-ryhmän auttavan todella nopeasti kysyttäessä =) Kaikenkaikkiaan negatiivisia yllätyksiä ei itse kurssiin siis tuntunut juuri liittyvän, vain paljon työtä ja suuria onnistumisen kokemuksia. Kiitos siis vielä, ja hyvää alkavaa kesää!
Ylivoimaisesti kandin haastavin kurssi ja nyt kun työt ovat alkaneet on vaikea löytää voimavaroja sen loppuun tekemiseen, mutta kurssilla on oppinut monta asiaa ja olen nauttinut kurssista.
Tehtävien anto ja materiaali tuppasi olemaan varsin suppeaa, ei aina, mutta usein. Ei se oppimista auta kun ei tiedä mitä tehtävällä edes ajetaan takaa, että mitä pitäisi tehdä tai saada edes aikaan. Ne voisi vääntää ihan rautalangasta. Muuten ihan mielekäs kurssi, suosittelisin.
Jotkin myöhempien tehtäväsarjojen oheisaineistot olivat suppeita ja muutama tehtävänanto oli vaikeasti ymmärrettävä. Kokonaisuudessaan kurssi oli kuitenkin erittäin palkitseva ja haastoi toistuvasti osaamisen.
Oli tarpeeksi haastavia tehtäviä
Kurssin toteutus ja itse kurssisivut olivat aivan mahtavat. Tehtävät oli helppo palauttaa ja tuntui hyvältä nähdä listalla, mitkä tehtävät oli saanut oikein ja kuinka paljon tehtäviä mihinkin kurssiarvosanaan tulee saada. Aiheet oli hyvin jaettu viikottain, ensimmäisten tehtävien ollessa hyviä perus tehtäviä aiheesta ja viimeisten hyvin haastavia. Kurssilla oppi paljon hyödyllisiä algoritmeja ja oli mielekästä kun itse pystyi aikatauluttamaan tehtävien palautukset. Omasta mielestäni kurssi oli haastava ja työläs, mutta siinä oppi paljon ja tehtäviä oli mielekästä tehdä.
Kurssi oli haastava ja tehtäviin sai kulumaan helposti liikaa aikaa. Jos algoritmeja ei oikein hanskannut ennen tätä kurssia, niin ehkä sitten tämän kurssin jälkeen. Kurssimateriaalit tosin eivät hirveästi pidä opiskelijaa kädestä, joten tehtäviä saa itse pähkiä ja jos hyvin menee, jotkut saa ratkeamaankin. Jos keksi ratkaisuja, niin niillä ratkaisuilla tekee varmasti jotain tehtävien ulkopuolellakin, mutta jos ratkaisut eivät auenneet, niin tough luck. Kurssi oli voinut tässä mielessä olla vähemmänkin armoton, koska raa'asta tiedosta on hyötyä ongelmanratkaisutaidon ohella. Kurssilla käytetyt sivut (cses) olivat loistavat ja vertaansa vailla.
Ehdottomasti kandikursseista työläin, mutta aivan älyttömän palkitseva kurssi. Tuntui, että tiran kohdalla ekan vuoden keväällä monet asiat vain menivät ohi, kun yliopistoura oli juuri alkanut, mutta nyt alonin avulla pääsi sukeltamaan paljon paljon syvemmälle. Kurssi innosti hakkaamaan algoritmitehtäviä pelaamisen tyyppisellä innokkuudella, siitä kiitos. Materiaalien puolesta viikkojen yhteydessä tarjotut vinkit, tirakirja ja kisakoodarin käsikirja riittivät usein, mutta materiaalien epätasaisuus häiritsi. Osalla viikoista tarjotut materiaalit pohjustivat tehtäviä hyvin, osalla taas (erityisesti viikolla 11) materiaali ei erityisesti auttanut lähtemään ratkomaan ongelmia. Kukin toki tajuaa hieman eri tavalla teoriasta, mutta ehkä teorian määrää voisi tasata viikkojen välillä. Paikka paikoin itseä mietitytti, mikä kurssilla on plagioimista ja mikä ei. Joidenkin tehtävien kohdalla kävi nimittäin niin, että olin miettinyt ratkaisua, mutta se saattoi olla liian hidas / mennä hieman pieleen. Sitten googlaillessa lisäteoriaa törmäsikin johonkin valmiiseen algoritmiin, joka saattoi auttaa ratkomaan tehtävän aikarajoissa. Ajattelen, että tämä on ok, jos algoritmin ajattelee ymmärtävänsä ja siihen on perehtynyt, mutta vaikeahan näitä rajoja on vetää. Ehkä jotain suuntaa siitä, mikä "on ok", voisi laittaa kurssin materiaaleihin? Kaiken kaikkiaan kiitos kurssista, se antoi ainakin itselle lisää itsevarmuutta koodarina ja sai tuumimaan, josko suuntautuisikin maisterissa enemmän algopainotteisille kursseille. En fuksina vielä ajatellut, että osaisin.
Kurssi oli rehellisesti ottaen yksi lempikursseistani tähän mennessä yliopistossa. Kontekstiksi: olen 2. vuoden matikan opiskelija, varsin kokematon ohjelmoinnissa (noin 30 credits yliopistossa, eikä muuta) mutta tunnollinen opiskelija, kurssi suoritettu arvosanalla 5. Osa kritiikistäni voi hyvin johtua vain siitä että olen pohjatasoltani huono. Vaikka pidin kurssista paljon on minulla ideoita parannukseen: -Joillain viikoilla tunsin kurssimateriaalin hyvin vähäiseksi. Tästä minulla oli ristiriitaisia tunteita. Toisaalta se pakotti etsimään tietoa ja oppimaan sekä keksimään asioita itse mikä varmaankin vastaa oikeaa elämää ja vahvistaa oppimista. Kuitenkin koska ihmisluonto on yleensä laiska, niin pientä kädestä pitämistä joskus kaipaisi. Tarkemmin: -tietorakenne struct olisi mielestäni voinut olla hyvä esitellä sekä custom comparator priority queuen rakentaminen. Myös esim swap ja ^=. -Viikko 12 ja 14 voisi sopia tehtävä jossa rakennetaan viikon tietorakenne kädestä pitäen. Vaikka tämä on "helppo piste" mielestäni se syventäisi opiskelijoiden ymmärtämistä ja valmistaisi vaikeampiin tehtäviin -Viikko 11 ja viikko 13 olisin kaivannut ehkä edes vähän selitystä intuitiosta viikon tekniikkojen takana. Vaikka tietorakenteet ja kikat eivät loppujen lopuksi olleet niin vaikeita niin alkuun pääsy oli erittäin tuskallista näinä viikkoina ja oli siltä osin jo monen tehtävän vaiva. -Alkuun pääsy josta puhuin oli monilla viikoilla suurin tuska. Vaikka tämä on luonnollinen osa oppimista. Koen että tätä voisi helpottaa esimerkeillä, kuten dynaamisen ohjelmoinnin viikoilla. Vaikka ensin mietin että esimerkkien antaminen voisi helpottaa tehtäviä liikaa, katsottuani tehtyjen 4-6 tehtävien suhdetta tehtyihin 1-3 tehtäviin päädyin lopputulokseen että esimerkki ei tekisi näin kunhan ongelma pidetään tarpeeksi helppona. (tai sitten 1. tehtävät ovat muutenkin yleensä aika helpohkoja niin jos näissä olisi "kädestä pitäen" tekemistä voisi se auttaa vaikeampien tehtävien ymmärryksessä -Uskoisin että yleinen sivu joka sisältäisi hyödyllisiä linkkejä etc. sekä vähän itse kurssin vetäjien ja ohjaajien ajatuksia siitä miten lähestyä vaikeita ongelmia olisi erittäin hyvä oppimiskokemus. Vaikka ne olisivatkin ihan perusjuttuja kuten käytä kynää ja paperia tai koita ratkaista ensin helpompi ongelma, niin näiden itsestään selvyyksien kuuleminen algoritmivelhon suusta voi hyvin parantaa ihmisten oppimismetodeja. Itselleni erittäin hyödyllinen linkki esimerkiksi kurssin aikana oli diffchecker.com mikä auttoi minua debugaamaan ainakin 3 isoissa testeissä epäonnistuvaa koodia. -viimeiseksi haluaisin vielä kehua kurssin tehtäviä sekä aktiivista ja hyödyllistä ohjausta pajoissa ja telegramissa. Vaikka mielestäni kurssilla voisi ehkä opiskelijaa jossain kohti vähän "lelliä" helpolla lähestymisellä, nautin suuresti kurssista jossa pääsi itse oikeasti etsimään tietoa ja keksimään ratkaisuja ongelmiin, eikä vaan kopioimaan jonkun toisen ratkaisua tai käyttämään samaa koodin pätkää tai matemaattista lausetta joka on 3 riviä ennen tehtäviä. Ahaa elämykset olivat erittäin palkitsevia ja takasivat että tulen opiskelemaan vielä lisää algoritmeja yliopistossa!
Malliratkaisut eivät ole hyviä siinä mielessä, että suurin osa niistä sisältää koooltaan kovakoodattuja staattisia taulukoita (ja ylipäätänsä globaaleja muuttujia turhaan) ja kaikissa koodi on kirjoitettu putkeen ilman luettavuutta parantavia rivinvaihtoja. Koodi ei ole kyllä parhaan tapaan kirjoitettu ja kommentit olisi tervettullutta.
Hyvä ja mielenkiintoinen kurssi. Hyvin työläs, mutta antoisa.
Pidin kurssista paljon. Kurssi oli opintovuoden mielekkäin kurssi
Tiesin kurssin olevan vaikea ja sitä se on. Hieman ikävää kun tämä on 2 jakson kurssi, joka hieman harmittaa vaikka olisit hyvä ensinmäisessä osiossa, toinen voi olla erittäin haastava.
Viikottaiset ohjeet olisivat voineet olla havainnollisempia. Ohjaajan läsnäolo kurssin Telegram-kanavalla oli hyödyllistä.
Apua sai telegrammista kun sitä pyysi (Tosin tähän kuuluu se että ennen kuin saa apua tulee 3 kommenttia ylimielisiltä opiskelioilta). Osa tehtävistä tuntui siltä että niihin täytyi keksiä joku tietty jippo. ISOIN KRITIIKKI: miksei kaikki viikot olleet alusta asti auki!? jos jäi ekalla viikolla jumiin niin täytyi odottaa kokonainen viikko!? MIKSI!?
Kurssi oli hyvä, mutta joillakin viikoilla materiaalia olisi voinut olla vähän enemmän, jotta viikon asian olisi ymmärtänyt kunnolla.
Telegram-kanavasta oli paljon hyötyä. Viimeisten viikkojen (12-14) tehtävät olivat minulle aika vaikeita. Kurssista opin paljon ja mielenkiintoni lisääntyi algoritmeja kohtaan
Mahtava kurssi!
Haastava ja mielenkiintoinen kurssi. Opettaa paljon tehokkaita ohjelmointikikkoja. Materiaali osin hieman niukka.
Telegram-ohjaus on huikeaa, nopea vastaus (kiitos Antti!) ja muutkin kurssilaiset auttelevat aktiivisesti. Luonteva kehitysehdotus olisi tietenkin malliratkaisujen kehittäminen Haskell- ja Rust-vastauksille, toki vähän liikaa odotettu näin isolla kurssilla :) Hyvä kurssi, kiitos
Ehkä lempikurssini, tehtävät ja palautussysteemi tukevat omien rajojen ylittämistä ja telegram-kanavalta sai aina apua, kun oli jäänyt jumiin. Monelle tehtävät voivat olla liian haastavia tai työläitä, mutta uskon että tälle kurssille valikoituvat ne opiskelijat, jotka haluavat niitä ratkaista.
Itse opin yleensä paremmin ohjatuissa opetustilaisuuksissa. Mallivastausten koodit voisivat olla selkeämpiä: luettavuus paranee esim. käyttämällä mielekkäitä muuttujien nimiä.
Aika paljon jää kurssilla itseopiskeltavaksi, mikä ei välttämättä ole huono asia. Algoritmien suunnittelu on tärkeä osa tätä kurssia ja sen oppiminen on mallia tekemällä oppii. Ehkä vähän enemmän luentoja muutamista suunnittelutekniikoista ei olisi pahasta.
Materiaali ja tehtävien annot voisi olla parempia.
Kurssi oli mielestäni tosi hauska, opettavainen, rasittava, vaikea, työläs ja miellyttävä. Vaikka suurin osa em. adjektiiveista kuulostavat negatiivisilta, niin kurssi oli mielestäni silti kokonaisuudessa tosi positiivinen kokemus. Tehtävät oli sopivan vaikeita, vaikka en ratkaisu ainuttakaan kutostehtävää. Oli tosi hauskaa huomata kurssiin aikana, että olen oikeasti oppinut algoritmeja ja tietorakenteita ja miten niitä voidaan hyödyntää erilaisissa tilanteissa. Oli tosi miellyttävää ja hauskaa yrittää löytää parempaa ratkaisua kun malliratkaisu. Olen tosi tosi tosi kiitollinen että kurssin ohjelmointikieli oli C++! Olen tosi tyytyväinen ja iloinen että sain vihdoin kokeilla ja oppia C++:ssaa. Vaikeustaso on ehkä puhutuin asia kurssiin liittyen. Kurssi on tosi tosi vaikea jos yrität ratkaista kaikki viikon tehtävät. Itse yritin vain ratkaista neljä per viikko, tämä oli mielestäni sopiva työmäärä minulle. Niin kuin aikaisemmin mainitsin, tehtävien vaikeustaso oli sopivaa, viikon kolme ensimmäistä tehtävää oli suhteellisen helppoja ja neljäs tehtävä keski vaikea ja viides ja kuudes tehtävä sitten tosi vaikeita. Kahdeksannen viikon jälkeen vaikeustaso nousi aika rajusti mielestäni. Tämän johtui kurssimateriaalin puutteista. Jostain syystä materiaalissa ei annettu enää koodiesimerkkejä ja algoritmien kuvaukset olivat aika hämäriä, esim. en vieläkään ymmärrä juuri mitään Z-algoritmista. Olisin toivonut enemmän materiaalia algoritimeihin (viikon teemoihin) liittyen. Viikoittaisia luentoja olisi ollut mielestäni tosi hyvä lisäys kurssiin. Tykkäsin tosi paljon Tiran luennoista, mielestäni olivat tosi opettavaisia, joten kuvittelisin, että luentoja olisivat hyvä lisäys kurssiin. Kurssissa oli muutamia muita huonoja “ominaisuuksia”. En tykännyt siitä, etten voinut tarkistaa muiden osallistujien ratkaisuja. Tästä oli puhetta jo ennen kurssia, että tämä aiheuttaa ahdistusta ja tekee kurssista kilpailuhenkisempi. Henkilökohtaisesti, en näe, että kurssista tulisi kilpailuhenkisempi, näen itse että muiden ratkaisut lisäisi oppimista, sillä kurssissa on paljon kokeneita algoritmiratkaisijoita, ja näkisin että heiltä voisi oppia tosi paljon. Toivoisin samalla että muiden ratkaisuja pystyisi kommentoida ja kenties kysyä kysymyksiä. Olisi kivaa käydä keskustelua eri ratkaisuista. Toinen asia mitä jäi koko kurssin aikana häiritsemään oli väite, että matikkaa ei välttämättä tarvita kurssissa ollenkaan. Näin väitetään, sekä tässä kurssissa että kilpaohjelmoinnissa ylipäätään. En vaan kertakaikkiaan ymmärrä miksi näin sanotaan. Mielestäni matikka on tärkein asia ymmärtää, ohjelmoinnin lisäksi, kilpaohjelmoinnissa ja algortimeissa. Kurssin alkuvaiheessa olin Gurulassa tekemässä alonin tehtäviä ja yksi matikan maisteriopiskelja tuli hakemaan kahvia. Hän sitten ihmetteli, että mikä tämä kurssi oikein on. Selitimme, assarin kanssa, miten kurssi toimii. Hän pystyi noin kymmenessä minuutissa ratkaisemaan toisen viikon viisi ensimmäistä tehtävää. Hän totesi itse, että tehtävät vaatii paljon matikkaa ja ymmärrystä matikasta. En sitten tiedä miksi ei voida sanoa, että matikkaa on tosi hyvä (olennainen) työkalu tälle kurssille (lukuteoria, joukko-oppi, bionmilause, algebra yms). Enivei! Summa summarum. Kurssi oli tosi hauska, työläs ja vaikea. Aion varmaan osallistua ensi vuonna uudestaan.
Oli melko turhauttavaa, että suurin osa kurssin suorittamisesta tuntui siltä että "Jos osasit tämän ennen kurssille osallistumista, tässä sinulle pisteet" - ja muuten sitten istuit ja googlasit ja hakkasit päätä seinään tuloksetta. Ja jos et koskaan keksinyt ratkaisua? Voi voi. Et saa nähdä ratkaisuakaan, eli et saa oppia oikeata tapaa. Tähän lisäsi vielä se, että kurssin telegramryhmä tuntui melkoiselta turhan pantilta, kun et saa kerran auttaa tai pyytää apua kun olet jumissa, ja melkoista elitismiä sielläkin sitten survottiin kurkkua pitkin alas, että jos et osaa, niin opiskele. Opiskele mitä? Ei materiaalia tuijottamalla viisaammaksi tule ellei oikeasti ymmärrä. Tähänkään ei tullut muutosta koronan karanteenin myötä, jonka takia ei myöskään algo-pajoihin voinut osallistua.
Tosi mielenkiintoisia tehtäviä, joita oli mukava ratkoa. Ehkä joidenkin viikkojen osalta olisi voinut olla enemmän lähdemateriaalia. kiitos!
Osassa tehtävistä olisi mukavaa mikäli olisi jonkinlaista lisämateriaalia ollut tarjolla. Toki koronakevät sotki kuvioita, kun pajatoimintaa ei ollut suunnitellusti. Kokonaisuudessaan kurssi oli mainio kokonaisuus. Hieman työläs sellaisenaan ja aikatauluttomuus johti siihen, että tietyssä vaiheessa alkoi olla vaikeaa palata kurssin tehtävien pariin "kun aikaa riittää myöhemminkin". Sillä on toki myös puolensa.
Kurssi kokonaisuutena mielenkiintoinen ja opettavainen. tosin mielestäni kurssista puuttuu kunnon tuki. Tuntui ettei telegrammissa oikein saanut hyödyllistä apua kun tyssäsi johonkin ongelmaan, ja kurssin rajalliset materiaalit eivät yleensä auttaneet näissä tilanteissa ollenkaan.
Tehtävät olivat mielekkäitä ja haastavia varsinkin kun pohjalla oli käytännössä vain tira. Ehkä jotain osallistavaa toimintaa olisi voinut olla enemmän, mutta en kyllä osaa sanoa että mitä se voisi olla. Ilmeisesti aiempina vuosina ollut luentoja tms?
Mielekäs kurssi, hyvin vaikea. Alussa materiaalit olivat hyviä, mutta loppua kohden alkoi taso laskea.
Aika monissa tehtävissä oli vaikea päätellä että kannattaako koittaa optimoida keksimäänsä algoritmia vai lähteä miettimään koko hommaa uusiksi eri näkökulmasta jos ohjelma ei toiminut tarpeeksi nopeasti, koska tietoa siitä kuinka lähelle 1s rajaa päästin ei saatu. Toinen mitä olisi kaivannut muutamissa tehtävissä olisi vähän kattavammat pienet syötteet. Osa viritelmistäni toimi esimerkiksi kaikkiin paitsi yhteen testii, mutta oli mahoton koittaa selvittää että mihin siinä testissä se hajosi, koska syöte ja odotettu tulos olivat molemmat niin isoja että niistä oli mahdoton ottaa tolkkua.
Erittäin mielenkiintoinen kurssi. Iso plussa siitä että vain yksi deadline viikottaisten sijaan.
Mukava ja hyödyllinen kurssi, opetti ongelmanratkaisua, pitkäjänteisyyttä ja yleisiä algoritmien suunnitelutaitoja. Jotkut tehtävät olivat työläitä ja vaativat paljon aikaa, mikä oli ennalta tiedossakin. Johdattelevaa materiaalia olisi voinut olla enemmänkin, nyt materiaali antoi yleiskäsityksen ja joitakin ideoita. Opiskelu oli omatoimista ja monesti joutui turvautumaan internetin ihmeelliseen maailmaan. Telegramista sai myös joitakin vinkkejä. Viikottain julkaistut tehtäväsetit rytmittivät opiskelua. Toisaalta itselleni olisi käynyt, että kaikki tehtävät olisivat olleet heti auki ja olisi voinut ratkoa niitä omaan tahtiin. Tulevaisuudessa varmaan näin onkin eikä ole lopullista deadlineakaan. Kiitos kurssista.
Kurssi on erittäin työläs ja vaatii melko suurta harrastuneisuutta. Kurssimateriaalia on minimaalisesti ja opiskelijalle jää melkoisen suuri työ itse oivaltaa ja työstää ratkaisuja eri tehtäviin. Kurssin haastavuus ei kylläkään tule varmasti kenellekään yllätyksenä, sillä asiasta on viestitty eri kanavissa jo hyvissä ajoin ennen kurssin alkamista. Arvosanaan 5 vaadittava taso on ehkä hieman turhan korkea huomioiden, että kyseessä on aineopintokurssi. Kurssin suorittaminen laskee ikävästi keskiarvoa monelle suorittajalle esimerkiksi arvosanalla 3 tehtynä, vaikka arvosanaan 3 onkin vaadittu hyvin merkittävä työpanos ja sen saavuttaminen on ollut varmasti hyvin opettavaista verrattuna kurssin suorittamatta jättämiseen. Ehkä arvosanan määrätytyminen voisikin olla saman kaltainen kuin Full Stack -kurssissa ja lisää tehtäviä tekemällä saakin tietyn rajan jälkeen enemmän opintopisteitä korkeamman arvosanan sijaan? TiRa:an verrattuna hyvä parannus on tehtävien malliratkaisujen yhteydessä olevat analyysit. Näissä analyyseissa voisi ehkä olla kuitenkin vielä hieman enemmänkin sisältöä, kuten aikavaativuusanalyysia yms. Näin opiskelijat pääsisivät vielä syvemmin hyötymään kokeneen algoritmitutkijan ajatusmaailman avaamisesta etenkin, kun luentoja ei kurssilla järjestetä. Analyysin yhteydessä voisi eritellä myös erilaisia lähestymistapoja ja niiden hyötyjä ja haittoja. Esimerkiksi kuvaus siitä, miten opettaja on itse päätynyt eri vaiheiden kautta juuri esittelemäänsä malliratkaisuun, olisi kiinnostavaa luettavaa. Toki analyysin syvyys voisi hieman riippua tehtävästä... Opettaja on ollut taas kerran jatkuvassa valmiustilassa auttamaan, jos jotain kysymyksiä on ilmennyt. Itseäni on lähinnä pidätellyt se, ettei ole ollut kovinkaan selvää käsitystä siitä, miten usein tai paljon opettajaa on soveliasta vaivata yksittäisillä tehtäviin liittyvillä avunpyynnöillä tilanteissa, joissa kysymykset ovat liian paljastavia yleiselle Telegram-ryhmälle postattaviksi. Varmasti algoritmipaja olisi soveltuva ratkaisu tähän, mutta se ei sovellu etänä kurssia käyville. Jokin karkea ohjeistus kontaktointiin liittyen olisikin ehkä hyvä. Kurssi on ollut hyödyllinen, mielekäs ja relevantti jatko TiRa:lle. Kurssin myötä rutiini algoritmiikassa on lisääntynyt vielä selvästi ja C++ -kielikin on tullut algoritmien kirjoittamiseen tarvittavien funktioiden ja ominaisuuksien osalta mukavasti tutuksi. Kiitokset kuuluvat kurssin opettajalle paitsi hienon kurssin pitämisestä, tehtäväsivuston ylläpitämisestä ja kaikesta ystävällisestä avusta, myös erityisesti siitä, että kurssi lisättiin yleisön toiveesta avoimen yliopiston valikoimaan. Tämä osoittaa joustavuutta ja eteenpäin menevää asennetta paitsi opettajalta myös koko laitokselta!
Vaikea kurssi, jossain kohdissa olisi kaivannut suurempaa määrää perusesimerkkejä joista olisi saanut pohjan. Nyt useampi tehtävä jäi testeissä kiinni mutta välillä ei ollut selkeää kuvaa mistä tämä voisi johtua (toki tilanne koodauksessa on aika yleinen)
Kurssi oli aikaavievä ja vaikea (ilman esitietoja), mutta hyvin mielenkiintoinen. Lisähankaluuksia ohjelmointikielistä (C++ ei kuulu suosikkeihini ja muut ovat vielä vieraampia). Toivottavasti kurssista tulee aikatauluttamaton versio.
En ole HY:n opiskelija enkä asu Helsingissä tai missään siellä lähistöllä. Tämän vuoksi kaikki luennot tai luentomateriaalit olisi varmaan hyvä julkaista nettiin  jos niitä nyt oli. Nyt, kun lukio on ohi, vapaa-aikaa oli niin paljon, että pystyin tekemään näitä tehtäviä rauhassa. Tehtävät ovat sellaisia, että 4:n saaminen on täysin mahdollista, jos vain käyttää aikaa, mutta 5:n saamiseen vaaditaan paljon enemmän aikaa (tai aivoja). Kurssin arviointi on mielestäni ihan hyvä. Näinhän tämän pitäisikin olla. Olisi muuten ihan mukavaa, jos vinkkejä saisi jollain muulla tavalla kuin vain Telegrammin kautta. En oikein uskalla lähettää paljon viestejä siellä, kun tekee mieli kysyä liian monta kysymystä. Jospa vinkkejä saisi CSES:n kautta tai jotain... Kurssi oli kuitenkin erittäin kiinnostava. Osallistuisin jatkokurssiin, jos niitä järjestettäisiin MOOCina.
Oppimateriaalia oli mielestäni rajoitetusti. Erityisesti olisin kaivannut jokaiseen aihepiiriin liittyviä esimerkkejä. Tira-kurssin materiaali kattoi osan aihepiiristä, muttei kaikkea. Kun myös pajaopetus puuttui maaliskuusta alkaen, kurssista muodostui hyvin työläs.
Olisi hienoa jos tehävien alussa olisi muutama testisyöte tekstitiedosto. Joissain tehtävissä pitää palauttaa raakile, että pääsee jyvälle testisyötteistä, että mitä tehtävältä odotetaan. :) Muuten ollut erittäin antoisa kurssi!
Kurssi oli kokonaisuutena erinomainen. Hienoa että myös yliopiston ulkopuolisille opiskelijoille tarjotaan mahdollisuus tällaiseen. Joistain aiheista, kuten esim hyppytauluista, olisi toivonut hieman perusteellisempia selityksiä.
-Uskomattoman hieno kurssi!! Kaikki aiheet olivat mielenkiintoisia ja toivat uutta näkökulmaa algoritmeihin. -Opetustahan ei kurssilla varsinaisesti ollut mutta apua sai tarvittaessa kysymällä Telegrammissa tai suoraan vastuu opettaja Antti Laaksoselta jonka ystävällinen ja avulias suhtautuminen ansaitsee aivan erityiset kiitokset! -Kurssin vapaa aikataulu sopi itselleni erinomaiseti sillä useat tehtävät vaativat pitkää kypsyttelyä. -Lisähaastetta aiheutti algoritmipajan peruuntuminen koronan takia. Siitä olisi ollut paljon apua. Tämä kurssi oli kaikinpuolin mielekäs mutta erittäin vaikea. Uskoisin käyttäneeni aikaa vähintään 20 op:n verran. Ainoa toiveeni olisi ollut että kurssilla olisi ollut myös Tiran tavoin luennot ja mieluummin videotallenteena. Kiitos kaikille jotka ovat olleet myötävaikuttamassa mahdollisuuteeni osallistua tälle mook kurssille!
Kurssi oli erittäin haastava. Kaikkien tehtävien deadline vasta kurssin lopussa oli hyvä, muuten kurssia olisi ollut hyvin vaikea ehtiä tehdä. Monien viikkojen kohdalla olisin kaivannut laajempaa tai yksityiskohtaisempaa kurssimateriaalia aiheesta.
Minusta hyppytaulukierroksessa oli hyvää että hyppytaulun kuvauksessa kerrottiin että sellainen on olemassa ja olennaisten välivaiheiden aikakompleksisuudet, mutta ei annettu suoraan algoritmia sen rakentamiseen. Treap oli tylsä koska annettiin suoraan koodi.
Erittäin hyvä kurssi, etenkin haastavuudensa vuoksi. Opiskelen tietojenkäsittelyä Oulun yliopistolla, ja meiltä puuttuu tämänkaltainen kurssi aivan täysin. Käsittääkseni monessa muussakaan yliopistossa ei välttämättä opiskella puhtaasti koodaamista ja algoritmeja näin syvällisesti, joka tuntuu olevan monelle jatkuva valittamisen aihe.
Kurssi oli kokonaisuutena hyvä ja varmaankin vaikein kurssini tähän mennessä. Kuitenkin koen kehittyneeni algoritmien tekemisessä korkean haastetason ansiosta.
Liityin kurssille juuri silloin kuin korona sulki yliopiston. Telegramin käyttö sinänsä oli OK, joskin miten ko. kommunikointiväline tulisi tulkita jäi epäselväksi. Eli, että onko sen tarkoitus olla virtuaalinen paja, jossa voi kysellä mitä mieli lystää ja niin paljon kuin lystää, jäi epäselväksi. C++ oli itselleni tuntematon, joten perusasioden suhteen voisi tiiviisti neuvoa yleisimpien virheiden suhteen ja miten niiltä välttyä. Arrayn ylitys, long long käyttö yms. ylivuoto-ongelmat, ohjeistus siitä, että kurssilla kaikki voidaan suorittaa ihan stack muistilla ja ylipäätään mitä eroa on stackilla ja heapilla. Voisi myös korostaa sitä, että tehtävät oikeasti vaikeutuvat rajusti kun mennään tehtävästä yksi aina kuutoseen saakka. Itse tuhlasin liikaa aikaa kun yritin niitä ratkoa. Joitain tehtäviä on joissa opetuksellinen hyöty on mielestäni heikkoa. Vk1 ruudukko, vk10 pienin kierto tulevat mieleen. C++ noviisina moni asia vaati todella paljon tutkimista. Kuten lower_bound ja upper_boundin käyttö, ja se, että map karttaa voi käyttää kartta[14] tapaisesti. Hieman laajemmista ja tarkemmista C++ ohjeista olisi paljon hyötyä noviiseille. Kun C++ vihdoin alkoi luonnistua niin tämä kurssi oli yksi nautinnollisimpia ja opettavaisimpia kursseja mitä olen käynyt. Vaikeustason nousu oli enimmäkseen juuri sopivaa, joskin Ritarit tehtävään upposi aivan liikaa aikaa koska en osannut olettaa sen olevan niin vaikea kuin se oli, koska kyseessä oli viikon 2 tehtävä.
Nykymuodossaan kurssi ei mitenkään vastaa kuvaustaan. Käytännön oppia algoritmien soveltamiseen ongelmanratkaisussa ei tältä kurssilta saa. Tämän hetken tilanne on se että jos et osaa, et tule asiaa oppimaankaan. Eikä sinua tulla opettamaankaan tai neuvomaan (siis virallisilla kanavilla). Kurssin tehtävien vaikeus tai työmäärä (jotka ovat huomattavan suuria) ei haittaisi yhtään vähää, jos kurssilla käytäisiin nuo tehtävät ihan aikuisten oikeasti läpi pohjamutiaan myöten. Miten ne voisi ratkaista, onko realistisia vaihtoehtoja, miten tietyn tyyppisiä ongelmia kannattaisi lähestyä jne. Ehdotuksena: Jakakaa kurssi kahteen osaan. Toisessa (opetusta sisältävässä kurssissa) käytäisiin läpi algoritmien soveltamista ongelmanratkaisuun, miten, missä ja miksi. Käyden läpi esimerkiksi tehtäviä vaihtoehtoisilla ratkaisutavoilla vaikka pelkän pseudokoodin avulla. Ja jättää koko kisakoodaushömppä ihan erilliseksi 'opintopisteitä kisakoodaamalla' kurssiksi, jonka ne joita se kiinnostaa voisivat valita.
Ulkohelsinkiläisenä kurssi oli ajoittain kovin hankala. Välillä yrittäessään keksiä ratkaisuja tuli tilanne, ettei ole aavistustakaan, mistä tähän edes pitäisi löytää jotain ratkaisuja. Monesti ongelmia oli mm. C++ taidoissa (pointterit isona asiana), joista ei kurssilla puhuttu, vaan sitä piti alkaa neulaa heinäsuovasta kaivamaan internetitse. Tai sitten joidenkin toteutusten keksimisissä, joita lienee oli kehitelty jo Tirassa. kkkk-kirja oli loistava väline - kun siitä viimein kuuli. Sen olisi voinut linkittää kurssille, eikä vain sattumalta löytää Telegramistä. Usein tuntui, oppilaita pakotetaan keksimään pyörä uudestaan, ja perusasioissa autettiin materiaalin puolesta liian vähän. Keskiarvotehtävissä, hyppytaulukossa ja Sillat ja Artikulaatiopisteet -osioissa tämä ei ollut ongelma, niissä informaatiota oli todella hyvin. Opin kurssilla varmasti paljon, mutta en tiedä oliko kaikki hiki ja tuska pakollista saman asian oppimiseen. Kurssi oli vaikein, mitä olen tähän asti tehnyt, toki siihen vaikuttaa myös se, että tämä oli jatkokurssi ja oman (Tampereen) pohjat olivat esimerkiksi Tiran puolesta monelta osaa erilaiset. Pidin kurssista kuitenkin todella paljon, ja harmittaa, etten ehtinyt panostamaan arvosanaan 4 tai 5. Esimerkkiratkaisut ovat erityisesti kurssin alkupuolella tarpeettoman epäselviä. Ne ovat lyhyitä, siten elegantteja, ja niissä on paljon hienoja kikkoja, mutta sitä on todella hankala lukea. Muutamaan riviin on ängetty mahdottoman paljon tietoa. Esimerkiksi muuttujat harvoin kuvaavat merkitystään, vaan ovat "r", "x", "u" tms. sana. Jos ne olisi edes kommentoitu, mitä ne funktionaalisesti tekevät, olisi helpompi ymmärtää mitä esimerkissä tapahtuu. Puolitushaun neljärivinen toteutuskin oli todella hieno, meille oli opetettu Tampereella paljon pidempi versio. Siinäkin tosin kesti tarpeettoman pitkään ymmärtää, mitä siinä tapahtuu. Tällaisia koodinpätkiä olisi hyvä avata enemmän, niin ei tulisi sisäistä mielenkiinnon katoamista. En edelleenkään tiedä, mitä maksimivirtaustehtävien esimerkin "real" ja "link" tekevät. Ja niissä oli sanottu, että ensimmäisen tehtävän esimerkkiä voi käyttää "mustana laatikkona" jonne vaan heitetään eri tavoin syötteet sisään, mutta toisessa tehtävässä sinne kuitenkin oli tarvinnut lisätä uusi funktio. Varsinkin alkupuolella opiskelijalle voisi antaa yksinkertaisia ja ilmeisiä vinkkejä, joka kuitenkin jättää kaiken tekemisen oppilaalle. Esimerkiksi "Huomaa syötteen suuri koko! Tehtävä tulisi siis saada tehdyksi ainakin O(n log n) ajassa." Tämä tuntuu varmasti typerältä, mutta aluksi ongelmia ei osannut ajatella ensisijaisesti Ordon kautta, mutta kurssin mittaa ja telegramin lurkkailun ohessa alkoi katsoa ensisijaisesti syötteitä, ja päätellä, minkälainen algoritmi tulisi kehittää. Helsingin Tirassa tällä tapaa on varmaan toimittu, ja Ordo -edeltä ajattelu lienee iskostettu mieliin, mutta ulkopaikkakuntalaisille se varmasti olisi hyödyksi. En tiedä olisiko mahdollista, mutta jonkin sortin ohjausapua olisi hyvä saada myös etänä. Se ei kuitenkaan taida olla erityisen järjestettävissä. Kaneettina pidin kurssista erittäin paljon, ja kurssissa oli paljon miellyttäviä tehtäviä, ja opettavaisia tilanteita suurten datamäärien kanssa toimimisesta. Telegramissä oli hyvä henki ja apua sai tarvittaessa. Kurssilla on kuitenkin paljon parannettavaa opiskelijaystävällisyydessä, sillä moni asia on toteutettu tarpeettoman haastavasti ja oppimista hidastavasti. Voisi harkita, onko opiskelijan varmasti mentävä joka paikkaan vaikeamman kautta.
Kiitokset mielenkiintoisesta kurssista. Kurssi oli melko työläs, kurssin sovittaminen aikatauluun oli vaikeaa, koska etukäteen ei voinut tietää, saako jonkin tehtävän tehtyä puolessa tunnissa vai joutuuko sitä pohtimaan koko päivän. Teoriapuoli olisi voinut mennä vähän syvemmälle, joissain tehtävissä materiaali olisi voinut antaa vähän paremmat valmiudet tehtävien ratkaisemiseen. C++:aa en ennen tätä kurssia ollut käyttänyt, pointtereita, luokkia yms. olisi voitu materiaalissa käydä läpi. Alkukankeuden jälkeen c++:n koodaaminen alkoi kuitenkin sujua melko hyvin. Kokonaisuutena kurssi oli mainio jatko-osa mielenkiintoiselle tira-kurssille.
Minulle sopi yksi deadline kohtuullisen hyvin (mutta en ole täysipäiväinen opiskelija, joten ehkä hyödyn hieman enemmän annetusta siimasta), verratuna viikottaisiin aikarajoihin. Yksi mukava etu tälläisestä takarajasta on se että jos lopuksi on aikaa jäljellä, voi käydä vielä yrittämässä ratkoa lisää aiemmilta viikoilta, mikä toimi itsellä vahvistavana kertauksena. Opetusta tai oppimateriaalia olisi mielestäni voinut olla lisää, vaikka yksi kurssi pointeista saattaakin olla isompi itsenäisyys verrattuna TIRAan. Varsinkin viimeisellä viikolla jäin vähän hukkaan treapin kanssa, siis en vain yksinkertaisesti pystynyt keksimään miten kääntöjen olisi pitänyt toimia annetujen ohjeiden perusteella.
Kurssimateriaali oli niukkaa. Telegram ryhmä oli harmittavan hiljainen. Kurssihenkilökunta oli aina saavutettavissa.