Due to the Corona virus education methods or examination can deviate. For the latest news please check the course page in Brightspace.


nl en

Data Structures


Admission requirements

Not applicable.


The course is about algorithms and data structures. It involves learning to design and understand algorithms. Data is tightly connected with algorithms, since it is used in as input, output, but also as part of their internal operation. During the course we will examine the structuring and representation of data. There are various standard data structures such as lists, trees, arrays and sets, each characterized by its structure and methods. The standard data structures can work with a wide range of algorithms, while there also exist data structures that are tailored to a limited class of algorithms. We will review standard data structures such as stacks, queues, lists, binary and multiway trees, priority queues and graphs. Our approach to the design of data structures is via Abstract Data Types (which is closely linked to OO programming). By using ADTs, we can separate the use of the data structure and the definition of its desired behavior from the implementation. Topics: Linked Lists, Stacks, Queues, Binary Trees, Multiway Trees, Graphs, Hashing, Data Compression, String Matching, Randomized Algorithms.

Course objectives

Understanding and using standard data structures and their associated algorithms, obtaining some understanding of differences in efficiency, learning to think abstractly: differentiating between definition and implementation.


The most recent timetable can be found at the Student-website:

Mode of instruction

Two hours of lectures per week, followed by two hours of lab work on programming assignments.

Assessment method

Written exams. In addition, the course involves mandatory programming assignments.

Reading list

A relevant book is: Adam Drozdek, Data Structures and Algorithms in C ++, 4th / International Edition. ISBN13: 9781133613053. This book is optional but not mandatory. In addition, a handout is available.


Aanmelding voor vakken verloopt via uSis. Hiervoor is de uSis-code van het vak nodig, die te vinden zijn in de Studiegids. Meer info over het inschrijven voor vakken of tentamens is hier te vinden.


In MyTimetable kun je alle vak- en opleidingsroosters vinden, waarmee jij je persoonlijke rooster kunt samenstellen. Onderwijsactiviteiten waarvoor je in uSis staat ingeschreven, worden automatisch in je rooster getoond. Daarnaast kun je My Timetable gemakkelijk koppelen aan een agenda-app op je telefoon en worden roosterwijzigingen automatisch in je agenda doorgevoerd; bovendien ontvang je desgewenst per e-mail een notificatie van de wijziging.

Vragen? Bekijk de video-instructie, lees de instructie of neem contact op met de ISSC helpdesk.


Inschrijving voor vakken verloopt via uSis. Wanneer je je hier inschrijft voor een bepaald vak krijg je automatisch ook toegang tot de omgeving van dit vak via Brightspace.

Voor meer informatie over Brightspace kun je op deze link klikken om de handleidingen van de universiteit te bekijken. Bij overige vragen of problemen kan contact opgenomen worden met de helpdesk van de universiteit Leiden.


Onderwijscoordinator Riet Derogee


Course blackboard page