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.