General Info


Exercises Mondays 8.00-10.00 in 324/020, 324/040, 324/050, and 324/060.

Discussion and Exercises Mondays 10.20-12.20 in 306/33.

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. trees, heaps, priority queues, hash tables, balanced binary search trees), 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).


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 Slides Weekplan Mandatory Material
Introduction and Warm-up Warm Up
External Memory I: I/O Model, Scanning, Sorting, and Searching. 1x1 · 4x1 External Memory I
External Memory II: Bε-trees and String B-trees. 1x1 · 4x1 External Memory II
External Memory III: Cache-Oblivious Model, Algorithms, and Data Structures. 1x1 · 4x1 External Memory III
Approximate Data Structures I: Bloom filters. Bloom Filters
Approximate Data Structures II: Approximate Near Neighbor Search (Locality Sensitive Hashing) 1x1 · 4x1 LSH
Streaming I:
Introduction, majority, Misra-Gries, Approx counting.
1x1 · 4x1 Streaming I
Streaming II:
Approximate Counting and Frequency estimation.
1x1 · 4x1 Streaming II
Streaming III:
Sketching, CountMin sketch.
1x1 · 4x1 Streaming III
Distributed Computing I: Massively Parallel Algorithms 1x1 · 4x1 Massively Parallel Computation
Distributed Computing II: Distributed Data Structures and Labeling Schemes. 1x1 · 4x1 Distributed Data Structures Nearest Common Ancestors: A Survey and a New Algorithm for a Distributed Environment, S. Alstrup, C. Gavoille, H. Kaplan, T. Rauhe.
Distributed Computing III: Distributed Graph Algorithms 1x1 · 4x1 Distributed Graph Algorithms Distributed Algorithms (section 1.1., 1.2, 1.3, 5.1, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7), Jukka Suomela
Course Roundup, Questions, Future Perspectives

Mandatory Exercises

Use the template.tex file to prepare your hand in exercises. Do not repeat the problem statement in your hand in. Compile using LaTeX. Upload the resulting pdf file (and only this file). The maximum size of the finished pdf must be at most 2 pages. Mandatory exercises are handed-in using the Gradescope system according to the following guidelines (if you have an issue with this please contact one of the teachers):

Collaboration policy for mandatory exercises

Violation of the collaboration policy is strictly prohibited.

Frequently Asked Questions

How can I access the listed reading material? Why are some of the links are behind a paywall? We typically link to material using standard doi's or publication venue links. We do this since these are stable over time and allow you to uniquely identify the material. To access these (at no cost) you sometimes need to use academic search engines or library services provided by DTU. Ask your teacher if you are unfamiliar with how to use these tools.

How should I write my mandatory exercises? The ideal writing format for mandatory 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 exercises 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 large fraction of the final grade.

Can I write my assignments in Danish? Ja. Du er meget velkommen til at aflevere på dansk.

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.