Lärandemål
Efter avslutad kurs ska den studerande kunna:
- Använda olika typer av datastrukturer samt visa förståelse för deras för- och nackdelar
- Designa en lämplig datastruktur för att lösa ett specifikt problem
- Applicera olika typer av algoritmer till utsökning och sortering av information
- Utvärdera prestation och effektivitet av lösningar (datastruktur tillsammans med en algoritm)
- Bygga hybrida lösningar där flera olika datastruktur/algoritmer ingår
Innehåll
Olika typer av datastruktur introduceras, som dynamiska listar, matriser och träd. För- och nackdelar diskuteras med avseende till snabbhet, minnesresurser och komplexitet som grund för kvalificerade val av datastruktur för att lösa ett specifikt problem.
Olika typer av algoritmer diskuteras, båda övergripande och i detalj (implementeringsnivå). Teoretiska koncept som greedy algoritmer, dynamisk programmering och rekursion introduceras. En specifik case-study genomförs där sorteringsalgoritm används för att koppla ihop teori och praktik.
Algoritmers för- och nackdelar beskrivs. Huvudkriterier som minneskrav, exekveringstid och programmeringsresurser diskuteras. En grundläggande matematisk teknik för teoretisk analys jämförs med empiriska undersökningar i laborationer.
Slutligen diskuteras hur en hybrid lösning kan ge bästa prestation. Till exempel en sorteringsalgorithm där båda quicksort och bubblesort kombineras.
Examinationsformer
Laborationsuppgifter (4,5hp) och salstentamen (3hp)
Arbetsformer
Betyg
Som betygsskala används U–VG.
Labborationsuppgifter U-G
Salstentamen U-VG
Kursens slutbetyg bestäms av betyget för salstentamen.
Förkunskapskrav
- Objektorienterad programmering, 7,5 hp, grundnivå