Till KTH:s startsida Till KTH:s startsida

Visa version

Version skapad av Viggo Kann 2015-08-20 17:18

Visa nästa >
Jämför nästa >

Kursanalys

Kursanalys för DD1352 Algoritmer datastrukturer och komplexitet, hösten 2014. Kursen är obligatorisk för D3.

Kursdata per 10 februari 2015

Tid: period 1-period 2 läsåret 2014/2015 dvs september 2014-januari 2015
Högskolepoängantal KTH: 9 (varav 3 på labb, 3 på mästarprov, 3 på tenta)
Tenta: ordinarietenta sista dagen i läsperiod 2
Föreläsningar: 36 timmar.
Övningar: 24 timmar.
Kursledare och föreläsare: Viggo Kann
Övningsassistenter: Marcus Dicander, Tonima Afroze, Anton Grensjö (teknologer i datateknik, medicinsk teknik respektive teknisk fysik).
Antal förstagångsregistrerade teknologer: 230 varav 165 från D, 29 från IT, 4 från CL, 2 från Media, 1 från I, 3 från kandidatprogrammet i simuleringsteknik, 11 från högskoleingenjörsprogrammet i datateknik, 3 från högskoleingenjörsprogrammet teknik och ekonomi, 11 från olika masterprogram och en utbytesstudent. Av dessa har 26 inte något enda godkänt Ladokresultat på kursen.

Dessa har räknats bort i nedanstående genomströmningsstatistik, som alltså baseras på 204 stycken förstagångsregistrerade (166 föregående år).
Prestationsgrad förstagångsregistrerade KTH: 87% (78% 2012 och 2013)
Prestationsgrad totalt KTH: 83% (81% vid samma tid 2013)
Examinationsgrad förstagångsregistrerade KTH: 71% (59% 2012 och 2013)

STATISTIK efter ordinarietentan (från Rapp, dvs inte bara förstagångsregisterade)
Det är 257 personer som har något som helst resultat (godkänt eller underkänt) på något delmoment av adk14. LABBSTATISTIK Labb nr 1: 222, 2: 235, 3: 199, 4: 199 Hela labbkursen: 191 st (jfr 127 st år 2013) MÄSTARPROV, TEORITENTA OCH MUNTA Prov Antal inl Betygsfördelning Medelbetyg mas1 217 31 x F 80 x E 7 x D 62 x C 2 x B 35 x A 2,1 (2,2 2013) mas2 203 40 x F 83 x E 13 x D 39 x C 5 x B 23 x A 1,8 (2,3 2013) tenta 203 12 x F 18 x E 82 x D 91 x C - - 2,2 (2,2 2013) x-labb4 36 - - - - 8 x B 28 x A 4,8 (4,8 2013)
ommas1 3 x F 20 x E
ommas2 17 x F 19 x E munta1 14 8 x F - - 2 x C 2 x B 2 x A
munta2 19 5 x F - - 4 x C - 10 x A
muntahög 8 4 x F - - - 2 x B 2 x A SLUTBETYG 88 x E 13 x D 31 x C 3 x B 20 x A medelbetyg: 2,1 (jfr 2,6 år 2013, 2,3 år 2012, 2,9 år 2011, 2,1 år 2010, 2,8 år 2009 och 2,2 år 2008), dvs mellan D och C.

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 och översätta 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öreläsningarnas upplägg kommer ännu tydligare att bygga på färgfrågorna.
  • Lärandemålet om begreppsdefinitioner kommer att utökas med översättningsförmåga.
  • Tentans uppgifter kommer att specificeras med betygsnivå och bonuspoängen kommer att räknas till E-uppgifterna.
  • Övningsuppgifter som tränar val mellan komplexitetsanalys med enhetskostnad och bitkostnad kommer att läggas till.
  • Indatabegränsningarna i labblydelserna kommer att ses över.

Dessutom har betygskriterierna för nivå B modifierats en aning för att stämma överens helt med mästarprovens bedömning.

Sammanfattning

Det var 230 förstagångsregistrerade på kursen i år, jämfört med 186 förra året. Kursen har alltså blivit märkbart större. Det innebar att många salar fick bokas om och extra labbhandledare kallas in. Genomströmningen på kursen, både prestations- och examinationsgrad, har förbättrats märkbart; däremot har medelbetyget sjunkit en aning. Det är i absoluta tal lika många som får höga betyg som tidigare år. Det tycks som att de tillkommande grupperna av elever på kursen klarar kursen bra men får inte överbetyg.

I år har bara en didaktisk forskningsstudier gjorts i kursen, nämligen en inledande studie om den agila metoden parprogrammering. Tidigare studier i kursen har påverkat tre svåra delar till det bättre: dynamisk programmering, NP-fullständighet och psedudokod och korrekthetsresonemang. Förbättringarna och deras resultat finns beskrivna i en forskningsrapport.

Kursen har fungerat bra, trots det stora elevantalet. Några förändringar som innebär förbättrad tydlighet i vad som kommer att bedömas ska genomföras nästa år, se sist i denna kursanalys.

Faktiskt innehåll i kursen

Kursen följde det planerade innehållet.

Elevernas synpunkter

Inga studenter anmälde sig till att vara kursansvariga studenter i år, tyvärr.

Jag la upp en kursutvärdering på webben efter teoritentan men före muntan. Den besvarades bara av 54 elever, vilket bara är en fjärdedel av dom aktiva förstagångsregistrerade kursdeltagarna, men det är ändå fler än förra året. För första gången provades KTHs nya LEQ-enkätfrågor, som fokuserar på lärmiljön snarare än kursens olika delar. Därför går det inte att jämföra enkätsvaren med tidigare år. LEQ-frågorna, som egentligen är påståenden som man kan hålla mer eller mindre med om, kompletterades med några inledande frågor om parprogrammering. En detaljerad sammanställning av enkätsvaren finns här.

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

Enkäten inleddes med tio frågor som utvärderade parprogrammeringsmomentet i kursen. Svaren kommer att analyseras djupare i ett pedagogiskt forskningsprojekt som pågår under detta läsår. Kort sammanfattning är att kravet på parprogrammering i första labben mottogs mycket positivt, men eftersom loggverkyget Parkour inte driftsattes förrän till labb 4 så blev inte uppföljningen av parprogrammeringen som planerat. I stort sett alla som gjorde första labben använde parprogrammering. Över hälften fortsatte med parprogrammering i övriga labbar, trots att det inte var obligatoriskt där. Jag kommer att fortsätta med parprogrammering nästa år i kursen.

Dom 22 LEQ-påståendena besvarades på en skala från 1 till 7 där 

  • 1 betyder nej, jag tar helt avstånd från påståendet
  • 4 betyder jag varken instämmer eller tar avstånd från påståendet,
  • 7 betyder ja, jag instämmer helt i påståendet,
  • X betyder jag kan av något skäl inte ta ställning till påståendet.

Medelvärdet på svaren varierade mellan 4,3 och 6,0. Enda påståendena med medelvärde under 4,9 var:

  • Jag hade möjlighet att välja vad jag skulle göra. (4,3)
  • Jag utforskade något på egen hand inom kursens ämnesområde. (4,8)
  • Jag fick regelbundet feedback på mitt arbete från kurskamrater eller lärare. (4,8)

Valmöjligheterna i kursen består i vilken inlärningsmetod man vill använda (stöd för olika inlärning ges), vilket programspråk man använder i labbarna och vilket betyg man vill satsa på. Större möjligheter för val har jag svårt att införa. Det finns alla möjligheter att fördjupa sig på egen hand inom någon del av kursen, för den som har tid och lust. Återkoppling lämnas kontinuerligt via färgfrågorna på föreläsningarna, interaktivitet och teoriuppgifter på övningarna, muntliga redovisningar av labbar och mästarprov, rättningssession på tentan och den frivilliga muntan. Dessutom besvarades individuella frågor i mån av tid, särskilt frågor ställda på kurswebben.

Dom flesta LEQ-påståenden i enkäten hade medel mellan 4,9 och 5,8, vilket är ganska högt. Högst medel fick följande påståenden:

  • Kursen kändes utmanande på ett stimulerande sätt. (6,0)
  • Jag förstod hur kursen var organiserad och vad jag förväntades göra. (6,0)
  • Mina tidigare kunskaper var tillräckliga för att följa kursen. (5,9)
  • Jag kunde lära mig av konkreta exempel som jag kunde relatera till. (5,9)
  • Kursens aktiviteter hjälpte mig att nå lärandemålen på ett effektivt sätt. (5,9)

Alla påståenden fanns det möjlighet att ge kommentarer till. Här är ett urval av dessa:

  •  Lärandemålen hjälpte mig att förstå vad jag förväntades kunna efter kursen.
    Eftersom alla moment hade en tydlig och explicit koppling till målen blev det väldigt tydligt.
  • Jag fick regelbundet feedback på mitt arbete från kurskamrater eller lärare.
    Verktygen finns tillgängliga - mellan teorifrågor, övningar och mästarprov fick jag god feedback om hur jag låg till.
    Det fanns tid för feedback både på övningar och labbar om så önskades
  • Kursen kändes utmanande på ett stimulerande sätt.
    O ja. Särskilt mästarproven är ett intressant och nytt sätt att arbeta på.
  • Jag hade möjlighet att välja vad jag skulle göra.
    Måste vara den kurs där man kan välja mest.
  • Kursens aktiviteter hjälpte mig att nå lärandemålen på ett effektivt sätt.
    Bra upplägg med förberedande teorifrågor inför varje labb. Bonussystemet gjorde att det alltid fanns ett incitament till att förbereda sig.
  • Jag kunde lära mig på ett sätt som passade mig.
    Labben i reduktion var jätte viktig för att jag skulle förstå det momentet. Labbar i allmänhet och att få prova på saker på egen hand lär man sig mycket på.
  • Jag kunde få stöd från kurskamrater eller lärare om jag behövde det.
    Kurskamrater mest, det fanns inte tid att få ordentlig feedback från lärare. Det gick dock jättebra att få korta svar på riktade frågor via email eller social.
  • Kursens examination kändes ärlig och rättvis.
    Kändes i vissa fall på mästarproven som att närvaro eller frånvaro av en given mening eller ett nyckelord kunde avgöra om man fick utveckla sin lösning eller om den omedelbart avskrevs.
    Teori tenta: Jag tycker att rättningsmallen borde finnas till extentor för att undvika att man glömmer något litet ord som ger minus.
    Jag känner ju själv att jag fått ett betyg som inte alls reflekterar den kunskapsnivå jag ligger på i slutet av kursen. Jag lärde mig som allra mest när jag gick igenom mästarprovet med en asse. Det var MÅNGA poletter som föll ner under dessa tillfällen. Problemet är ju att det inte spelar någon som helst roll för mitt betyg vilken kunskap jag tillförskaffar mig under mästarprovsredovisningen. Jag skulle uppskatta att jag ligger på en C-nivå men får E i slutbetyg för att jag fick E på båda mästarproven trots att jag är övertygad om att jag skulle kunna få C-A om jag tilläts göra nya mästarprov. Dessutom innebar det att jag inte hade någon som helst betygsmässig motivation att skriva tentan bra (även om jag gjorde det av rent intresse för kursen). I första mästarprovet hade jag missat att skriva en rad i pseudokoden som gjorde Dijkstra's algoritm till en totalsökning istället för O(|V||E|^2) och hela uppgiften blev underkänd. I andra mästarprovet hade jag tagit upp uppgift & teori (att man måste reducera och verifiera i poly. tid för att visa NP-fullst) men glömde sedan bort att lägga till textbiten om verifikationen så hela uppgiften blev underkänd. Slarvfel från min sida i båda fallen och jag har ingen ursäkt men det gjorde också att jag inte fick möjlighet att få ett betyg som representerar min riktiga kunskap.

    13 av 14 känns orimligt hög betygsgränns för E på tentan. För liten marginal
    Fullkomligt fantastisk examinationsform! Finns ingenting att klaga på. Känns väldigt rättvist att få det lägsta betyget istället för ett medelvärde. Tyvärr är man van med att CSC-kurser delar ut höga betyg till höger och vänster, så det känns uppfriskande att ha en kurs där ett A eller B faktiskt är värt någonting.
    Fick E på första mästarprovet och förlorade därmed ALL motivation att försöka få något högre än E på resterande moment, eftersom det inte tjänar någonting till. Om man inte vill göra "extraarbete" och extrastress i slutet.

Lågt betyg på första mästarprovet begränsar inte alls slutbetyget, eftersom det går att visa att man kan presera på högre betygsnivå i antingen muntan eller ett senare mästarprov. Tydligen har en del inte uppfattat detta eller velat se detta som en möjlighet. Jag ska nästa år vara tydligare med att informera om detta, så att motivationen inte minskar utan tvärtom ökar för den som får lågt betyg på mästarprov 1.

Jag vill vara så tydlig som möjligt vad gäller vilka krav som ställs. Vid mästarproven bedömer assistenterna prestationerna efter ett bedömningsprotokoll som visar vilken kvalitet som krävs av varje uppgift. Kraven bygger på betygskriterierna. Dock ställs högre krav i korrekthetsmotivering på A-nivå än på C-nivå på mästarproven, och det framgår inte av betygskriterierna. Därför kommer jag nästa gång att införa en femgradig skala för målet "analysera algoritmer med avseende på korrekthet" enligt följande:
E: förklara principerna, redogöra för ett givet korrekthetsbevis
D: framställa grundläggande idé för korrekthetsbevis av en algoritm
C: framställa grundläggande idé för och givet ledtråd genomföra fullständiga korrekthetsbevis
B: [A-kriteriet] givet ledtråd
A: genomföra fullständiga korrekthetsbevis med invarianter

Jag tänker presentera kraven i bedömningsprotokollen för mästarproven på ett förenklat sätt för eleverna. Jag tänker också lägga upp en rättningsmall för en extenta.

Eftersom 94% fick godkänt på ordinarietentan tror jag inte att kraven är för höga. Jag vill att den som får godkänt på tentan ska ha visat att den kan den grundläggande teorin från kursens alla delar. Den som fick 11 eller 12 poäng på tentan fick möjlighet att komplettera till godkänt genom att visa att man behärskar dom delar som man missat på på tentan.

Enkäten avslutades med tre öppna frågor. Här är några svar på frågan "Vad var det bästa med kursen?

  • Organiserad nästan perfekt. All info man behöver finns tillgänglig och responsen är snabb om man har frågor.
  • Viggo är den bästa läraren jag någonsin har träffat i mitt liv, det var en ära att delta i lektioner med honom och jag var väldigt fascinerad av allt.
  • Det bästa med kursen var helheten; att samtliga olika moment kändes genomtänkta och höll en hög nivå. Delarna kompletterade varandra väldigt bra. Gillade den strukturerade och tydliga detaljplanen med läsanvisningar. Kan tyckas självklart men bra att alla föreläsningsanteckningar och labblydelser fanns tillgängliga på nätet från kursstart.  Intressanta och engagerande föreläsningar. Användningen av färgfrågor ett uppskattat inslag då det uppmuntrade till givande diskussion och reflektion tidigt under inlärningen vilket bidrog till att oklarheter kunde redas ut snabbare. Samma sak gäller kamraträttningen av tentan. Tack!
  • Att det gör det extremt tydligt att Datalogi inte handlar om programmering utan att det är en vetenskap precis som matematiken. Gillar att Kattis användes.
  • Mästarproven var väldigt bra sätt att lära sig inför en examination istället för att bara memorera något just för ett tentatillfälle. Jag lärde mig jättemycket
  • Lektionerna och de lätta övningarna.
    De gick in på djupet även på de saker som kunnat avfärdas som självklara. Detta är JÄTTEBRA då allting inte är självklart för alla.
  • Mycket bra övningsassistenter med kunskap och en bra dialog med studenterna
  • Att föreläsningarna var en timma i stället för två. Viggos fina anteckningar. Viggo. Labbarna var relevanta och lärorika. När Dicander räknar fel och skyller på att han räknar i en annan bas.
  • Att man fick skriva pseudokod och analysera komplexiteten utan för mycket fokus på hur det skulle kunna implementeras.
  • Entimmesföreläsningarna var väldigt lärorika trots att de var så korta.
  • Att den lyckades balansera en stor bredd utan att offra djup. De pedagogiska greppen som färgkort och kamraträttning osv.

Svar på frågan "Vad skulle kunna förbättras?":

  • Gör tentamen lite svårare, det var väldigt enkelt att få godkänt anser jag.
  • Upplägget på tentamen. Det är inte hållbart med att ha 87% rätt för att få E, man kan inte utgå ifrån att alla har bonuspoäng.

Se min kommentar om tentan ovan. Teoritentan ska bara kolla att alla behärskar dom enkla begreppen. Det är därför E-uppgifterna är så pass enkla. Problemlösning examineras i mästarproven, på extralabben och muntan.

  • Ibland låg labbteorin väldigt konstigt schemamässigt i mitt tycke. Tror att den vid någon labb låg en hel månad innan deadline för själva labben.

Labbteorin ligger alltid på övningen före första labbtillfället som ägnas åt labbuppgiften. För labb 3 innebär det att det är långt kvar till deadline, eftersom det kommer ett periodbyte emellan, men jag uppmuntrar alla att göra labben i god tid före deadline.

  • Jag tycker att betygssystemet i några avseenden är lite negativt för motivationen. Skulle man få E på första mästarprovet, kanske man inte är lika motiverad att försöka prestera mer än ett E på de andra momenten.

Se min kommentar om låga betyg och motivation ovan.

Svar på frågan "Vilket råd skulle du vilja ge till framtida kursdeltagare?":

  • Skaffa bonuspoäng i form av att redovisa labbar och teoriuppgifter i tid. Läs på och förstå examinationen redan i början av kursen så att ni kan planera era studier för betyget ni siktar på.
  • Börja med allt i tid. Ta god tid på er med mästarprov.
  • Gå på Viggos föreläsningar. Lyssna på Viggos läsanvisningar.
  • Försök hänga med i diskmatten så bra som möjligt, eftersom det annars kan bli svårare att hänga med i ADK:n.
  • Att sasta på mästarproven eftersom man får två chanser att höja betyget på teoritentan (med extralabben och muntan).
  • Labbarna tar tid - börja så fort som möjligt! Ta till vara på föreläsningar om centrala begrepp, speciellt reduktioner.
  • Att börja i god tid med mästarproven. De behöver bearbetas ett tag, men när man väl gjort det brukar lösningarna inte vara allt för svåra.
  • Kom förberedd till föreläsningarna. Häng med i kursen från första början.
  • Diskutera mer med dina kurskamrater. Det var där den bästa feedbacken fanns.
  • Var inte rädd att lägga ner tid, det finns få kurser som är så givande att prestera bra i.

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, Komplexitetsteori och Problemlösning och programmering under press) är planerade att passa ihop med ADK.

Planerade förändringar

    • Möjligheten att höja varje delbetyg (med munta, extralabb eller plussning i senare kursomgång) ska göras tydligare, så att ingen tror att loppet är kört för högre betyg efter ett lågt betyg på första mästarprovet.
    • Jag kommer att inför mästarproven informera mer i detalj om vilka krav som ställs vid bedömningen och att kraven är olika för olika uppgifter. Samma sak inför teoritentan.
    • Betygskriterierna modifieras. Särskilt ändras kriterierna för analys av korrekthet av algorimer. Se ovan.

Viggo Kann