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

HI1011 Datastrukturer och algoritmer 7,5 hp

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

Innehåll och lärandemål

Kursinnehåll

Datastrukturer. De moderna programspråken har färdiga klasser för Fält, Lista, Tabell, Stack, Kö, Träd, Mängd och Graf. Här tittar vi på hur de är konstruerade för att sedan själva kunna bygga dessa strukturer från grunden.

Analys av algoritmer. Alla lösningar på ett programmeringsproblem är inte lika effektiva. Studenten får vana vid att bedöma vilken teknik som är bäst för ett givet problem.

Rekursion är en teknik man måste behärska för att senare kunna bygga mer komplicerade algoritmer.

Backtracking är en direkt tillämpning på rekursion. När man försöker hitta ut ur en labyrint kan man hamna i en återvändsgränd och tvingas gå tillbaka (backtrack) till senaste vägval.

Glupska algoritmer innebär att man i en given situation väljer det lokalt bästa alternativet och hoppas på att det till slut skall ge det globalt bästa resultatet.

Söndra och Härska innebär att man bryter ned ett större problem i en mängd mindre (söndra). Så små att de blir triviala att lösa. Denna mängd av lösta småproblem slås sedan successivt samman tills man får en lösning av hela problemet (härska).

Dynamisk programmering är en generell metod för att lösa optimeringsproblem. Man löser bara ett delproblem en gång och lagrar dess resultat i en tabell. När samma delproblem dyker upp igen hämtar man helt enkelt resultatet i tabellen.

Sortering och Sökning är viktiga tillämpningar som ofta konstruerats med hjälp av ovan nämnda tekniker.

Lärandemål

Efter kusen ska studenten:

  • Ha kunskaper om de vanligaste algoritmteknikerna och datastrukturerna
  • I viss mån kunna utvärdera algoritmers effektivitet och ha kännedom om olika komplexitetsklasser
  • Kunna anpassa kända algoritmer och konstruera egna utifrån de algoritmtekniker som ingår i kursen
  • Ha stor vana vid att lösa algoritmiska problem

Kurslitteratur och förberedelser

Särskild behörighet

Grundläggande kunskaper i programmering.

Rekommenderade förkunskaper

Ingen information tillagd

Utrustning

Ingen information tillagd

Kurslitteratur

Speciellt för kursen framtaget kompendium.

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

  • TEN1 - Tentamen, 3,0 hp, betygsskala: A, B, C, D, E, FX, F
  • ÖVN1 - Övningar, 4,5 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.

Övriga krav för slutbetyg

Godkänd tentamen (TEN1; 3 hp), betygsskalan A-F
Tentamen innehåller både teoretiska och praktiska moment.
Godkända laborationer (ÖVN1; 4,5 hp), betygsskalan A-F
Slutbetyget grundas på samtliga moment. Betygsskalan A-F.

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

Teknik

Utbildningsnivå

Grundnivå

Påbyggnad

Ingen information tillagd

Kontaktperson

Håkan Strömberg, hakan.stromberg@sth.kth.se

Övrig information

Tidigare kursnummer: 6H3116