This course treats various methods to design and analyze datastructures and algorithms for a wide range of problems. The most important new datastructure treated is the graph, and the general methods introduced are: greedy algorithms, divide and conquer, dynamic programming and network flow algorithms. These general methods are explained by a number of concrete examples, such as simple scheduling algorithms, Dijkstra, Ford-Fulkerson, minimum spanning tree, closest-pair-of-points, knapsack, and Bellman-Ford. Throughout this course there is significant attention to proving the correctness of the discussed algorithms. All material for this course is in English. The recorded lectures, however, are in Dutch.
Algoritmiek by TU Delft OpenCourseWare is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://ocw.tudelft.nl/courses/algoritmiek/.