New Stuff:

All pairs shortest path
B+ trees - General info
Boyer-Moore String pattern recognition - How it works/Simple character jumps/Suffix jumps
Genetic Algorithms - how they work, components (i.e., fitness function, populations, breeding, mutation, ...)
Huffman Codes
P/NP - What is P? What is NP?
Showing a problem is in NP
Showing a problem is NP complete (simple cases where we recognize similar problems)
Common NP complete problems:
    Hamiltonian Circuit/Path, Traveling Salesman, CNFSAT, 3CNFSAT, Vertex Cover, Partition, Clique Decision Problem, Independent Set,  Sum of Subsets, Parallel processor job allocation problem, 0/1 Knapsack.

Old Stuff not covered completely on the midterm:

Analysis of run time
General distinctions between various algorithmic methods (Greedy/Divide and Conquer/Dynamic Programming/Backtracking)
Union/Find algorithm

Final will be at least 60% stuff since last midterm but ... as usual, even later stuff will often use things from earlier in the course. For example, an analysis of later stuff will use analysis methods from earlier.

Of course it will be open book/open notes/ ... with no calculators or computers allowed.