List of topics to be covered in class (as time allows)
growth of functions asymptotic analysis
Karatsuba/Strassen
solving recurrence
probabilistic analysis, quick sort
linear time selection (randomized and deterministic)
lower bound of sorting
dynamic programming
divide and conquer
splay trees
binomial heaps
fibonacci heaps
treaps
union find
shortest path
max flow
depth first search
strongly connect components
string matching algorithm
fft
approximation algorithms
randomized algorithms
parallel algorithms
online algorithms
game theory
machine learning theory
NP-completeness