In this class we will study classical data structures, their accompanying algorithms, and applications. These data structures include lists, stacks, queues, trees, graphs and arrays. We will discuss the basics of algorithm analysis and apply this to sorting, searching, and string matching algorithms. The semester will conclude with an overview of the class of algorithms that are NP-Complete.

The skills required for this class are a mixture of mathematics and the ability to program in C/C++. Students will be required to produce working programs using the department's Linux computer systems, as well as do homework involving mathematical manipulation and proof.

Students who wish to successfully complete this class are encouraged to:

- Attend class regularly.
- Read the book.
- Ask questions.
- Experiment.

This class meets MWF 2:00 - 2:50 Ross Hall room 136.