bild
Skolan för
elektroteknik
och datavetenskap
KTH / CSC / Kurser / DD1352 / adk12 / Kursanalys

Kursanalys för DD1352 Algoritmer datastrukturer och komplexitet, hösten 2012

Kursen är obligatorisk för D3.

Kursdata per 1 maj 2013

Tid: period 1-period 2 läsåret 2012/2013 dvs september 2012-december 2012
Högskolepoängantal KTH: 9 (varav 3 på labb, 3 på mästarprov, 3 på tenta)
Tenta: ordinarietenta efter period 2
Föreläsningar: 35 timmar.
Övningar: 24 timmar.
Kursledare och föreläsare: Viggo Kann
Övningsassistenter: Emma Enström (doktorand i datalogi), Marcus Dicander och Cecilia Roes (D-teknologer).
Antal registrerade teknologer: 165 varav 138 från D, 10 från IT, 2 från CL, 2 från I och en vardera från Media, F och MT.
Prestationsgrad förstagångsregistrerade KTH: 77% (samma som år 2011)
Prestationsgrad totalt KTH: 85% (90% år 2011, men då hade kursen senarelagts ett halvår och det fanns fler äldre som ville bli klara)
Examinationsgrad förstagångsregistrerade KTH: 59% (98 stycken; jfr 63% år 2011)

STATISTIK efter ordinarietentan (alla i Rapp)

LABBSTATISTIK
  Labb nr 1: 165, 2: 169, 3: 128, 4: 154
  Hela labbkursen: 125 st (jfr 114 st år 2011)

MÄSTARPROV, TEORITENTA OCH MUNTA
Prov  Antal inl  Betygsfördelning                                 Medelbetyg
mas1    140      11 x F   73 x E    6 x D   37 x C    5 x B    8 x A    1,8 (2,6 2011)
mas2    126       4 x F   54 x E   25 x D   24 x C    9 x B   26 x A    2,2 (2,6 2011)
tenta   149      11 x F   51 x E   30 x D   57 x C      -        -      1,9 (2,2 2011)
x-labb4  37         -        -        -        -      8 x B   29 x A    4,8 (4,8 2011)
munta    36      11 x F      -        -      6 x C    4 x B   15 x A    3,0

SLUTBETYG
 58 x E    6 x D    22 x C     6 x B    19 x A
medelbetyg: 2,3 (jfr 2,9 år 2011,  2,1 år 2010, 2,8 år 2009 och 2,2 år 2008)

Lärandemål

Efter kursen ska studenten kunna
  • utveckla och implementera algoritmer med datastrukturer och analysera dem med avseende på korrekthet och effektivitet,
  • jämföra alternativa algoritmer och datastrukturer med hänsyn till effektivitet och pålitlighet,
  • definiera begreppen P, NP, NP-fullständighet och oavgörbarhet,
  • jämföra problem med hänsyn till komplexitet med hjälp av reduktioner,
  • förklara hur man kan hantera problem med hög komplexitet
för att
  • självständigt kunna konstruera datorprogram som effektivt utnyttjar tid och minne,
  • i yrkeslivet kunna identifiera och angripa problem som är orealistiskt resurskrävande eller inte alls går att lösa med dator.

Förändringar inför denna kursomgång

Förändringarna som planerades i föregående års kursanalys har genomförts:
  • Färgfrågor på alla föreläsningar.
  • Mönsterorienterad undervisning för att lära ut dynamisk programmering. Detta gjordes i ett forskningsprojekt stött av CSC-skolans CPU-fond.
  • Ny labb i dynamisk programmering.
  • Komplexitetsdelen finputsades i en fortsättning av forskningsprojektet som startade 2011.
Komplexitetsdelen av kursen ansågs traditionellt som svår. Därför har Viggo i ett forskningsprojekt tillsammans med universitetet i Florens utvecklat motivation och pedagogisk framställning av komplexitet. Detta genomfördes och utvärderades 2011 och ytterligare en gång i denna kursomgång.

Sammanfattning

Kursen fungerar mycket bra. Aktionsforskningsprojekten har förbättrat kursen och studierna har inte varit störande, tvärtom snarast givande. Även nästa år kommer två forskningsstudier göras inom kursens ram.

Faktiskt innehåll i kursen

Kursen följde det planerade innehållet.

Två stycken datadidaktiska aktionsforskningsprojekt genomfördes under kursen. Avsnittet om dynamisk programmering las upp på ett nytt sätt med hjälp av metoden mönsterorienterad undervisning och en ny labb 2 som tränar implementering av dynamisk programmering infördes. Projektet rapporterades vid ett pedagogiskt seminarium.

Komplexitetsdelen av kursen gjordes om redan 2011 och denna kursomgång utvärderades ändringarna för andra gången, se separat artikel.

Eleverna på kursen fick därför flera enkäter att fylla i under kursens gång, däribland självvärderingar av den egna förmågan före och efter dom studerade kursavsnitten samt försättssidor till mästarproven. Kursansvarig student ansåg att dessa tillfällen till självreflektion var pedagogiskt givande snarare än störande.

Elevernas synpunkter

D-teknologerna David Karlbom och Max Nordlund var kursansvariga studenter. Den 15 november 2013 hölls ett kursnämndsmöte.

Jag la upp en kursutvärdering på webben efter teoritentan men före muntan. Den besvarades bara av 75 elever, vilket kanske beror på att jag gjorde flera andra utvärderingar i kursen inom mina forskningsprojekt.

Här följer en sammanfattning av enkätsvaren med mina kommentarer.

Kursinnehåll

Kursen ansågs vara ganska svår (51%) eller mycket svår (25%) av tre fjärdedelar, medan 4% tyckte den var lätt och resten medelsvår. Det är fler än förra året som ansåg att kursen var mycket svår.

3% tyckte inte att dom i början av kursen fick klart för sig vad kursens mål var, färre än förra året.

98% tyckte kursen var intressant (jämfört med 95% 2011, 80% 2010, 88% 2009 och 81% 2008).

Kurslitteratur

Bara knappt hälften har använt kursboken, men bara en femtedel av dessa tycker att den inte är bra. Flera kommenterar att man kan klara sig långt med undervisningen, anteckningarna och Wikipedia. Det är sant för vissa personer men långt ifrån alla.

Föreläsningsanteckningarna på webben (cirka 140 sidor), med alla stordiabilder som visades samt alla övningsuppgifter med lösningar, ansågs vara mycket bra eller bra av två tredjedelar.

  • Svårt att hänga med på dom. Känns också att massor saknas i dom.
  • Föreläsningsantecningarna i kursen är otroligt bra!
  • Väldigt pedagogiska och inte för formella. Uppskattas att de läggs upp på nätet.
  • Mycket bra att det fanns färdigt men vid tentarepetition var det tur att man antecknat en del själv då de förtryckta anteckningarna saknade en del struktur och sammanhang. Mycket vill ha mer.
Jag har inte tänkt att föreläsningsanteckningarna ska vara självförklarande och ersätta kursboken. Den som har missat en föreläsning måste läsa i kursboken - det räcker inte med föreläsningsanteckningarna.

Undervisningen

Kursen är upplagd så att den som vill läsa in den själv ska kunna göra det. Trots detta gick 52% (förra året 63%) på i stort sett alla föreläsningarna. 9% (förra året 14%) gick nästan inte på några föreläsningar. Pedagogiskt sett ansågs föreläsningarna mycket bra eller bra av 94% (samma som förra året) och ingen ansåg att dom var mindre bra eller dåliga (en förra året).
79% föredrar entimmesföreläsningar i kursen (76% förra året) och 11% föredrar tvåtimmarsföreläsningar (12% förra året).
  • Det märks att Viggo brinner för ämnet och detta förmedlas så väl på föreläsningarna att man själv blir motiverad.
  • Varit bra, bra med frågorna, då tvingas man lyssna och så får man ett litet avbrott. Plus att man vet om man hänger med på riktigt eller inte.
  • Viggo är exemplarisk som föreläsare. Mycket tydlig i både tal och skrift. Tar tag i varje fråga som uppstår och förklarar till dess att frågeställaren är nöjd.
  • Fantastiska föreläsningar. Färgfrågorna har varit kanon. När det gäller de visuella simuleringarna tror jag det är viktigt att man håller sig till väldigt tydliga simuleringar.
  • Väldigt bra med entimmesföreläsningar. Just i denna kurs är det mycket passande eftersom innehållet skulle bli mycket tyngre om man fick ta två föreläsningar på samma dag.
Färgfrågorna som jag började med förra året och detta år använde hela kursen var mycket uppskattade.
Jag tycker att entimmesföreläsningar är mycket mer stimulerande än tvåtimmarsföreläsningar och jag ser betydligt färre sovande elever i föreläsningssalen. Det är också uppskattat av nästan alla elever.

47% av eleverna gick på minst 60% av övningarna, mot 71% förra året. 65% tyckte att övningarna pedagogiskt sett var mycket bra eller bra.

  • Marcus Dicander är en pedagogisk och rolig lärare.
  • Cecilia Roes upplägg var väldigt pedagogiskt (presentera problemet, ge tid åt diskussion om problemet i gruppen, presentera lösningen).
  • Emma är väldigt pedagogisk och gör sitt bästa för att förklara om man inte förstår. Mycket bra.
  • Intressanta med bra uppgifter. Övningshäftet i kursbunten var också användbart speciellt om man missade en övning.
Övningsgrupperna har olika karaktär och svårighet, och de flesta elever tycks ha hittat en grupp som passar. Många vill dock inte gå på några övningar, vilket jag tycker är synd.

Examinationsformen

Examinationsformen med en tredjedel av vardera labbar, mästarprov och tenta ansågs mycket bra eller bra av nästan alla (92%). Majoriteten (71%) tyckte att betygsättning med betygskriterier var bra och att det var bra att det fanns flera sätt att redovisa att man uppnått lärandemålens betygskriterier.

Nästan alla (84%) tyckte att kamraträttning av teoritentan var bra eller åtminstone acceptabelt. Lika många ansåg att lärarens återkoppling vid redovisningarna av mästarproven var mycket bra, bra eller acceptabel. Bara 27% la ner mer än 30 timmar på mästarprov 1 och 12% la ner mer än 30 timmar på mästarprov 2.

  • Jag tycker att det är jättebra att det inte bara är en stor tenta på slutet. I sådana kurser tenderar jag att bara plugga sista veckan, så då lär man sig sakerna bara för tentan och glömmer dem fort. När man tvingas arbeta mer kontinuerligt får man ut mycket mer av kursen. Jag tycker att det är bra att allting vägs ihop på slutet och är lika mycket värt. Det gör att man tvingas ta allting seriöst och inte kan slappa på något. Sen vet jag att vissa tycker att det är dåligt att det är det lägsta betyget som gäller, och inte något medelvärde som i många andra kurser. Detta tycker dock jag är bra. Många kurser på KTH är väldigt slappa, och om man säger att man vill ha A så får man det. Det verkar som att många lärare och assar inte "vågar säga nej". I ADK kursen finns det tydliga krav, och man måste kämpa för sitt betyg. Det känns mycket rimligare än att alla ska få A. Betyget blir mer värt när kursen är svår. Dessutom är kursen inte orimligt svår eller oförlåtande. Om man misslyckas med ett mästarprov för man är sjuk eller något liknande så finns det möjlighet att munta upp betyget. Så kursen är tuff men rättvis. Mycket bra. Kamraträttning är acceptabelt. Föreläsarna brukar säga att det är "för att vi ska lära oss av andra", det har jag dock aldrig upplevt att jag gjort. Men det är ok.
  • Har varit med om att kamraträttningar inte har fungerat bra alls, men i detta fallet så var det väldigt bra uppstyrt, och det kändes därför väldigt bra.
  • Det känns orättvist att få E när man har E, A, C som betygsuppsätyning. Ett snedsteg så är man körd.
  • Det är enkelt att få godkänt på kursen, men för att få högre betyg måste man faktiskt jobba en hel del. Många kurser har svårt med detta, men här var det väldigt lyckat.
Även om man har betygen E, A, C så är det inte kört eftersom man kan munta upp första betyget till C och få C som slutbetyg eller både första och tredje betygen till A och få A som slutbetyg. Det går också att göra extralabben för att få A på det tredje betyget. Ytterligare en metod är att plussa betyg i en senare kursomgång.

ADK-kursens betygskriterier och examination har prövats i många år och alltid uppskattats av flertalet elever. Därför tjänar kursen numera som exempel i den nya högskolepedagogiska kursen i betygskriterier för KTHs lärare.

Eftersom mästarproven är moment värda 1,5 hp var så är det rimligt att lägga ner en veckas jobb (inklusive inläsning) på varje. Många skulle nog få bättre betyg på mästarproven om man ägnade mer tid åt dom. Jag ska rekommendera det inför mästarproven nästa år.

Kattis

Det automatiska programtestningssystemet Kattis används för sjätte året i kursen. Kattis fick helhetsbetyget mycket bra eller bra av 80% (mot 76% förra året och 83% året innan). Bara 3 stycken ansåg systemet vara mindre bra eller dåligt.
  • Kattis är bra då man får ett konkret mål att jobba mot. Det är väldigt bekvämt att veta på förhand att ens program är godkänt. Dessutom så inför topplistorna ett tävlingsmoment som kan vara motiverande.
  • Instant feedback! Helt suverän metod!
  • Återkopplingen kan ibland inte vara helt självklar. T.ex. så returnerade Kattis Signaled (11) (dvs. pointer relaterat) vid en uppgift där felet egentligen var att vi hade överstigit den tillåtna minnesanvändningen - tog en stund att inse detta eftersom vi var helt inställda på att det hade något med våra pekare att göra.
  • Då återkopplingen är så begränsad att man inte ens kan se vilken rad som ger ett exception var jag vid ett tillfälle tvungen att binärsöka efter raden genom att medvetet kasta ett annat exception på olika platser i min kod. Iofs relevant för kursen men kanske en lite slöseri med min tid?
Kattis har massor av goda pedagogiska sidor. Det gäller bara att undvika dom få avigsidorna. Kattis kan inte avslöja sina testindata, det skulle urvattna Kattis funktion mer och mer. Kattis skulle ursprungligen bara testa att programmen gör rätt och är tillräckligt snabba, men många som använder Kattis vill också att hon ska hjälpa till att hitta fel i programmen!

Särbehandling och genus

Bara en ansåg sig ha blivit utsatt för särbehandling, och den personen gav kommentaren: Som ortodox P=NP:ist känner jag mig oerhört kränkt när det predikas hejvilt om att min religion är falsk. Jag får känslan av att det finns en dold agenda hos kursledningen, nämligen att försöka skada oliktänkande personers världsbild. Diskussioner med Jäm-O pågår...

Några kommentarer om kursen ur ett genusperspektiv:

  • Bra att det är både kvinnor och män som har varit övningsledare.
  • Jag blev glatt överraskad att ni i lydelsen till mästarprov 1 (uppgift 2) på ett utmärkt sätt visar att det finns en naturlig plats för ett könsneutralt pronomen i svenska språket, och att detta inte behöver vara ett värdeladdat ord.
Dom flesta hade inte funderat över kursens genusperspektiv eller tyckte ens att det var något som hade med kursen att göra.
För första gången hade kursen en majoritet kvinnliga övningsassistenter. Det tror jag bara är bra.

Glädje av kursinnehållet

90% tror sig ha nytta av hela eller en hel del av kursinnehållet i framtiden (88% förra året och 67% året innan). Detta visar att kursen är och uppfattas som central för utbildningen, och att den extra motivation av komplexitetsdelen som infördes förra året haft effekt.

Förslag till förbättringar och allmänna kommentarer

Jag vill säga att kursen var väldigt lärorik och rolig. Ibland kändes den väldigt hård på rättning av uppgifter, men det får man ta. Det jag gärna skulle se i framtiden är att det läggs lite mer fokus på hur tydlig man ska vara vid lösning av uppgifter så man kan vara säker på att man är tillräckligt tydlig. Inte bara för kursens skull utan för att det är viktigt att kunna visa lösningar på problem så att andra än en själv faktiskt kan förstå det.
En jätteviktig kurs som får dig att tänka på programmeringsproblem från flera vinklar och ett effektivt tänk kring algoritmer är något man får med sig i framtiden.
Bra men svår. MYCKET svårt att hinna med labbarna i tid. Hade velat ha mer hjälp.
Väldigt intressant och roligt innehåll på kursen. Det känns som att man kommer ha nytta av allt man har lärt sig på ett eller annat sätt i framtiden, vilket inte kan sägas om särskilt många andra kurser. Utöver allt det datalogiska man lär sig så blir man också en bättre programmerar i allmänhet.

Kursen får generellt mycket beröm även om vissa kritiska röster finns. Just osäkerheten vad gäller hur algoritmer ska beskrivas med pseudokod och hur noga dom ska motiveras kommer vi att försöka göra tydligare och öva mera på nästa år.

Anpassning till andra kurser

Kursen samordnades med Diskret matematik för D3 som lästes parallellt. Det har fungerat bra. Tidpunkter för inlämningar och redovisningar har samordnats med alla övriga kurser som D3 läser på hösten.

Fortsättningskurserna (Avancerade algoritmer, Kryptografins grunder, Seminariekurs i teoretisk datalogi, Algoritmisk bioinformatik, Komplexitetsteori och Problemlösning och programmering under press) är planerade att passa ihop med ADK.

Planerade förändringar

  • Finputsning av den mönsterorienterade undervisningen i dynamisk programmering. En forskningsstudie kommer att göras på detta.
  • Utveckling av undervisningen och övningen i pseudokod och korrekthetsmotivering. Detta görs också i ett forskningsprojekt.
  • Tips om att man ska börja tidigt med mästarproven och avsätta en hel del tid till dom kommer att ges på föreläsningarna.
  • Uppmaningar vad som ska läsas i kursboken kommer att lämnas vid föreläsningarna.
Viggo Kann
Copyright © Sidansvarig: Viggo Kann <viggo@nada.kth.se>
Uppdaterad 2013-06-19