This course introduces the topic of abstract data types.  Students will solve problems using the most common abstract data structures: lists, stacks, queues, trees, and hash tables.  Students will apply their knowledge by designing and implementing programs which use existing classes.  Classic algorithms will be examined.