Till KTH:s startsida Till KTH:s startsida

Kursanalys adk21

Kursanalysen är för kursomgången augusti 2021-januari 2022. Kursledare var Viggo Kann och Stefan Nilsson.

Beskrivning av kursanalysprocessen

I början av kursen frågade vi efter intresserade kursansvariga studenter. Efter några veckor anmälde sig Linus Östlund som kursansvarig student. Han gjorde en egen enkät i slutet av period 1 och diskuterade resultatet med Viggo och Stefan i början av period 2. Han fick dessutom möjlighet att ge synpunkter på extrafrågor i kursenkäten.

Efter kursens slut (dagen efter teoritentan) genomfördes en kursenkät via KTH:s ordinarie kursenkätsystem. Kursansvarig student och årskursrepresentant för datateknik årskurs 3 fick tillgång till sammanställningen av kursenkätsvaren, en sammanställning av resultatdata och en preliminär kursanalys och inbjudan till kursmötet den 21 februari 2022. Vid kursmötet deltog förutom studenterna båda kursledarna, tre av fyra övningsassistenter och två ytterligare assistenter. Viggo hade därefter mejldiskussioner med den fjärde övningsassistenten. Till kursmötet var även datateknikprogrammets PA och vice PA inbjudna, och vice PA deltog under en del av mötet. Baserat på diskussionerna tog Viggo och Stefan fram den slutliga kursanalysen.

Resultatdata för adk21

Kursenkät för adk21 (61 svar)

Kursmöte för kursens lärare och assistenter och studentrepresentanter

Beskrivning av kursomgångens genomförande

Kursomgången adk21 hösten 2021 genomfördes till stor del digitalt på distans. Föreläsningarna var i Zoom under period 1 och i sal under period 2. Två övningsgrupper var i Zoom under period 1 och en grupp under period 2. Övriga grupper var i sal. Labbar och mästarprov kunde redovisas såväl i Zoom som fysiskt. Teoritentan gavs liksom 2020 på distans, med skillnaden att det vid den avslutande obligatoriska rättningssessionen endast gick att chatta med kursledarna, inte med hela gruppen, vilket gjorde att rättningen gick smidigare och uppfattades mer positivt.

Se kursöversikten och kurs-PM för detaljer om kursomgångens genomförande.

Ändringar inför denna kursomgång

Nästan alla föreslagna förändringar i senaste kursanalysen har genomförts. Majoriteten av förändringarna baserades på studentsynpunkter och studentförslag. Sedan föregående kursomgång, adk20, har följande ändrats:

  • Ny större textfil att söka i till labb 1.
  • Stöd för testning har lagts in i den givna programkoden för labb 2.
  • Instruktionerna till extralabben tydliggör vad som menas med lokalsökning och simulerad härdning.
  • Labbredovisningar och mästarprovsredovisningar erbjöds både fysiskt och digitalt.
  • Olika långa mästarprovsredovisningar beroende på hur många uppgifter som ska redovisas.
  • Nya tentaförberedelsequizfrågor som övar på vad som är en godkänd definition och vad som är en övertygande motivering (med kryssfrågor).
  • På föreläsningar och övningar påminns om att ADK-kursens fokus inte är programmering utan teoretisk algoritmdesign.
  • Att kommunikation i första hand ska ske genom diskussionsforumet i Canvas ska kommuniceras tydligt.
  • Nya videor och instuderingsfrågor till omvända föreläsningarna om reduktioner och intro till komplexitet.
  • En ny text om reduktioner har tagits fram.
  • Exempel på när stopproblemet inte är svårt och när det kan vara svårt.
  • En timme före varje omvänd föreläsning har lagts in, då studenter kan titta på videor och göra förberedelseuppgifter.

Ändringarna fungerade i stort sett bra, vilket framgick på kursmötet och i kursenkäten.

Några observationer från resultaten i adk21 jämfört med tidigare år

  • Färre kursdeltagare än 2020, ungefär lika många som 2019. Detta kan delvis förklaras med att den särskilda behörigheten för kursen kontrollerades noga före antagning.
  • Något bättre examinationsgrad (dvs andel studenter klara med hela kursen: 68% mot 66%)
  • Bättre prestationsgrad (andel godkända på varje moment) än 2020 och samma prestationsgrad som 2019 (83%)
  • Ungefär samma medelbetyg för slutbetyget som 2020 och 2019 (2,7 gentemot 2,6 respektive 2,8).
  • Fler redovisade labbteoriuppgifterna, förutom labbteori 3.

Några kommentarer till kursenkäten

Flera studenter uttrycker att labb 1 och mästarprov 1 tog för mycket tid, så att arbetsbelastningen under period 1 blev för hög.

Labb 1 ändrades till adk21 genom att textfilen var mycket större utan att tidskravet på sökningen ändrades. Det gjorde att program som inte använder latmanshashning på rätt sätt inte uppfyllde tidskravet. Därmed blev labben på sätt och vis svårare eftersom långsamma lösningar exkluderas, men å andra sidan övar och examinerar den nu rätt sak. Vi vill att studenterna ska lägga ner tid på rätt saker och inte på att stångas med saker som inte tillhör kursen. Att kunna hantera datastrukturer på fil i olika format är en del av kursen, men teckenkodningsproblem verkar ta onödigt mycket tid för vissa studenter, trots att mer ledning om hur man hanterar teckenkodningen har lagts till i instruktionerna. Troligen har studenter som haft dessa problem inte gjort som i ledningen. En perfekt hashfunktion av trebokstavskombinationer har gåtts igenom på föreläsning 3, men vissa studenter tycks ha missat det.

Vid kursmötet berättade assistenter att vissa studenter som löst labb 1 på egen dator haft problem med att få den att fungera på Ubuntuservern där redovisningen sker.  

Använd skarpare formuleringar i labb 1-instruktionerna om hur teckenkodningen ska hanteras vid filöppning, så att inga studenter försöker använda andra metoder för det. Länka till mer material om teckenkodning. Överväg att lägga hashfunktionsberäkningen som en förberedelseuppgift i labbteori 1. Informera i instruktionerna om att det är viktigt att testa att programmet fungerar i redovisningsmiljön i god tid före redovisningen.

Uppgifterna på mästarprov 1 var som vanligt granskade av både lärare och assistenter innan dom publicerades. Ändå ansågs uppgift 1 svår och tidskrävande. Uppgiften skilde sig från föregående års uppgift genom att algoritmen krävde mer pseudokod för att beskrivas fullständigt. Själva huvudalgoritmen var ungefär lika i svårighet och omfång (runt 20 rader), men ett antal algoritmiskt sett enkla hjälpfunktioner behövde också beskrivas. Trots en ganska detaljerad ledning uppfattades uppgiften som svår. En annan anledning kan ha varit att det i analysen av lösningens längd krävdes ett argument baserat på en insikt om problemet. Medelbetyget för dom som redovisade ordinarie mästarprov 1 var samma som 2020, men andelen av alla registrerade studenter som redovisade det var lägre. Det var 10% färre som redovisade ordinarie mästarprov 1 jämfört med ordinarie mästarprov 2. Efter ommästarproven var resultaten aningen bättre än 2020.

Utforma uppgift 1 på mästarprov 1 så att den inte kräver så många rader pseudokod att beskriva. Ge längre tid för arbete med mästarprovet. Lägg om möjligt sista inlämningstiden en vecka senare, på tisdagen efter sista läsveckan och ha redovisningarna under tentaveckan.

Genom att ledningarna till labb 1 ökar och omfånget av pseudokoden i mästarprov 1 minskar blir arbetsmängden i period 1 mindre, och eftersom publiceringstiden för mästarprov 1 ökar med en vecka blir det möjligt att planera in arbetsinsatsen så att det inte krockar med inlämningar i andra kurser. Vi tror att studenter som deltar i både föreläsningar och övningar lägger ner mindre tid på labbarna och mästarproven. Vi kan tipsa om att det troligen sparar tid att delta i undervisningen.

En kommentar säger att föreläsningen om FFT är onödig eftersom den inte behövs för mästarprov eller labbar.

Det stämmer. Att FFT är med beror på att det är en praktiskt sett oerhört viktig algoritm som bygger på metoder som gås igenom i kursen. Dock bör FFT också ingå i fortsättningskursen DD2440, så man kan argumentera för att ta bort den från DD2350. Dessutom vill vi gärna lägga in en datastrukturföreläsning om persistenta datastrukturer. 

Ersätt FFT-föreläsningen med en föreläsning om persistenta datastrukturer.

En student efterfrågar offentlig indata och utdata för första Kattistestet på varje labb.

Publicera in- och utdata för testfall 1 i Kattis för labb 2, 3 och 5. I labb 4 ingår det i uppgiften att lista ut vilket problem som ska reduceras och vad det innebär för indata och utdata.

Det finns enstaka kommentarer om att olika assistenter bedömer mästarproven olika hårt. Statistik för andelen godkända redovisningar per assistent visar dock inte att det finns några stora skillnader mellan assistenternas bedömningar. Att bedömningen blir lika hos olika assistenter har vi säkerställt genom

  1. rättningsprotokoll, gemensamma bedömningsregler och assistentmöte då dessa diskuterats,
  2. diskussion av oklara bedömningsfall med andra assistenter eller lärare,
  3. testrättning då samma inlämning bedömdes av alla assistenter - alla bedömde lika,
  4. testredovisning då samma elev fick redovisa för alla assistenter - alla bedömde lika.

Några studenter kommenterar att det är svårt att klara teoritentan eftersom godkäntgränsen är så hög (13 poäng krävs för godkänt och 11 poäng för att få komplettera till godkänt genom en 10-minuters muntlig komplettering). På själva teoritentan kan man få 14 poäng, och genom att göra labbteoriuppgifter och övningsmästarprov kan man få ytterligare 7 teoripoäng. Vid ordinarietentan var det 164 av 169 tentander på adk21 som klarade teoritentan, varav 12 godkändes efter komplettering. 97% klarade alltså tentan, trots att kraven vid bedömningen är hårda (till exempel måste definitioner vara utformade som definitioner och inte innehålla exempel eller ovidkommande text). 

Några kommentarer säger att teoritentan är onödig eftersom mästarproven examineras individuellt. Det stämmer att teoritentan inte behövs som en "stoppexamination" för att förhindra samarbetsfuskande studenter att klara kursen. Men teoritentan, eller närmare bestämt hela momentet TEN1 som består både av teoripoängen och teoritentan, har en viktig funktion för att examinera lärandemålen som har med grundläggande förståelse för kursens begrepp att göra på E-nivå. Labbteoriuppgifterna och även övningsmästarproven är viktiga pusselbitar i detta. En kurs i teoretisk datalogi kan inte vara utan ett sånt kursmoment.

Informera tydligare om att kursens teoridel examineras både av dom teoripoängsgivande uppgifterna under kursens gång och av den avslutande teoritentan. 

En student upplevde att poängsättningen vid teoritentan var godtycklig, eftersom det under rättningssessionen diskuterades om rättningsmallen skulle uppdateras så att en lösning som inte var förutsedd i mallen skulle kunna få en halv poäng. Detta är dock en inblick i hur rättning går till i verkligheten, och att det inte går att förutse alla tänkbara svar på förhand. Det är helt normalt att rättningsmallen behöver uppdateras under rättningens gång.

Vid kursmötet togs det upp att det finns studenter som gör en så bra heuristik i labb 5 att det är svårt att förbättra den i den betygshöjande extralabben. Det skulle kunna motverkas genom att ett råd om att inte använda lokalsökning läggs in i instruktionerna till labb 5.

Kursutveckling till nästa kursomgång

  • Underlätta arbetet med labb 1 genom att uppdatera instruktionerna och länka till mer material om teckenkodning.
  • Utforma uppgift 1 på mästarprov 1 så att den inte kräver så många rader pseudokod att beskriva. Ge längre tid för arbete med mästarprovet.
  • Lägg in ett råd om att inte använda lokalsökning i instruktionerna till labb 5.
  • Publicera in- och utdata för testfall 1 i Kattis för labb 2, 3 och 5.
  • Ersätt FFT-föreläsningen med en föreläsning om beständiga (persistenta) datastrukturer.
  • Informera tydligare om att kursens teoridel examineras både av dom teoripoängsgivande uppgifterna under kursens gång och av den avslutande teoritentan. 
  • Tipsa om att det troligen sparar tid att delta i undervisningen.
  • Lägg till kommenterade studentlösningar till mästarproven 2020 och 2021, på samma sätt som finns för mästarproven 2018 och 2019.
  • Gör en pedagogisk text om pseudopolynomi så att ingen råkar utforma pseudopolynomiska algoritmer i tron att dessa är polynomiska.

Lärare Viggo Kann skapade sidan 19 februari 2022