02110 Algorithms and Data Structures II |
Teacher
When Thursday 8-12.
The course runs in the DTU fall semester.
Structure The class is structured as follows. For week x:
Where
The exercise class from 8-10 is in building 306, rooms LY.306.108A,
LY.306.108B,
LY.306.196,
LY.306.197,
LY.306.198, and
LY.306.199.
English speaking students should go to room 306.196.
Lectures will be in building 303A, aud. 42.
Textbook
Algorithm Design by Kleinberg and Tardos. (KT)
Prerequisites The course builds on 02105 Algorithms and Data Structures I. You are expected to know the curriculum for 02105, which includes
Programming Exercises We will use CSES for implementation exercises. CSES automatically evaulates your submitted solutions for both correctness and running time. To learn more about how to implement the algorithms from the course you can rea in "Competitive Programmer's Handbook" (CSES) by Laaksonen. Python version and Java version. See book homepage for the full book in C++.
The weekplan is preliminary. It will be updated during the course.
| Week | Topics | Slides | Weekplan | Material | Demos |
|---|---|---|---|---|---|
| Divide-and-Conquer: Recurrence relations, Mergesort (recap), counting inversions. | 1x1 · 4x1 | DC |
|
||
| Dynamic programming I: Introduction, weighted interval scheduling | 1x1 · 4x1· full | DP1 |
|
||
| Dynamic programming II: Knapsack and Sequence alignment | 1x1 · 4x1 | DP2 |
| Sequence Alignment ·Recursive subsetsum ·Iterative subsetsum | Network Flow I: Max-cut min-flow theorem, augmenting paths, Ford-Fulkerson | 1x1 · 4x1 · full | Flow1 |
| Ford Fulkerson and min cut |
| Network Flow II: scaling, Edmonds-Karp, applications, maximum bipartite matching, disjoint paths |
1x1 · 4x1 · full | Flow2 |
| ||
| Randomized algorithms: selection, quicksort |
1x1 · 4x1 | Randomized Algorithms |
| ||
| Data Structures I: Hashing |
1x1 · 4x1 | Hashing |
| ||
| Data Structures II: Amortized Analysis | 1x1 · 4x1 | Amortized Analysis |
|
||
| Data Structures III: Partial Sums and Dynamic Arrays | 1x1 · 4x1 | Partial Sums and Dynamic Arrays |
| ||
| Introduction to NP-completenes | 1x1 · 4x1 | NP |
| ||
| Strings I: String matching | 1x1 · 4x1 | Strings |
|
Automata
matching and
construction KMP matching and construction |
|
| Strings II: Tries |
1x1 · 4x1 | Tries | |||
| Questions, repetition | 1x1 · 4x1 |
The course has 5 onsite tests (approximately biweekly) containing
questions from the material of the past couple of weeks. Passing a
Biweekly Test grants you a bonus point that will count towards your
grade. Not passing it has no consequence. Your bonus points will be
added to your exam score before the grade is computed.
The biweekly tests takes place on the following dates: 17/9, 1/10, 22/10, 5/11, 19/11 from 8.00-8.30.
Rules for the biweekly tests
Collaboration policy The mandatory assignemt is subject to the following collaboration policy. The mandatory assignment is individual. It is not allowed to collaborate on the assignment, except for discussing the text of the assignment with teachers and fellow students enrolled on the course in the same semester. Under no circumstances is it allowed to exchange, hand-over or in any other way communicate solutions or part of solutions to the exercises. It is not allowed to use solution from previous years, solutions from similar courses, or solutions found on the internet or elsewhere. It is not allowed to search for solutions or parts of solutions on the internet or to use solutions obtained with the help of AI tools.
How should I write my solutions? Here is a few tips:
Can I write my assignments in Danish? Ja. Du er meget velkommen til at aflevere på dansk. Det samme gælder til eksamen.
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.