Kursanalys för DD2458, popup15 (HT 2015)
Författare: Per Austrin
Kursdata
Data baserar sig på resultat inrapporterade 2016-01-18
Kurs |
DD2458, Problemlösning och programmering under press,
9hp |
Examination |
programmeringsuppgifter, problemsessioner
och presentationer |
Genomförd |
HT 2015 |
Föreläsningar |
24 timmar (12 st) |
Kurslitteratur (rekommenderad) |
Kompendium med föreläsningsanteckningar. |
Antal studenter |
34/32/30 beroende på vem man frågar. Prestations/examinations-grad nedan baserade på 34. |
Prestationsgrad | 88.2% (HT14: 94.2%, VT14: 95.3%) |
Examinationsgrad | 88.2% (HT14: 88.4%, VT14: 90.6%) |
| (Utöver detta har två studenter från tidigare kursomgångar kompletterat upp till godkänt under kursomgången.) |
Ansvarig/föreläsare |
Per Austrin |
övriga lärare |
Marc Vinyals |
Sammanfattning
En på det hela taget lyckad kursomgång.
Antal studenter
Totalt 34 kursregistrerade studenter. Två hoppade av utan att påbörja kursen. En hoppade av under första veckan, och en student hoppade av under tredje veckan. Återstående 30 har hängt med genom hela kursen och är samtliga klara med kursen.
Ö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.
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)
- 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
- Justering av betygsnivåer
Jag har genomfört följande plan från förra årets kursanalys:
Till nästa omgång kommer jag antagligen att
- Höja kraven för E något genom att kräva mer deltagande i de muntliga presentationerna (jag märkte i år att man i praktiken nästan helt kunde skippa dessa i år).
- Sänka kraven för A något genom att kräva färre antal lösta problem. I dagsläget är skillnaden mellan B och A att man både löst fler uppgifter och svårare uppgifter. Jag planerar alltså att sänka antalet uppgifter man behöver lösa för A, men ha kvar kravet på att man ska lösa svåra uppgifter.
Åsikter från studenterna
En enkät har genomförts och den har besvarats av 22 av 32 studenter. 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:
-
-
"Use modern teaching. Holding a lecture a week and letting everyone do whatever is unnecessarily inefficient. Seriously, read any empirical
study on learning/memory/expertise/whatever and incorporate it little by little. There are some good ones in science magazine, such as
"Improved Learning in a Large-Enrollment Physics Class" and "Retrieval Practice Produces More Learning than Elaborative Studying with
Concept Mapping" "
While I am very happy that some students are interested in pedagogy I feel that this comment is a bit inaccurate. Sure, if you disregard every aspect of the course which is not traditional (such as the examination format, the use of Kattis, etc) then what remains looks like a very mossy course.
I would also point out the perhaps obvious fact that what is an appropriate teaching format for a large-scale introductory class is not necessarily the same as for an effectively fifth-year advanced course.
-
"More interactions with other students. In the current setup it felt a lot like everyone was on his or her own. It was clear that some students had a
very tight grasp on these types of problems. It would have been nice to learn from them too. "
I agree with this suggestion, and will consider ways of doing that for next year, in ways that hopefully also partially addressess the previous comment.
-
"Please rearrange the timing between lectures and lab deadlines! As it was now, most deadlines were the very day after the lectures had
mentioned the concepts in question, meaning that we had to look up things on our own and then hear it again in the lecture, instead of
receiving the basics in a lecture with enough time to spare to then explore further on our own and implement the necessary algorithms. And if
this 'lecture on subject last day before deadline' was an intentional way of achieving the 'under pressure' part, please reconsider. "
I believe this is based on a misconception caused by a very unfortunate typo on the web page: one page claimed that the homework deadlines were on the Wednesday evening following the relevant lecture, but the deadline was in fact on Tuesday evenings. Since lectures were on Wednesday mornings, this made a big difference. The detailed schedule (to which the page with the incorrect information referred) had the correct information, however. Unfortunately I was not alerted to this error until after the course was over, as nobody raised this issue during the course. Apologies to the affected student(s).
"Do you think a novice masters dynamic programming in 1-2 days, without any help?"
Such an event would surely be a sight to see! In the context
of this course, however, I will point out that dynamic
programming is part of the ADK/AlgoKomp courses that students
have already taken. The goal of the dynamic programming part
of this course is not to turn novices into masters, but to let
the students practice and improve, or at the very least
refresh and repeat the basic dynamic programming skills
learned there.
Slutsatser om förändringar
Interaktion
Jag ska fundera på sätt att öka mängden interaktion mellan studenterna.
Kurskompendium
Favorit i repris från de senaste årens kursanalylser:
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.