Kursanalys för DD1320 Tillämpad datalogi samt DD1325 Tillämpad datalogi med etik, hösten 2014
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,
- analysera och ta ställning till etiska konsekvenser av datatekniska tillämpningar (endast DD1325)
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.
Betygskriterier - översikt
För betyg E ska man kunna avgöra vilken algoritm som löser ett givet problem, kunna beskriva algoritmen och demonstrera den steg för steg med givna data, samt implementera den. Motsvarande gäller för datastrukturer.
För betyg C ska kraven för betyg E vara uppfyllda, och dessutom ska man kunna jämföra algoritmer och datastrukturer och bedöma dessas lämplighet för ett givet problem. Här ställs också krav på tidsplanering.
För betyg A ska kraven för betyg C vara uppfyllda, och man ska dessutom kunna modifiera/kombinera algoritmer och datastrukturer för att lösa nya problem. Här ställs också höga krav på tydlighet i algoritmbeskrivningar.
Faktiskt innehåll i kursen
Kursmaterialet finns tillgängligt på kursomgångens
hemsida på KTH Social.
Kursdata
Tid: period 1,(2) dvs september-november 2014.
Poängantal: DD1320 ger 6hp (varav labb 3 poäng, tenta 3 poäng)
DD1325 har även etikmomentet LAB2 på 1,5 hp och ger alltså 7,5hp.
Föreläsningar: 28 timmar.
Övningar: 14 timmar.
Labbar: sju laborationer, 20 timmar schemalagd tid per labbgrupp.
Kursledare och föreläsare: Linda Kann
Övningsassistenter:
Marko Petrovic, Robert Welin-Berger
Labbassistenter :
Moa Rosén Gardell,
Åsa Björndahl,
Ingemar Markström,
Mikael Westman,
Kwabena Asante-Poku,
Bure Noreus,
Erik Markström
Kursnämnden bestod av Johan Myrsmeden från CLGYM
DD1320 hade 51 och DD1325 26 aktiva studenter.
Fördelningen på olika program var följande:
21 från CINEK/I,
16 från CL/CLGYM,
15 från CTFYS/F
12 från CDATE,
6 från CSAMH/V,
3 från MAS,
2 från CFATE,
2 från CMETE,
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 januari 2015) var 88% (84%) för DD1320 respektive 81% (92%) för DD1325, och examinationsgraden 82% (86%) för DD1320 respektive 58% (88%) för DD1325.
Att examinationsgraden på DD1325 är så mycket lägre än prestationsgraden
beror på att de studenter som har någon rest i regel är klara med två av de tre kursmomenten.
Det vanligaste restmomentet är labbar, och den som har restlabbar har i snitt tre (av sju) labbar kvar,
oftast de sista tre. Detta läsår har jag inte mailat ut påminnelser efter kursens slut om att redovisa
återstående labbar, vilket kan ha påverkat resultatet.
Kursenkäten besvarades endast av 19 studenter (25% av kursdeltagarna).
Här följer en sammanfattning, med valda kommentarer ur kursenkäten:
Kursbok/kurswebbsida
De som använt rekommenderad kursbok är positiva, men påpekar att läsanvisningarna
bör uppdateras efter nyaste upplagan.
Kurswebbsidan är OK, men DD1325 tycker att det är knepigt att etikmomentet
har en annan kurswebbsida med annat inlämningssystem.
Lättbegriplig. Pedagogisk.
---
Bra bilder
---
Bra bok, men det skulle underlätta om ni kan anpassa er till senaste versionen av boken som de flesta hade. Version 1 och 2 skilde sig från varandra rejält vilket skapade en del problem.
---
Bra bok, även om upplägget bitvis skiljer sig från kursens (åtminstone i min upplaga), tex läggs stor vikt vid grafer och kö/stack implementeras med Pythons vanliga listobjekt, även om länkade listor dyker upp i de "avancerade" fördjupningsdelarna.
---
Föreläsningar/övningar
Undervisningen är uppskattad, men vissa tycker att föreläsningarna ibland är långsamma
(kanske en effekt av mer tavelundervisning än powerpoint?).
Ett önskemål på övningarna är fokus på C- och A-uppgifter, samt mer kodgenomgång.
förberedda bitar kod som gås igenom rad för rad när ett krångligt problem ska göras.
---
Fler hemuppgifter utdelade vid övningarna, så att man får öva själv. Hemuppgifter i C och A nivå. Likadant i övningar: fokus på C och A uppgifter.
---
Laborationer
Alla tycker att laborationerna var givande. Parprogrammeringen gick inte riktigt
hem - vissa verkar ha missförstått instruktionerna.
Om parprogrammering:
Synd att parkour inte funkade men vi lyckades ändå
---
Man behövde byta så ofta att man knapp hann komma in i kodandet innan bytet skulle ske. jag skulle istället gärna köra typ 30-40 minuter
---
Fungerar inte bra, kanske för andra men inte för oss. Drar ut på tiden rejält om man ska sitta och växla dator och inte får säga något emellanåt. Går ju inte att bolla idéer!
---
Om labbarna:
Mycket bra variation på uppgifter och roliga att göra.
---
Svårighetsgraden växte exponentiellt. Tycker även att kattis borde ge mer info för felsökning
---
Linda föreslog en typ av svart-låda labb till nästa gång kursen ges för att bestämma tidskomplexitet. Jag tror detta är en bra labbuppgift!
---
Examination
Majoriteten (74%) tycker att examinationen fungerat bra. Men flera är kritiska mot
det krångliga bonussystemet, där bonuspoäng från labbarna tillgodoräknas på tentan.
Bonussystemet passar inte heller ihop med de nya betygskriterierna och kommer
därför att avskaffas till hösten 2015.
Bra betygsystem
---
Tycker att tentan var jättebra utformad!
---
Ogillar examination där man måste klara alla uppgifter för betyg. Blir hårt straffad för att missförstå/inte klara någon uppgift. Bonussystemet gör ju också att tentorna inte kan lämnas ut förrän alla labbar är klara vilket gör att man inte får sitt resultat förrän efter lång tid.
---
Förstår inte bonussystemet, mycket krångligt och obegripligt
---
Likabehandling
Även om det inte verkar vara några allvarligare problem i denna kurs vill vi förebygga
genom att ta upp likabehandlingsfrågor på assistentmöten för alla
assar (även dom som bara hjälper till på enstaka laborationer).
Jag tycker kursen var tillfredsställande genusneutral.
---
Rimlig. Ibland onödigt könande av hypotetiska programmerare (alltid han) av övningsassar....
Genomförda förändringar hösten 2014
- Parprogrammering (utan Parkour)
- Tentamensuppgifter som följer betygskriterierna.
- Några ändrade extrauppgifter till labbarna.
Planerade förändringar inför hösten 2015
- Bonuspoängen till tentan avskaffas. Missade E-uppgifter kompenseras med kompletteringsuppgifter.
- Moment LAB1 ska få graderade betyg A-E, och ska inverka direkt på slutbetyget.
- Översyn av labbarna: Extrauppgifter på labbarna för betyg C och A ska stämma överens med betygskriterierna.
- Förslag på "svart-låda"-labb om tidskomplexitet.
- Översyn av övningarna: Fördelning av E, C, och A-uppgifter.
- Kontrollera läsanvisningarna till senaste upplagan av kursboken.
- Assistent/handledarintroduktion om likabehandling.
Linda Kann (lk@csc.kth.se)