Faglig Innhold
Metoder for å analysere effektiviteten av algoritmer, splitt- og hersk-teknikker, rekursive løsningsmetoder. Metoder for ordning, søking i og sortering av datamengder. Datastrukturer for effektiv gjenfinning av data, dynamisk programmering og grådighetsalgoritmer. Datastrukturer for etablering av grafer og nettverk, samt metoder for gjennomløping og leting. Algoritmer for å finne beste vei(er) og koplinger (matchinger), spenntrær og maksimal flyt. Teori for problemkompleksitet. Algoritmene uttrykkes mest mulig språkuavhengig. Studenter uten adgang til emnet kan i stedet ta TDT4121 Innføring i algoritmer, som er ekvivalent som grunnlag for senere emner, og er rettet mot programmer som ikke har datateknologi som en del av sin kjerne.
Læringsmål
Kunnskaper: Kandidaten skal ha kunnskap om (1) et bredt spekter av etablerte algoritmer og datastrukturer med nytteverdi på tvers av mange fagområder, (2) klassiske algoritmiske problemer med kjente effektive løsninger og (3) komplekse problemer uten kjente effektive løsninger. Ferdigheter: Kandidaten skal kunne (1) analysere algoritmers effektivitet for å oppnå best mulig løsning på et gitt problem, (2) formulere et problem så det rasjonelt kan løses av en algoritme og (3) bruke kjente designmetoder for å konstruere nye effektive algoritmer. Generell kompetanse: Kandidaten skal være i stand til å (1) bruke kjente algoritmer og tilgjengelige programmoduler på nye problemstillinger og (2) utvikle og realisere nye datatekniske løsninger på komplekse problemstillinger med rot i en praktisk virkelighet.