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:
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):
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.
A sample exam