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.

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