Skip to main content

The lecture schedule is tentative and subject to change as the term progresses.

Date Topic Required Readings
Thu, Jan 11, 2018 Review of CIS 160 and Stable Matching
  • Stable matching
Tue, Jan 16, 2018 Greatest Common Divisor, Insertion Sort
  • GCD
  • Insertion sort
  • CLRS 2.1, 2.2
Thu, Jan 18, 2018 Running Time and Growth Functions
  • Running time
  • Order of growth
  • CLRS Chapter 3
Tue, Jan 23, 2018 Running Time and Recurrence Relations
  • Analyzing code snippets
  • Recurrence relations
  • Practice problems
Thu, Jan 25, 2018 Divide and Conquer
  • Deterministic quick sort
  • Analyzing recursive functions
  • Mergesort analysis
Tue, Jan 30, 2018 Counting Inversions, Deterministic Selection, Recurrences
  • Counting inversions
  • Recurrences
Thu, Feb 1, 2018 Randomized Quicksort, Closest Pair, Simplified Master Thorem
  • Randomized quicksort analysis
  • Closest pair
  • Simplified master theorem
Tue, Feb 6, 2018 Stacks and Queues and Heaps
  • Stacks and queues
  • Heaps
Thu, Feb 8, 2018 Heaps and Huffman Coding
  • Heap sort
  • Priority queues
  • Huffman encoding
Tue, Feb 13, 2018 Huffman Coding
  • Huffman encoding
Thu, Feb 15, 2018 Midterm 1 (in-class)
Tue, Feb 20, 2018 Breadth-First Search, Depth-First Search
  • Breadth-first search
  • Depth-first search
Thu, Feb 22, 2018 Depth-First Search
  • Depth-first search
Tue, Feb 27, 2018 Bipartiteness, Topological Sort, Shortest Paths
  • Testing bipartiteness
  • Topological sort
  • Dijkstra's shortest path algorithm
Thu, Mar 1, 2018 Shortest Paths, Minimum Spanning Trees
  • Shortest Paths
  • Min Spanning Trees
Tue, Mar 13, 2018 Minimum Spanning Trees, Strongly Connected Components
  • MSTs
  • Strongly Connected Components
Thu, Mar 15, 2018 Union-Find, Strongly Connected Components
  • Union-find
  • Strongly connected components
Tue, Mar 20, 2018 Union Find
Thu, Mar 22, 2018 Hashing
  • Separate chaining
Tue, Mar 27, 2018 Tries, Hashing with Open Addressing
  • Open addressing
Thu, Mar 29, 2018 Midterm 2 (in-class)
Tue, Apr 3, 2018 Hashing and BSTs
  • Hashing (Open addressing)
  • Binary Search Trees
Thu, Apr 5, 2018 Binary Search Trees, AVL Trees
  • BST
  • AVL Trees
Tue, Apr 10, 2018 Skip Lists and AVL Trees
  • Skip Lists
  • AVL Trees
Thu, Apr 12, 2018 Skip Lists
  • Skip Lists
  • {"title"=>"Skip Lists"}
Tue, Apr 17, 2018 Mincut, Approximation Algorithms
  • Approximation Algorithms
Thu, Apr 19, 2018 TBD
Tue, Apr 24, 2018 TBD