Hoppa till huvudinnehållet
Till KTH:s startsida Till KTH:s startsida

ID1300 Algoritmer och datastrukturer 7,5 hp

Kursomgångar saknas för aktuella eller kommande terminer.
Rubriker med innehåll från kursplan ID1300 (VT 2009–) är markerade med en asterisk ( )

Innehåll och lärandemål

Kursinnehåll

Datastrukturer t.ex. stack, kö, array, ordnad array, träd, trie, rödsvarta träd, binära sökträd, hashtabell, länkad lista, prioritetskö, heap.

Algoritmer t.ex. binärsökning, insättning i ovan nämnda datastrukturer, borttagning i ovan nämda datastrukturer, selection sort, insertion sort, heapsort, bubblesort, quicksort, mergesort, radix sort, räknesortering, djupet-först-sökning, bredden-först-sökning, Warshalls algoritm, några AI-algoritmer.

Grundläggande förståelse för en algoritms komplexitet. Lite om komplexitetsklasser.

Lärandemål

Denna kurs läses av de studenter som läst en grundläggande kurs och en fortsättningskurs i objektorienterad programmering och som behöver djupare programmeringskunskaper för framtida studier eller i arbetslivet.

Kursen syftar till att ge en bredare förståelse när det gäller val av implementation för att effektivisera och optimera problemlösningstid, körtid och minnesutrymme.

För betyg E:

Studenten ska kunna använda de datastrukturer som finns implementerade i klassbiblioteken i ett objektorienterat programmeringsspråk och kunna avgöra vilken av dem som är lämpligast för en given tillämpning.

Studenten ska kunna implementera en enkel algoritm i ett programmeringsspråk genom att utgå från en detaljerad beskrivning eller pseudokod.

Studenten ska kunna beskriva nedanstående datastrukturer med avseende på vilka de viktigaste operationerna är, när de är lämpliga att tillämpa och hur de fungerar.

Länkad lista, dubbellänkad lista, hashtabell, stack, kö, priortetskö, heap, binärt sökträd.

Studenten ska kunna implementera någon sorteringsalgoritm för en array.

Studenten ska ha en god uppfattning om vad komplexitet är, och vad olika komplexiteter innebär på en sådan nivå att han/hon ska kunna föra en diskussion om det angående en given algoritm.

Studenten ska kunna läsa om en algoritm och därefter kunna sätta sig in i koden för algoritmen till den grad att han/hon kan utföra en ändring av/göra ett tillägg till koden på korrekt sätt.

Studenten ska allmän kännedom om de datastrukturer och algoritmer som tas upp i kursen minst på den nivå att han/hon kan ge en kort förklaring av dem och vet var mer information finns att hämta.

Studenten ska kunna komma på en egen lösning (algoritm) på ett enklare problem och skriva ner pseudokod för lösningen.

För högre betyg D-A:

Studenten ska kunna analysera en algoritm och tala om vilken komplexitet den har.

Studenten ska kunna implementera en icke-trivial algoritm i något programmeringsspråk.

Studenten ska kunna lösa problem genom att komma på en algoritm som löser dem och sedan implementera den.

Kurslitteratur och förberedelser

Särskild behörighet

Programmeringskunskaper motsvarande en grundkurs och en fortsättningskurs i objektorienterad programmering.

Rekommenderade förkunskaper

Programmeringskunskaper motsvarande en grundkurs och en fortsättningskurs i objektorienterad programmering.

Utrustning

Ingen information tillagd

Kurslitteratur

Fastställs senare.

Examination och slutförande

När kurs inte längre ges har student möjlighet att examineras under ytterligare två läsår.

Betygsskala

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

Examination

  • LAB1 - Laborationer, 6,0 hp, betygsskala: A, B, C, D, E, FX, F
  • TEN1 - Tentamen, 1,5 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.

Övriga krav för slutbetyg

Lab1 - 6hp (A-Fx)
Uppdelad i 5 delar: inlämningsuppgift 1 & 2, laboration1,2,3.
Varje del ger ett antal poäng beroende på hur många eller hur avancerade de uppgifter studenten löst är och på hur snabbt han/hon kan lösa dem.
Inlämningsuppgift 1: max 2p
Inlämningsuppgift 2, laboration 1,2,3: max 12 poäng var
Totalt 50 poäng.
För E krävs 10 poäng
För D krävs 20 poäng
För C krävs 27 poäng
För B krävs 37 poäng
För A krävs 45 poäng
Ten1 - 1,5hp (G/U)
Skriftlig tentamen ges. Endast godkänt eller icke godkänt.
Tentamen är uppdelad i 2 delar med 20 poäng i varje.
Del 1: teori. 10 poäng krävs för godkänt.
Del 2: programmering. 10 poäng krävs för godkänt.
Det går ej att tillgodoräkna sig en godkänd del från en tentamen till nästa tentamen. Båda delarna måste bli godkända vid samma tentamenstillfälle.

Möjlighet till komplettering

Ingen information tillagd

Möjlighet till plussning

Ingen information tillagd

Examinator

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.

Ytterligare information

Kursrum i Canvas

Registrerade studenter hittar information för genomförande av kursen i kursrummet i Canvas. En länk till kursrummet finns under fliken Studier i Personliga menyn vid kursstart.

Ges av

Huvudområde

Informationsteknik, Teknik

Utbildningsnivå

Grundnivå

Påbyggnad

Ingen information tillagd

Kontaktperson

Fadil Galjic, fadil@kth.se, 08 -164942

Övrig information

http://people.dsv.su.se/~fadil/ID1300/

Kursen utvärderas och utvecklas i enlighet med KTH:s policy för kursanalys.