“AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java”, by George F. Luger and William A. Stubblefield, is available in pdf format.
This book is designed for three primary purposes. The first is as a programming language component of a general class in Artificial Intelligence. From this viewpoint, the authors see as essential that the AI student build the significant algorithms that support the practice of AI. This book is designed to present exactly these algorithms. However, in the normal lecture/lab approach taken to teaching Artificial Intelligence at the University level, we have often found that it is difficult to cover more than one language per quarter or semester course. Therefore we expect that the various parts of this material, those dedicated to either Lisp, Prolog, or Java, would be used individually to support programming the data structures and algorithms presented in the AI course itself. In a more advanced course in AI it would be expected that the class cover more than one of these programming paradigms.
The second use of this book is for university classes exploring programming paradigms themselves. Many modern computer science departments offer a final year course in comparative programming environments. The three languages covered in our book offer excellent examples on these paradigms. We also feel that a paradigms course should not be based on a rapid survey of a large number of languages while doing a few “finger exercises” in each. Our philosophy for a paradigms course is to get the student more deeply involved in fewer languages, and these typically representing the declarative, functional, and object-oriented approaches to programming. We also feel that the study of idiom and design patterns in different environments can greatly expand the skill set of the graduating student. Thus, our philosophy of programming is built around the language idioms and design patterns presented in Part I and summarized in Part V. We see these as an exciting opportunity for students to appreciate the wealth and diversity of modern computing environments. We feel this book offers exactly this opportunity.
The third intent of this book is to offer the professional programmer the chance to continue their education through the exploration of multiple programming idioms, patterns, and paradigms. For these readers we also feel the discussion of programming idioms and design patterns presented throughout our book is important. We are all struggling to achieve the status of the master programmer.
Table of Contents
- Idioms, Patterns, and Programming
- Prolog: Representation
- Abstract Data Types and Search
- Depth- Breadth-, and Best-First Search
- Meta-Linguistic Abstraction, Types, and Meta-Interpreters
- Machine Learning Algorithms in Prolog
- Natural Language Processing in Prolog
- Dynamic Programming and the Earley Parser
- Prolog: Final Thoughts
- S-Expressions, the Syntax of Lisp
- Lists and Recursive Search
- Variables, Datratypes, and Search
- Higher-Order Functions and Flexible Search
- Unification and Embedded Languages in Lisp
- Logic programming in Lisp
- Lisp-shell: An Expert System Shell in Lisp
- Semantic Networks, Inheritance, and CLOS
- Machine Learning in Lisp
- Lisp: Final Thoughts
- Java, Representation and Object-Oriented Programming
- Problem Spaces and Search
- Java Representation for Predicate Calculus and Unification
- A Logic-Based Reasoning System
- An Expert System Shell
- Case Studies: JESS and other Expert System Shells in Java
- ID3: Learning from Examples
- Genetic and Evolutionary Computing
- Case Studies: Java Machine Learning Software Available on the Web
- The Earley Parser: Dynamic Programming in Java
- Case Studies: Java Natural Language Tools on the Web
- Conclusion: The Master Programmer
Download Free PDF / Read Online
File size: 2.49 MB
Number of pages: 463
Link: Download individual chapters.