Andrew McGregor

Associate Professor

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

  • Grade Brakedown:
    • 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.

    Date Topic Reading and Background
    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