nl en

Algorithms and Data Structures


Admission requirements

We assume that participants have good programming skills (please ensure to follow the preceding programming courses).


This course addresses several data structures and algorithmic methods for problem-solving, including various well-known algorithms, such as the Binary Search 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, sorting. 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 preceding programming courses is required to successfully participate in this course.

Course objectives

  • Applying algorithmic methods

  • studying and analyzing algorithmic methods

  • designing of algorithms

  • implementation of algorithms


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

You will find the timetables for all courses and degree programmes of Leiden University in the tool MyTimetable (login). Any teaching activities that you have sucessfully registered for in MyStudymap will automatically be displayed in MyTimetable. Any timetables that you add manually, will be saved and automatically displayed the next time you sign in.

MyTimetable allows you to integrate your timetable with your calendar apps such as Outlook, Google Calendar, Apple Calendar and other calendar apps on your smartphone. Any timetable changes will be automatically synced with your calendar. If you wish, you can also receive an email notification of the change. You can turn notifications on in ‘Settings’ (after login).

For more information, watch the video or go the the 'help-page' in MyTimetable. Pleas note: Joint Degree students Leiden/Delft have to merge their two different timetables into one. This video explains how to do this.

Mode of instruction

For 12 weeks, there will be 2 hours of lectures (given by the professor), as well as practical sessions (organized by the team of the teaching assistants). There will be 3 practical assignments.

Assessment method

Digital exam, in which both questions 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. Each component needs to have a passing grade to successfully pass the course.

The teacher will inform the students how the inspection of and follow-up discussion of the exams will take place.

Reading list

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


From the academic year 2022-2023 on every student has to register for courses with the new enrollment tool MyStudymap. There are two registration periods per year: registration for the fall semester opens in July and registration for the spring semester opens in December. Please see this page for more information. An exemption is the fall semester for 1st year bachelor students, the student administration will enroll this group.

Please note that it is compulsory to both preregister and confirm your participation for every exam and retake. Not being registered for a course means that you are not allowed to participate in the final exam of the course. Confirming your exam participation is possible until ten days before the exam.

Extensive FAQ on MyStudymap can be found here.


Education coordinator LIACS bachelors


Not applicable.