# Algorithms and Data Structures

Vak
2021-2022

Not applicable.

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

## Description

This course addresses several data structures and 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

• implementation of algorithms

## Timetable

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 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. The exam and assignments need to be graded at least 5.5 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.

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

## Registration

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.

## MyTimetable

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.

## Brightspace

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.

## Contact

Onderwijscoordinator Riet Derogee