Göm menyn

TDDC70 Datastrukturer och algoritmer

Muddy-cardsutvärdering


Datum: 2012-09-24

Antal svar: 77

Föreläsningar/tenta:

  • Bra/tydliga/pedagogiska/intressanta föreläsningar (20 stycken)
  • Bra tempo överlag (9 stycken)
  • Bra/intressant kurs (8 stycken)
  • Bra upplägg på föreläsningar (7 stycken)
  • Bra med visualisering av datastrukturerna (3 stycken)
  • Behövs mer genomgång av algoritmanalys (2 stycken)
  • Rita gärna mycket på tavlan (2 stycken)
  • Svårt att få grepp om vad som kommer på tentan (2 stycken)
  • Fler tentamensrelaterade exempel
  • Mer tips och info inför labbarna på föreläsningarna
  • Bra innehåll, men väldigt teoretiskt, kanske byta så att det blir 4hp labb och 2hp tenta
  • Gärna lite högre tempo på föreläsningarna
  • Kanske prova att dela upp föreläsningen i en timme teori först och en timme exempel sedan (som på många av MAIs kurser)
  • Föreläsningsanteckningarna mindre pedagogiska än föreläsningarna
  • Vore kul med mer information om avancerade tillämpningar och vad för optimeringar som görs då
  • Bra att föreläsaren varvar tavla med OH
  • Bra kursbok
  • Föreläsaren talar lugnt och tydligt

Lektioner:

  • Fler lektioner (4 stycken)
  • Fler lektioner där man får räkna på och förstå mer om tidskomplexitet (3 stycken)
  • Lektionsuppgifterna är för svåra
  • Vore bra med svensk lektionsassistent
  • Större samling övningsuppgifter skulle vara bra

Labbar:

  • Labbuppgifter bra/roliga/vettiga hittills, lämplig svårighetsgrad (4 stycken)
  • Bra labbhandledare (2 stycken)
  • För få labbhandledare/svårt att hinna få hjälp (2 stycken)
  • Mer labbtid behövs
  • Vore kul om man kunde göra labbarna i C++/C.
  • Bättre information i labbkompendiet om inlämningarna till Kattis

DALG-mästerskapet:

  • Bra/kul med tävling (5 stycken)
  • Släpp uppgifterna vid "snällare" tider (2 stycken)
  • Tävlingen skulle kunna ge fler tentapoäng (2 stycken)
  • Bättre information om hur Kattis fungerar
  • Saknade relevanta programmeringsfärdigheter för att lösa tävlingsproblemen till en början (kunde lösa dem men pseudo-kod men inte med Java)
  • Kul med tävling, men inget man orkar lägga tid på
  • Genealogy är mer I/O-kod än kod om länkade listor

Kattis:

  • Mer info vid "Wrong Answer" och andra fel (37 stycken)
  • Kattis är bra/smidigt (13 stycken)
  • Bra att kunna testa med Kattis innan man kollar med labbassistent (5 stycken)
  • Kattis kan krångla fast inte ens labbhandledaren kan hitta något fel i koden (3 stycken)
  • Tanken med Kattis är bra (2 stycken)
  • Vore bra om Kattis kunde meddela felaktigt utdataformat/Presentation Error (2 stycken)
  • Finns fall i labb 1 där Kattis inte fångar alla fel (2 stycken)
  • På labb 2 accepterar Kattis bara att man använder föregångaren i inorder vid borttagning av en nod med två barn
  • På labb 2 accepterar Kattis bara att man använder efterföljaren i inorder vid borttagning av en nod med två barn, vilket är tvärtom mot exemplet i labbkompendiet
  • Man kan ersätta Kattis genom att ge en fil med testdata och en klass att importera
  • Hastigheten på Kattis och labbdatorerna stämmer inte överens, så "Time Limit Exceeded" blir svårt att debugga
  • Mycket att fylla i varje gång man ska skicka in
  • Kattis är hård
  • Kattis är elak
  • Bränn Kattis på bål
  • Inför Kattis i IMPA
  • Mejlen från Kattis är larviga
  • För lätt att fuska i Kattis för att få bra tid (t.ex. göra en jättestor hashtabell)

Tommys kommentarer:

Det är svårt att ge en kurs på ett sätt som tilltalar alla. Av kommentarerna ovan tycker jag mig ändå kunna utläsa att jag träffat någorlunda rätt. Naturligtvis tar jag till mig av er feedback och hoppas att ni kommer att uppleva att så är fallet också. Nedan följer mer specifika kommentarer.

Föreläsningar:

Min tanke med föreläsningarna är just att det är där teorin ska presenteras. Jag vill inte att inriktningen på föreläsningarna ska vara att lära sig att lösa uppgifter, det är det lektionerna är till för. Vi är precis i slutet av ett block i kursen där ett helt menageri av abstrakta datatyper och datastrukturer introducerats och granskats. Det är helt i enlighet med kursmålen, men kan kanske göra den delen av kursen rätt så fyrkantig eftersom stoffet tenderar att vara av enbart deskriptiv karaktär. Detta återspeglas också i lektionsuppgifterna som hör till den här delen av kursen; de handlar mest om att bekanta sig med nya strukturer och operationer på dessa. Däremot är det så att så gott som alla datorprogram behöver någon/några av dessa strukturer, det är därför ni ska lära er hur de fungerar!

Jag tar till mig av önskemålen om att ägna mer tid åt den inledande delen om algoritmanalys. I det nuvarande uppläget är det en och en halv föreläsning, samt en hel lektion, som ägnas åt att introducera den delen av kursen och sedan använder vi de begreppen under hela resten av kursen! Tänk dock på att det är 36 timmar schemalagda för föreläsningar och lektioner, medan tentan ger 4 hp. Det ger att ni förväntas lägga ner 70 timmar på självstudier!

Första föreläsningen använde vi 45 minuter till att prata om kursadministration, kursplan, kursmål, föreläsningsplan och en introduktion till ämnet. Vid detta tillfälle pratade vi också om labbarnas innehåll. När vi under kursens gång har kommit fram till de avsnitt i kursen labbarna berör har jag varit noga med att påpeka just det. Kursboken har många kodexempel i alla kapitel och de tre första labbarna är utformade så att programspråket som används spelar minimal roll. (I fjärde labben är en av poängerna att använda rätt klasser ur Javas API.)

Några verkar oroliga för hur kommande tenta ska se ut. Jag gav den här kursen för första gången 2009, så alla de gamla tentorna från 2009 och senare är i högsta grad relevanta. Alla dessa tentor finns på kurshemsidan och är representativa för vad som komma skall. Den allra sista föreläsningen är ett reservtillfälle och då räknar jag med att hinna räkna en del gamla tentauppgifter. Dessutom är det så att nästan alla uppgifter i uppgiftssamlingen till lektionerna är gamla tentatal.

Lektioner:

Antalet lektioner bestäms förstås till stor del av våra begränsade resurser. Jag skulle själv gärna se riktiga lektioner istf räknestugor, men det är också en resursfråga. Det verkar finnas ett visst behov av fler räknestugor/lektioner, jag tar med mig önskemålen.

Lektionsmaterialet består av ett kompendium med 56 uppgifter (varav flertalet är gamla tentatal, vilket till viss del kan förklara att de upplevs som svåra) samt 53 rekommenderade uppgifter ur kursboken. Till uppgifterna i kompendiet finns facit. Jag kan hålla med om att facit till lektionsuppgifterna är i behov av en genomgång och uppfräschning. Till uppgifterna i kursboken finns en samling tips länkade från kurshemsidan.

Labbar:

Det är stora labbgrupper, på gränsen till för stora, med nästan 40 personer i genomsnitt per grupp. Även jag skulle gärna se att vi kunde ha fler labbgrupper, så att assistenterna kunde ägna mer tid åt varje enskild grupp.

Det officiella programspråket i kursen är Java, vilket bestäms på programövergripande nivå, så även om vi tillät C+/C i inlämningen till Kattis skulle vi ändå behöva kräva Javakod också vilket känns onödigt krångligt.

DALG-mästerskapet:

Det verkar som att tävlingsmomenten i huvudsak upplevs som något positivt. Det är kul att se att så många är med och löser uppgifter i DALG-mästerskapet. Vi får se hur många som till slut väljer att göra uppgifterna som krävs för att få bonuspoäng på tentan och ifall den arbetsinsatsen kan anses vara rimlig. Angående tiderna när uppgifterna görs tillgängliga är vi tyvärr tvungna att i varje fall välja en tidpunkt eftersom vi inte har resurser att tillverka helt individuella uppgifter. Hur vi än väljer kommer det att finnas någon som inte har tid att börja lösa en uppgift vid just den tiden. Exakt hur tidpunkten ska väljas går naturligtvis att diskutera och vi vill gärna höra era synpunkter kring detta.

I slutet av kursen kommer vi att be er svara på en enkät kring hur ni har upplevt arbetet med Kattis och DALG-mästerskapet och hoppas att så många som möjligt av er kommer att svara på både enkäten och kursens KURT-utvärdering. Resultaten av dessa utvärderingar kommer att vara mycket viktiga när vi ska bestämma hur tävlingen och Kattis ska användas i framtida kursomgångar, men också hur dessa verktyg kan komma till användning i andra kurser.

Åsikter om specifika problem i DALG-mästerskapet tar vi tacksamt emot!

Kattis:

Överlag verkar Kattis fungera bra och systemet ser ut att ha fått viss acceptans. Dock finns en väldigt tydlig signal i utvärderingen om att det skulle vara bra ifall Kattis gav mer ledtrådar om vad som är fel när man får "Wrong Answer" (eller andra felmeddelanden). Att återkopplingen på labbarna från Kattis ser ut som den gör, alltså olika beroende på vilken grupp man tillhör, är ingen slump, utan ett medvetet val från kursledningens sida. Vi vill testa hur olika sorts återkoppling påverkar ert sätt att arbeta med labbarna. I nuläget finns inget som tyder på att någon grupp skulle ha en fördel av en viss typ av återkoppling (i alla fall inte när man tittar på hur många redovisade labbar de olika grupperna åstadkommit), så det verkar inte finnas något akut skäl till att ändra på Kattis beteende för tillfället. Vi hoppas att ni har förståelse för detta. I enkäten vi kommer att skicka ut i anslutning till kursens slut är vi mycket nyfikna på att höra mer detaljer kring hur ni valt att arbeta beroende på vilken återkoppling ni fått och också om det påverkat hur mycket tid ni lagt ner på labbarna.

Kattis återkoppling på tävlingsproblemen är sådan återkoppling som används på "riktiga" programmeringstävingar. Man skulle kunna tänka sig att införa mer utförlig återkoppling på åtminstone föreläsningsproblemen, men det är ett mycket tidskrävande arbete.

Kattis är nytt på IDA och vi håller alla på att vänja oss vid systemet. Det finns bra dokumentation inbyggd i Kattis som förhoppningsvis ska vara tillräcklig för att man ska komma igång. Om vi beslutar att införa Kattis mer permanent får vi så klart se till att avsätta lite tid i den kurs man först stöter på Kattis till att visa hur arbetsflödet är tänkt att se ut.

Till de som har blivit trötta på att det är mycket att fylla i vid inskickning till Kattis kan vi rekommendera att använda submit-programmet.

Önskemålen om att låta Kattis döma "Presentation Error" och att införa Kattis i IMPA tar vi med oss. Det handlar det om att företaget som tillhandahåller Kattis kanske behöver göra utveckling för att stödja viss funktionalitet (vilket kostar pengar) men också om rättigheterna till de problem som används i IMPA.

Gällande labb 1 i Kattis, är vi medvetna om att det finns brister i testdatat. Dock hann några av er med att bli godkända innan vi kunde göra något åt det och vi vill definitivt att alla studenter en given kursomgång ska få samma bedömning, vilket leder till att vi inte kan åtgärda bristerna förrän till nästa omgång av labbserien. Det är mycket sannolikt att vi kommer att hitta fler brister i konfigurationen av Kattis för labbarna eftersom det här är första året vi använder Kattis på det här sättet.

För labb 2 godkänner Kattis bara att man använder föregångaren i inorder, det är korrekt. Detta är också noggrant specificerat i labbkompendiet. Exempelbilden i kompendiet återspeglar också detta beteende.

Anledningarna till att inte ersätta Kattis med att ge testdatat och ett testprogram tillsammans med kodskeletten är flera. För det första går det då så klart att passera testerna genom att bara skriva en stor tabell, vilket försvåras (men inte omöjliggörs) när Kattis istället har testdatat. Naturligtvis blir inte en sådan labb godkänd av assistenten, men vi vill ändå undvika att den situationen uppkommer. Detta leder in på det andra skälet att inte avslöja exakt hur testdata ser ut; vi vill inte att fokus ska hamna på att klara av en uppsättning kända tester --- istället ska fokus vara på att labbkoden uppfyller den specifikation som finns i labbkompendiet. Sedan understödjer Kattis genom sina tester, så långt det går, att koden uppfyller precis den funktionaliteten. Ett tredje skäl är att om ni inte känner till exakt hur vi testar er kod tvingas ni bli duktiga på att felsöka och att skriva egen testkod --- något som kommer att vara mycket viktigt i er framtid som yrkesverksamma programmerare.

Om ni har upptäckt problem, som t.ex. att kod verkar ha väldigt olika prestanda på Kattis och IDAs maskiner är vi mycket intresserade av att få reda på det, så hör av er i så fall.

Assistenterna kan logga in i Kattis och då i vissa fall få reda på mer information om vad som gått fel med en viss inskickning. Hittills har jag bara fått reda på ett konkret fall när varken labbparet eller assistenten kunde hitta vad som var fel. Efter att jag loggat in i Kattis och tittat på inskickningen tog det inte mer än en minut att upptäcka vad som var fel. I fall ni hittar konstigheter som ni inte kan få rätsida på, ens med hjälp av labbassistenten vill jag gärna få reda på det, så att vi kan hjälpas åt att lista ut vad som är fel!

Tommy


Sidansvarig: Tommy Färnqvist
Senast uppdaterad: 2012-09-24