bild
Skolan för
elektroteknik
och datavetenskap

Kursanalys för DD2458, popup11 (VT 2011)

Författare: Mikael Goldmann

Kursdata

Data har hämtats från VIS och baserar sig på resultat inrapporterade senast 2011-07-10

Kurs DD2458, Problemlösning och programmering under press, 9hp
Examination programmeringsuppgifter, problemsessioner och anteckningar
Genomförd VT 2011
Föreläsningar 26 timmar (13 st)
Kurslitteratur (rekommenderad) Kompendium med föreläsningsanteckningar. Rekommenderade komplement: Skiena: the Algorithm Design Manual eller Cormen et al.: Introduction to algorithms eller liknande.
Antal studenter 29, varav en kvinna
Ansvarig/föreläsare Mikael Goldmann
Övriga lärare Cenny Wenner och Lukáš Poláček

Sammanfattning

Väldigt få avhopp och väldigt nöjda studenter. Övningstillfällena kan användas bättre, men exakt hur återstår att fundera ut. Anteckningsmomentet behöver förklaras bättre.

Studenter

Studenterna går i huvudsak tredje eller fjärde året av sin utbildning. En student går F medan övriga går D.

Nyckeltal

Prestationsgrad och Examinationsgrad: 93% och 86%. Det får anses bra för en valfri kurs. Ytterligare en student har gjort klart kursen och två restar bara med ett anteckningsmoment och jag räknar med att de blir klara också.

Mål

Kursens mål är att studenten ska kunna
  • analysera effektiviteten hos olika lösningsmetoder för att avgöra vilka som i ett givet sammanhang är rimligt effektiva,
  • jämföra givna problem med avseende på svårighetsgrad,
  • använda och anpassa grundläggande algoritmer inom områden som grafteori, talteori, geometri på givna problem,
  • använda algoritmkonstruktionsmetoder som giriga algoritmer, dynamisk programmering, dekomposition och kombinatorisk sökning för att konstruera algoritmer för att lösa givna problem,
  • givet en specifikation av en algoritm eller datastruktur, implementera den korrekt i ett programmeringsspråk,
  • kommunicera med andra studenter under problemlösning i grupp,
  • i skrift beskriva algoritmer, datastrukturer och problem på ett koncist och begripligt sätt.
för att studenterna ska
  • kunna arbeta effektivt under tidspress,
  • bli duktigare på praktisk problemlösning och programmering,
  • kunna delta framgångsrikt i nationella och internationella programmeringstävlingar.

En förhoppning är också att deltagarna ska inspireras att delta i tävlingar utanför kursen, speciellt i SM/NM.

Verkligt 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 enkla problem inom talteori och geometri.

Undervisning

Undervisningen har dels bestått av teoriföreläsningar och dels av praktiskt orienterade övningar/labbar. Dessutom har ett antal obligatoriska problemsessioner varit en del av examinationen. De entimmesövningar som kursen innehåller har använts för att gå igenom hemtalen och ge tips inför kommande hemtal. Övningarna har inte helt fungerat vilket antagligen beror på osäkerhet från lärarnas sida, även vad gäller mig själv, om hur mycket hjälp man ska ge studenterna med examinationen. Det är svårt att ge tips som stöder elevens lärande. Det blir lätt antingen för vagt eller att man avslöjar nästan hela lösningen.

Föreläsningarna är enligt enkäten bra, men det var trots det många som slutade komma på dem. Eftersom inget tyder på att föreläsningarna stött bort studenter så beror det kanske på att en del klarar examinationen utan dem.

Examination

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

LAB1

  • Problemsessioner: fyra st fyra-timmars problemlösningspass i labbsal
  • Bygga ett litet kodbibliotek

OVN1

  • Hemuppgifter: programmeringsuppgifter som endast redovisas via Kattis
  • Förelsningsanteckningar och lösningsförslag: färdigställa anteckningar i latex från en föreläsning och lösningsskisser, också i latex, från en hemtalsomgång.

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. Det är dock inte alls nödvändigt att lösa alla för att få godkänt på kursen. För föreläsningsanteckningar och lösningsförslaf finns vissa krav på språk, presentation och typografi, samt i vissa fall att man fyller i luckor i resonemang. Meningen är att anteckningarna ska kunna användas som kurslitteratur. Anteckningarna kan göras av en grupp på två till tre personer.

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; ett par böcker som kan rekommenderas är Skienas The Algorithm Design Manual och Cormen, Leiserson, Rivest och Steins Introduction to Algorithms. Kompendient bygger på tidiager års föreläsningsanteckningar och är numera så pass komplett att det fungerar rätt bra.

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. Då vårens schema påverkas av påsklovet blir arbetsbelastningen lite varierande, och ibland har det funnit två undervisningsfria veckor i rad. Schemaläggningen var dessutom sådan att merparten av föreläsningarna hamnade tidigt i kursen snarare än jämnt utspridda över terminen.

Förkunskaper

Problemen kan ofta lösas genom att tillämpa 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.

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

I år var det nygammal kursledare. Förra kursomgången var Fredrik Niemelä kursledare och i år tog jag, som senast höll kursen 2007, över. Några smärre justeringar har gjorts i poängsättningen av anteckningarna. Som alltid har en del av hemtalen bytts ut.

Enkät

En enkät har genomförts och den har besvarats av 21 personer. En sammanställning av resultaten finns som bilaga.

Enkäten tyder på att studenterna på det stora hela är mycket nöjda. Det finns dock några saker som skulle kunna förbättras. Övningstillfällena behöver användas på något annat sätt — antingen planeras anorlunda eller rent av ersättas av någon form av handledning. Anteckningsmomentet anses också mindre givande.

Slutsatser och kommande förändringar

För HT 2011 kommer vi att slopa föreläsningsanteckningarna men behålla lösningsförslagen. Anteckningsmomentet är lätt att motivera med hänvisning till utbildningens mål, och det vore nog bra att kräva anteckningar på engelska. Det passar bra ihop med KTHs språkpolicy.

En genomgång och uppdatering av hem- och labbuppgifter görs varje år. Problemen till problemsessionerna byts alltid ut inför varje år.

Man måste fundera på hur övningstillfällena ska användas. Enkäten ger inte ett tydligt svar på vad som vore ett bra alternativ.

Domarsystemet Kattis som används flitigt under kursen kommer antagligen att uppgraderas till kursstart. Det innebär en del arbete med att installera och testa problem på ny hård- och mjukvara.

Copyright © Sidansvarig: Mikael Goldmann <migo@kth.se>
Uppdaterad 2011-08-19