A goal of the course is to introduce the concepts
behind the analysis of algorithms. The student will be able to

- Give a big-Oh analysis of a simple algorithm
- Explain the difference in algorithmic efficiencies among various
sorting and search algorithms
- Explain the differences in algorithmic efficiencies of various
operations on linked lists and arrays
- Explain how some algorithms with apparently poor performance
might be better choices than those with better performance analyses

A goal of the course is to introduce fundamental data structures
and their abstract data types. The student will be able to

- Modify abstract data types for lists, stacks, and queues
- Design simple abstract data types for other data structures

A goal of the course is to introduce trees as a natural storage
device. The student will be able to

- Trace level order, preorder, inorder, and postorder traversals
of binary trees
- Trace the implementation of searching a binary search tree
- Trace the implementation of inserting an item into a binary
search tree
- Trace the implementation of deleting and item from a binary
search tree

A goal of the course is to introduce hashing into
a simple table. The student will be able to

A goal of the course is to introduce graphs and
various algorithms applied to graphs. the student will be able to