Specification and design of data types, information structures, and algorithms. Collection classes and interfaces for sets, lists, stacks, queues, and dictionaries. Implementation techniques such as arrays, linked lists, hash tables, and efficient tree structures. Introduction to computational complexity. Problem solving and recursion. Sorting, indexing, and hashing. Lecture, 3 hours. Prerequisite: A grade of C (2.0) or better in CMSI 186.