While creativity plays an important role in the advancement of computer science, great ideas are built on a foundation of practical experience and knowledge. This book presents programming techniques which will be useful in both AI projects and more conventional software engineering endeavors. My primary goal is to enter- tain, to introduce new technologies and to provide reusable software modules for the computer programmer who enjoys using programs as models for solutions to hard and interesting problems. If this book succeeds in entertaining, then it will certainly also educate. I selected the example application areas covered here for their difficulty and have provided both program examples for specific applications and (I hope) the method- ology and spirit required to master problems for which there is no obvious solution. I developed the example programs on a Macintosh (TM) using the Macintosh Common LISP (TM) development system capturing screen images while the example programs were executing. To ensure portability to all Common LISP environments, I have provided a portable graphics library in Chapter 2. All programs in this book are copyrighted by Mark Watson. They can be freely used in any free or commercial software systems if the following notice appears in the fine print of the program's documentation: "This program contains software written by Mark Watson." No royalties are required. The program miniatures contained in this book may not be distributed by posting in source code form on public information networks, or in printed form without my written permission.