Artificial intelligence
Authors: Elaine Rich
Venue:  (1983)

The goal of this book is to provide programmers and computer scientists with a readable introduction to the problems and techniques of artificial intelligence (A.I.). The book can be used either as a text for a course on A.I. or as a self-study guide for computer professionals who want to learn what A.I. is all about. The book was designed as the text for a one-semester, introductory graduate course in A.I. In such a course, it should be possible to cover all of the material in the book. I also require that students read ten or fifteen selected papers from the literature so that they become familiar with the way in which A.I. research is conducted. The book can also serve as the text for a one semester undergraduate A.I. course, but it will not be possible to cover all of the material. Chapters 1-3, 5, 7, and 8 describe basic techniques for problem solving and knowledge representation, and so should be covered as completely as possible. Then, with whatever time remains, topics selected from the remaining chapters can be discussed. To use this book effectively, students should have some background in both computer science and mathematics. As computer science background, they should have experience programming and they should feel comfortable with the material in an undergraduate data structures course. They should be familiar with the use of recursion as a program control structure. And they should be able to do simple analyses of the time complexity of algorithms. As mathematical background, students should have the equivalent of an undergraduate course in logic, including predicate logic with quantifiers and the basic notion of a decision procedure. This book contains, spread throughout it, many references to the A.I. research literature. These references are important for two reasons. First, they make it possible for the student to pursue individual topics in greater depth than is possible within the space restrictions of this book. This is the common reason for including references in a survey text. The second reason that these references have been included is more specific to the content of this book. A.I. is a relatively new discipline. In many areas of the field there is still not complete agreement on how things should be done. The references to the source literature guarantee that students have access not just to one approach, but to as many as possible of those whose eventual success still needs to be determined by further research, both theoretical and empirical. Since the ultimate goal of A.I. is the construction of programs that solve hard problems, no study of A.I. is complete without some experience writing programs. Most A.I. programs are currently written in LISP or in a higher-level language based on LISP. But there is no standard dialect of LISP available, so any attempt to include actual LISP code as part of a text will inevitably lead to a great deal of frustration as students find that they cannot run the examples in the book on the machine they are using. For this reason, the algorithms presented in this book are described in sufficient detail to enable students to exploit them in their programs, but they are not expressed in code. A good book on the use of LISP in A.I. (such as [Winston, 1981; Charniak, 1980]) and a manual for the local dialect of LISP that students will be using are necessary supplements to this book.