So what is this course?

It's an intermediate level survey course on algorithms.

We're going to concentrate on programming and

problem solving in the context of real applications.

And our focus is going to be on two things, algorithms which are methods for

solving problems, and data structures which store the information

associated with the problem and go hands and hands with algorithms.

[COUGH] These are the basic topics that we'll cover in part one and

part two of the course.

The first part is data types sorting and searching.

We'll consider a number of data structures and algorithms that are basic

to all the methods we consider including stacks, queues, bags, and priority queues.

Then, we'll consider classic algorithms for sorting, putting things in order.

That's quick sort, merge sort, heat sort, and rated sorts.

And we'll consider classic methods for searching, including binary search trees,

red-black binary search trees, and hash tables.

The second part of the course is for more advanced algorithms,

including graph algorithms, classic graph searching algorithms,

minimum spanning tree, and algorithms.

Algorithms for processing strings including regular expressions and

data compression.

And then, some advanced algorithms that

make use of the basic algorithms that we developed earlier in the course.