General Info


Teaching Assistants

When and where Monday 8.15-12, Bldg. 358, Room 060a

Prerequisites Undergraduate level courses in algorithms and data structures (comparable to 02105 + 02110) and mathematical maturity. You should have a working knowledge of algorithm analysis (e.g. asymptotic notation, worst case analysis, amortized analysis, basic analysis of randomized algorithms), data structures (e.g. stacks, queues, linked lists, trees, heaps, priority queues, hash tables, balanced binary search trees, tries), graph algorithms (e.g. BFS, DFS, single source shortest paths, minimum spanning trees, topological sorting), dynamic programming, divide-and-conquer, and NP-completeness (e.g. basic reductions).

Gradescope We use Gradescope for correcting and scoring exercises. The system significantly improves consistency and quality in correcting. Please sign up for Gradescope as follows:

  1. Go to
  2. Select "Sign up for free".
  3. Select "Sign up as a student".
  4. Enter the course entry code ZZ5ZDB, your full name, your email, and your student-id (of the form s123456). Please follow these instructions precisely so that we can correctly identify you.
If you do not wish to sign up for Gradescope please contact a course responsible.


The weekplan is preliminary It will be updated during the course. Under each week there is a number of suggestions for reading material regarding that weeks lecture. It is not the intention that you read ALL of the papers. It is a list of papers and notes where you can read about the subject discussed at the lecture.

Week Topics Teacher Slides Weekplan Material
Integer Data Structures I: Dictionaries, Universal and Perfect Hashing. Philip 1x1 · 4x1 Hashing
Integer Data Structures II: Predecessor Problem, van Emde Boas, x-Fast and y-Fast Tries Philip 1x1 · 4x1 Predecessor
Geometry: Range Reporting, Range Trees, and kD Trees Philip 1x1 · 4x1 Range Reporting
Amortized Data Structures I: Splay trees Eva 1x1 Amortized I Notes by Jeff Erickson: scapegoats and splaytrees
Paper by Sleator and Tarjan: Self-adjusting binary search trees.
See also: Brinkmann, Degraer, de Loof on practical performance of splay trees.
More exercises on amortized algorithms in 02110.
Integer Data Structures III: Lowest Common Ancestor, Range Minimum Query Inge 1x1 · 4x1 LCA and RMQ
Trees: Level Ancestor, Path Decompositions, Tree Decompositions Inge 1x1 · 4x1 Level Ancestor
Amortized Data Structures II: Dynamic Graph Orientation Eva 1x1 Amortized II Dynamic Graph Orientations by Brodal and Fagerberg
See also: Berglin & Brodal, Christiansen & Rotenberg
Strings I: Dictionaries, Tries, Suffix trees Inge 1x1 · 4x1 Suffix Trees
  • Notes
  • Algorithms on Strings, Trees, and Sequences, Chap. 5-9, D. Gusfield
Strings II: Radix Sorting, Suffix Array, Suffix Sorting Philip 1x1 · 4x1 Suffix Sorting
Compression: Lempel-Ziv, Re-Pair, Grammars, Compressed Computation Philip 1x1 · 4x1 Compression
Approximation Algorithms I: Introduction to approximation algorithms, scheduling and k-center. Inge 1x1 · 4x1 Approximation Algorithms I
Approximation Algorithms II: TSP, Set cover Inge 1x1 · 4x1 Approximation Algorithms II
Course Roundup, Questions, Future Perspectives

Hand-in Exercises

The course features number of non-mandatory/voluntary hand-in exercises that are posted throughout the course. These are handed in as follows.

Use the template.tex file to prepare your write up your solution to the exercises. Do not repeat the problem statement in your solutions and do not modify the template. Compile your solutions using LaTeX. The maximum size of the finished pdf must be at most 3 pages. To submit your solution:

Mandatory Exercise

The course features a few mandatory exercises during the course. The exercises are handed-in according to the same guidelines as the non-mandatory/voluntary hand-in exercises, except that the page limit may be different.

Collaboration policy for the mandatory exercise

Violation of the collaboration policy is strictly prohibited.

Frequently Asked Questions

How should I write my exercises? The ideal writing format for exercises is classical scientific writing, such as the writing found in the peer-reviewed articles listed as reading material for this course (not textbooks and other pedagogical material). One of the objectives of this course is to practice and learn this kind of writing. A few tips:

How much do the mandatory exercise count in the final grade? The final grade is an overall evaluation of your mandatory exercise and the oral exam combined. Thus, there is no precise division of these part in the final grade. However, expect that (in most cases, and under normal circumstances) the mandatory exercises account for a non-trivial fraction of the final grade.

What do I do if I want to do a MSc/BSc thesis or project in Algorithms? Great! Algorithms is an excellent topic to work on :-) and Algorithms for Massive Data Sets is designed to prepare you to write a strong thesis. Some basic tips and points.