CS 401 / MCS 401 Home Page

Spring, 2008

CS 401 / MCS 401 is an advanced undergraduate course / beginning graduate on computer algorithms. Although many of the algorithms covered in this course are used heavily in computer programs, and some have been incorporated into programming libraries, MCS 401 / CS 401 is not itself a programming course; no programming assignments will be given. The course covers general techniques for designing computer algorithms, as well as specific algorithms for a number of important computations (sorting, searching, shorted paths in graphs, etc.). The objectives of the course are

to explain and illustrate how a number of useful algorithms work,

to prove that they do work, when that is not obvious,

to analyze the performance (especially running time) of these algorithms, in a machine-independent way,

to discuss the strengths and weaknesses of the algorithms, and to compare several algorithms for the same problem,

to present general techniques for designing algorithms, and to show that many of the specific algorithms are examples of these general techniques.