[WPI]
[CS] [cs504]
cs504, Spring 2006 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:
- 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