Department of Computer Science | Institute of Theoretical Computer Science
Certain Master students may take the exam based on self-study (e.g., for Computational Biology and Bioinformatics Master). If you are not sure whether you are eligible, then please contact your study administration office for details.
In order to prepare for the exam, we provide a course summary and
literature, as well as the exercises of FS2016. We
also provide a list of previous
exams in English (where available) and German.
The course was taught once a
year during the spring semester (until FS2016); the covered material is relevant for both exams
offered after the spring and fall semester.
Peter
Widmayer, peter.widmayer "A.T." inf.ethz.ch
Thomas
Tschager, thomas.tschager "A.T." inf.ethz.ch
Lecture | Topics | Literature |
---|---|---|
1 | Introduction and Algorithm Design.
|
Cormen et al.: Chapter 1–3 |
2 | Algorithm Design by Induction.
|
Cormen et al.: Chapter 4.1 |
3 | Searching I: Searching. Computing the Median.
|
Cormen et al.: Problem 2.1-3, 2.2-3, 2.3-5 Chapter 9 |
4 | Searching II: Hashing.
|
Cormen et al.: Chapter 11 |
5 | Sorting I: Elementary Sorting Methods. Heapsort.
|
Cormen et al.: Chapter 2, Problem 2.2-2, 2-2, Chapter 6 |
6 | Sorting II: Mergesort, Quicksort.
|
Cormen et al.: Chapter 2.3.1 and 7 |
7 | Sorting III: Lower bounds. Radix sort. Dictionaries I: Basic concepts.
|
Cormen et al.: Chapter 8.1, 8.3, 10.2 |
8 | Dictionaries II: Binary Search Trees, AVL Trees.
|
Cormen et al.: Chapter 12.1-12.3 Goodrich et al.: Chapter 3.2 |
9 | Dictionaries III: AVL Trees. Amortized Analysis. Self-Organizing Linear Lists.
|
Goodrich et al.: Chapter 3.2 Cormen et al.: Chapter 17, esp. Problem 17-5 |
10 | Dynamic Programming 1
|
Cormen et al.: Chapter 15 |
11 | Dynamic Programming 2
|
Cormen et al.: Chapter 35.5 Vazirani: Chapter 8.1 and 8.2 |
12 | Algorithm design: divide-and-conquer, dynamic programming, greedy
|
Cormen et al.: Chapter 4.2, 15.5 and 16.3 |
13 | Self-organizing search trees: Splay trees
|
Goodrich and Tamassia: Chapter 3.4 |
14 | Graph Algorithms I
|
Cormen et al.: Chapter 22 |
15 | Graph Algorithms II
|
Cormen et al.: Chapter 23 |
16 | Graph Algorithms III
|
Cormen et al.: Chapter 19 and 23 |
17 | Graph Algorithms IV
|
Cormen et al.: Chapter 19 and 24.1–24.3 |
18 | Graph Algorithms V - Shortest paths
|
Cormen et al.: Chapter 24.1, 25.2 and 25.3 |
19 | Wunderbare Welt der Algorithmen.
|
|
20 | Backtracking, Branch-and-Bound.
|
Skiena: Chapter 7.1 Wolsey, Ch. 7.1–7.2 |
21 | Flows in Networks I.
|
Cormen et al.: Chapter 26.1 and 26.2 |
22 | Flows in Networks II.
|
Ahuja, Chapter 7.5 Cormen et al.: Chapter 26.2 – 26.3, Problem 26.3-4 |
23 | Geometric Algorithms I.
|
deBerg, Ch. 1.1 – 1.2 Cormen et al.: Chapter 33.1 – 33.3 |
24 | Geometric Algorithms II.
|
deBerg, Ch. 5.3, 10.1 – 10.3 Cormen et al.: Chapter 33.2 |
25 | Geometric Algorithms III.
|
deBerg, Ch. 5.3, 10.1 – 10.3 |
26 | External Memory Structures.
|
Cormen et al.: Chapter 18 |