Wednesday, October 8, 2008

Compared to What?: An Introduction to the Anaylsis of Algorithms (Principles of Computer Science Series

Compared to What?: An Introduction to the Anaylsis of Algorithms (Principles of Computer Science Series)
Customer Review: An approachable and entertaining introduction to the design and analysis of algorithms.

I strongly disagree with the first comment on this item, entitled "'Cutesy-poo' approach detracts from the content."



As a student in the Computer Science major at Yale University in spring 1994, I used this textbook in Professor Michael Fischer's course, "Computer Science 365b: Design and Analysis of Algorithms."



This book was a welcome breath of fresh air compared to every other title on algorithms that I had ever seen. It described how the study of algorithms need not be daunting, by explaining that every problem at some point did not have a solution, and described in great detail the exploratory process for finding solutions for designing and analyzing algorithms.



Further, it approached the topic in a fun and humorous manner, with numerous quotations and illustrations from works by Lewis Carroll.



It proved an ideal textbook for overcoming the formidable topic of designing and analyzing algorithms for students lacking self-confidence in this topic. This textbook proved to be a key tool for conquering this required course.



Benjamin L. Russell

Customer Review: Making algorithms interesting

Algorithms can be very dry and boring. Anyone who has had a boring tenured professor read directly from his textbook during class understands this.

Rawlins accurately captures the essence of solving theoretical problems, and presents it in a way accesible to a computer science major. (Relevant at the senior or 1st year graduate level) You'll come away with less depth than the Knuth title, but much more appreciation and understanding for the How and Why of problem solving.

This book is one of the very few that survived the trip from classroom to permanent bookshelf.

Friday, October 3, 2008

Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications


Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications (Chapman & Hall/Crc Computer and Information Sciences)
Natural computing brings together nature and computing to develop new computational tools for problem solving; to synthesize natural patterns and behaviors in computers; and to potentially design novel types of computers. Fundamentals of Natural Computing: Basic Concepts, Algorithms, and Applications presents a wide-ranging survey of novel techniques and important applications of nature-based computing. This book presents theoretical and philosophical discussions, pseudocodes for algorithms, and computing paradigms that illustrate how computational techniques can be used to solve complex problems, simulate nature, explain natural phenomena, and possibly allow the development of new computing technologies. The author features a consistent and approachable, textbook-style format that includes lucid figures, tables, real-world examples, and different types of exercises that complement the concepts while encouraging readers to apply the computational tools in each chapter. Building progressively upon core concepts of nature-inspired techniques, the topics include evolutionary computing, neurocomputing, swarm intelligence, immunocomputing, fractal geometry, artificial life, quantum computing, and DNA computing. Fundamentals of Natural Computing is a self-contained introduction and a practical guide to nature-based computational approaches that will find numerous applications in a variety of growing fields including engineering, computer science, biological modeling, and bioinformatics.

Customer Review: Great book

I have to study about data mining and the professor recommended this book. After reading it, I think it's a great one. No wonder why the professor likes it.

Tuesday, September 30, 2008

Introduction to Algorithms (MIT Electrical Engineering and Computer Science)


Introduction to Algorithms (MIT Electrical Engineering and Computer Science)
The first edition won the award for Best 1990 Professional and Scholarly Book in Computer Science and Data Processing by the Association of American Publishers. This edition is no longer available. Please see the Second Edition of this title.

Customer Review: The best textbook on algorithms, but it is not a programming book.

I used this book for a graduate level Algorithms course, and I really liked it. It is packed full of content on a wide range of topics. While this book does provide some high-level implementations of algorithms in pseudo-code, you will not find any examples of how to program algorithms in this book. That's really not what this book is meant for anyways.

I found the reading to be easier than Knuth on similar topics, but you still need to have sufficient mathematical background in order to keep up (statistics, discrete math, some calculus). Also, unlike many technical books I've read recently, I did not find any mistakes, not even a typo.

Some people are not aware that the MIT Open Courseware website has some excellent free video course lectures that use this book. I highly recommend at least viewing the first three or four of those lectures if you are new to this topic because they compliment this book very well. Make sure you understand the first four chapters of this book before moving on to other topics.

Also, since it had been a while since I had the math as an undergraduate, I was relieved to learn that this book had several appendices that provided a review of the math topics required by the book.

The only negative about the book is that it does not provide answers to any of the exercises at the end of the chapters, so you really need to use this book in conjunction with a course in order to be able to check your progress and how well you are learning the information. If you're not using this book with a course, check the MIT Open Courseware website that I mentioned previously. It has some sample assignments you can use.

Customer Review: This version has NO CD

There are three versions of the second edition, only one of which has the CD:

The first one is published by the MIT Press, with the title "Introduction to Algorithms". This one has no CD. This is the one Amazon currently carries, so if you buy from Amazon, you get no CD.

The second one is published by McGraw-Hill, also with the title "Introduction to Algorithms". This one also has no CD.

The third one is published by McGraw-Hill too, but has the title "Introduction to Algorithms and Java CD-ROM". This is the one with the CD. It's much more expensive than the other two.

The CD in the third version contains implementations of the algorithms in Java.

To find someone that carries the CD version, search for this ISBN-13 number: 9780072970548 , or for "Introduction to Algorithms and Java CD-ROM" .

Note: Some listings that come up for the ISBN number will not be the correct version. Look carefully for "and Java CD-ROM" before buying.

Wednesday, September 24, 2008

The Design and Analysis of Algorithms (Monographs in Computer Science)


The Design and Analysis of Algorithms (Monographs in Computer Science)
The design and analysis of algorithms is one of the two essential cornerstone topics in computer science (the other being automata theory/theory of computation). Every computer scientist has a copy of Knuth's works on algorithms on his or her shelf. Dexter Kozen, a researcher and professor at Cornell University, has written a text for graduate study of algorithms. This will be an important reference book as well as being a useful graduate-level textbook.

Customer Review: covers a lot of topics, sometimes difficult to follow

This book covers a lot of interesting topics and is very up-to-date with current research results in the field. Its main drawback is that it has few examples. It is also at times hard to follow, unless the reader is already somehow familiar with the material.

Customer Review: Excellent supplementary text for a graduate course

This book is basically a set of lecture notes used by Prof. Kozen at Cornell, plus some practise 'homework' exercises.

As such, it isn't really a textbook, and can't be used as the only book for a course in the design and analysis of algorithms - for that, you'll need the books by Aho et al, or Cormen et al. (Knuth's books, of course are great for the topics they cover; and while on the book by Cormen et al, there's a second edition now, since September 2001).

However,this is an excellent self-study supplement. There are 40 lectures, each being a concise, self-contained discussion on a chosen topic. Thus, you get a condensed presentation of the important points, along with invaluable insights from Prof. Kozen.

Another feature which makes this a great option for self-study/rapid review is that each chapter ends with 'homeworks', for which answers have been provided. There's a set of miscellaneous exercises as well.

It is important to realize that this is a graduate text, for those who are already familiar with data structures and algorithms. This is not an introductory text by any means, and would ill serve that purpose.

The author presumes a fairly strong background in basic data structures and algorithms as well as mathematics on the part of the reader, without which it may be very difficult to follow the presentation.


All in all, if you're doing a graduate course in the design and analysis of algorithms, then this is a superb choice for self-study, practising problem-solving and rapid review of already familiar topics.

The Design and Analysis of Computer Algorithms (Addison-Wesley Series in Computer Science and Information Processing)


The Design and Analysis of Computer Algorithms (Addison-Wesley Series in Computer Science and Information Processing)
Customer Review: Very effective introduction to algorithms

The book used in my graduate Intro to Algorithms course, and I think the follow-on. While I am obviously not as well read in this subject as many of the other reviewers, I can say "it worked", and indeed worked well. A course that has a weak text or teacher will not inspire... A-H-O/DACA and Prof. Carlson made the material exciting, even to an "architecture guy". My interests in grad school in the early 80's revolved around tessellation automata (aka systolic arrays and other highly regular compute structures) and big steaming fast computer structures. A-H-O provided me with the best understanding of the kinds of problems faced by the computers which interested me the most, and the kinds of tools needed to understand computational impact and algorithmic structuring of solutions to them. I sincerely with I hadn't lost my copy with the hundreds of annotations in the margins.

Customer Review: still the classic

One of the classics -- a readable and practical textbook with dozens of problems and projects. Great as a reference to basic data structures and algorithms, too!

Sunday, September 21, 2008

Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology


Algorithms on Strings, Trees and Sequences: Computer Science and Computational Biology
String algorithms are a traditional area of study in computer science. In recent years their importance has grown dramatically with the huge increase of electronically stored text and of molecular sequence data produced by various genome projects. This book explains a wide range of computer methods for string processing. It also contains extensive discussions on biological problems that are cast as string problems, and on techniques to solve them. The book is both a reference for computer scientists and computer-oriented professionals in biology and bio-informatics and a textbook for graduate and advanced undergraduate courses on string algorithms and on computational biology.

Customer Review: phenomenal

This book is absolutely excellent. Gusfield walks the reader from simple concepts in string matching through advanced in a way that I found very easy to follow. Every bioinformatics researcher should have copy of this text.

Customer Review: Well Written Text Book

A well written text book with an obvious bias to biological application, but maybe most useful for its clear explanation and rigour of string algorithms.

Friday, September 19, 2008

Data Structures and Algorithms (Addison-Wesley Series in Computer Science and Information Pr)


Data Structures and Algorithms (Addison-Wesley Series in Computer Science and Information Pr)
Customer Review: Let's not get too excited

Hyperbolic remarks about this book will mislead you into thinking that this book is absolutely unique, when it's not. The material here is standard and present on many, many algorithms and data structures book.



Furthermore, this book is dated, as it uses Pascal. It has very little relevance for today's world of collections of data structures made by experts (on Java, C#, Eiffel, Smalltlak, etc.) which are resources you need to know how to tap into to be more productive.



And as a last point, algorithm analysis is not the strong point of this book either, as it is just a late chapeter in the book and gets nowhere near advanced (i.e., real) algorithmic analysis (for which you will need higher math, such as calculus and probability).



Nevertheless, it's a good book but I don't know if you should buy it instead of that other, nice and new book using Java 5.0 using generics.

Customer Review: An okay book!

It is just an okay book, not extraordinary in any way. Especially, this is certainly not for the novice in this topic, i.e., it is certainly not a good introductory book. So if you are new to data structures and algorithms, stay away from this book, go for some good introductory book.



For the advanced readers, it is an okay book. Better books are available, e.g., books by Cormen et al. and Robert Sedgewick.



The book is written in a way not very intersting or engaging. The algorithms are not explained in detail. Often things are left unexplained or assumed that the reader already knows it. Algorithms are presented in pseudocode, which causes problems especially for the readers familiar to some particular programming language.

Thursday, August 21, 2008

Collective Intelligence


Editorial Reviews
Product Description
Want to tap the power behind search rankings, product recommendations, social bookmarking, and online matchmaking? This fascinating book demonstrates how you can build Web 2.0 applications to mine the enormous amount of data created by people on the Internet. With the sophisticated algorithms in this book, you can write smart programs to access interesting datasets from other web sites, collect data from users of your own applications, and analyze and understand the data once you've found it. Programming Collective Intelligence takes you into the world of machine learning and statistics, and explains how to draw conclusions about user experience, marketing, personal tastes, and human behavior in general -- all from information that you and others collect every day. Each algorithm is described clearly and concisely with code that can immediately be used on your web site, blog, Wiki, or specialized application. This book explains: Collaborative filtering techniques that enable online retailers to recommend products or media Methods of clustering to detect groups of similar items in a large dataset Search engine features -- crawlers, indexers, query engines, and the PageRank algorithm Optimization algorithms that search millions of possible solutions to a problem and choose the best one Bayesian filtering, used in spam filters for classifying documents based on word types and other features Using decision trees not only to make predictions, but to model the way decisions are made Predicting numerical values rather than classifications to build price models Support vector machines to match people in online dating sites Non-negative matrix factorization to find the independent features in adataset Evolving intelligence for problem solving -- how a computer develops its skill by improving its own code the more it plays a game Each chapter includes exercises for extending the algorithms to make them more powerful. Go beyond simple database-backed applications and put the wealth of Internet data to work for you. "Bravo! I cannot think of a better way for a developer to first learn these algorithms and methods, nor can I think of a better way for me (an old AI dog) to reinvigorate my knowledge of the details." -- Dan Russell, Google "Toby's book does a great job of breaking down the complex subject matter of machine-learning algorithms into practical, easy-to-understand examples that can be directly applied to analysis of social interaction across the Web today. If I had this book two years ago, it would have saved precious time going down some fruitless paths." -- Tim Wolters, CTO, Collective Intellect

About the Author
Toby Segaran is a software developer and manager at Genstruct, a computational systems biology company. He has written free web applications for his own use and put them online for others to try, including: tasktoy, a task management system; Lazybase, an online application that lets users design, create and share databases of anything they like; and Rosetta Blog, an online tool for practicing Spanish and French by reading blogs along with their translations and lists of common words. Each of these has several hundred regular users. His blog is located at kiwitobes.com.