ORDER/SUBSCRIBE          SPONSORS          CONTACT          WHAT'S NEW          INDEX/SEARCH

 

 

 

 

 

 

 

Reviewer biography

Current Reviews

Review Articles

Book Reviews Archive

Talking With Computers: Explorations in the Science and Technology of Computing

by Thomas Dean
Cambridge University Press, Cambridge UK, 2004
314 pp., illus. 35 b/w. Trade, $ 85.00; paper, $30.00,
ISBN: 0-521-83452-2; ISBN: 0-521-54204-9.

Reviewed by Martha Patricia Niño Mojica
Pontificia Universidad Javeriana de Bogotá, Colombia

ninom@javeriana.edu.co

Thomas Dean is currently Deputy Provost at Brown University and professor in its Computer Science Department. His main research interests include artificial life and robotics, in particular, control theory, machine learning, decision science, and probabilities. He has been involved with the Executive Council of the American Association for Artificial Intelligence (AAAI), Board of the Computing Research Association (CRA) as the representative for AAAI, and the board of trustees of International Joint Conferences of Artificial Intelligence (IJCAI).

The text is composed by a dynamic compilation of essays about the interdisciplinary aspects of computer science. Each chapter has both conceptual and practical exercises in a variety of programming languages including Prolog, Sheme–his favorite dialect of Lisp, Java, Mathematica, C++, MySQL, and even shell programming.

The first three chapters are about shell programming; it does not teach you shell programming but encourages you to learn it. This knowledge is practical for information passing, asynchronous processes, and an overview of organizing and searching information from databases using MySQL.

Chapters four, five, six, seven, and twelve focus on how to analyze a vague description in order to build a specification of what you want to do with your program. The important fact of the syntactic variation among programs is covered. There is also a description of computational models, their limitations, and an introduction to object-oriented programming and its significance for computers’ memory. It shows that is possible to build procedures that remember using objects that can hold internal states, and therefore "knowledge". Chapter nine describes flip-flops, the basic hardware memory units that make possible computer’s memory.

Chapters eight and fourteen talk about artificial intelligence, its definition, the role of modern agents, search engines, spiders, crawlers, or bots driven by artificial intelligence applications, decision tree algorithms, the application of probabilities applications that filter junk e-mail while they learn the user’s preferences, bots that search for precise words in the net or measure the importance of an article and make exotic searches of other types of data different from text.

Chapters ten, eleven, and thirteen treat additional complex and fascinating topics: Understanding program’s order of execution, multithreading or dynamic switching among multiple tasks using, interrupts, semaphores; Client Server Model that explains what happens when you click on a link on the internet, which communication protocols are involved: HTTP, FTP, SMTP, TELNET, and a overview of TCP/IP. Programs that run on the server or on the client side; Graph Theory, nodes, and the topology of physical systems useful for routing of delivering vehicles, robot navigation, designing cellular networks, laying down circuits, and problem solving within the network realm.

Chapter fifteen and sixteen are theoretical and positive reflections about the relation between computers and life. Firstly, the inevitable idea of simulating life through genetic algorithms that expose the dangers of Darwin’s theory of survival of the fittest. Should programmers pretend to be God? Secondly, the idea of explaining mental phenomena in computational terms that makes us consider essential concepts such as self, consciousness, intelligence, and agency.

The book is full of metaphorical language very useful to understand complex concepts about computation and make the book enjoyable, but by "talking with computers" Dean means programming. If you take the title of the book too literally, you might keep expecting to find at least one example of simple conversational programs made with Lisp, or some reference to conversational programs or systems similar to the computer therapist ELIZA. Although you can read this book without knowing how to program, Dean emphasizes that if you want to "talk" with computers, you will need to learn how to program. You will definitely obtain more of the book if you are already familiar with coding, in Linux and Scheme and if you are interested in artificial intelligence or robotics. Awakening your curiosity, this book gives an excellent informative landscape of the different skills, concepts, and applications involved in the broad field of artificial intelligence. If you want to explore more about a topic, you always can find inside the chapters valuable bibliography to go forward. The book is full of metaphorical language very useful to understand complex concepts about computation and make the book enjoyable. But if you take the title of the book too literally, you might keep expecting to find at least one example of simple conversational programs made with Lisp, or some reference to conversational programs or systems similar to the computer therapist ELIZA.

 

 




Updated 1st December 2004


Contact LDR: ldr@leonardo.org

Contact Leonardo: isast@leonardo.info


copyright © 2004 ISAST