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.
Applying algorithmic methods
studying and analyzing algorithmic methods
designing of algorithms
The most updated version of the timetables can be found on the students' website:
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
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.
Anany Levitin, Introduction to The Design and Analysis of Algorithms, third edition (Pearson, 2012, ISBN: 978-0-273-76411-3).
Onderwijscoordinator Riet Derogee