[WPI]
[CS] [cs504]
cs504, Spring 2004 Course Introduction
This course, Analysis of Computations
and Systems, is about analysis of algorithms, part of the theoretical
foundations of computer science. The word 'analysis' above is emphasized
to highlight the fact that more attention will be given to mathematical
techniques of the analysis of algorithms. In this course the following
tools for the analysis of computer programs and systems are studied:
probability, combinatorics, the solution of recurrence relations,
and the establishment of asymptotic bounds. A number of algorithms
and advanced data structures are discussed, as well as paradigms
for algorithm design.
This course is about analysis of algorithms. This material
is part of the theoretical foundations of computer science. Time-wise,
the mathematical tools of the analysis get most of the attention.
We will examine analytical tools and use them to discuss the efficiency
of some of the most widely used algorithms in computer science.
Examples include searching and sorting; more examples will be drawn
from across much of computer science.
Expected Background
This course expectes you understand the following material, which
can be acquired by taking the WPI graduate courses cs501
and cs507:
- introductory data structures and algorithms (at the undergraduate
level),
- discrete structures (such as arrays, lists, trees...)
- and just as important -- a certain level of mathematical maturity
is needed. More exactly: an interest in deriving results by calculation.
One more remark; you will be expected to have access to and be
able to use a symbolic computation system, like Maple,
Mathematica, ScratchPad, Maxima/Macsyma,
Mathcad, etc. The school has a very wide
ranging license for Maple. You can use it on some central machines
(of the CCC and math), some CS machines, and also get a copy for
your own machine, for most platforms. The reason: while some of
the material we cover requires you to learn techniques of calculating,
and then you should do the homework by hand, when the going gets
heavy, and surely when we use these techniques, there is
no need to be stubborn about it -- just as you do simple numerical
calculations on back of an envelope, and for anything half serious
use a calculator or computer. This will allow me to be able to assign
more interesting homework.
Course Meetings:
The course meets every week
- Wednesday (Worcester, Room FL 311) and Thursday (MetroWest,
Room 207), 6:00--8:50pm.
- Help session with TA: Mondays 5 -- 7 pm.