Most professional programmers are not well equipped to tackle algorithm design problems. The Algorithm Design Manual,written by Steven S. Skiena and published by Telos/Springer-Verlag is uniquely designed to provide access to combinatorial algorithms technology for computer professionals and students. This book is considerably different than other books on algorithms. Why?

• We reduce the design process to a sequence of questions to ask about the problem at hand. This provides a concrete path to take the non-expert from an initial problem statement to a reasonable solution.
• To provide a better perspective on how algorithm problems arise in the real world, we include a collection of `war stories', tales from our experience on real problems. The moral of these stories is that algorithm design and analysis is not just theory, but an important tool to be pulled out and used as needed.
• Since the practical person is usually looking for a program more than an algorithm, we provide pointers to solid implementations whenever they are available. We have collected these implementations on an enclosed CD-ROM and at the book WWW site, http://www.cs.sunysb.edu/~algorith for easy retrieval. With these implementations available, the critical aspect in algorithm design becomes properly modeling your application, instead of becoming intimate with the details of the actual algorithm. This focus permeates the entire book.
• Since finding out what is known about an algorithmic problem can be a difficult task, we provide a catalog of the 75 most important algorithmic problems as a major component of this book. By browsing through this catalog, the reader can quickly identify what their problem called, what is known about it, and how they should proceed to solve it. As an aid in problem identification, we include a pair of `before' and `after' pictures for each problem, illustrating the required input and output specifications.
• The algorithm catalog spans numerical problems and data structures as well as graph, string, and geometric algorithms. For each problem in the catalog, we provide an honest and convincing motivation showing how it arises in applications. If we could not find such an application, then the problem doesn't appear in this book.

Equally important is what we do not do in this book. We do not stress the mathematical analysis of algorithms, leaving most of the analysis as informal arguments. You will not find a single theorem anywhere in this book.

But what is a manual without software? This book comes with a substantial electronic supplement, a ISO-9660 compatible, multiplatform CD-ROM, which can be viewed using Netscape, Microsoft Explorer, or any other WWW browser. This CD-ROM contains:

• A complete hypertext version of the full printed book. Indeed, the extensive cross-references within the text are best followed using the hypertext version.
• The source code and URLs for all cited implementations, mirroring the Algorithm Repository WWW site. Programs in C, C++, Fortran, and Pascal are included, providing an average of four different implementations for each algorithmic problem.
• Over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes. Following these lectures provides another approach to learning algorithm design techniques.

Together, this book covers material sufficient for a standard Introduction to Algorithms course. Its assumes the reader has completed the equivalent of a second programming course, typically titled Data Structures or Computer Science II . Special textbook oriented-features include:

• In addition to standard pen-and-paper exercises, this book includes ``implementation challenges'' suitable for teams or individual students. These projects and the applied focus of the text can be used to provide a new laboratory focus to the traditional algorithms course.
• ``Take-home lessons'' at the beginning of each chapter emphasize the concepts to be gained from the chapter.
• This book stresses design over analysis. It is suitable for both traditional lecture courses, and the new ``active learning'' method, where the professor does not lecture instead guides student groups to solve real problems. The ``war stories'' provide a great introduction to the active learning method.
• A full set of lecture slides for teaching this course is available on the CD-ROM, keyed to unique on-line audio lectures covering a full semester algorithm course.
``I have not doubt that it will become a classic the day it is published. It has all the right ingredients: rich contents, friendly, personal language, subtle humor, the right references, and a plethora of pointers to resources.''
-- P. Takis Metaxas, Wellesley College.

``A major theme that runs through the book is that the most important technique to solve an algorithmic problem from the real world is to learn how to model the problem well. I did not believe this before; the book did an admirable job of convincing me that there is considerable truth in it.''
-- Giri Narasimhan, The University of Memphis.

``The questions on problem solving are good enough that they ought to be talked about in every programming class in the undergraduate curriculum.''
-- Ron Danielson, Santa Clara University.

Check out the preface and table of contents for more information. You may order this book, and are encouraged to do so. You might also be interested in my previous book, Implementing Discrete Mathematics .

If your WWW client does not support forms, please send an e-mail to ``` algorith@cs.sunysb.edu ``` with your name, e-mail address, and mailing address for further information.