An introduction to more advanced abstract data types such as lists, sets, trees, including balanced trees, and graphs. Algorithms for traversing, searching, determining connectivity, and so forth. An in-depth study of, and analysis of, the algorithms used to implement these structures. This course is offered in the spring semester.