TTIC 31010 and CMSC 37000-1
## Course description:This is a graduate level course on algorithms, with the emphasis on computational problems that are central to both theory and practice, and on developing techniques for the design and the rigorous analysis of algorithms and data structures for such problems.## List of topics:- Greedy algorithms
- Dynamic programming
- Amortized analysis
- Max flow, min cut
- Linear Programming
- Randomized algorithms and probabilistic analysis
- NP-hardness
- Approximation algorithms
- Advanced data structures
## Text:The main text is Algorithm Design by Kleinberg and Tardos, but not all the course material is covered by the book. We will also use Jeff Erickson's lecture notes.## Prerequisites:We will assume that the students are familiar with the following topics, usually covered in undergraduate algorithms courses: time and memory complexity analysis; sorting and searching; basic data structures: linked lists, trees, balanced trees, heaps; algorithmic paradigms: greedy methods, divide and conquer; basic graph and network algorithms: BFS, DFS, MST, shortest path algorithms, max flow. This is roughly equivalent to chapters 1-16 and 22-26 of CLRS, excluding the starred sections, or the material covered by the University of Chicago course CMSC 27200.## Course requirements:The grade is based on the final exam (30%) and four closed-book quizzes (70%). Only the best 3 out of 4 quizzes will count towards the grade. Quiz and exam dates (tentative):- Quiz 1: Jan 22
- Quiz 2: Feb 5
- Quiz 3: Feb 19
- Quiz 4: Mar 5
- Final exam: Mar 17, 8-10am
We will also distribute sets of practice problems. They do not count towards the final grade, and are intended to help you prepare for the quizzes. Solving them is strongly recommended. ## Homework Assignments:A sample exam Quiz Statistics |