Syllabus for ICS 263
- Recursion
- integer multiplication [Karatsuba]
- Divide-and-Conquer and Master theorems
- matrix multiplication [Strassen, Pan], FFT
- closest pairs of points
- median selection
- Evaluation of relations
- transitive closure vs. matrix multiplication
- Boolean matrix multiplication [4 Russians]
- "easy" relations
- Dynamic programming
- multiplying matrices
- LCS
- Fibonacci numbers
- Nim, including use of stack programming
- incremental and stack programming - convex hull, maximum rectangle
- Greedy algorithms
- Trees
- Huffman trees
- optimal binary search trees
- Hu-Tucker algorithm
- tree isomorphism
- Union-Find algorithms
- Pattern matching
- failure functions [KMP]
- sublinear search [Boyer-Moore]
- position trees
- longest repeated factors [KMR]
- maximal palindromes [Manacher]
- NP-completeness
- P and NP
- reducibility, NP-completeness, Cook's theorem
- reductions
- Approximation algorithms
- epsilon approximation
- fully polynomial approximation algorithms
- pseudo-polynomial algorithms
- online algorithms and competitive analysis
- Randomization, probabilistic algorithms
- Sherwood - searching ordered linked list stored in arrays
- Las Vegas - 8 queens
- Monte Carlo - matrix multiplication verification
- primality testing, public-key encryption
Dan Hirschberg
Computer Science
University of California, Irvine, CA 92697-3425
dan at ics.uci.edu
Last modified: Mar 25, 1999