Teachers
Teaching Assistants
When and where Monday 8.15-12, Bldg. 358, Room 060b
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).
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 | Material | |
|---|---|---|---|---|---|
| Integer Data Structures I: Hashing, Perfect Hashing, and String Hashing | 1x1 · 4x1 | Hashing |
|
||
| Integer Data Structures II: Predecessor Problem, van Emde Boas, x-Fast and y-Fast Tries | 1x1 · 4x1 | Predecessor |
|
||
| Integer Data Structures III: Lowest Common Ancestor, Range Minimum Query | 1x1
· 4x1 |
LCA and RMQ |
|
||
| Trees: Level Ancestor, Path Decompositions, Tree Decompositions | 1x1 · 4x1 | Level Ancestor |
|
||
| Geometry: Range Reporting, Range Trees, and kD Trees | 1x1 · 4x1 | Range Reporting |
|
||
| Strings I: Dictionaries, Tries, Suffix trees | 1x1 · 4x1 | Suffix Trees |
|
||
| Strings II: Radix Sorting, Suffix Array, Suffix Sorting | 1x1 · 4x1 | Suffix Sorting |
|
||
| Midterm. | |||||
| Approximation Algorithms I: Introduction to approximation algorithms, scheduling and k-center. | 1x1 · 4x1 | Approximation Algorithms I |
|
||
| Approximation Algorithms II: TSP | 1x1 · 4x1 | Approximation Algorithms II |
|
||
| External Memory I: I/O Model, Scanning, Sorting, and Searching. | 1x1 · 4x1 | External Memory I |
|
||
| External Memory II: Buffers and Bε-trees. | 1x1 · 4x1 | External Memory II |
|
||
| Course Roundup, Questions, Future Perspectives |
The course features mandatory and non-mandatory hand-in exercises and a midterm.
Guidelines for Non-Mandatory Exercises
Guidelines for Mandatory Exercises As the guidelines for the non-mandatory exercises, except follow the collaboration policy below.
Collaboration Policy for the Mandatory Exercises
Midterm The midterm is test that takes place during class. The test is individual, takes place physically in class during a regular class session, must be done using only pen and paper and no additional aids, and is time-limited.
Schedule for Hand-in Exercises and Midterm
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 and midterm count in the final grade? The final grade is an overall evaluation of your mandatory exercise, the midterm, and the oral exam combined. Thus, there is no precise division of these part in 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.