====== Course Outline ====== * Introduction * Review of some Java basics * Object-oriented design * Fundamental data structures * Algorithm analysis * Recursion * Stacks, queues, and deques * List and Iterator ADTs * Trees * Priority queues * Maps, hash tables, and skip lists * Search trees * Sorting and selection * Graph algorithms