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