Design and analysis of data structures and algorithms, including correctness and performance. Topics include time complexity, hash tables, sorting, search trees, self-balancing trees, greedy algorithms, dynamic programming, and graph algorithms. Pre: (205 or ICS 212) and (362 or ICS 241).