A study of the development and use of Abstract Data Types for storing and retrieving data. Data structures considered include lists, strings, tables, stacks, trees, and graphs. Pointers, templates, and classes are used for implementing data structures. Other topics include searching and sorting algorithms and recursion. Prerequisite: CS 120. Corequisite: MA 091 or higher. FA, SP.