TDDA32 Design and Analysis of Algorithms, 5,3 ECTS-points
/Konstruktion och analys av algoritmer/

Advancement level:
D

Aim:
The primary aim of this course is to increase the student's skills in algorithmic problem solving. To this end, the course presents several techniques for design and analysis of algorithms. In addition, the course gives knowledge about important subareas within algorithm and complexity theory.

Prerequisites:
An introductory course on data structures and algorithms, e.g. TDDB 57 "Data Structures and Algorithms". That is, the student is expected to be familiar with asymptotic notation, basic data structures, such as lists, stacks, queues, trees etc., and algorithms for fundamental problems, such as searching, sorting, etc.

Supplementary courses:
TDDB 45 "Computability and Complexity Theory"

Course organization:
The theoretical content of the course is presented during the lectures. Seminars and homework exercises are intended to practice design and analysis of algorithms.

Course content:
Techniques for design and analysis of algorithms, and for determining lower bounds on time complexity, fast Fourier transforms, randomized algorithms, string matching algorithms, geometric algorithms, NP completeness, approximation algorithms, parallel algorithms, etc.

Course literature:
Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. The MIT Press.

TEN1Written examination, 3,5 p.
UPG1Obligatory homework assignments, 0 p.
Course language is swedish.