Approaches to programming and computing problems
Parallel and distributed computing
Limits to algorithms
Searching
Determining and predicting efficiency
Compute time