Kurssin II-osan loppuraportti
Kurssille osallistui 239 opiskelijaa, joista 144 (60.3 %) suoritti kurssin hyväksytysti.
Arvosanajakauma:
- Arvosana 1: 46 opiskelijaa (31.9 %)
- Arvosana 2: 29 opiskelijaa (20.1 %)
- Arvosana 3: 25 opiskelijaa (17.4 %)
- Arvosana 4: 21 opiskelijaa (14.6 %)
- Arvosana 5: 23 opiskelijaa (16.0 %)
Yhteenveto
Palautteessa on paljon hyödyllisiä kokemuksia, havaintoja ja ehdotuksia. Kurssin kehitys jatkuu ensi lukuvuonna.
Seuraavassa on tarkempia kommentteja joihinkin esille tuotuihin asioihin.
”Kun viikkotehtävät ovat aina tietyn otsikon alla, ohjaa otsikko, millä systeemillä tehtävää kannattaa lähteä ratkaisemaan. Tosielämässä kukaan ei kerro otsikkoa, joten lopussa voisi olla vaikka yksi (vapaaehtoinen?) tehtäväsarja, jossa on tehtäviä kaikista aiheista.”
Kommentti: Tämä voisi toimia hyvin juuri vapaaehtoisena lisähaasteena. On totta, että ongelmanratkaisua voi ohjata paljon oletus siitä, millä tekniikalla tehtävä tulisi ratkaista.
”Tehtävänannoissa pitäisi määritellä täsmällisemmin kriteerit, millainen ohjelma suorittaa tehtävän hyväksytysti. Jäi epäselväksi, milloin ja mitä lisäkirjastoja (import) sai käyttää.”
Kommentti: Tehtävissä saa käyttää kaikkia Pythonin standardikirjaston moduuleja. Tämä tulee tosiaan huonosti esiin kurssin ohjeistuksessa ja asiaan on tulossa parannus.
”Näissä pitäisi mielestäni määritellä, kuinka kauan ohjelman suorittaminen saa kestää, ja mitä luokkaa syötteen suuruus enintään on tai kuinka monta kertaa suunnilleen kutsua ajetaan.”
Kommentti: Sallitun suoritusajan määrittelyssä vaikeutena on, että palvelimen suoritusympäristö ei ole luultavasti tarkalleen yhtä nopea kuin opiskelijan oma ympäristö. Tämän takia ei olisi välttämättä hyödyllistä ilmoittaa tarkkaa ylärajaa ajankäytölle. Tätä asiaa pyritään kuitenkin parantamaan tulevaisuudessa.
”Tehtävien palautus UI, jos annetussa pohjakoodissa on liian pitkä rivi on sitä hankala kopioida.”
Kommentti: CSES:ään on tulossa mahdollisuus kopioida tehtäväpohja mukavammin.
”Algoritmien toiminnan avaaminen askel askeleelta visuaalisesti voisi kuitenkin olla sellainen lisäys suoraan kurssimateriaaliin mikä auttaisi opiskelijoita ymmärtämään miten algoritmit toimivat.”
Kommentti: Palautteessa on melko paljon tällaisia toiveita. Tämä otetaan huomioon materiaalin kehityksessä.
”Kurssin tehtävien keskinäinen kontrasti on todella suuri. Tyypillisesti viikkoa kohden noin neljä-viisi tehtävää menee ihan vain materiaalia kopioimalla, mutta sitten seuraaviin kahteen menee päiviä.”
Kommentti: Tämä riippuu myös todella paljon opiskelijasta. Osalle viikon ensimmäisetkin tehtävät ovat vaikeita ja osalle kaikki tehtävät ehkä viikon viimeistä lukuun ottamatta ovat hyvin helppoja.
”Tai olisiko ehkä mahdollista supistaa oppimimistavoitteita ja käydä perusteellisemmin läpi vähemmän aiheita?”
Kommentti: Dynaaminen ohjelmointi tuntuu nykyisellä käsittelytavalla ehkä liian raskaalta tälle kurssille, ja tulevaisuudessa tätä aihetta mahdollisesti kevennetään kurssilla.
”tira 1 ja 2 kursseilla oli 2 tehtävää, joissa piti luoda tiedosto nimeltä components.py. Voisiko toisen näistä nimetä uudelleen, niin että molempien kurssien tehtävät voisi pitää kätevästi samassa kansiossa?”
Kommentti: Tämä olisi hyvä tavoite tulevaisuudessa. Tehtävien nimissä tuntuu tulevan yllättävän usein törmäyksiä.
”Joidenkin tehtävien esim. Listapelin tehtävänanto oli hämmentävä ja ajoi väärin johtopäätöksiin, joten varmistaisin että oikeaa tulkintaa varten ei joutuisi ensin kantapään kautta tehdä paljon töitä.”
Kommentti: Joissakin tehtävissä voisi tosiaan olla hyvä selostaa tarkemmin, miten algoritmin tulisi toimia esimerkiksi tietyllä syötteellä.
Kurssipalaute
Kurssipalautteen antoi 105 opiskelijaa.
Numeerinen palaute
Arvioi seuraavia väitteitä (1 = täysin eri mieltä, 5 = täysin samaa mieltä):
- Osaamistavoitteet olivat selvät: 4.58
- Toteutustapa tuki oppimistani: 4.29
- Materiaalit tukivat oppimistani: 4.17
- Arviointi mittasi oppimistani: 4.25
Kurssin raskaus (1 = turhan kevyt, 5 = turhan raskas):
- Työmäärä suhteessa opintopisteisiin oli: 3.47
Kurssin kokonaisarvosana:
- Kokonaisarvosana kurssille: 4.20
Miten kehittäisit kurssia?
- Kurssilla voisi olla pidempi suoritusaika.
- Jostain syystä viikon 10 tehtävät olivat erityisen vaikeita. Madaltaisin ehkä näiden tasoa hieman, jottei joku luovuta heti alussa.
- Kurssilla on muutamia tehtäviä, joita jos ei saa monen yritys kerran jälkeen suoritettua, olisi mukava nähdä, miten se olisi pitänyt suorittaa.
- Mahdollisesti muiden optimiratkaisuiden tuominen esille esimerkkien avulla. Myös jos hieman vaativimpien tehtävien osalla olisi esimerkiksi ’vinkkejä’ mitä osioita/tekniikoita kannattaisi välttää ja mitä priorisoida. Jos mahdollista niin myös muiden osallistujien ratkaisujen kokoaminen omaksi osaksi kurssia, jossa voisi erikseen tarkastella ratkaisemiaan tehtäviä ja verrata niitä keskenään.
- Esimerkkivideoita materiaaliin.
- N/A
- Ehkä vähän erilaista materiaalia
- Lisää helppoja tehtäviä mukaan, joiden tekeminen ei välttämättä kestä kauaa, mutta iskostaa kappaleen asiaa päähän.
- Koin hieman lannistavaksi sen, että arvosana nousee kun vasta 5 tehtävää on tehty. Mielestäni viisi kahdeksasta tehtävästä läpipääsyyn on jo paljon. Olin hidas ja tehtäviin meni paljon aikaa, vaikka minulla ei ollutkaan paljon muita kursseja. Kurssi oli silti mielestäni ihan hyvä ja hyödyllinen varmasti.
- Kun viikkotehtävät ovat aina tietyn otsikon alla, ohjaa otsikko, millä systeemillä tehtävää kannattaa lähteä ratkaisemaan. Tosielämässä kukaan ei kerro otsikkoa, joten lopussa voisi olla vaikka yksi (vapaaehtoinen?) tehtäväsarja, jossa on tehtäviä kaikista aiheista. Tehtävät olivat taas tosi kivoja (melkein koukuttavia)! Silti jäi sellainen olo, että oppi ei mennyt ihan selkärankaan asti kaikilta osin. Koontitehtäväsarja lopussa voisi auttaa tässäkin, kun tulisi vielä kerrattua kaikki osa-alueet. Itsellä ei jäänyt selkeää tuntumaa siitä, kuinka tehokas mikäkin esitetty algoritmi on (vaikka aikavaativuuksia teoriassa ihan kivasti esitettiinkin). Ehkä koonti aikavaativuuksista auttaisi hahmottamaan kokonaisuutta (tämänhän voisi toki itsekin opiskelijana tehdä). Tai sitten vain pitäisi ottaa itseään niskasta kiinni ja kerrata itse kaikki kunnolla :). Myös eri algoritmien tehokkuuden vertailu jonkinlaiseen brute force -algoritmiin voisi olla avaavaa. Siitä voisi saada käsitystä, minkälainen aikavaativuus on jo hyvä minkäkinlaiselle ongelmalle (kun osa ongelmista tuntuu olevan sellaisia, että esim. lineaariseen aikavaativuuteen ei ole tavoitekaan päästä?). Tällaisia juttuja tuli mieleen, mutta mahtava kurssi kaiken kaikkiaan, KIITOS!
- Tehtävänannoissa pitäisi määritellä täsmällisemmin kriteerit, millainen ohjelma suorittaa tehtävän hyväksytysti. Jäi epäselväksi, milloin ja mitä lisäkirjastoja (import) sai käyttää. Jos kirjaston liittäminen sallitaan - esim. math, time tai heapq -, mielestäni tehtävänannossa pitäisi olla luettelo minkä kirjastojen liittäminen on sallittu, tai vaihtoehtoisesti se voisi olla Kurssin pelisäännöt -sivulla. Joissain tehtävissä kriteerinä oli että ”pitää toimia tehokkaasti kaikissa tapauksissa” tai ”pitää palauttaa tulos välittömästi”. Näissä pitäisi mielestäni määritellä, kuinka kauan ohjelman suorittaminen saa kestää, ja mitä luokkaa syötteen suuruus enintään on tai kuinka monta kertaa suunnilleen kutsua ajetaan. Yllätyin esimerkiksi, että 0,5s oli riittävän nopea, kun kriteerinä oli ”välittömästi”. Olisi kiva, jos materiaalissa olisi toiminto, jolla voisi hakea tekstiä koko materiaalista. Materiaalissa koodi on paikoin aika vaikealukuista. Olisi hyvä, jos funktiot ja muuttujat olisi nimetty havainnollisemmin, ja mielestäni voisi käyttää tyyppivihjeitä (type hint). Esimerkiksi seuraava funktio on aika vaikealukuinen, ja oli turhan vaikea saada selvää, mitä tässä on tarkoitus tehdä ja miten (luvusta 10): def min_coins(x, coins): result = {} result[0] = 0 for s in range(1, x + 1): result[s] = s for c in coins: if s - c >= 0: result[s] = min(result[s], result[s - c] + 1) return result[x] Mielestäni sen voisi muuttaa näin: def min_coins_to_make_sum(target_sum : int, coins : list) -> int: results = {0: 0} for sum in range(1, target_sum+1): results[sum] = sum for coin_value in coins: if sum - coin_value >= 0: results[sum] = min(results[sum], results[sum - coin_value] + 1) return results[target_sum]
- pari esimerkkiä lisää materiaaleihin, niiden avulla ymmärtää esim algoritmien toiminnan paremmin
- Kurssimateriaaliin voisi sisällyttää videoita, joka ehkä avaisi enemmän ”ajatusprosessia” tehtävien ratkaisemiseen. Kyse on siis algoritmillisestä ajattelusta.
- Mielestäni kurssi on ollut varsin mielekäs, enkä keksi mitään parannettavaa.
- Vaikeimpiin tehtäviin hieman useampia toteutustapoja.
- Tehtävien palautus UI, jos annetussa pohjakoodissa on liian pitkä rivi on sitä hankala kopioida.
- Materiaaleihin enemmän konkreettisesti tehtäviä tukevia esimerkkejä. Enemmän voisi olla myös ns perustehtäviä vaikka lisäksi.
- Algoritmien toimintaa voisi ehkä yrittää vielä kuvata jotenkin visuaalisesti. Itselläni oli usein vaikea hahmottaa miten koodi käy verkkoja läpi ja jouduin käyttämään Python tutorin code visualizeria avuksi, jotta ymmärsin mitä koodissa tapahtuu. Toki suurin osa tätä kurssia suorittavista osaa varmaan itsenäisesti käyttää tälläisiä aputyökaluja. Algoritmien toiminnan avaaminen askel askeleelta visuaalisesti voisi kuitenkin olla sellainen lisäys suoraan kurssimateriaaliin mikä auttaisi opiskelijoita ymmärtämään miten algoritmit toimivat.
- Joidenkin tehtävien osalta oli vaikea hahmottaa mitä tulisi tehdä.
- Kurssin loppupuolella oli enemmän tehtäviä, joissa käytettiin kurssimateriaalissa olevaa (yleisesti tunnettua) algoritmiä tai valmista sen toteuttavaa luokkaa. Tällaisia tehtäviä voisi olla enemmänkin. Myös sellaiset tehtävät, joissa muokataan annettua algoritmin toteutusta toimimaan hieman eri tavalla jonkun uuden ominaisuuden saamiseksi olisivat hyviä, jos se mahdollisuus on kuvattu sanallisesti myös materiaaleissa. Se haastaa ymmärtämään miten ja miksi ko. algoritmi toimii, ilman että täytyy (tai tekijä luulee että täytyy) tehdä kaikki ”pitkästä tavarasta”.
- Enemmän materiaalia joka tukisi oppimista, myös kurssimteriaalin ulkopuolella
- Voisi harkita, että kurssimateriaalissa olisi joitakin animatioita. Ne selventävät kummasti asioita mitä tulee muuten katseltua youtube-videoilta. Mm viikon 16 kohta ”Esimerkkiverkossa maksimivirtaus voidaan muodostaa seuraavasti kahdessa vaiheessa:” jossa on vaihekuvat olisi todella paljon selkeämpi jos tuo olisi gif animaationa tms. Tässä vain yksi nosto. Kyseinen kehitys soveltuisi moneen esimerkkiin kurssilla.
- Kurssi ei vaadi ollenkaan niin oivaltavaa työskentelyä kuin Tira I, työskentelyn mielekkyys jää välillä mietytyttämään.
- Kurssin tehtävien keskinäinen kontrasti on todella suuri. Tyypillisesti viikkoa kohden noin neljä-viisi tehtävää menee ihan vain materiaalia kopioimalla, mutta sitten seuraaviin kahteen menee päiviä. Sen pidemmälle en itse ajankäyttösyistä edennytkään. Koska kyseessä on oikeastaan koko ohjelmointitaidon perusta, olisi hienoa että tehtävät rakennettaisiin hieman vähemmän mustavalkoisiksi. Voisi joko vaikeuttaa alkupään tehtäviä hieman ajattelua vaativiksi, tai sitten helpottaa osaa loppupään tehtävistä viikkoa kohdin. Valitettavan monessa tehtävässä pitää myös ymmärtää muodostaa ratkaisusta jollain tavalla matemaattinen, mikä on mielestäni oma osa-alueensa ohjelmoinnissa ja tulisi käsitellä eri kurssilla. Sain alkupään luennoista todella paljon irti. Valitettavasti aikataulullisista syistä en kuitenkaan voinut seurata kurssin aikataulua vaan minun piti edetä hieman nopeammin, joten jouduin jossain vaiheessa lopettamaan niiden seuraamisen ja menetin niistä puolet. Luentojen videointi avasi kuitenkin joitain tulppia ja oli chatin lisäksi oikeastaan ainoa tapa, joka antoi yleisempiä ratkaisumalleja tyypillisiin tilanteisiin, joissa täytyi lähtä luomaan jotain tyhjästä tai lähes tyhjästä. Jos siis jatkossa tulee sairastapauksia tai poissaoloja, olisi hyvä jos edellisvuoden luento saataisiin mahdollisimman äkkiä kurssialustalle. Lisäksi parasta olisi, jos luentopäivä olisi maanantai, jolloin opiskelijalla olisi viikko aikaa soveltaa luennolla oppimaansa, mikäli haluaa edetä aikataulussa.
- Kurssin materiaali voisi olla hieman monipuolisempi, esim. lyhyet opetusvideot saattaisivat auttaa uusien aiheiden ymmärtämistä.
- Tällä kertaa materiaali tuntui hyödyllisemmältä, ja koin oppivani siinä käsitellyt asiat paremmin kuin ensimmäisellä kurssilla.
- Haastava ja opettavainen kurssi. Tahtia tai vaativuutta voisi hieman löysätä, että ehtisi kunnolla perehtymään jokaiseen aiheeseen.
- Tehtävissä voisi ilmaista selvemmin, kuinka nopeasti koodin tulee toimia, niin ei tarvitse koodata samaa asiaa moneen otteeseen testatakseen, mikä on riittävä nopeus testien läpipääsemiseen. Etenkin, kun muutamassa tehtävässä läpipääsy riippui siitä, valitsiko Cpythonin vai Pypy3:n palautuksessa.
- Monipuolisempia tehtäviä
- En tiedä
- Ehkä hieman lisää teoriaa ja/tai lisämateriaalia kiinnostuneille. Tehtävät olivat kuitenkin hyviä.
- Kurssimateriaaliin voisi vaikka lisätä joitain konkreettisia esimerkkejä tosielämän käyttökohteista kunkin osion algoritmeille. Tämä voisi auttaa painottamaan kurssilla opetettavien asioiden tärkeyttä
- Samaa mieltä edellisen kurssipalautteen kanssa siitä, että vaikeimmat tehtävät voisivat olla useamman pisteen arvoisia. Dynaaminen ohjelmointi -luvun esimerkkien selitykset olisivat voineet olla hiukan enemmän rautalangasta väännettyjä, joistakin esimerkeistä oli vaikea ymmärtää, miksi jokin koodirivi toimii ja mistä tuollaisen ratkaisun voisi keksiä. Viikon 12 tehtävät olivat vähän hassuja, koska kaikkiin löytyy vastaus suoraan netistä suhteellisen pienellä vaivalla. Viikon 15 tehtävät tuntuivat erittäin helpoilta suhteessa muihin viikkoihin, kaikissa riitti suunnilleen kopioida algoritmi kurssimateriaalista.
- Luennot eivät olleet kovin hyödyllisiä
- ehkä jotkut tehtävät tuntuivat epäselviltä eipä muuta tuu mieleen
- Tiiviit materiaalit olivat kivat, mutta joissain kohdissa (esim. maksimivirran määrittäminen) olisin kaivannut laajempaa aiheen läpikäyntiä.
- Olisin toivonut syvemmälle menevää opetusta aiheisiin. Tuntuu, että varsinkin loppupään aiheita ei ymmärtänyt kunnolla luentojen ja materiaalien perusteella. Tuntui, että vaikeampia tehtäviä oli mahdotonta ratkoa sillä ymmärryksellä, mikä materiaaleista tuli. Jos opetusta ei ole mahdollista lisätä, niin ehkä lisäisin kurssiin linkkejä sopiviin ulkopuolisiin materiaaleihin, joiden läpikäyminen tukisi aiheiden ymmärtämistä ja soveltamiskykyä. Tai olisiko ehkä mahdollista supistaa oppimimistavoitteita ja käydä perusteellisemmin läpi vähemmän aiheita?
- Dynaamisen ohjelmoinnin tekniikoita ja binääriajattelua voisi lisätä kurssimateriaaliin.
- Ei kehitettävää, haastava kurssi mutta aiheet ovat haastavia
- Tästä pitäisi olla paaaa-aljon enemmän havainnollisia toteutuksia algoritmeista, niiden toimivuudesta ja kuvannuksesta. Abstraktiotaso on kuitenkin tullut kiitettävästi alas aiemmilta kerroilta, ja tokalla kertaa tästä sain jopa jotain irti. Perinteisessä, 15op per periodi, tämä kurssi on aivan liian työläs hyvien arvosanojen saavuttamiseksi. lisäksi pajaohjaajien ulosantia tulisi parantaa. Mikäli näitä tehtäviä ratkoessa annetaan yodaisia haikuja, niin se ei todella auta tehtävien ratkontaan. Discordista sentään päivystettiin ja sai apua ihan hyvin.
- En tiedä
- Kurssiin voisi lisätä pienen kokeen
- Materiaalissa voisi olla enemmän esimerkkejä ja teoriaa.
- Pass valmiiksi tehtäväpohjien funktioihin ja metodeihin jotka pitää toteuttaa.
- Kurssin pari ensimmäistä viikkoa olivat selvästi loppukurssia vaikeampia, joten olisi ehkä hyvä jos tätä pystyisi tasoittamaan tai jotenkin tuomaan esille opiskelijoille.
- Enemmän esimerkkejä
- Viikkojen kurssimateriaalit voisivat olla hieman laajemmat.
- Järjestäisin tästä kesäkurssiversion niin voisi keskittyä vain tähän aihepiiriin ja olisi mahdollista osallistua lomalla myös päivällä järjestettävään ohjaukseen.
- Jag vet inte.
- Inget att utveckla.
- Kaikki ok
- tira 1 ja 2 kursseilla oli 2 tehtävää, joissa piti luoda tiedosto nimeltä components.py. Voisiko toisen näistä nimetä uudelleen, niin että molempien kurssien tehtävät voisi pitää kätevästi samassa kansiossa?
- Dynaamista ohjelmointia olisi voinut käsitellä laajemmin
- 2 parasta kurssia!!!
- En osaa sanoa
- mielestäni kurssintehtävämäärä on raskas ja minusta tehtävien alaraja määrä on liian korkealla.
- En osaa sanoa
- Tehtävät välillä melko haastavia, ehkä enemmän esimerkkejä kurssimateriaaliin
- En keksi kehitystarpeita; hyvä kurssi
- Enemmän opettavaa materiaalia kirjallisesti että luennoissa. Helppoja esimerkkejä Algoritmeistä oikeassa elämässä.
- Ehkä ottaisin vähemmän pakollisia tehtäviä per viikko esim. 3kpl joka viikoolta ja loput tehtävät saisi tehdä itselle enemmän mieluisista aiheista
- En keksi mitään kehitettävää, hyvä kurssi ja loistava materiaali!
- en nää kehittämis kohtia.
- Enemmän hainnollistavia videoita.
- Osa kurssin tehtävistä oli liian vaikeita verrattuna muihin tehtäviin. Voisko tehtävistä esimerkiksi saada eri määrän pisteistä?
- Toivoisin edelleen, että materiaalissa tuotaisiin selkeämmin esiin kuhunkin käyttötarkoitukseen soveltuvien algoritmien joukkoa sekä niiden tärkeyttä tietojenkäsittelytieteissä. Esim. Dijkstran algoritmi on yksi keskeisimmistä ja laajimmin sovelletuista verkkoalgoritmeista, mutta kurssimateriaali ei tuo tätä juurikaan esiin.
- Viimeisellä viikolla kurssi katosi sisun kotisivulta.
- Olisi mahtavaa, jos tehtävän palautuksessa voisi saada vinkkiä koodin parannukseen (AI?). Mutta näinkin aivan huippu!
- Lisäisin ehkä hieman yleistä teoriaa algoritmeista ja tietorakenteista (vapaaehtoisena lukemisena).
- En varmaan mitenkään!
- Hyvä kurssi, en keksi kehitettävää
- Viikon 15 viimeisessä tehtävässä ”Virittävät puut” saa aika harhaan johtavan virheilmoituksen ”Expected output: valid graph”, jos verkko ei täytä tehtävän ehtoja. Kyseisestä virheilmoituksesta saa ennemminkin sen kuvan, että koodini palauttama tietorakenne ei olisi verkko lainkaan. Sopivampi viesti olisi mielestäni esimerkiksi jotain ”Expected output: graph satisfying the given conditions”. Muuten tehtävät olivat mielestäni oikein hyvin laadittuja ja materiaali selkeä ja muutenkin erittäin laadukas.
- Tehtävät voisivat olla enemmän asiaan liittyviä, jotkut tehtävät eivät aina tunnu oikeen liittyvän asiaan.
- Koen, että kurssilla oli tarvittavat materiaalit sen suorittamiseen. Opetusvideot olivat todella toivottu bonus, kiitos niistä.
- Kurssin materiaalit ja tehtävät olivat hyviä. En itse keksi kehittämistä.
- Järjestäisin myös kesällä, vaikka ilman luentoja, jolloin sopisi paremmin minunkaltaisilleni, jotka opiskelevat ohjelmointia työn ohessa harrastuksena
- Kurssin tehtävät ovat mukavalla tavalla haastavia ja tarjoavat hyvää aivojumppaa. Kuitenkin kokonaisuudessaan kurssi on huomattavan aikaa vievä ja tuntuu selvästi raskaammalta kuin edeltävä osa kurssista, tämä ottaen huomioon että ensimmäinen osa oli 5op arvoinen samoin kuin tämä toinen osa. Tähän voisi varmaan miettiä miten työmäärän saisi paremmin vastaamaan opintopisteitä, ne eivät oikein nyt tunnu olevan tasapainossa.
- Tällä hetkellä en keksi mitään keinoja tehdä kurssista parempaa, mielestäni kurssi toimii mainiosti
- Lisäisin kurssimateriaaleihin lisää esimerkkejä haastavista soveltavista tehtävistä.
- Luentovideot voisivat olla hyvä lisä
- Olisi kiva saada enemmän esimerkkejä materiaaliin tueksi tehtäviin.
- Jonkinlainen osin arvosanaan vaikuttava kevyehkö loppukoe tukisi oppimista, koska siinä tulisi olla kurssin aiheet, kuten eri tietorakennetyypit hallussa. Nyt kun arvosana koostuu vain itsenäisesti tehtävistä tehtävistä, on esimerkiksi helpompi unohtaa asia ratkaisun jälkeen. Kurssimateriaalin teksti ja kuvat ovat mielestäni hyvin selkeitä, mutta kaipaisin tueksi paremmin havainnollistettuja esimerkkejä, kuten havainnollistusanimaatioita tms. Toki voi olettaa, että niitä opiskelijat osaa myös etsiä Youtubesta tms.
- Hyvin yritetystä ja melkein oikeasta vastauksesta voisi antaa puolikkaan pisteen.
- Materiaaliin voisi liittää jotain videoita yms, jotka kertoo asiasta enemmän.
- Mielestäni joidenkin osioiden tehtävät olivat huomattavasti helpomia kuin toisten. Kappaleiden 15 ja 16 tehtävät tuntuivat todella kevyiltä, kun taas kappaleen 14 tehtävissä käytin aikaa huomattavasti enemmän. Yleisesti ottaen kurssin alkuosa tuntui paljon vaikeammalta kuin loppu, mutta tämä toki riippuu opiskelijasta ja opiskelutaustasta.
- Kurssi oli erinomainen, ainakin näin aikuisopiskelijan, joka haluaa oppia, eikä vain suorittaa, kannalta. Viikko 16 tehtävät menivät enimmäkseen vähän liian helposti kopioimalla materiaalin toteutusta.
- Tehtäviä voisi olla useamman tyyppisiä. Kurssin suorittaminen tuntuu melko tylsältä, koska tehtävät ovat niin samanlaisia. Arviointiasteikkoa voisi jotenkin muokata vähemmän vaativaksi. Viiden tehtävän tekeminen viikossa tuntuu jo melko työläältä, vaikka sillä pistemäärällä saa arvosanaksi vain 1.
- Luennot olivat tosi hyviä, etenkin kun ne nauhoitettiin, niitä kannattaa jatkaa. Oli kiva kun osa tehtävistä oli päättelytehtäviä/sanallisia tehtäviä. Tehtävät olivat vaikeita mutta eivät ihan mahdottomia.
- Joidenkin tehtävien esim. Listapelin tehtävänanto oli hämmentävä ja ajoi väärin johtopäätöksiin, joten varmistaisin että oikeaa tulkintaa varten ei joutuisi ensin kantapään kautta tehdä paljon töitä.
- Enemmän esimerkkitehtäviä.
- Kurssin suoritusaika voisi olla pidempi, niin saisi sovitettua omiin aikatauluihin paremmin, nyt oli monta muuta kurssia yhtä-aikaa. Itse kurssi oli tosi hyvä.
- On hankala sanoa mitä kehittäisin, sillä yhdessä tira 1 kanssa tämä on ollut paras kurssi tähän mennessä
- Paremmat materiaalit
- jonkinlaisia visualisointeja miten algoritmit toimivat
- Tuntui tähän kurssin kakkososan tehtäviin sai vähemmän apua materiaalista ykköseen verrattuna, negatiivinen siinä että olisin kaivannut ehkä vähän enemmän tukea
- Mielestäni kurssi on melko perusteellinen ja ei ole varsinaisia puutteita. Dynaamiseen ohjelmointiin olisi kiva saada hieman enemmän esimerkkejä, sillä koin sen osion vaikeammaksi muihin verrattuna.
- prokrastinaation ehkäisemiseksi pitäisi olla jotain välipalautuksia, vaikka 4 viikkoa ja 4 viikkoa . molemmat tirat jäi minulla aivan viime tinkaan :DDD
- Materiaalit ja tehtävät olivat hyviä, mutta toisaalta kurssi oli lähtökohtaisesti aika vaativa - en osaa sanoa? Esimerkkejä ei toisaalta ole koskaan liikaa!
- Visuaaliset opetustavat kuten kaaviot ja kuvitukset aina auttavat, niitä oli kiva määrä mutta niitä voisi myös aina olla lisää.
Muita huomioita
- Kurssi on hyvin vaativa, kuten TIRA I. Dynaaminen ohjelmointi tuntui vaikeimmalta, ja sen opetteluun / koodamiseen olisi voinut kaivata lisää konkreettisempia vinkkejä. Onneksi muiden viikkojen tehtävissä oli myös helpompiakin tehtäviä, joissa pystyi hyödyntämään kurssimateriaalia. Näin edes kurssin minimitavoitteet ehtii saavuttaa annetussa ajassa. On harmi, että kurssin aikataulu on hyvin tiukka ja että kurssin sisältöjä ehdi opettelemaan niin hyvin kuin haluaisi. Oli hyvä, että luennoista oli saatavilla tallenne.
- Olen tähän asti pitänyt todella paljon kurssista ja tehtävät ovat olleet sopivan haastavia (en siis ole vielä valmis tehtävien kanssa :D ). Jotkin tehtävät ovat toki tuntuneet ihan ylitsepääsemättömiltä, mutta niistäkin on selvitty, kiitos Antin ja muiden assareiden, erityisesti kiitokset Joelille!
- Kiitoksia hyvästä kurssista!
- Hyvin toteutettu kurssi ja tehtävät sopivan haasteellisia materiaaliin nähden. :)
- Pidin kovasti luennoista, ne toivat kurssiin mielekkyyttä ja auttoivat jaksamaan kamppailua tehtävien kanssa.
- Todella hyvä kurssi
- Osa tehtävistä oli melko vaativia siten, että niiden ratkaisu tai ainakin ratkaisun ja opetettujen asioiden yhteyden oivaltaminen vaati ehkä hieman materiaalin ulkopuolelle meneviä ponnisteluja ja ylipäänsä (algoritmisen) ongelmanratkaisun osaamista sekä kuria ”kynän ja paperin” kanssa. Mielestäni se on todella tärkeää tai jopa tärkeintä osaamista, mutta myös aivan valtavan iso työ, jota ei voi yhden tai kahdenkaan kurssin aikana oppia. Toki näiden ratkaiseminen, tiedon hakeminen ja itsensä haastaminen oli myös antoisaa sitten kun se onnistui. Täytyy vain muistaa, ettei kaikkia tehtäviä tarvitse tehdä kurssin suorittamiseksi hyväksytysti.
- Mielenkiintoinen kurssi, osittain osaa I vaativampi ja pakollisten tehtävien vaikeustason kannalta epätasaisempi. Esimerkiksi dynaaminen ohjelmointi aiheena oli ainakin itselleni niin haastava, että ensimmäisiäkin tehtäviä joutui miettimään pitkään ja hartaasti, mutta toisaalta loppupään verkkoalgoritmeissa viiden tehtävän suorittamiseen riitti usein se, että kopioi algoritmin suoraan materiaalista ja sovelsi sitä sitten juuri materiaalissa esitetyn esimerkin mukaisesti. Koska itse tein kurssin harrastuksena töiden sivussa, aikaa ei tällä kertaa riittänyt kuin tehtävien vähimmäismäärän suorittamiseen, mutta toisaalta koska arvosanalla ei ole minulle käytännön merkitystä, ei myöskään haittaa, että kurssi on vaativa. Lisähuomiona keskusteluun palautekanavalla AI:n käytöstä sanoisin, että vaikka sen valvonta tuleekin olemaan vaikeaa, AI:n käyttö opiskelussa tekee pahiten hallaa opiskelijalle itselleen. Käsittelen itse päivittäin työssäni suurten kielimallien tuotoksia, ja rehellisesti sanottuna niistä on hyötyä vain silloin, jos osaa itse tunnistaa oikean vastauksen ja korjata mahdolliset ongelmat ehdotuksessa. Tämä pätee sitä paremmin, mitä luontevamman ja uskottavamman kuuloista kieltä kielimalli tuottaa (sillä olen tänäänkin monta kertaa todennut, että edes kaikkein paras ja uusin tarkoitukseen sopivalla materiaalilla opetettu tekstigeneraattori ei ymmärrä merkitystä). AI:lta vastauksen pyytävä opiskelija oppii lähinnä kirjoittamaan AI-syötteitä ja kopioimaan niitä oikeisiin laatikoihin, mikä riittää ehkä pisteiden saamiseen, mutta ei auta enää, kun ongelma onkin monimutkaisempi tai jos jotain menee vikaan. Omien aivojen neuroverkko on silloin jäänyt täysin opettamatta! Toki jos kokeneempi ohjelmoija tietää valmiiksi, millaisen palikan tarvitsee tiettyyn kohtaan, automaatio voi säästää aikaa ja vaivaa. Itse en ainakaan ole vielä päässyt siihen pisteeseen, että luottaisin omaan kykyyni arvioida AI:n tuotoksia ohjelmoinnin saralla.
- Tira2 oli mielestäni sisällöltään parempi kuin Tira1
- Tehtävät olivat hyviä, ja niiden avulla oppi hyvin soveltamaan menetelmiä. Tehtävien määrä ja vaikeusaste oli sopiva. Jossain kohtaa olisin toivonut vaikeampia tehtäviä. Tehtävät olivat siitä erityisen hyviä, että ne mittasivat juuri sitä asiaa mitä aihe käsitteli, eikä jotain muuta kurssin aiheen ulkopuolista asiaa. Materiaali oli kattava ja ymmärrettävä, vaikka paikoin vaikealukuinen. Pidin siitä, että arvioitiin pelkästään tehtävien perusteella eikä esimerkiksi tentillä.
- Kiitos kurssista!
- On harmillista, jos jotain tehtävää ei saa 100% oikein toimimaan: silloin ei myöskään näe oikeaa ratkaisua (toki silloin voisi varmaan ottaa yhteyttä tukitiimiin). On mahtavaa, että tehtäviä saa tehdä täysin omaan tahtiin (vain 1 deadline). On hyvä, että on helppoja tehtäviä, joilla pääsee testamaan teoriaa ja sitten haastavampia, joissa pääsee haastamaan osaamistaan. Kiva kurssi!!! Tuntui siltä, että osa II oli helpompi kuin osa I.
- Hyvät luennot
- Suuri kiitos Joel Yliluomalle ja Antti Laaksoselle chatissa päivystämisestä. Nosti ainakin omaa kurssiarvosanaani noin kahdella yksiköllä ihan pelkästään se, että katsoi vanhoja chat-keskusteluita.
- ei ole
- Kurssin malliratkaisuissa ja palvelimella olevissa testeissä näkyi jonkun verran vaihtelua laadussa. Esimerkiksi viikon 14 tehtävässä ”veden mittaus” kurssimateriaalissa tarjolla oleva Dijkstra luokka olisi sopinut ratkaisuksi mutta testien mukaan se on liian hidas. Viikon 13 ”verkkopeli” tehtävän mallivastauksessa näyttäisi olevan virhe liittyen pythonin mutablen käyttöön. Esimerkkiratkaisu ei toimi oikein jos verkkoa muutetaan. Alla esimerkki ongelmasta: bugi = GraphGame(3) bugi.add_link(1, 2) testinoodi = 1 # verkko: 1 -> 2 ennen_tulos = bugi.winning(testinoodi) bugi.add_link(2, 3) # verkko: 1 -> 2 -> 3 jalkeen_tulos = bugi.winning(testinoodi) if jalkeen_tulos == True and ennen_tulos == True: print(”metodi palautti väärän tuloksen”) elif jalkeen_tulos == False: print(”bugi korjattu”) else: print(”jotain muuta”) Tässä oli pari viimeisintä huomiota mihin kurssia tehdessä törmäsin.
- Tehtävät olivat sopivasti haastavia ja motivoivia. Viikon 16 tehtävissä oli kivasti monipuolisuutta, kun näki miten sama algoritmi soveltuu erityyppisiin ongelmiin.
- Pajaohjaajalle erityiskiitokset. Todella ammattimainen, on osannut vastata kaikkiin kysymyksiin ja auttanut hahmottamaan vastauksen löytämistä antamatta suoraa vastausta. Todella hyvä tapa johdatella opiskelijaa hoksaamaan itse asioita ja todella hyvin on jakanut huomion ohjausta tarvitsevien välillä, myös ruuhkaisempina hetkinä
- Kurssi oli paljon helpompi kuin ensimmäinen osa. Tämä johtuu ehkä varttuneesta kokemuksesta, mutta myös tehtävät ovat mielestäni helpompia, koska niissä yleensä sovelletaan valmiita algoritmeja.
- Kurssi oikein hyvä.