Introduction to Algorithms

CS 300 - SPRING 2015


[ Home | Lectures |Homeworks ]

TENTATIVE LECTURE SCHEDULE




Divide and conquer:
Tuesday, March 3:
  • Course Overview
  • Multiplying n-bit numbers
  • Reading: [DPV] Chapters 2.1 and 2.3
    Eric's notes

    Thursday, March 5:
  • Solving recurrences and the Master theorem
  • Reading: [DPV] Chapter 2.2
    Eric's notes

    Tuesday, March 10:
  • Randomized and Deterministic linear-time median
  • Reading: For the randomized algorithm, see [DPV] Chapter 2.4
          Deterministic alg. is not covered in [DPV], see notes from CMU
    Eric's notes

    Thursday, March 12: (extended class until 12:30pm)
  • FFT
  • Reading: [DPV] Chapter 2.6
    Eric's notes

    Tuesday, March 17 -- No class

    Thursday, March 19: (guest lecture by Otfried Cheong)
  • Closest pair of points

  • Dynamic Programming:
    Tuesday, March 24:
  • Fibonacci numbers
  • Longest increasing subsequences
  • Reading: [DPV] Chapter 6.2
    Eric's notes

    Thursday, March 26:
  • Longest common subsequence
  • Knapsack part I
  • Reading: [DPV] Chapters 6.3-6.4 and Wikipedia
    Eric's notes

    Tuesday, March 31:
  • Knapsack part II
  • Chain matrix multiply
  • Reading: [DPV] Chapters 6.4-6.5
    Eric's notes

    Thursday, April 2:
  • Bloom filters
    Eric's notes

  • Tuesday, April 7:
  • Dynamic Programming Review

  • Thursday, April 9:
  • Exam 1 on Dynamic Programming and Solving Recurrences
  • Reading: [DPV] Chapters 2 and 6

    Graph Algorithms:
    Tuesday, April 14:
  • Graph representations
  • Depth First Search (DFS)
  • Connectivity/connected components in undirected graphs
  • DFS on directed graphs
  • Topologically sorting a DAG
  • Reading: [DPV] Chapters 3.1 - 3.3
    Eric's notes

    Thursday, April 16:
  • Strongly Connected Components (SCCs)
  • Reading: [DPV] Chapter 3.4
    Eric's notes

    Tuesday, April 21 and Thursday, April 23: No class

    Tuesday, April 28:
  • BFS
  • Dijkstra's shortest path algorithm
  • Reading: [DPV] Chapters 4.1-4.4
    Eric's notes

    Thursday, April 30:
  • Minimum spanning trees (MST) - Prim's algorithm
  • Cut property for correctness of MST algorithms
  • Reading: [DPV] Chapters 5.1.2 and 5.1.5
    Eric's notes

    Tuesday, May 5: No class

    Thursday, May 7:
  • Kruskal's MST algorithm
  • Union-Find data structure
  • Reading: [DPV] Chapters 5.1.1, 5.1.3, and 5.1.4
    Eric's notes

    Tuesday, May 12:
  • Floyd-Warshall algorithm for all-pairs shortest paths
          and detecting negative weight cycles
  • Eric's notes

    Thursday, May 14:
  • Exam 2 on Graph Algorithms
  • Reading: [DPV] Chapters 3, 4, and 5

    NP-Completeness:
    Tuesday, May 19:
  • Search problems, NP, P
  • NP-completeness, Reductions
  • Reading: [DPV] Chapters 8.1-8.2
    Eric's notes

    Thursday, May 21:
  • 3SAT is NP-complete
  • Reading: [DPV] Chapter 8.3
    Eric's notes

    Tuesday, May 26:
  • Independent Set is NP-complete
  • Vertex Cover and Clique are NP-complete
  • Reading: [DPV] Chapter 8.3
    Eric's notes

    Thursday, May 28:
  • Subset-Sum and Knapsack are NP-complete
    Eric's notes

  • Tuesday, June 2: Class cancelled

    Thursday, June 4:
  • HW 8 solutions
  • Unsolvability of the Halting Problem
  • Reading: [DPV] End of Chapter 8

    Tuesday, June 9:
    Exam 3 on NP-completeness
    Reading: [DPV] Chapter 8

    Thursday, June 11:
  • TBD

  • Thursday, June 18:
    Final Exam