Teachers
When and where Monday 8.1512, Bldg. 421, auditorium 72. The course runs in the DTU spring semester (Feb. 1 to May 12). There is no teaching during the Easter break (March 21 + 28).
Piazza The course uses Piazza as online forum for announcements and discussions. Sign up here
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, divideandconquer, and NPcompleteness (e.g. basic reductions).
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) via Campusnet. The maximum size of the finished pdf must be at most 2 pages. An exercise from week x must be handed in no later than Sunday in week x before 20.00.
Collaboration policy for mandatory exercises
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 

Approximation Algorithms I: Introduction to approximation algorithms, scheduling.  1x1 · 4x1  Approximation Algorithms I  Mandatory 
 
Approximation Algorithms II: kcenter and set cover  1x1 · 4x1  Approximation Algorithms II  Mandatory 
 
Integer Data Structures I: Dictionaries, Universal and Perfect Hashing.  1x1 · 4x1  Hashing  Mandatory 
 
Integer Data Structures II: Predecessor Problem, van Emde Boas, xFast and yFast Tries  1x1 · 4x1  Predecessor  Mandatory 
 
Integer Data Structures III: Nearest Common Ancestor, Range Minimum Query  no slides  LCA and RMQ  Mandatory 
 
Geometry I: Range Reporting, Range Trees, Fractional Cascading, kD Trees  1x1 · 4x1  Range Reporting  Mandatory 
 
Geometry II: Persistent Data Structures  1x1  Persistence  Mandatory 
 
Strings I: Dictionaries, Tries, Suffix trees, Suffix Sorting  1x1 · 4x1  Suffix Trees  Mandatory 
 
Strings II: Compression  1x1 · 4x1  Compression  Mandatory 
 
Strings III: Grammar Compression, Random Access in Grammars, DAG decompositions  1x1 · 4x1  Random Access  Mandatory 


External Memory I: I/O Model, CacheOblivious Model, External Dynamic Programming  1x1 · 4x1  External Memory  Mandatory 
 
External Memory II: Btrees, Bepsilon trees, String Btrees  no slides  External Memory II  Mandatory 
 
Course Roundup, Questions, Future Perspectives 
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 peerreviewed 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.