Hoppa till huvudinnehållet
Till KTH:s startsida

DD1327 Grundläggande datalogi 6,0 hp

Kurs-PM VT 2025-60352

Version 2 – 2025-05-19 12:03:18

Kursomgång

grudat25 (Startdatum 2025-03-17, Svenska)

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kurs-PM VT 2025

Rubriker markerade med en asterisk ( * ) kommer från kursplan version VT 2025

Innehåll och lärandemål

Kursinnehåll

Algoritmer och datastrukturer: en systematisk genomgång av begreppen abstrakta datatyper, stackar, köer, listor, träd, sökning, sortering och rekursion utgående från de kunskaper studenterna förvärvat i kursen.

Grundläggande programmering. Hashning, prioritetsköer, sökträd och problemträd, enkel syntaxanalys och reguljära uttryck.

Algoritmanalys med avseende på både effektivitet och korrekthet. Korrekthetsbevis.

Programmering: programutvecklingsmetodik, programkvalitet, abstraktion, modularisering, testning, systemanrop, standardbibliotek.

Lärandemål

Efter godkänd kurs ska studenten kunna

−    systematiskt testa program för att upptäcka fel
−    använda abstraktion som ett verktyg för att förenkla programmeringen
−    designa och dokumentera programpaket som andra programmerare kan använda
−    välja lämplig algoritm till ett givet problem
−    jämföra algoritmer med avseende på tids- och minnesåtgång
−    beskriva och implementera olika algoritmer för sökning och sortering
−    modellera problem med grafer och implementera algoritmer för grafsökning
−    formulera och implementera rekursiva algoritmer
−    skriva och använda enkel BNF-syntax
−    implementera och konstruera algoritmer för grundläggande datastrukturer
−    avgöra korrekthet för iterativa och rekursiva algoritmer
−    konstruera och använda reguljära uttryck

i syfte att

−    bli bra på att lösa problem med programmering
−    kunna använda datalogiska metoder i tillämpningsprojekt
−    kunna gå fortsättningskurser i beräkningsmatematik, maskininlärning och teoretisk datalogi.

Läraktiviteter

I kursen finns sex typer av aktiviteter varav fyra utgörs av schemalagda tillfällen:

Föreläsningar Tvåtimmarssessioner i helklass med genomgångar, frågor och uppgifter att lösa.

Workshop  Tretimmarspass första veckan där vi löser större delen av första hemuppgiften. Enda tillfället att lösa uppgifter tillsammans i kursen!  Vi har både några övningssalar och en datorsal. Ta med egen dator om du har.

Övningar Obligatoriska tvåtimmarspass i fasta grupper där veckans hemuppgifter kamtartgranskas, presenteras muntligen för och diskuteras med kurskamrater. Förberedelser för nästa hemuppgift.

Hemuppgifter Skriftliga individuella inlämningsuppgifter som presenteras på övningarna. Dessa utgör kursens examination. Den sista uppgiften är ett lite större projekt med avvikande betygsättning jämfört med de tidigare uppgifterna.

Laborationer Schemalagda tvåtimmarspass då det finns möjlighet att få hjälp med hemuppgifterna av kursens lärare. Dessa tillfällen är inte till för redovisning av hemuppgifter utom ifall det på förhand gjorts upp med respektive lärare.

Avslutande quiz i CanvasT Moment med deadline 2/6 som sammanfattar kursen. Obligatorisk och ingår i momentet HEM1, men är inte betygsatt.

Labbar och individuell hjälp

Labbarna är till för att ni ska kunna ställa frågor om veckans inlämningsuppgift. Sker på plats i övningssalar om inte assistenterna säger annat. Ställ dig i grudat-kön.

EECSs allmänhandledare hjälper också till med programmeringsfrågor och andra problem två gånger dagligen varje vardag under terminstid, oftast 11–13 och 17–20. 

Förberedelser inför kursstart

Rekommenderade förkunskaper

Motsvarande DD1331 Grundläggande programmering och SF1672 Linjär algebra. 

Särskilda förberedelser

Kursen använder Canvas för gruppindelning, kommunikation och betygsrapportering. Preliminär lista över föreläsningarnas ämnen med tillhörande förberedelser publiceras och uppdateras i Canvas.

Hemuppgifterna länkas också från Canvas, men de kommer er till del automatiskt i era respektive repositories via KTHs GitHub.

Övning x på kursen ska lämnas in i katalogen username-ovnx i organisationen grudat25 på KTH GitHub. Användaren nisse hittar alltså sin katalog för övning 1 på adressen

  • gits-15.sys.kth.se/grudat25/nisse-ovn1

Om ni loggar in på KTH GitHub för första gången så kan det ta någon dag innan ni kommer åt era kataloger.

Övningsgrupper

Övningsgrupperna är benämnda A-C och D-F i schemat. Den grupp som har den första bokstaven på varje pass har den första övningssalen och gruppen med sista bokstaven den sista övningssalen. Vi tillämpar fasta grupper så att vi inte behöver göra legitimationskontroller på alla varje gång, men en vikarie eller en assistent med dåligt ansiktsminne kan behöva kolla legitmation vid vilket övningstillfälle som helst.

Titta i schemat om ni har några preferenser.
I Canvas finns möjlighet att skriva upp sig på en övningsgrupp (om den inte är full)

Kurslitteratur

Det finns ingen obligatorisk kursbok på papper. Du hittar all kurslitteratur via länkarna ifrån föreläsningarna. Du kan också ha nytta av de här sajterna och böckerna om du vill lära dig mer om algoritmer och programvaruteknik.

Examination och slutförande

Betygsskala

A, B, C, D, E, FX, F

Examination

  • HEM1 - Individuella hemuppgifter, 4,0 hp, Betygsskala: A, B, C, D, E, FX, F
  • PRO1 - Individuellt projekt, 2,0 hp, Betygsskala: P, F

Examinator beslutar, baserat på rekommendation från KTH:s handläggare av stöd till studenter med funktionsnedsättning, om eventuell anpassad examination för studenter med dokumenterad, varaktig funktionsnedsättning.

Examinator får medge annan examinationsform vid omexamination av enstaka studenter.

Hemuppgifterna lämnas in skriftligt innan deadline och redovisas muntligt och med kamratgranskning under övningstillfällena. I projektuppgiften ingår reflektionsfrågor i slutet av kursen.

Avsnittet nedan kommer inte från kursplanen:

Momentet HEM1 examineras med individuella skriftliga inlämningsuppgifter som redovisas muntligt i samband med de obligatoriska övningarna. Varje hemuppgift består av ett antal obligatoriska problem för betyget E. Dessutom finns valfria uppgifter som vardera kan ge 10 högrebetygspoäng om de lämnas in i tid, redovisas muntligt och bedöms vara godkända. Ifall något missas på dessa uppgifter ges en komplettering, och i dessa fall kan uppgiften bara ge 5 högrebetygspoäng vilket motsvarar att kunna lösa uppgiften med viss ledning.

  Antal godkända obligatoriska hemuppgifter Antal högrebetygspoäng från valfria uppgifter
A 6 50
B 6 40
C 6 30
D 5 20
E 5  
Fx 4  
F 0-3  

 

Övriga krav för slutbetyg

Det är obligatoriskt att närvara vid de övningar då uppgifter ska redovisas.

Möjlighet till komplettering

En enstaka övning som kommer att missas kan redovisas vid annan tidpunkt enligt överenskommelse med gruppens lärare. Detta ska göras upp i förväg med läraren för gruppen. Om detta inte görs blir hemuppgiften och eventuella valfria uppgifter inte godkända.

Ifall den skriftliga eller muntliga redovisningen har genomförts med mindre brister kan dessa kompletteras enligt lärarens anvisningar för att uppnå godkänt betyg. Om bristerna är större, eller vid komplettering om bristerna inte bedöms ha förbättrats av kompletteringen, kommer uppgiften inte att bli godkänd. Då hänvisas till ersättningsuppgift under omtentaperioden. 

Möjlighet till plussning

Det erbjuds inte möjlighet till plussning.

Möjlighet till ersättningsuppgifter

Inga ersättningsuppgifter ges för de valfria uppgifterna för högre betyg. För de obligatoriska uppgifterna kan ersättningsuppgifter delas ut i omtentaperioden (april för hemuppgift 1-4 och augusti för hemuppgift 5-6) till studenter som misslyckats med komplettering eller missat deadline eller redovisning.

Resultatrapportering

Kommentarer till den skriftliga inlämningen ges via GitHub issues och resultaten efter rättning och presentation kommer att rapporteras i Canvas.

Etiskt förhållningssätt

  • Vid grupparbete har alla i gruppen ansvar för gruppens arbete.
  • Vid examination ska varje student ärligt redovisa hjälp som erhållits och källor som använts.
  • Vid muntlig examination ska varje student kunna redogöra för hela uppgiften och hela lösningen.

Avsnittet nedan kommer inte från kursplanen:

  • Att hjälpa studiekamrater som kört fast i en uppgift är positivt och lärorikt för både den student som får och den som ger hjälp, men man ska inte visa upp hela sin lösning eller dela sina lösningar publikt. (Det går inte att "ose" något man har sett.) Ni får heller inte lösa uppgifterna tillsammans och sen skriva ner varsin lösning individuellt om inte annat anges i uppgiften.
  • Generativ AI får inte användas till att lösa uppgifter, generera kod eller rapporter, om inte annat sägs i den enskilda uppgiften. Detta motsvarar att lämna in någon annans arbete som sitt eget.

Ovanstående gäller kursens alla uppgifter och är en sammanfattning av hederskodex för datalogikurser vid EECS-skolan, som tillämpas på kursen.

Identitetskontroll

Vid varje övningstillfälle ska du vara beredd att visa legitmation.

Ytterligare Information

Ändringar inför denna kursomgång

Vid förra kursomgången var kompletteringsreglerna väldigt generösa och den bortre gränsen otydlig, och kompletteringarna drog ut på tiden. I år har reglerna närmat sig systerkursen DD1328 och högrebetygsuppgifterna får inte kompletteras i samma utsträckning som de obligatoriska uppgifterna.

Den andra föreläsningen och den första hemuppgiften har slagits ihop till en workshop som sker i övnings- och datorsal (för dem som inte kan ta med egen dator). Det är enda tillfället då det är tillåtet att samarbeta på hemuppgifterna. Meningen är att merparten av den första hemuppgiften ska lösas på plats.

Canvas ska användas för att rapportera godkänd närvaro/redovisning på övningarna. Se till att kolla under övningens gång att du fått närvaro!

Kursplanen har reviderats så att målen och kursinnehållet bättre matchar vad kursen har behandlat. Den obligatoriska närvaron vid pass för muntlig redovisning framgår tydligare.

Ett ytterligare kursmoment, syntax, har lagts till enligt önskemål från EECS. Detta för att ni ska ha samma förkunskaper inför fortsättningskurser som t.ex. studenter från DD1320.

Ersättningsuppgifter för obligatoriska uppgifter för dem som misslyckas med en komplettering eller missat deadline ska lämnas ut vid behov under omtentaperioderna (april och augusti).

Fakta om kursomgång

Startdatum

2025-03-17

Kursomgång

  • grudat25 VT 2025-60352

Undervisningsspråk

Svenska

Kursen ges av

EECS/Datavetenskap

Kontakter