bild
Skolan för
elektroteknik
och datavetenskap

Kursanalys för DD2458, popup14 (VT 2014)

Författare: Per Austrin

Kursdata

Data baserar sig på resultat inrapporterade 2014-08-15

Kurs DD2458, Problemlösning och programmering under press, 9hp
Examination programmeringsuppgifter, problemsessioner och presentationer/anteckningar
Genomförd VT 2014
Föreläsningar 24 timmar (12 st)
Kurslitteratur (rekommenderad) Kompendium med föreläsningsanteckningar.
Antal studenter 32 varav en kvinna
Prestationsgrad95.3%
Examinationsgrad90.6%
Ansvarig/föreläsare Per Austrin
övriga lärare Lukáš Poláček

Sammanfattning

En på det hela taget lyckad kursomgång.

Antagning till kursen och antal studenter

Kursen är platsbegränsad till 30 studenter. Det rådde stor förvirring i samband med ansökan till vårens kurser med ansökningssystem som inte fungerade och överbelastad studievägledning. I första vändan fick jag beskedet från antagningsenheten(?) att det fanns 32 sökande, och mycket kort varsel på att besluta vilka som skulle antas. Eftersom ett par studenter alltid hoppar av i samband med kursstart antogs alla 32. En utbytesstudent som inte haft tillgång till varken ansökningssystem eller studievägledare (då det i några månader runt jul uppstod ett glapp innan den nya internationella studievägledaren börjat) tillkom, totalt 33 studenter.

Efter detta dök några fler (ca 5) studenter upp som av en eller annan anledning (oftast inte deras egen förtjänst) inte lyckats söka, dessa placerades i kö (enligt first come first served i brist på bättre urvalsunderlag, se nedan). En person hoppade av innan kursstart, så första personen i kön fick en plats.

Ytterligare en student hoppade av efter någon vecka eller två. Återstående 32 studenter har hängt med hela kursen.

Tidigare år har jag av Karin Hultqvist fått en lista med sökande och hur många poäng de tagit totalt samt på relevanta förkunskapskravskurser (adk, algokomp, etc), eftersom detta är urvalskriterierna vid antagning. Eftersom Karin slutat fick jag inte någon sådan lista i år utan bara en lista med namn och studieprogram för de sökande. Jag tycker att denna administrativa syssla är något som administrationen på antingen CSC eller KTH centralt borde erbjuda stöd med.

Examinations- och prestationsgrad

Siffrorna är väsentligen desamma som förra kursomgången popup13. Detta är positivt att se -- förra kursomgången hade kursen inte givits på ett tag och söktrycket var mycket högre, vilket betydde att studentunderlaget då var extra starkt.

31 av de 32 studenterna är klara med momentet LAB1 på 4.5 hp (en student har valt att inte delta i detta moment), och 30 är klara med momentet ÖVN1 (4.5 hp).

Översiktsbeskrivning av kursen

Kursinnehåll

Vi har följt den planering som finns på kursomgångens hemsidor. Kursen innehåller en mindre mängd teori utöver det som ingår i ADK-kursen, men förståelsen för specifika algoritmer och datastrukturer fördjupas och förmågan att använda dessa kunskaper praktiskt tränas grundligt. Tonvikten ligger på kombinatoriska problem men det förekommer även problem inom t.ex. talteori och geometri.

Förkunskaper

Problemen kräver ofta tillämpning av algoritmer och metoder från kursen Algoritmer, datastrukturer och komplexitet (eller liknande kurs), så kursdeltagarna behöver förkunskaper motsvarande stora delar av den kursen.

Kurslitteratur

Kurslitteraturen utgörs av ett kompendium baserat på tidigare kursomgångar. Dessutom är det lämpligt att ha en bok om algoritmer och datastrukturer; en bok som kan rekommenderas är Cormen, Leiserson, Rivest och Steins Introduction to Algorithms. Kompendient bygger på tidigare års föreläsningsanteckningar och är numera så pass komplett att det fungerar rätt bra. Det täcker dock inte in de nya ämnen som lades till 2013, och dessutom finns en disjunkt uppsättning föreläsningsanteckningar som i vissa fall täcker in mer än kompendiet, och i andra fall mindre.

Undervisning

Undervisningen har dels bestått av teoriföreläsningar och dels av praktiskt orienterade hemtal/labbar. Dessutom har ett antal obligatoriska problemsessioner varit en del av examinationen. Hemtalen gås igenom med muntliga lösningspresentationer av eleverna.

Föreläsningarna är enligt enkäten bra. Det är traditionellt så att antal studenter på föreläsningarna avtar under kursens gång, jag upplevde dock att detta inte hände i lika stor utsträckning som tidigare år, vilket är positivt.

Lukas Polacek har hållit tre gästföreläsningar á 90 minuter (strängar/strängmatchning, och två föreläsningar om grafalgoritmer).

Den trettonde reserv/bonus-föreläsningen ställdes in då vi redan täckt allt stoff.

Examination

Kursen har två moment som vardera består av två delmoment:

LAB1

  • Problemsessioner: fyra st 4.5-timmars problemlösningspass i labbsal
  • Labbar: bygga ett litet kodbibliotek (i grupper om två)

OVN1

  • Hemuppgifter: programmeringsuppgifter som endast redovisas via Kattis (individuellt)
  • Anteckningar med lösningsförslag eller muntliga presentationer för hemtalsproblem.

Problemsessionerna genomförs i grupper med två personer (i undantagsfall tre personer). Meningen är att delar av kodbiblioteket ska vara användbart på problemsessionerna.

För i stort sett varje vecka finns en uppsättning med sex hemuppgifter (algoritmiska problem i Kattis). Det är dock inte alls nödvändigt att lösa alla för att få godkänt på kursen.

Studenternas arbetsbelastning

Examinationen har varit utspridd över hela kursen. Problemsessionerna har varit vissa bestämda datum, men man har inte varit tvungen att delta vid alla tillfällen. De uppgifter som ska lösas varje vecka kan ta ganska lång tid i anspråk totalt över hela kursen om man siktar på ett bra betyg.

Förändringar från föregående kursomgång

  1. Den största förändringen i år var införandet av formella hemtalsgenomgångar, som studenterna kan delta i istället för att skriva anteckningar (till nästa år planeras hemtalsgenomgångarna helt ersätta anteckningarna). Detta implementeras som "krysstal". För varje hemtalsvecka hålls en genomgång där studenterna får kryssa i vilka av veckans uppgifter de kan tänka sig att presentera lösning på, och för varje uppgift slumpas sedan en student ut. Studenterna får poäng baserat på hur många kryss de gjort.
  2. I övrigt gjordes en normal rotation av hemuppgifter där ca 1-2 problem per vecka byttes ut.

Åsikter från studenterna

Kursrepresentant var Philip Sköld. Han hade inga specifika synpunkter eller önskemål att föra vidare, bara att de studenter han pratat med varit nöjda eller mycket nöjda.

En enkät har genomförts och den har besvarats av 28 personer. Resultaten finns som bilaga.

Enkäten tyder på att studenterna på det stora hela är mycket nöjda. Några svar i urval av mer kritisk karaktär eller med konkreta förändringsförslag, och mina kommentarer:

  • "Kursen kräver betydligt mer än motsvarande 9 hp i tidsmängd givet att man eftersträvar de högre betygen." (flera liknande svar på fråga 14)

    Jag håller med om att mängden arbete som en "normal" student behöver göra för att nå de högsta betygen överstiger 9 hp (men att godkänt å andra sidan kan uppnås med mindre än 9 hp arbete). En av kursens huvudpoänger är att träna studenternas algoritmiska färdigheter och programmerings-skicklighet genom intensiv träning, och jag tycker det är helt på sin plats att examinationen uppmuntrar just detta. Jag är fast övertygad om att kursens intensiva problemlösande på likartade men varierande problem är ett effektivt sätt att öka sina programmeringsfärdigheter, vilket är en bild som även stöds av omdömena i kursenkäten och av den pedagogiska litteraturen. Som en annan student skriver i enkäten: "Har lagt ner mer tid än i jämförelse pga att det har varit roliga examinationsmoment och jag har siktat på högre betyg. Hade jag lagt ribban lägre så hade nog 240 timmar varit riktigt. Hade gärna gått kursen på heltid om jag hade haft chansen. Givet mina förkunskaper."

  • "Jag tycker det skulle vara tydligare att man var tvungen att förbereda sig och hålla en bra genomgång för att bli godkänd. Det kändes som att många inte var förberedd." (flera svar med samma andemening på fråga 27)

    Jag håller helt med om detta. I år var ju första gången genomgångarna fanns med i det här formatet, och även om jag tycker att det överlag har funkat bra borde det ha varit tydligare krav (som faktiskt upprätthålls) på att man är förberedd, har förstått, och kan förklara sin lösning. Detta är något som ska åtgärdas till nästa år.

  • "Att vissa problem blev alldeles för tidskrävande på grund av att man inte hade löst en viss labupggift tycker jag var synd, jag tycker att poängen från problemsessionerna ska vara oberoende om man löst vissa labbar eller ej."

    Min åsikt här är den motsatta, jag tycker att det ska finnas en symbios mellan labbuppgifterna och problemsessionsuppgifterna (och även hemtalen), så att lösningar på labbuppgifterna ger mervärde i form av att andra uppgifter blir enklare att lösa. Däremot var jag nog inte alls tydlig med denna tanke i början av kursen, vilket såklart borde bättras på till nästa år.

  • "Det här är sista året då man kan lämna in "anteckningar" istället för att redovisa på en genomgång. Jag tycker att ni ska lämna kvar båda alternativen."

    Jag tycker systemet med redovisningar har funkat mycket bra och det innebär mindre tidsåtgång både för mig och de studerande. Att ha kvar båda alternativen tror jag kostar mer än vad det smakar i form av extra administration.

  • "Responstid på mail bör förbättras, särskilt nära deadlines."

    Jag har strävat efter att ha ganska bra responstid under kursens gång och tyckte jag på det stora hela hade uppnått det (med hjälp av Lukas, som också svarade på en del kursmail), men det kan nog förbättras ytterligare.

Slutsatser om förändringar

Redovisning av labbar

Istället för att jag på egen hand granskar studenternas labb-lösningar och sedan skickar dem kommentarer, planerar jag att nästa år låta studenterna komma och redovisa varje labb i (10-15 minuter per redovisning). Förutom att detta kommer att råda bot på den oacceptabelt långa svarstiden för labbresultat så blir detta ytterligare ett lärandetillfälle för eleverna, i större utsträckning än några få epost-kommentarer på deras kod.

Muntliga presentationer

Inför tydligare krav på att man ska kunna förklara hur lösningen fungerar. Använder man en formel eller algoritm ska man förstå den, även om man hittat den på Internet.

Ämnen

Till nästa omgång planerar jag inga ändringar från årets omgång i vilka ämnen som tas upp. Däremot funderar jag på att stuva om ordningen på ämnena något så att aritmetik-veckan kommer tidigare under kursen, då denna är ganska fristående och flera av delarna där (t.ex. flyttal och modulär aritmetik) är användbara i övriga delar av kursen.

Kurskompendium

Favorit i repris från förra årets kursanalys: I något läge skulle jag vilja skriva ett nytt kurskompendium där fel och mindre bra passager i det existerande kompendiet fixas till, och det material som saknas (t.ex. det som lades till i kursen i år) läggs till. Detta är dock ett synnerligen tidskrävande projekt och jag vet inte när det kan tänkas bli av och när jag kan tänkas få tid för detta. Det kommer inte bli till nästa kursomgång då en stor del av min tid inför nästa läsår kommer gå åt att förbereda DD1361 som jag ska hålla till hösten.

Copyright © Sidansvarig: Per Austrin <popup-14@csc.kth.se>
Uppdaterad 2014-08-15