This text is an example of computer science education in the 21st century. The author did not break the ice in introducing this new philosophy, but he is certainly enjoying the swim.
In the 20th century (well actually from about 1960), computer science consisted of hardware and programming languages. That philosophy is no longer representative of the needs of computing now, nor, I believe, in the future. The student must learn to reason, to put herself in the world of the fuzzy variable, and to face problems that cannot even be conceived at the present.
This text was a result of a university-wide decision to supply the undergraduate student with a course taught as a seminar, facilitated by a full professor, and complemented by interaction with other students. The course has at its root the principle that ordinary thinking can be thought of as computation. The text (and the course) investigates the connection between thinking and computing. The vehicle for this investigation is the logic-oriented programming language. Through the use of PROLOG, the whole question of what it means to program a computer shifts from a procedural approach to a new approach based on knowledge bases of atomic and conditional sentences.
The first two chapters of the text explore the relationship between thinking and computation, and describe a procedure for “thinking.” The last two chapters deal with the principles of the PROLOG language. The text then concludes with seven case studies specifically chosen to show the power and elegance of PROLOG as the vehicle for solving the computing problems.
Very early in the text, the reader becomes aware that Hector Levesque is classically educated. His knowledge of the philosophers and scientists who have wrestled with the problem of “what thought is” and its importance in the field of computer science is extensive.
This book is a major contribution to philosophy and computing. It should be on the bookshelf of every professor of arts and sciences.