# Algorithms and Data Structures I

5 credits

Syllabus, Bachelor's level, 1DL210

A revised version of the syllabus is available.
Code
1DL210
Education cycle
First cycle
Main field(s) of study and in-depth level
Computer Science G1F, Technology G1F
Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
Finalised by
The Faculty Board of Science and Technology, 2 May 2017
Responsible department
Department of Information Technology

## Entry requirements

10 credits in computer programming (Program Design, Programming Techniques II, or equivalent) and 10 credits in mathematics, including basic algebra.

## Learning outcomes

In order to pass, the student must be able to

• analyse the runtime performance of a (simple) algorithm/program in terms of the size of its inputs, and this in the average, best, and worst cases.
• choose appropriate algorithms and data structures for storing data, searching and sorting, as well as implement those algorithms.
• use and implement basic graph algorithms.

## Content

Mathematical foundations: asymptotic notation, summations, recurrence relations.

Data structures: trees, FIFO queue, stack, priority queues, heaps.

Searching: binary search trees, balanced search trees, hash tables.

Sorting: insertion sort, merge sort, quick sort, heap sort.

Graph algorithms: depth first and breadth first search, topological sort and (strongly) connected components.

Design techniques: divide-and-conquer.

Implementation of algorithms and data structures.

## Instruction

Lectures, laboratory work, lessons, and mandatory assignments.

## Assessment

Written exam (4 p). Assignments (1 p).

## Other directives

The unit cannot be included in a degree with Program Design II (1IT022), nor with Data Structures (1DL009, 1TD191, 1MB026).