bild
Skolan för
elektroteknik
och datavetenskap

Kursanalys för DD1320 Tillämpad datalogi, hösten 2012

Mål

Efter genomförd kurs ska man kunna följande:
  • systematiskt testa program för att upptäcka fel,
  • använda abstraktion som ett verktyg för att förenkla programmeringen,
  • välja lämplig algoritm till ett givet problem,
  • jämföra algoritmer med avseende på tids- och minnesåtgång,
  • beskriva olika algoritmer för sökning och sortering och deras egenskaper,
  • formulera och implementera rekursiva algoritmer,
  • skriva en liten BNF-syntax för ett formellt språk och skriva ett program som undersöker om ett uttryck följer en BNF-syntax,
  • modellera verkliga problem som sökproblem och implementera algoritmer för breddenförstsökning, djupetförstsökning och bästaförstsökning,
  • beskriva grundläggande komprimeringsalgoritmer och i vilka typer av komprimering dom används,
  • konstruera en automat för textsökning och beskriva hur den fungerar,
  • implementera och använda stackar och köer,
  • implementera insättnings-, genomgångs- och sökoperationer i binära sökträd och allmänna träd samt använda dessa,
  • implementera och använda hashtabeller och hashfunktioner,
  • använda prioritetsköer,
  • identifiera problem där datastrukturerna ovan är användbara och konstruera enkla algoritmer med dessa,
för att man ska:
  • bli bra på att lösa problem med programmering,
  • kunna använda datalogiska metoder i tillämpningsprojekt och
  • få tillräckliga förkunskaper för att kunna läsa fortsättningskurser i datalogi.

Faktiskt innehåll i kursen

Dokumentation av kursen finns tillgänglig på kursomgångens hemsida.

Kursdata

Tid: period 1,(2) dvs september-november 2012.
Poängantal: 6hp (varav labb 3 poäng, tenta 3 poäng).
Föreläsningar: 28 timmar.
Övningar: 14 timmar.
Labbar: sju laborationer, 20 timmar schemalagd tid.
Hemtal: sju frivilliga hemtal.
Kursledare och föreläsare: Linda Kann
Övningsassistenter: Per Sedholm, Mikael Lindahl, Joel Gunnarsson Sjöstrand
Labbassistenter: Rakiv Ahmed, Sangxia Huang, Ingemar Markström, Marko Petrovic, Philip Sköld, Åsa Björndahl

Antal elever: 102 kursregistrerade, varav 89 aktiva (har redovisat mer än första labben). Fördelningen på olika program var följande:
72 från CMETE,
16 från CTFYS/F
7 från CSAMH/V,
3 från CINEK/I,
1 från CDATE,
1 från CFATE,
1 från CMAST,
1 från CMEDT,

Kurslitteratur var "Problem Solving with Algorithms and Data Structures Using Python" av Bradley N. Miller & David L. Ranum, kompletterad med en interaktiv webbversion av samma bok.

Sammanfattning

Prestationsgraden (i december 2012) var 63% (71% för kvinnor), men examinationsgraden endast 38% (47% för kvinnor).

Nästan alla är klara med tentan men många resterar med labbar, vilket är ett återkommande problem i kursen. Orsaker och förslag till lösningar:

  • Svårigheter att planera

    Hemtalen redovisas varje vecka, vilket fungerar bra. Labbarna redovisas med glesare mellanrum (2-4 veckor), och det fungerade inte för alla. Tätare deadlines för labbredovisningar skulle bara skjuta upp problemet till senare kurser. Bättre att i undervisningen ta upp vikten av att man lär sig planera sitt arbete, och hur man kan göra det.
  • Bristande förkunskaper i programmering

    Vissa har stora problem med programeringen, speciellt i början av kursen. Kanske borde klasser vara obligatoriskt i programmeringsteknikkursens P-uppgift?
  • Hög arbetsbelastning i övriga kurser som läses under hösten

    Medieteknik rumstrerar om bland kurserna nästa år - det blir nog bättre då.
  • Stora hopp i svårighetsgrad mellan labbarna

    I kursenkäten är det flera som har liknande kommentarer:
    Väldigt snabbt accelererande svårighetsgrad på labbarna tycker jag, från lätt till mycket svårt.
    Här gäller det att se till att ingen luras tro att labbkursen är lätt. Vi behöver se till att redan den första labben kräver att man lägger ner mycket tid.

Avklarade moment 2012-12-10

OBS! Förra årets siffror är från februari, efter uppsamlingstillfällen!

Antal, andel per moment (året innan i parentes)

Antal registrerade            =   102      (232)
Antal examinerade elever      =   39  38%  (75%)
Prestationsgrad               =       63%  (84%)

Skillnaden i examinations- och prestationsgrad beror på att alla inte gjort klart labbarna i kursen.

  • lab 6+7 kvar: 24 st
  • lab 5+6+7 kvar: 8 st
  • 9 st har klarat tentan men resterar med fyra eller fler labbar

Enkäter och mötesprotokoll

Kursnämnden bestod av Nils Runebjörk (från CLIO-DATA),
Jacob von Eckermann (från CLGYM),
Samule Norling, Sandra Liljeqvist, Stephanie Velarde-Alvarez Flodman (från CMETE)

Under kursen har vi haft två möten, och samlat in synpunkter via en kursenkät:

Några synpunkter med kommentarer:

Övningar

De kunde bli lite långdragna och inte så mycket substans tycker jag, testade olika övn.assar men upplevde samma sak. Mer konkreta exempel och uppgifter (utan att halka in på sidospår och så) skulle vara önskvärt.
Det önskas mindre fokus på hemtalen och mer tid på förberedelse inför labbar.

Vi bör sätta en gräns för hur lång tid hemtalen får ta (t ex max 15 minuter). Sen försöker vi få med mer programexempel på övningarna, och även ha en särskild avdelning med tips inför den aktuella labben. Det skulle kanske kunna hjälpa till så att fler blir klara med labbarna i tid.

Labbar

Labbarna har varit svåra, men på ett bra sätt då jag har lärt mig väldigt mycket om python! Jag tycker dock att kursens högskolepoäng är lite ojämnt fördelade. Labbarna har tagit väldigt mycket tid jämfört med övriga delar i kursen. Det känns snarare som att det borde vara 4 hp för labbar respektive 2 hp för tentamen, alternativt att labbarna ger fler bonuspoäng inför tentan än vad hemtalen ger. Kanske att en löst labb ger dubbla värdet bonuspoäng som ett löst hemtal motsvarar. Dock tycker jag att antal bonuspoäng i relation till gränsen för godkänt (10p av 50p) är lagom.

Här var ett nytt förslag på hur man ska få fler att prioritera upp arbetet med labbar. Kanske kan vi laborera med bonuspoängen?

Hemtal

Hemtal är jättebra! För oss som har lite svårt att komma igång med pluggandet i tid så är hemtal en jättebra grej för att ta till sig det som sägs på föreläsningar. Någon gång har det dock kommit ut uppgifter lite för nära inpå övningstillfället, så lite mer förbehållning där kan vara bra.

Hemtalen ska alltid komma upp en vecka före övningstillfället där de redovisas. Bättring utlovas!

Kursen i stort

En innehållsrik och intressant kurs med ett bra upplägg. Jag tycker jag har lärt mig en massa och jag har blivit mycket bättre att programmera. Tack!

Genomförda förändringar hösten 2012

  • Kursen har delats upp i en höst och en våromgång.
  • Sambandet mellan antal högskolepoäng och förväntat antal timmar eget arbete gicks igenom på första föreläsningen.
  • Hemtal även första veckan.
  • Individuell redovisning av labb 1.
  • Mjukare introduktion till Kattis (att starta med problemen "hello" och "difference").

Planerade förändringar inför våren 2013

  • Ny labb 1.
  • Nytt upplägg på övningarna: 15 min hemtalsgenomgång, 15 min labbgenomgång. Mer kodexempel.
  • Skriva spec inför labb 6.























Linda Kann

Copyright © Sidansvarig: Linda Kann <lk@csc.kth.se>
Uppdaterad 2012-12-28