Rubriker markerade med en asterisk ( * ) kommer från kursplan version undefined
Innehåll och lärandemål
Kursinnehåll
I den här kursen bygger studenten på sina kunskaper om algoritmer, datastrukturer och programkonstruktion, lär sig grunderna i parallell och distribuerad programmering, och förbereder sig för kurser i beräkningsmatematik, maskininlärning och teoretisk datalogi. Programspråk i kursen är Python och Go.
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. Problemträd. Textsökning. Enkel syntaxanalys. Algoritmanalys. Kryptering.
Parallellprogrammering: Grundläggande kunskaper om hur en dator fungerar och är uppbyggd, både ur maskinvaru- och programvaruperspektiv. Introduktion till parallell och distribuerad programmering med processer.
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
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
formulera och implementera rekursiva algoritmer
skriva och använda enkel BNF-syntax
implementera, och konstruera algoritmer för, grundläggande datastrukturer
designa och implementera enkla parallella program
i syfte att
bli bra på att lösa problem med programmering
kunna använda datalogiska metoder i tillämpningsprojekt
gå fortsättningskurser i beräkningsmatematik, maskininlärning och teoretisk datalogi.
Läraktiviteter
Kursen består av aktiviteterna:
Föreläsningar
Övningar
Laborationstillfällen
Övningarna är ett tillfälle att öva på uppgifter inför arbetet med labbarna. De består i regel av en kortare genomgång av de olika uppgifterna och sedan arbete ensam eller i grupp med handledning av övningsledare. Eftersom övningarna består till stor del av att skriva kod behöver studenter ha med egen laptop, eller dela med någon annan.
Kursens enda examinerande moment är laborationsuppgifterna, där man både löser uppgifter med kod samt svarar på mer teoretiska frågor. På laborationstillfällena har man möjlighet att få hjälp med detta samt att redovisa. Dess är i regel på plats i datorsalar.
Detaljplanering
Kursen består av fyra moduler:
A. Algoritmer och komplexitet, 2 hp
B. Datastrukturer och lärande algoritmer, 2 hp
Parallellprogrammering (samläsning med DD1396), 3 hp
C. Datalagring och beräkningar, 2 hp
Förberedelser inför kursstart
Kurslitteratur
Föreläsningmaterial
Övningsmaterial
Labbinstruktioner
Kursmaterial i form av utvalda länkar till relevanta artiklar
Utrustning
På övningarna förväntas man ha tillgång till egen laptop. Men man kan utan problem jobba i mindre grupper och dela.
Programvara
I kursen används programmeringsspråken Python och Go. Python för modul A, B och C och Go för parallellprogrammeringsdelen.
Labbarna som skrivs i Python publiceras som jupyter notebooks (.ipynb-filer) som studenten behöver kunna öppna och redigera. Instruktioner och hjälp kring detta finns att tillgå.
Stöd för studenter med funktionsnedsättning
Om du har en funktionsnedsättning kan du få stöd via Funka:
LABB - Datorlaboration, 2,0 hp, betygsskala: A, B, C, D, E, FX, F
LABC - Datorlaboration, 2,0 hp, betygsskala: A, B, C, D, E, FX, F
HEM3 - Hemuppgift, 3,0 hp, betygsskala: P, F
LABA - Datorlaboration, 2,0 hp, betygsskala: A, B, C, D, E, FX, 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.
När kurs inte längre ges har student möjlighet att examineras under ytterligare två år.
Avsnittet nedan kommer inte från kursplanen:
LABB - Datorlaboration, 2,0 hp
Datastrukturer och grafalgoritmer
LABC - Datorlaboration, 2,0 hp
Datalagring och beräkningar
HEM3 - Hemuppgift, 3,0 hp
Parallellprogrammering
LABA - Datorlaboration, 2,0 hp
Algoritmer och komplexitet
Notera att dessa faktiskt utförs i ordningen LABA, LABB, HEM3, LABC
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:
Regler kring användning av AI verktyg framgår för varje laborationsuppgift.