homework introduction syllabus textbook grading exams news excuses teaching staff
[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.