Uni-Logo
Algorithms and Complexity
 


Algorithms and Datastructures - Conditional Course
Summer Term 2026
Fabian Kuhn

 


Course Description

This lecture revolves around the design and analysis of algorithms. We will discuss the concepts and principles of a selection of the very basic but most commonly used algorithms and datastructures. Topics will include for example: Sorting, searching, hashing, search-trees, (priority-)queues and graphalgorithms (like shortest paths, spanning trees, breadth-first- and depth-first-searches).


Schedule

There will be a pre-recorded online lecture combined with an interactive exercise session. The interactive session takes place Mondays 14:15 - 16:00 in room 106-04-007.

The recorded lectures and corresponding slides are available on a separate page. Slides & Recordings

Forum: Zulip

We will offer an instant messaging platform (Zulip) for all students to discuss all topics related to this lecture. There you are free to discuss among yourself or pose questions to us.

Most of the communication will happen over Zulip so it is highly recommended you sign up for Zulip and regularly check for updates. The Zulip channel for this course is called AD_conditional_S26 (which you should automatically be subscribed to if you use the link below). If you are uncertain about anything feel free to just send a message to Gustav Schmid, the TA for the course.

You must be either inside the eduroam network or be connected to the university network via a VPN to access the Link!

If there is trouble with signing up for Zulip, or anything that cannot be handled over Zulip, please contact the course supervisor Gustav Schmid


Exercises

There will be theoretical and programming exercises, designed to teach you the algorithms and methods discussed in the lecture. Actively participating in the exercises and working through the provided feedback is really the only way to prepare for the exam!


Topic Due (12 pm) Exercise Solution

Introduction 27.04. exercise-00,
Sorting 04.05. exercise-01, QuickSort.py
O-Notation 11.05. exercise02
Sorting 2 18.05. exercise-03 BucketSort RadixSort Queue ListElement
Hashing 1 01.06. exercise-04
Hashfunctions, Universal-Hashing 08.06. exercise-05
Search Trees 15.06. exercise-06
Red-Black Trees 22.06. exercise-07
DFS/BFS 29.06 exercise-08
Spanning Trees 06.07 exercise-09 TSP.py, AdjacencyMatrix.py, cities.txt
Shortest Paths 13.07 exercise-10
Dynamic programming 20.07 exercise-11
Strings 27.07 exercise-12, StringMatching.py, input.txt,

Submission of Exercises

Handing in exercises is voluntary, but we highly recommend doing it. If you want feedback to your solutions, you must submit them by Monday, 2 pm.

The submission is simply via Zulip: Send all relevant files as a private Message to the tutor: Gustav Schmid

Programming exercises should be solved using Python and handed in as .py files.

Solutions to theoretical exercises can be written in Latex (preferred), Markdown (using Latex for the equations), or handwritten scans which must be well readable!


Exam

In the exam we expect students to go beyond the algorithms that they have seen in the lecture. Instead we will ask students to come up with algorithms for new problems and have the students give mathematical arguments why their algorithm is both correct and efficient. The only real way to learn this skill is to participate in the lectures and do the exercises.

We will update exact information about the exam here in this website once we know it.

  • Type of exam: Written Exam
  • Date: TBD
  • Time and Room: TBD
  • Duration: 120 Minutes
  • Allowed Material: The exam will be written on paper and so you will need a non erasable pen. Additionally we allow 6 A4-pages of hand written notes. (either 3 sheets of A4 paper with text on both sides, or 6 sheets of A4 paper with text only on a single side). We do not allow any form of electronic devices (so no calculator).

The above info is subject to change, so please check back here a few weeks before the actual exam.


Past Exams

Here is a collection of past exams (or the start of it until i get around to doing more). Some of these were automatically translated with some amount of proofreading, so if there are any errors, or sentences that don't make sense, please notify us so we can update them.

exam_fall_2020.pdf

exam_spring_2020.pdf

exam_spring_2022.pdf

exam_fall_2022.pdf

exam_fall_2024.pdf

exam_spring_2025.pdf (with solutions)

exam_fall_2025.pdf

exam_spring_2026.pdf


Background

To follow this course students need some experience programming with python, as well as some knowledge about mathematical proofs. The following resources might be helpful if you feel like you do not satisfy these prerequisites.

Literature