NB Webrecordings of the lectures are made available via Blackboard (see Course Content). You may also find it useful to view some of the lectures by Charles Leiserson (the L from CLRS) and Erik Demaine, that are available via Videolectures.net

week | day | topic | book chapter | |
---|---|---|---|---|

36 | 7-9 | Lecture 1: Introduction to the course, Growth of functions | CLRS 3.1 | |

37 | 14-9 | Lecture 2: Data structures 1: Stacks, queues, lists; Graph algorithms 1: BFS CLRS 10.1-10.2, 22.1-22.2 | ||

38 | 21-9 | Lecture 3: Graph algorithms 2: DFS, parenthesis theorem, classification of edges as tree edges, back edges, forward and cross edges, topological sorting, strongly connected components | CLRS 22.3-22.5 | |

39 | 28-9 | Lecture 4: Graph algorithms 3: Dijkstra (slides 1-42) + Data structures 2: Heaps | CLRS Chapter 24, pages 643-650 + Sc24.3 and Chapter 6 | |

40 | 5-10 | Lecture 5: Graph algorithms 4: Bellman-Ford (slides 1-29), Flow algorithms (Ford-Fulkerson) | CLRS Chapter 24, Sc24.1 and Chapter 26, Sc26.1-26.2 | |

41 | 12-10 | Lecture 6: Graph algorithms 5: Flow algorithms (max flow min cut theorem, maximum bipartite matching) | CLRS Chapter 26, Sc26.2-26.3 (background material: survey paper in CACM journal (with video)) | |

42 | 16-10 | First practical assignment is made available | ||

19-10 | Lecture 7: Data structures 3: Binary Search Trees | CLRS Chapter 12 | ||

43 | 26-10 | Lecture 8: Data structures 4: Red-Black Trees | CLRS Chapter 13 (you may find it helpful to check out this nice tool that visualizes the different operations on Red-Black trees) | |

44 | Fall break
| |||

45 | Fall break
| |||

46 | 16-11 | Deadline first practical assignment | ||

16-11 | Lecture 9: Recurrences and divide and conquer | CLRS Chapter 4 | ||

47 | 23-11 | Lecture 10: Dynamic programming 1 | CLRS Chapter 15 | |

48 | 30-11 | Lecture 11: Dynamic Programming 2 | CLRS Chapter 15 | |

1-12 | Second practical assignment is made available | |||

49 | 7-12 | Lecture 12: Greedy algorithms | CLRS Chapter 16.1 and 16.2, Chapter 23 (for discussion of union-find data structure used in implemantation of Kruskal's algorithm, see Chapter 21, in particular 21.3) | |

50 | 14-12 | Lecture 13: Randomized algorithms | CLRS Chapter 5.1-5.3, 9.2 | |

51 | 21-12 | Lecture 14: To be determined | ||

2 | 11-1 | Deadline second practical assignment | ||

11-1 | No lecture | |||

3 | 18-1 | No lecture | ||

4 | 24-1 | Exam, 12.30-15.30, HAL 2 |