Welcome to the Fall 2016 homepage for CMPSCI 311: Introduction to Algorithms.

• Instructors:
• Andrew McGregor (Email: mcgregor at cs) and Akshay Krishnamurthy (Email: akshay at cs).
• Office hours: 1:30-2:30pm Thursday (Andrew, CS 334) or 1pm Tuesday (Akshay, CS 258), or by appointment.

• TA:
• Archan Ray (Email: ray at cs) and Walter Brown (Email: webrown at cs).
• Office hours: 10am Friday (Archan, CS 207) and 3pm Wednesday (Walter, CS 207), or by appointment.

• Textbook: The textbooks will be
• Required: Algorithm Design, 1st Edition by Jon Kleinberg and Eva Tardos.
• Useful if you want a different perspective:
• Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein (Library has the e-book)
• Algorithms by Dasgupta, Papadimitriou, Vazirani

• Participation (10%): Discussion section activities and any in-class quizzes.
• Homework (25%): Weekly online quiz (in Moodle), homework, and programming.
• Midterm 1 (20%): Focuses on first third of the class.
• Midterm 2 (20%): Focuses on second third of the class.
• Final (25%): Covers all lectures.
• Homeworks, Exams, Material:
• Schedule and Slides: Here's an approximate schedule for the course. Note that this'll be updated as we go along depending on our progress and, hopefully, we'll get to squeeze in a couple of extra topcs. I'll add slides after each class (some links will be dead until the slides are added). Our slides are designed so that lectures include some material presented on the board. Another set of slides that roughly matches the material we cover can be found here.

Lec 1 6 Sept Introduction and Stable Matching Chapter 1
7 Sept No discussion.
Lec 2 8 Sept Algorithm Analysis Chapter 2.1, 2.2
Lec 3 13 Sept Graphs Chapters 3.1, 3.2
Disc 1 14 Sept
Lec 4 15 Sept Graphs Chapters 3.3-3.6
Lec 5 20 Sept Greedy Chapters 4.1
Disc 2 21 Sept
Lec 6 22 Sept Greedy Chapters 4.2
Lec 7 27 Sept Greedy Chapter 4.4
Disc 3 28 Sept
Lec 8 29 Sept Greedy Chapter 4.5, 4.6
Lec 9 4 Oct Divide and Conquer Chapter 5.1, 5.2, and 5.3.
Disc 4 5 Oct
Lec 10 6 Oct Divide and Conquer Chapter 5.4 and 5.5.
11 Oct No class. [Monday Schedule]
Disc 5 12 Oct
Lec 11 13 Oct Divide and Conquer
Lec 12 18 Oct Dynamic Programming Chapter 6.1 and 6.2.
Disc 6 19 Oct
Lec 13 20 Oct Dynamic Programming Chapter 6.4 and 6.5.
Lec 14 25 Oct Dynamic Programming Chapter 6.6, 6.7, 6.8, and 6.9.
Disc 7 26 Oct
Lec 15 27 Oct Dynamic Programming
Lec 16 1 Nov Network Flow Chapter 7.1, 7.2
Disc 8 2 Nov
Lec 17 3 Nov Network Flow Chapter 7.5
Lec 18 8 Nov Intractibility Chapter 7.10, 8.1
Disc 9 9 Nov
Lec 19 10 Nov Intractibility Chapter 8.2, 8.3
Lec 20 15 Nov Intractibility
16 Nov No discussion. [Friday Schedule]
Lec 21 17 Nov Intractibility
22 Nov No class. [Thanksgiving]
16 Nov No discussion. [Thanksgiving]
24 Nov No class. [Thanksgiving]
Lec 22 29 Nov Randomized Algorithms Chapter 13.1 and 13.2
Disc 10 30 Nov
Lec 23 1 Dec Randomized Algorithms Chapter 13.5
Lec 24 6 Dec Approximation Algorithms Chapter 11.1, 11.2
Disc 11 7 Dec
Lec 25 8 Dec Approximation Algorithms Chapter 11.3, 11.4 are relevant but we'll just cover a simplified version of this material.
Lec 26 13 Dec Review
Disc 12 14 Dec