CS 401 / MCS 401 Home
Page
Fall, 2007
CS 401 / MCS 401 is an advanced undergraduate
course 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.
Students are expected to have a reasonable
knowledge of a computer language (preferably C, C++, or Java), a course on data
structures, and a background in calculus, discrete mathematics, and very
elementary statistics.
 |
Organization of
course
|
 |
Homework Assignments
(from textbook, unless otherwise indicated)
 |
Week #1
Exercises (due Fri, Sep 7) |
 |
Week #2
Exercises (due Fri, Sep 14) |
 |
Week #3
Exercises (due Fri, Sep 21) |
 |
Week #4
Exercises (due Fri, Sep 28) |
 |
Week #5-6
Exercises (due Fri, Oct 12) |
 |
Week #7
Exercises (due Fri, Oct 19) |
 |
Week #8-9 Exercises (due Fri, Nov 2) |
 |
Week
#10-11 Exercises (due Wed, Nov 14) |
 |
Week #12
Exercises (due Wed, Nov 21) |
 |
Week
#13-14 Exercises (due Wed, Dec 5) |
|
 |
Homework
Solutions
|
 |
Exams (study
guides, solutions)
|
 |
Handouts (require
Adobe Acrobat Reader)
|
 |
Useful links
|