Not many years ago, a review of artificial intelligence systems reported that the majority were coded in Lisp, a programming language that is particularly suited to their implementation. Lisp, which was devised in the earliest days of computers, survives in many systems today in various forms despite its clumsy syntax involving the extensive use of nested brackets.
Thomas Dean, an AI specialist, is an aficionado of Lisp, and most of the examples in his book are given in Scheme, a dialect of Lisp. That is not to say that he excludes more fashionable languages such as Java, indeed he points out that many programming languages vary only in minor syntactical ways from each other. This type of good sense permeates what is a broad and very readable introduction to aspects of computing, suitable for a fresher or someone considering degree-level study. It is sometimes like a heavily annotated bibliography, with a few well-chosen suggestions for further reading peppered with a good deal of illustrative material.
The examples used are of a realistic, practical problem-solving type. Dean explains his thinking and takes us through the process step by step for each problem. The problems themselves are small enough for the methods to be easily understood. A small caveat is that the reader is only infrequently challenged to take the problem further in the book, though the excellent companion website does provide a range of exercises as well as sample lectures.
There is an interesting chapter on object-oriented method, in which Dean quotes Alan Perlis's epigram that "it is easier to write an incorrect program than to understand a correct one" to justify his reservations about the method's supposed advantage in providing reusable code. This does not prevent him from giving an example to allow readers to judge the advantage themselves.
Dean describes his first encounter with genetic algorithms at the Santa Fe Institute and his initial scepticism. He explains how he was won over and gives an example of their use in helping to solve the classic travelling-salesman problem of how to find the shortest path between cities.
There are chapters on constraint programming, information retrieval, relational databases and graph theory. A constant message throughout the book is the importance of mathematics to all these areas. Dean does not shy away from using equations.
The weakest chapter is the final one, which discusses in a rather superficial way the philosophical aspects of machine intelligence. It is a shame that many authors feel they have to broach these questions when they have little to add to the debate.
But my main reservation concerns the tone of the opening part of the book, which uses expressions such as "incantation" and "magic" when referring to cryptic operating systems commands. These expressions reinforce the notion that this kind of activity should be restricted to wizards with esoteric skills gained by long hours of staring at computer screens in darkened rooms. But this is exactly the kind of stereotype that we need to get away from. The most successful practitioners of computing are those who are well grounded in the realities of user requirements.
Fortunately, the tone alters when the book gets going on the technical details and firmly establishes that computer programming is about solving problems with computers.
Tony Valsamidis is senior lecturer information systems and multimedia, University of Greenwich.
Talking with Computers
Author - Thomas Dean
Publisher - Cambridge University Press
Pages - 300
Price - £55.00 and £19.99
ISBN - 521 83425 2 and 54204 9