Teaching     Home
Dartmouth Logo
Computer Science
Dartmouth College

Computer Science 231
Advanced Algorithms
Amit Chakrabarti


Spring 2016

Where: Sudikoff 214

When: 10A hour: TTh 10:00-11:50, X-hr W 15:00-16:00

Who: Instructor: Amit Chakrabarti, Sudikoff 107, Office hours: Mon 9:30-10:30 or by appointment
Teaching Assistant: Sagar Kale, Sudikoff 112, Office hours: Mon & Thu 14:00-15:00, or by appointment

What: This course follows up on our basic undergraduate-level algorithms course, covering a number of advanced topics and ideas in algorithm design and analysis. You will learn about the use of advanced data structures, amortized analysis, randomization, linear programming, and approximation. The focus will be on methodology and broadly-applicable fundamental principles, rather than specific problem domains.

Prerequisites: An undergraduate-level course in Algorithms (such as our CS 31)
  and: A strong mathematics background.

Lecture Plan: The following is a rough outline, and will very likely be changed once the course gets going.
Note that we will begin with our first class on Mar 31. We will likely use some X-hours later in the term. Please plan to keep yourselves available during the X-hour.

I. Review of basic paradigms and concepts
2. Mar 31 Divide-and-conquer; Dynamic programming  
3. Apr 5 Space-saving in dynamic programming; Algorithmic primitives for graphs  
4. Apr 7 Graph traversal; Shortest paths algorithms; Importance of data structures  
II. Some Advanced Data Structures
5. Apr 12 Fibonacci heaps; Splay Trees (Slides on Fib Heaps)
5x. Apr 13 (x-hr) Splay trees continued (Paper of Sleator & Tarjan)
6. Apr 14 Hashing; Universal hashing
7. Apr 19 Perfect hashing: linear-space and succinct (Paper of Fredman, Komlos & Szemeredi)
III. Some Advanced Graph Algorithms
8. Apr 21 Minimum spanning tree (MST); Algorithms of Kruskal, Prim, Boruvka  
9. Apr 26 Maximum flow; Push-relabel algorithms  
9x. Apr 27 (x-hr) Analysis of Push-relabel algorithms (Paper of Goldberg and Tarjan)
10. Apr 28 Push-relabel wrap-up  
11. May 3 Minimum cut; Algorithms of Stoer-Wagner and Karger-Stein  
IV. Linear Programming
12. May 5 Linear programming; Geometric intuition; Simplex algorithm  
13. May 10 Linear-algebraic formalism of LPs; Analysis of simplex algorithm  
14. May 12 LP duality; Complementary slackness  
15. May 17 Applications of LP duality  
V. Approximation Algorithms
15x. May 18 Review of NP-completeness; Vertex cover  
16. May 19 Set cover; Metric TSP; Weighted vertex cover and LP rounding  
17. May 24 Primal-dual schema; Vertex cover revisited; Weighted set cover; Randomization and Max-3SAT  
18. May 26 Semidefinite programming; Max cut and Max-2SAT  
19. May 31 not used  

Homework Sets: We will have a small homework associated with every class, to be submitted ideally by the start of the next class. In actuality, the deadlines will be as follows.

  • For homework associated with a Tuesday class, the deadline will be 12:00 noon on Friday of that week.
  • For homework associated with a Thursday class, the deadline will be 10:00am on the following Tuesday.

Please read this important document explaining various administrative details associated with the homework and exams in the course.

Final Exam: We will have a take-home final exam at the end of the term. You will have 72 hours to complete it. There will be some flexibility so that you can choose when to start, within a certain window.

Grading Criteria: Homework will count for 75% of the grade, and the final exam will count for 25%. I had toyed with the idea of requiring class presentations as part of the grading, but after considering the time available in the term I have decided not to do this.

As a rough guideline, I expect a good student to earn 60% of the available homework points, and 75% of the available final exam points. Exceeding these bars will be considered highly impressive.

Textbooks: There is no required textbook for this course. Instead we will use the following books and notes for reference.

  • Cormen, Leiserson, Rivest, Stein. Introduction to Algorithms (3rd edition).
  • Kleinberg, Tardos. Algorithm Design.
  • Erickson. Algorithms (lecture notes).
  • Research papers, as appropriate
Here is a description of the grading principles for these homework sets. Please also note all other applicable policies, including how the honor principle applies to this course.