 Syllabus 
Latest Info 
Saunders' homepage 
TA homepage 
CISC homepage 
UDel homepage 
CISC 320 Algorithms and Advanced Programming
Latest Info page, Fall, 2006
Some useful links:
The Standard Template Library.
The STL Documentation at SGI.
Some source code
This page contains a brief summary of each class topic and the
associated reading and homework assignments.
For other course information see the
syllabus.
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 Dec 4, 2006.
Future:
Wed, Dec 13, 10:30am12:30pm. Final Exam
Wed, Dec 6.
 finish loose ends
 review
 Fifth homework due Friday, Dec 8 (but submit today if you can)
Past:
Mon, Dec 4.
 Approximation heuristic for bin packing
 Reading: BG Section 13.5.1
Fri, Nov 19.
 NPhardness and NPcompleteness
 SAT is NPhard
 Fifth homework assignment, Due Fri, Dec 8 (shoot for Dec 6):
BG Chapter 13, exercises 13.2, 13.3, 13.17
 Review exercises. BG Chapter 12, exercises 11a and 14. Not to hand in. Answers will be provided Dec 6.

Wed, Nov 27.
 Several polynomial time reductions.
Mon, Nov 25.
 P and NP.
 Some problems in NP that may not be in P
 Reading: BG Chapter 13
Wed, Nov 22.
 Fast polynomial multiplication
 Reading: BG Section 12.4
Mon, Nov 20.
 polynomial arithmetic
 solving linear systems reduces to matrix multiplication
Fri, Nov 17.
 Fast matrix multiplication
 Reading: BG Section 12.3.4
Wed, Nov 15.
 Classical matrix multiplication
 Triangular solve
 Solving linear systems reduces to LU decomposition and triangular solve
Mon, Nov 13.
 Matrix multiplication
 All pairs shortest path
 Transitive closure
 Reading: BG Chapter 9
Fri, Nov 10.
 Unionfind for dynamic set partitions.
 Reading: BG Section 6.6
 Fifth homework assignment, Due Fri, Nov 17:
Exercises 7.48, 8.14, 8.19, 8.26

Wed, Nov 8.
 MST algorithms, god is in the details.
Mon, Nov 6.
 using the fringe: Prim's and/or Dijkstra's algorithms.
 Reading: BG Chapter 8
Fri, Nov 3.
 Kruskal's minimal spanning tree algorithm.
 Reading: BG Section 8.4
Wed, Nov 1.
 Depth first search and connected components
 Reading: BG Section 7.5
Mon, Oct 30.
 Breadth first search in graphs
 Reading: BG Section 7.3
Fri, Oct 27.
 Depth first search in graphs
 Fourth homework assignment, Due Fri, Nov 3: Exercises 7.2, 7.3, 7.8.
 Reading: BG Section 7.4
Wed, Oct 25.
 go over midterm
 Graph terminology and representations
 Reading: BG Chapter 7
Mon, Oct 23. Midterm
Fri, Oct 20.
Wed, Oct 18.
 Hash tables, α < 1, repeat probing schemes
 Reading: BG 6.5
Mon, Oct 16.
 Third homework assignment, Due Mon, Oct 23: Exercises 6.19 and 10.6
 Closest pair analysis and the Master theorem
Fri, Oct 13.
 Closest pair of points in a set of x,ypairs.
 Handout: closest.C
Wed, Oct 11.
 Dynamic programming: optimal binary trees
 Huffman codes
 Reading: BG 10.4
Mon, Oct 9.
 Analysis of (1) dynamic programming and (2) bigger base case on performance of honeycomb walks.
 Reading: BG 10
 Update of second homework, with template for 2,3,4 tree traversal.
Fri, Oct 6.
 Dynamic programming
 Example: honeycomb.C, counting walks on a hexagonal tiling.
 Reading: BG Chapter 10 (esp. sections 2, 4)
Wed, Oct 4.
 Hash tables  α > 1, separate chaining
 Reading: BG 6.5
Mon, Oct 2.
 depth of red black tree is no more than 2lg(n). See
redblack/rbdepth.html.
 Netflix contest.
 Dictionary ADT vis a vis balanced ordered binary trees and vis a vis data type details.
 Reading: BG pg 95
Fri, Sept 29.
Wed, Sept 27.

 From (2,3,4) trees to 2,3 trees, to redblack trees, to btrees.
Mon, Sept 25.
 Balanced tree systems, (2,3,4) trees
Fri, Sept 22.
 finish amortized analysis
 Introduction to STL map<>
 Examples of map use: concordance wordcount
Wed, Sept 20.
Mon, Sept 18.
 Sorting by comparisons, summary of algorithms.
 Lower bounds for sorting by comparisons. (read BG 4.7)
Fri, Sept 15.
 Sort methods review (insertion, quick, randomized quick, mention of merge)
 pictorial proof that T(n) = O(n) + T(n1) => T(n) in O(n^2).
 pictorial proof that T(n) = O(n) + T(n/2) => T(n) in O(n).
 pictorial proof that T(n) = O(n) + 2*T(n/2) => T(n) in O(n*lg(n)).
 Defs of and distinction between average case analysis and expected case analysis.
Wed, Sept 13.

 Insertion Sort
 Introspective sort
 Reading: BG 4.2
 Handouts on sorting.
Mon, Sept 11.
 Quicksort
 quickselect, median
 Reading: BG 4.7
Fri, Sept 8.
Wed, Sept 6.
 Priority Queues, Heaps
 Reading: BG 4.8
 Handout: heapSort.h
Fri, Sept 1.
 Max&Min lower bound argument
 Correctness proofs
 The Standard Template Library container, Map, a powerful data structure template.
 Reading: BG 3.5 and scan the rest of chapter 3.
Wed, Aug 30, 9:05am. First Class.

Introduction to order statistics: Max, Max&Min, 2ndlargest.
 Course organization
 Reading assignment: BG 5.1, 5.2, 5.3, and scan chapter 1.
 Handout: syllabus.
 Advance notice: exercise 5.4 will be on the first homework.
saunders@cis.udel.edu