CS 577: Introduction to Algorithms

    Noland 168 MWF 9:55-10:45 AM
    Fall 2014
 



      Course info
      Lectures
      Homeworks
      Calendar
      Piazza


    Course info: Click here for info on the course content, text, grading, exams, etc.; See sidebar for quick links.
    Calendar: This page has information about staff office hours, review sessions, homework release and due dates, and the exam schedule.
    Online discussion site: We will conduct discussions via Piazza.
    Review sessions: The TA Gautam will lead review sessions every week discussing example problems relevant to the previous week's lectures. Review sessions will be held on Mondays and Thursdays at 6 p.m.; students are free to attend either one. Discussion contents will be posted on Piazza 3-4 days ahead of time. Location: CS 1221.

    Schedule and readings

    The following is a tentative list of topics and a collection of material relevant to lectures. More information and links will be added as the semester proceeds.

    Date Lec # Topic Readings/Notes/Slides Handouts/Other Info
    9/3 1 Intro; Computing Fibonacci numbers §2
    9/5 2 Divide & Conquer algorithms: searching and sorting §2, §5.1, §5.2, slides
    9/8 3 D&C: Mergesort, sorting lower bound §5.1, §5.3, notes
    9/10 4 D&C: counting inversions, closest pair of points §5.3, §5.4, slides HW1 out
    9/12 5 Random events and variables §13.3
    9/15 6 D&C: Quicksort §13.5
    9/17 7 D&C: Quickselect, deterministic linear-time selection §13.5, notes on Piazza
    9/19 8 Selection continued §13.5, notes on Piazza, Selection demo
    9/22 9 Hashing §13.6
    9/24 10 Universal hash functions §13.6 HW1 due, HW2 out
    9/26 11 Closest pair of points using hashing §13.7
    9/29 12 Graph connectivity: BFS, DFS §3.1, 3.2, 3.3, BFS demo, DFS demo
    10/1 13 Directed graphs, topological ordering §3.5, 3.6
    10/3 14 Shortest paths in weighted graphs §4.4
    10/6 15 Shortest paths continued §4.4, 2.5, Dijkstra's demo
    10/8 16 Minimum spanning trees; greedy algorithms §4.5, 4.6 HW2 due, HW3 out
    10/10 17 Minimum spanning trees contd. §4.5, 4.6, Prim's demo, Kruskal's demo
    10/13 18 Interval scheduling: unweighted and weighted §4.1, 6.1
    10/15 19 Dynamic Programming: interval scheduling §6.1, 6.2, unweighted demo, weighted demo
    10/17 20 DP: interval scheduling continued § 6.1, 6.2
    10/20 No lecture HW3 due
    10/22 21 DP: Knapsack § 6.4
    10/24 22 DP: applications to computational biology § 6.5, 6.6, (optional) 6.7
    10/27 23 DP: Shortest paths revisited § 6.8, (optional) 6.9
    10/29 24 More shortest paths § 6.8, (optional) 6.9 HW4 out
    10/31 25 Finish Bellman Ford § 6.9
    11/3 26 Network Flow § 7.1, 7.2
    11/5 27 Ford Fulkerson algorithm § 7.2, 7.3, F-F demo
    11/7 28 Ford Fulkerson analysis, Edmond Karp algorithm § 7.2, 7.3, notes on Piazza
    11/10 29 Applications of network flow § 7.5, 7.6
    11/12 30 More applications of network flow § 7.5, 7.7, 7.9 HW4 due, HW5 out
    11/14 31 Applications of minimum cut § 7.10, 7.11
    11/17 32 Linear programming § 7.11, 11.6 (first half), Notes on Piazza
    11/19 33 Reductions and computational tractability § 8.1
    11/21 34 The classes P and NP, satisfiability § 8.2, 8.3
    11/24 35 Cook-Levin theorem, NP-Completeness § 8.2, 8.4
    11/26 36 Some NP-Complete problems § 8.5 HW5 due, HW6 out
    12/1 37 More NP-Complete problems § 8.6, 8.7
    12/3 38 More NP-Complete problems § 8.7
    12/5 39 Dealing with intractability
    12/8 40 More NP-Complete problems, Co-NP 8.8, 8.9
    12/10 41 Fast Fourier Transform 5.6
    12/12 42 Review HW6 due