## Admission requirements

Not applicable

## Description

This course addresses several algorithmic methods for problem solving, including various well-known algorithms, such as Shortest Path First algorithm. We demonstrate these methods based on illustrative examples.

Some examples of algorithmic methods that this course covers: state space/tree traversal algorithms, brute force, exhaustive search, divide and conquer, backtracking, dynamic programming, greedy algorithms, branch and bound, heap-sort. We also cover the basics of computational complexity.

There will be three programming assignments in Python, in which one of the aforementioned algorithmic methods should be implemented. Good knowledge of programming in Python, as obtained by the course “Introduction to Programming” is required to successfully participate in this course.

## Course objectives

Applying algorithmic methods

studying and analyzing algorithmic methods

designing of algorithms

## Timetable

The most updated version of the timetables can be found on the students' website:

Time table Computer Sience & Economics

## Mode of instruction

For 12 weeks, there will be 2 hours of lecture (given by the professor), as well as 2 hours seminar lecture (given by the team of the teaching assistants). There will be 3 practical assignments. During the seminar, the student assistants will either cover questions on paper, or supervise the programming assignments

## Assessment method

Digital exam, in which both question are answered as well as small programmable questions need to be programmed. The exam covers 70% of the grade, the three assignments each cover 10% of the grade. The exam and assignments need to be graded at least 5.5 to successfully pass the course.

## Reading list

Anany Levitin, Introduction to The Design and Analysis of Algorithms, third edition (Pearson, 2012, ISBN: 978-0-273-76411-3).

## Blackboard

## Registration

## Contact

Onderwijscoordinator Riet Derogee