| Syllabus (including office hours) | Lectures Synopsis| Saunders' homepage | CISC homepage |

## Lectures Synopsis page, CISC 320 Algorithms, Spring, 2011

This page contains a brief summary of each class topic and the associated reading, with links to online "handouts" that were referenced. This page morphs frequently, being updated at least weekly. You may need to reload it at each viewing to avoid being shown a stale version from your browser cache. Most recent items are at the top. Last updated May 16, 2011.

Resources: UDAlgorithms notes    Skiena's slides
Future: Brief predictions of class topics to be covered.

Mon, May 23 8:00AM-10:00AM Final Exam in Gore 117 (our classroom).

• Basics of reading covered: Skiena chapters 1-9 excluding 7, class notes (as outlined below), UDAlgorithms notes (on early topics), Selected items in hitchhiker's guide (Skiena part II), homeworks.
• Types of question: similar to midterm
• Emphasis: 3/4 on second half, 1/4 on first half.

Mon, May 16

• FFT, polynomial and integer multiplication
• easy, hard, harder, impossible
• review
• Homework #6 programming problem phase 2 due. Submit by email to Tim

Past: Brief summaries of class topics covered in reverse chronological order.

Fri, May 13

• quiz
• Red-Black trees
• Phase 1 program suitable as starting point for phase 2 is ~saunders/algorithms/lcss.cc on Strauss.

Wed, May 11

• Dictionary data structure
• Homework #6 programming problem phase 1 due

Mon, May 9

• Implementing dynamic programming for longest common subsequence
• Homework #6 problems 1, 2 due.

Fri, May 6

• Longest common subsequence

Wed, May 4

• Matrix chain multiplication

Mon, May 2

• Edit Distance
• more problems that yield to dynamic programming

Fri, Apr 29

• Introduction to dynamic programming
• fibonacci and longest increasing subsequence

Wed, Apr 27

• Closest pair of points (another problem from computational geometry).
• Divide and conquer algorithm for closest pair of points
• Tools for manipulating graphs

Mon, Apr 25

• Finish Graham scan algorithm for convex hull

Fri, Apr 22

• Graham scan algorithm for convex hull
• Reading: 17.2, Wikipedia Graham_scan article
• Homework #4 due

Wed, Apr 20

• Introduction to the use of NP for cryptography.
• RSA public key encryption scheme
• Reading: 18.6 and Wikipedia RSA article

Mon, Apr 18

• quiz 2 on approximation, reductions
• reduction of vertex cover to HAM (sketch)

Fri, Apr 15

• Reduction of 3-SAT to vertex cover.
• Summary of NP-Completeness

Wed, Apr 13

• Cook's theorem
• Homework #3 due

Mon, Apr 11

• Traveling Salesman Problem
• Approximation for TSP

Fri, Apr 8

• quiz on reductions in section 9.2, 9.3
• Maximal independent set (IS): reduction to GMS
• Hamiltonian cycle Problem (HAM)

Wed, Apr 6

• Optimization/Search/Decision problems
• The nature of reductions
• reduction of Sorting to Convex Hull.
• Vertex cover (VC): Def (in 9.5) and reduction to IS
• Reading: 9.2, 9.3, VC Def in 9.5, notes on hard problems

Mon, Apr 4

• exam results
• movie scheduling: Def and solution.
• Generalized movie scheduling (GMS) and maximal independent set (IS): defs.

Fri, Mar 25 Midterm exam

Wed, Mar 23

Mon, Mar 21

• log*(x) function
• All pairs shortest paths
• Homework assignment, hw2.pdf, is due Wed, April 6.

Fri, Mar 18

• union-find

Wed, Mar 16

• Kruskal's MST alg.
• dynamic disjoint sets

Mon, Mar 14

• Analysis of Prim's's MST alg.

Fri, Mar 11

• Correctness of Dijkstra's SSSP alg.
• Correctness of Prim's's MST alg.
• Run time of Dijkstra SSSP, Prim MST algorithms

Wed, Mar 9

• From BFS to Dijkstra to Prim
• Single source shortest paths in weighted graphs
• Dijkstra's SSSP algorithm
• Prim's MST algorithm

Mon, Mar 7

• Graph representation
• Breadth First Search and shortest paths.

Past: Brief summaries of class topics covered in reverse chronological order.

Fri, Mar 4

• Quick Sort
• Introspective Sort

Wed, Mar 2

• Priority queues, heaps, heapsort
• Reading: 3.5, 3.6, 4.3, 4.4

Mon, Feb 28

• Priority queues, heaps, heapsort
• Reading: 3.5, 3.6, 4.3, 4.4

Fri, Feb 25

• svn, course environment, makefiles, speedup

Wed, Feb 23

• Combining merge sort and insertion sort
• Subtleties of timing processes.

Mon, Feb 21

• Master theorem proof sketch
• Course programming environment:
• location of headers for sequence, data structures, algorithms
• timing and testing framework
• Reading: sections 4.3 and 4.4 (priority queues and heap_sort)
• Data structures for graphs

Fri, Feb 18

• Faster polynomial multiplication: T(n) = 3T(n/2) + Θ(n).
• Master theorem.
• Reading: Scan Chapter 3 (Data Structures).
• Homework assignment, hw1.pdf, is due Wed, March 2.

Wed, Feb 16

• Function approximation, "big-O" and friends.
• Exponentiation, binary search: T(n) = T(n/2) + Θ(1).
• polynomial multiplication: T(n) = 4T(n/2) + Θ(n).
• recall merge_sort: T(n) = 2T(n/2) +Θ(n).
• recall insertion_sort: T(n) = T(n-1) +Θ(n).
• Reading: Chapter 2 (emphasis on second half).

Mon, Feb 14

• Merge Sort (Skiena section 4.5, page 120.)
• Recurrence solution or upper bound by substitution method (guess, then inductively prove).
• Reading: Chapter 2 (emphasis on second half).

Fri, Feb 11

• Discussed two algorithms for Max_n_2nd_largest, one using about 3n/2 comparisons and one using about n + lg(n) comparisons.
• Insertion sort requires about n2/2 comparisons.
• Reading: Chapter 2 (emphasis on first half).

Wed, Feb 9

• Syllabus, Sakai site.
• Max_n_min problem solved in about 3n/2 comparisons.
• That is optimal (lower bound proof)
• Max_n_2nd_largest problem posed.

Mon, Feb 7

• Algorithmic problems are well specified.
• Maximum of a sequence requires n-1 comparisons.
• Moore's law continues but with new consequences (multiprocess vs GHz).

Some useful links: The Standard Template Library. The STL Documentation at SGI.