# Algorithms and Data Structures II

5 credits

Syllabus, Bachelor's level, 1DL231

Code
1DL231
Education cycle
First cycle
Main field(s) of study and in-depth level
Computer Science G2F
Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
Finalised by
The Faculty Board of Science and Technology, 24 April 2013
Responsible department
Department of Information Technology

## Entry requirements

60 credits including at least 15 credits in mathematics and 30 credits in computer science including Algorithms and Data Structures I.

## Learning outcomes

In order to pass, the student must be able to

• use the notation of asymptotic growth of functions and be able to use this notation to describe the complexity of algorithms and computational problems
• derive equations for the complexity of algorithms and solve such equations
• work with common algorithmic techniques such as dynamic programming, greedy algorithms, etc.
• deal with basic problems using graph algorithms, string matching and flow networks.
• define the complexity classes P and NP, and discuss the open question whether P=NP.
• present and discuss topics related to the course content orally and in writing with a skill appropriate for the level of education.

## Content

Asymptotic notation and recurrence equations. Data structures for disjoint sets. Dynamic programming. Greedy algorithms. Graph algorithms such as shortest path and minimum spanning tree. Maximum flow problem in flow networks. Algorithms for string matching. Theory of intractable problems.

## Instruction

Lectures, lessons, and exercises.

## Assessment

Written exam (3 credits). Assignments (2 credits).