Efficient Algorithms (CS 566) is a second module in algorithms (Aufbaumodul) that covers common strategies for designing algorithms and data structures, illustrated through a variety of examples. While the selection of examples takes their relevance in applications into account, the module also focuses at teaching formal techniques for proving correctness and performance guarantees of algorithms.

Slido  ⋅  YouTube  ⋅  ILIAS  ⋅  Campuswire  ⋅  Question Gallery  ⋅  Units

Lectures

There will be synchronous interactive lectures, starting from October 12. Live participation is expected; lectures are live-streamed on YouTube (YouTube Channel) on a best-effort basis.

You can find lecture slots and rooms in Marvin.
Note: Times in Marvin are c.t. (We start 15min past the full hour).

Units

The module will consist of the following units; each has unit subpage linked in the table with slides, lecture notes, and video recordings for that unit.

Week w/c (Mon) Lecture Units In-class Sheet Exercise Sheet
1 2026-10-12 Unit 0: Administrativa — —
    Unit 1: Proof Techniques — —
2 2026-10-19 Unit 2: Machines & Models In-Class 00 Sheet 01
3 2026-10-26 Unit 3: Fundamental Data Structures In-Class 01 Sheet 02
4 2026-11-02 Unit 4: Efficient Sorting In-Class 02 Sheet 03
5 2026-11-09 Unit 5: Divide & Conquer In-Class 03 Sheet 04
6 2026-11-16 Unit 6: String Matching In-Class 04 Sheet 05
7 2026-11-23 Unit 7: Text Compression In-Class 05 Sheet 06
8 2026-11-30 Unit 8: Clever Codes In-Class 06 Sheet 07
9 2026-12-07 Unit 9: Graph Algorithms In-Class 07 Sheet 08
10 2026-12-14 Unit 9: Graph Algorithms In-Class 08 Sheet 09
— 2026-12-21 Xmas break — —
— 2026-12-28 Xmas break — —
— 2027-01-04 Xmas break — —
11 2027-01-11 Unit 10: Parallel Algorithms In-Class 09 Sheet 10
12 2027-01-18 Unit 11: Greedy Algorithms In-Class 10 Sheet 11
13 2027-01-25 Unit 12: Dynamic Programming In-Class 11 Sheet 12
14 2027-02-01 Unit 13: Text Indexing In-Class 12  
15 2027-02-08 Recap, Exam Q&A    

Tutorials (Übungen)

There will be weekly exercises sheets with practice problems and group submissions. Further details will be given in class.

Solutions are discussed in small-group tutorials; check ILIAS for your group assignment. The first tutorial classes will be held in the week of October 19.

Online Tools

We will use several tools and services that have proven effective for this module.

Campuswire

Campuswire is our main online communication channel.
Any questions relating to the module should be posted on Campuswire on the question & answer forum, the “class feed”.
You can post anonymously if you prefer, and you are strongly encouraged to answer each other’s questions, as well!

You can also use the platform for (social or topical) discussions in the chat rooms.

ILIAS

We will use the university’s official learning management system ILIAS for examination-related information and marks.

Slido

During the live lectures, I will use Slido for interactive parts.

We maintain a collaborative exam question gallery on Papeeria.
(You may have to create a free account.)

Join us in making this a great resource for preparation for the exam – the better your question, the more likely they are to inspire the final exam.
This is also a chance to learn or practice some $\LaTeX{}$.

Exam & Assessment

The module mark is based on the final examination. Exam dates are centrally scheduled and can be found on Marvin.

To be admitted to the exam, you must achieve a passing grade in the tutorials.

More details will be given in class.

CS 566 for Credit vs. for conditional admission

The for-credit version of CS 566 is predominantly taken by students on the German undergrad programs in Marburg and is a compulsory module for the BSc Data Science program. It must hence be offered in German, including examinations.

If you are taking CS 566 to satisfy the prerequisites of a conditional admission to an international Master’s program, you will be offered a separate examination in English that is based on the provided English self-study material instead of the German lectures. You are, however, welcome and encouraged to attend lectures and tutorials, and in particular to join and use the Campuswire Q&A forum.

Note: If you are required to take the CS 566 prerequisite module as part of your admission, you cannot take CS 566 for credit in your program.

Further reading

There are many good algorithms textbooks, but no single definitive one that covers all topics of this module (in the way I want them presented!). Indeed, I have been cherrypicking the – in my opinion – most effective descriptions from a variety of sources; check the individual units for details.

Other resources