Showing posts with label algorithms. Show all posts
Showing posts with label algorithms. Show all posts

Data Structures and Algorithms in C++ Review

Data Structures and Algorithms in C++
Average Reviews:

(More customer reviews)
This is one of the dozens of Data Structures and Algorithms books in the market and till now the worst I've ever seen. I have taken two DSA courses in my undergrad years, and now as a grad, I'm TAing that course.
The theoretical treatment of the book is superficial and too childish. Yet, there's too little practical value. They discuss the unnecessary linked list implementations of trees which is quite confusing for students. I am also amazed that they do not mention finding or removing an element in a BST. And, more importantly there's too little discussion of graphs.
I don't understand those professors trying to bog down students with useless details and complicated C++ codes. Rather, they should give the intuition and the theory behind the data structures and algorithms. Weiss' book is much better than this one. But, even that is obsessed with doing tricky things with C++.
Anyway, to sum up: This book is a garbage. Stay away unless it's required for the course you're taking in case you may need to do homeworks and such.

Click Here to see more reviews about: Data Structures and Algorithms in C++

* Provides a comprehensive introduction to data structures and algorithms, including their design, analysis, and implementation* Each data structure is presented using ADTs and their respective implementations* Helps provide an understanding of the wide spectrum of skills ranging from sound algorithm and data structure design to efficient implementation and coding of these designs in C++Wiley Higher Education

Buy Now

Click here for more information about Data Structures and Algorithms in C++

Read More...

Introduction to Algorithms (MIT Electrical Engineering and Computer Science) Review

Introduction to Algorithms (MIT Electrical Engineering and Computer Science)
Average Reviews:

(More customer reviews)
I was the instructor for a junior/senior course on Algorithms at the University of Southern California and I used this book as the textbook. Unfortunately, many of the students didn't like this book because they did not appreciate the mathematical flavor of the book. A course on Algorithms is useless without a sound background in discrete mathematics. Hence, this book assumes that you are reasonably strong in Discrete Mathematics.
I haven't seen a better textbook ! Here are some reasons:
1. The discrete mathematics foundations are present in the first few chapters of this book and so, you can quickly brush up on any discrete math background that you may require while using this book.
2. The style of writing is very light and at the same time, rigorous - almost as if you are in the middle of a lecture while reading the book.
3. The material is comprehensive and serves as an excellent reference for other courses and in your future career.
4. The exercises and problems provide a very good learning experience.
5. It's a good-looking book !

Click Here to see more reviews about: 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.

Buy Now

Click here for more information about Introduction to Algorithms (MIT Electrical Engineering and Computer Science)

Read More...

Machine Learning Review

Machine Learning
Average Reviews:

(More customer reviews)
I agree with some of the previous reviews which criticize the book for its lack of depth, but I believe this to be an asset rather than a liability given its target audience (seniors and beginning grad. students). The average college senior typically knows very little about subjects like neural networks, genetic algorithms, or Baysian networks, and this book goes a long way in demystifying these subjects in a very clear, concise, and understandable way. Moreover, the first-year grad. student who is interested in possibly doing research in this field needs more of an overview than to dive deeply into
one of the many branches which themselves have had entire books written about them. This is one of the few if only books where one will find diverse areas of learning (e.g. analytical, reinforcment, Bayesian, neural-network, genetic-algorithmic) all within the same cover.
But more than just an encyclopedic introduction, the author makes a number of connections between the different paradigms. For example, he explains that associated with each paradigm is the notion of an inductive-learning bias, i.e. the underlying assumptions that lend validity to a given learning approach. These end-of-chapter discussions on bias seem very interesting and unique to this book.
Finally, I used this book for part of the reading material for an intro. AI class, and received much positive feedback from the students, although some did find the presentation a bit too abstract for their undergraduate tastes

Click Here to see more reviews about: Machine Learning

This exciting addition to the McGraw-Hill Series in Computer Science focuses on the concepts and techniques that contribute to the rapidly changing field of machine learning--including probability and statistics, artificial intelligence, and neural networks--unifying them all in a logical and coherent manner. Machine Learning serves as a useful reference tool for software developers and researchers, as well as an outstanding text for college students.

Buy Now

Click here for more information about Machine Learning

Read More...

Algorithms, Data Structures, and Problem Solving With C++ Review

Algorithms, Data Structures, and Problem Solving With C++
Average Reviews:

(More customer reviews)
I just finished a semester at the University of Texas at Austin in which this book was the text book for an abstract data types class. The book is a good textbook, but not a good desk reference.
The book is obviously written with students in mind, using rhetorical questions, leaving vital areas unexplained as "exercises for the reader", etc. As an introductory text, in an introductory class, the book served its purpose, though the professor was required to explain some of the details that the book lacked. The code that is included in the book is all written in pseudo-code, most of it does not compile without some tweaking, and when a student is trying to grasp a diffucult concept in graph theory, the last thing that student wants is to have to trace through the program, line-by-line, to catch some error that is irrelevant to the larger problem, such as semicolons that have been left out, unmatched parenthesis, variable names that are not allowed by most of the commercial compilers.
The book does have a good learning curve, however, and makes for good reading when first approaching a new computer science concept; however, when having to program a particularly hard section of a certain data structure, wading through pages of diatribe against older methods is not what is needed at that time.
For instance, after spending a large portion of an entire chapter on AVL trees, Weiss proceeds to give example code (that doesn't compile on Borland 5.0, Visual C++, or GNU compilers without some tweaking), but leaves out a crucial method! When first learning about AVL trees, one of the lessons that was drilled into our heads was the diffuculty of AVL deletion... yet the book summed it up in *one* sentence: "As with most data structures, deletion is the hardest task; it is left as an exercise to the reader."
Argh.

Click Here to see more reviews about: Algorithms, Data Structures, and Problem Solving With C++

Experienced author and teacher Mark Allen Weiss now brings his expertise to the CS2 course with Algorithms, Data Structures, and Problem Solving with C++, which introduces both data structures and algorithm design from the viewpoint of abstract thinking and problem solving. The author chooses C++ as the language of implementation, but the emphasis of the book itself remains on uniformly accepted CS2 topics such as pointers, data structures, algorithm analysis, and increasingly complex programming projects.Algorithms, Data Structures, and Problem Solving with C++ is the first CS2 textbook that clearly separates the interface and implementation of data structures. The interface and running time of data structures are presented first, and students have the opportunity to use the data structures in a host of practical examples before being introduced to the implementations. This unique approach enhances the ability of students to think abstractly.Features * Retains an emphasis on data structures and algorithm design while using C++ as the language of implementation. * Reinforces abstraction by discussing interface and implementations of data structures in different parts of the book.* Incorporates case studies such as expression evaluation, cross-reference generation, and shortest path calculations. * Provides a complete discussion of time complexity and Big-Oh notation early in the text. * Gives the instructor flexibility in choosing an appropriate balance between practice, theory, and level of C++ detail. Contains optional advanced material in Part V. * Covers classes, templates, and inheritance as fundamental concepts in sophisticated C++ programs. * Contains fully functional code that has been tested on g++2.6.2, Sun 3.0.1, and Borland 4.5 compilers. Code is integrated into the book and also available by ftp. * Includes end-of-chapter glossaries, summaries of common errors, and a variety of exercises. 0805316663B04062001

Buy Now

Click here for more information about Algorithms, Data Structures, and Problem Solving With C++

Read More...

Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition Review

Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition
Average Reviews:

(More customer reviews)
Bruce Schneier's APPLIED CRYPTOGRAPHY is an excellent book for anyone interested in cryptology from an amateur level to actually being involved in the development of new encryption mechanisms. Schneier's book begins with a simple discussion of what is cryptography, and then he proceeds through the history of various encryption algorithms and their functioning. The last portion of the book contains C code for several public-domain encryption algorithms.
A caveat: this is not a textbook of cryptography in the sense that it teaches everything necessary to understand the mathematical basis of the science. Schneier does not discuss number theory because he expects those who use the relevant chapters of the book will already have training in higher maths. Nonetheless, the book does contain a wealth of information even for the layman.
One helpful part of Schneier's book is his opinion of which encryption algorithms are already broken by the National Security Agency, thus letting the reader know which encryption programs to avoid. There will always be people who encrypt to 40-bit DES even though it is flimsy and nearly instantly breakable, but the readers of APPLIED CRYPTOGRAPHY can greatly improve the confidentiality of their messages and data with this book. Discussion of public-key web-of-trust is essential reading for anyone confused by how public-key signatures work.
APPLIED CRYPTOGRAPHY was published in 1995 and some parts are already out of date. It is ironic that he hardly mentions PGP, when PGP went on to become the most renowned military-strength encryption program available to the public, although it is being superseded by GnuPG. Another anachronism is Schneier's assurance that quantum computing is decades away. In the years since publication of APPLIED CRYPTOGRAPHY we have seen some strides in quantum computer, even the creation of a quantum computer that can factor the number 15. While this publicly known quantum computer is not at all anything to get excited about, it is certain that more powerful quantum computers are in development and classified by NSA. Because a quantum computer can break virtually any traditional cipher, hiding the message (steganography) is becoming more important than ever. In the era of Schneier's book steganography was unnecessary because ciphertext could withstand brute-force attacks, but with advances in computing power steganography is becoming vital to secure communications. It would be nice to see the book updated with this topic, because cryptography and steganography can no longer be regarded as two distinct fields.
All in all, in spite of its age, APPLIED CRYPTOGRAPHY is recommended to anyone interested in cryptography. It ranks among the essential books on the field, although an updated version is certainly hoped for.

Click Here to see more reviews about: Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition



Buy Now

Click here for more information about Applied Cryptography: Protocols, Algorithms, and Source Code in C, Second Edition

Read More...

Data Mining: Practical Machine Learning Tools and Techniques, Second Edition (Morgan Kaufmann Series in Data Management Systems) Review

Data Mining: Practical Machine Learning Tools and Techniques, Second Edition (Morgan Kaufmann Series in Data Management Systems)
Average Reviews:

(More customer reviews)
I'm surprisingly please with this book. I've been reading up on the topic and associated algorithms in other books for some time; I'm a software developer but don't have a statistics background, and so felt a lot of the texts were too focused on the math and the theory while being thin on content when it came to "rubber hitting the road", or even using clear, simple examples and straight-forward notation.
This book is so well-written that it communicates the concepts clearly, lucidly and in an organized fashion. The section that introduces Bayesian probability was drop-dead simple to follow. Quite frankly, having read a few other treatments on it, I can now say that everything else I read before this was overly complicated. Brevity is the soul of wit, no?
To the reviewer who criticized the authors use of words to describe equations: This is what the authors intended to do. Would you fault them for writing in English if you wanted Greek? Not everyone who can benefit from applied data mining has the requisite background to understand the nitty gritty mathematics, nor should they have to, if they just want to understand the behavior and practical applications of the technology.

Click Here to see more reviews about: Data Mining: Practical Machine Learning Tools and Techniques, Second Edition (Morgan Kaufmann Series in Data Management Systems)



Buy Now

Click here for more information about Data Mining: Practical Machine Learning Tools and Techniques, Second Edition (Morgan Kaufmann Series in Data Management Systems)

Read More...

Software Engineering: (Update) (8th Edition) Review

Software Engineering: (Update) (8th Edition)
Average Reviews:

(More customer reviews)
I used this book as the text in my software engineering class in the spring semester of 2008. When I was evaluating it for potential adoption, I did not read through it in detail, I looked over the chapter titles and subtitles, read the first few chapters and examined the exercises at the end of the first few chapters. As the semester progressed, I found myself wishing I had read further into the text.
As I moved through the chapters, I found myself mentally noting over and over again that topics are repeated. When the class was over, I asked the students their opinion of the book and they were unanimous, with no prompting from me, in saying that there is a great deal of repetition after the first chapters.
I have no complaint about the quality of exposition or the coverage of software engineering in this book. My reason for not continuing to use it in future classes is solely due to my belief that the size could have been reduced from the current 840 pages to around 600 pages with no real loss of content of flow.


Click Here to see more reviews about: Software Engineering: (Update) (8th Edition)

THE most current Software Engineering text in the market– quality trusted coverage, practical case studies, strong lecturer support.

Buy Now

Click here for more information about Software Engineering: (Update) (8th Edition)

Read More...

Data Structures and Algorithm Analysis in C (2nd Edition) Review

Data Structures and Algorithm Analysis in C (2nd Edition)
Average Reviews:

(More customer reviews)
Many people on here have complained that this book goes way over the head of students not already familiar with some C++ and data structures. To these comments, I refer you to the product description (or editorial review, whichever) that specifically says this is an advanced text. I apologize to those whose professors ordered this book for intro data structures--I can understand why this book would go past the scope of that class. However, if you know any Object Oriented programming (Java or C++ preferably) and know some basic algorithms and structures (matrices, sorts, recursion, trees, queues, etc.) this book will take you far. I don't even mean that you must be proficient in these structures, just have some basic understanding of how they work. For example, you should know what a tree is (root, leaves, implemented with pointers and nodes) and book will tell you how to use trees (B-Trees, Binary trees, etc.). By the point you are using this book, hopefully you'll have taken the math and programming classes needed to comprehend this text. Otherwise, do not blame the text for being targeted to an advanced audience.

Click Here to see more reviews about: Data Structures and Algorithm Analysis in C (2nd Edition)

Mark Allen Weiss' successful book provides a modern approach to algorithms and data structures using the C programming language. The book's conceptual presentation focuses on ADTs and the analysis of algorithms for efficiency, with a particular concentration on performance and running time. The second edition contains a new chapter that examines advanced data structures such as red black trees, top down splay trees, treaps, k-d trees, and pairing heaps among others. All code examples now conform to ANSI C and coverage of the formal proofs underpinning several key data structures has been strengthened.

Buy Now

Click here for more information about Data Structures and Algorithm Analysis in C (2nd Edition)

Read More...

Compilers: Principles, Techniques, and Tools Review

Compilers: Principles, Techniques, and Tools
Average Reviews:

(More customer reviews)
During each compiler stage (lexical analysis, syntax analysis, translation, type checking, translation, code generation, and code optimization) multiple methods, strategies, and algorithms are presented. This comprehensive book examines items that are unique to the various languages presented (Fortran, C, and Pascal); there are even sections on dealing with estimation of types (10.12) and symbolic debugging of optimized code (10.13). Wow! The exercises are thorough, challenging, and thought provoking. Examples are interleaved with the discussion and algorithms. There is an excellent set of historical and bibliographic information at the end of each chapter. The use of automated tools such as lex, yacc, and compiler-generators is discussed throughout the text. This is an advanced book, however a good understanding of compilers can be obtained without understanding the details of every algorithm.

Click Here to see more reviews about: Compilers: Principles, Techniques, and Tools

This introduction to compilers is the direct descendant of the well-known book by Aho and Ullman, Principles of Compiler Design. The authors present updated coverage of compilers based on research and techniques that have been developed in the field over the past few years. The book provides a thorough introduction to compiler design and covers topics such as context-free grammars, fine state machines, and syntax-directed translation. 0201100886B04062001

Buy Now

Click here for more information about Compilers: Principles, Techniques, and Tools

Read More...

Data Structures with C++ Using STL (2nd Edition) Review

Data Structures with C++ Using STL (2nd Edition)
Average Reviews:

(More customer reviews)
The book itself is great and illustrates the core concepts well.
The code examples are grossly out of date (were talking 1990's) and completely ruins the beautiful text by adding confusing, poorly written code examples to reinforce good literature.
If you are buying this to learn data structures as a reference, great.
If you expect usable code examples this is not the book for you.
Highly Microsoft Visual Studio Centric. Not ANSI C++.
My note to the author's / publisher: You need to keep up with the times. This is technology and it moves quickly. Otherwise future-proof your code as much as possible.

Click Here to see more reviews about: Data Structures with C++ Using STL (2nd Edition)

This book uses a modern object-oriented approach to data structures, unified around the notion of the Standard Template Library (STL) container classes. The book presents a systematic development of data structures supported by numerous examples and complete programs. The authors separate the applications of a data structure from its implementation. Includes an applied study of interesting and classical algorithms that illustrate the data structures using only simple mathematical concepts (Big-O notation is introduced intuitively); Many additional figures are integrated into the presentation; ADT (Abstract Data Type) for each data structure—immediately used to solve appropriate problems; Early and accessible introduction to templates and iterators; Use of modern C++ constructs in developing data structures and their applications provides enough language detail to sufficiently understand the constructs.

Buy Now

Click here for more information about Data Structures with C++ Using STL (2nd Edition)

Read More...

Data Structures and Algorithms in Java (2nd Edition) Review

Data Structures and Algorithms in Java (2nd Edition)
Average Reviews:

(More customer reviews)
This is an excellent book on data structures and algorithms and would be a great addition to a student's text book. Fortunately Lafore does not dwell on the algorithm analysis as many data structures books do. This is a plus for me, as most texts on the subject get the reader bogged down in the analysis portion of the subject matter. Note: algorithm analysis is a very important subject I just don't believe it should be taught in parallel with data structures to the extent it is. Its easier for me and many others to first learn how to implement data structures and get a feel for their performance then move on to in-depth analysis.
In this book you'll learn the more important data structures without the heavy mathematics many algorithm and data structure books torture readers with. The book is written in very accessible language and the applets really help the inexperienced see the algorithms in action.
As I mentioned this book does not cover algorithm analysis in detail. A step up from this book would be one of Sedgewick's books which provides more detail on the analysis front and some really 'tight' implementations. A good book that focuses on Algorithm Analysis is Intro to Algorithms by Cormen. You better have your math skills up to snuff for the Cormen book however.

Click Here to see more reviews about: Data Structures and Algorithms in Java (2nd Edition)

Data Structures and Algorithms in Java, Second Edition is designed to be easy to read and understand although the topic itself is complicated. Algorithms are the procedures that software programs use to manipulate data structures. Besides clear and simple example programs, the author includes a workshop as a small demonstration program executable on a Web browser. The programs demonstrate in graphical form what data structures look like and how they operate. In the second edition, the program is rewritten to improve operation and clarify the algorithms, the example programs are revised to work with the latest version of the Java JDK, and questions and exercises will be added at the end of each chapter making the book evenmore useful.Educational SupplementSuggested solutions to the programming projects found at the end of each chapter are made available to instructors at recognized educational institutions. This educational supplement can be found at www.prenhall.com, in the Instructor Resource Center.

Buy Now

Click here for more information about Data Structures and Algorithms in Java (2nd Edition)

Read More...

Data Structures Using C Review

Data Structures Using C
Average Reviews:

(More customer reviews)
If you are interested in trees (Binary Search,Generic & Multiway ) & Graphs this book could be a very good reference. Common Data Structures are also dealt with very nicely.

Click Here to see more reviews about: Data Structures Using C

Using the increasingly popular C language, this book teaches datastructures from their theoretical conception through to their concreterealizations. It emphasizes structured design and programmingtechniques, and contains numerous debugged programming samples. For CS2course in advanced programming or data structures in C.

Buy Now

Click here for more information about Data Structures Using C

Read More...

The Design and Analysis of Computer Algorithms Review

The Design and Analysis of Computer Algorithms
Average Reviews:

(More customer reviews)
This is yet another classic from the Aho Gang!
It sets up a very formal framework for discussing alorithms, beginning at the beginning..an abstract mathematical model of a computer. and builds up the rest of the book using the model for implementation as well as quantification.
A solid framework for the analysis of algorithms is setup. The necessary mathematics is covered, helping in measuring an algorithm's complexity..basically the time and space complexities.
Then it goes on to deal with designing algorithms. the design methodology, with elaborate examples and exercises.
It should be admitted however that this is a solid text for the mathematically oriented. Thats the reason for the 5 stars!
If you want to go a little easy on the formalisms try
"Computer Algorithms, Pseudocode" by Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran. I found it more pragmatic.

Click Here to see more reviews about: The Design and Analysis of Computer Algorithms



Buy Now

Click here for more information about The Design and Analysis of Computer Algorithms

Read More...

Visualizing Data: Exploring and Explaining Data with the Processing Environment Review

Visualizing Data: Exploring and Explaining Data with the Processing Environment
Average Reviews:

(More customer reviews)
This book allowed me to quickly create some simple applications using the processing API. So, in that respect, the book was successful. However, the book falls short in three respects.
1) One would expect a book with the title "Visualizing Data" to be crammed with pictures showing many different data visualizations. However, this book has relatively few. Every colleague of mine who passed by my desk and picked up the book had the exact same reaction.
2) The processing language is touted as a means for people unfamiliar with programming to get up to speed with visualization. However, I would be very surprised if anyone with little programming experience would get much out of this book.
3) Don't expect to use this book as a reference for the processing language. It is basically just a collection of half explained examples. Consider for example the function smooth(). This function appears in almost every example but forget about trying to find an explanation of what the function does in the book.
The book is probably worth buying to get up to speed quickly but plan on spending a significant amount of time sifting through the processing.org website and other online resources before being able to get anything non-trivial done. And if you don't already know Java then don't expect to accomplish anything even modestly complex without a lot of outside help.


Click Here to see more reviews about: Visualizing Data: Exploring and Explaining Data with the Processing Environment


Enormous quantities of data go unused or underused today, simply because people can't visualize the quantities and relationships in it. Using a downloadable programming environment developed by the author, Visualizing Data demonstrates methods for representing data accurately on the Web and elsewhere, complete with user interaction, animation, and more. How do the 3.1 billion A, C, G and T letters of the human genome compare to those of a chimp or a mouse? What do the paths that millions of visitors take through a web site look like? With Visualizing Data, you learn how to answer complex questions like these with thoroughly interactive displays. We're not talking about cookie-cutter charts and graphs. This book teaches you how to design entire interfaces around large, complex data sets with the help of a powerful new design and prototyping tool called "Processing". Used by many researchers and companies to convey specific data in a clear and understandable manner, the Processing beta is available free. With this tool and Visualizing Data as a guide, you'll learn basic visualization principles, how to choose the right kind of display for your purposes, and how to provide interactive features that will bring users to your site over and over. This book teaches you:

The seven stages of visualizing data -- acquire, parse, filter, mine, represent, refine, and interact
How all data problems begin with a question and end with a narrative construct that provides a clear answer without extraneous details
Several example projects with the code to make them work
Positive and negative points of each representation discussed. The focus is on customization so that each one best suits what you want to convey about your data set
The book does not provide ready-made "visualizations" that can be plugged into any data set. Instead, with chapters divided by types of data rather than types of display, you'll learn how each visualization conveys the unique properties of the data it represents -- why the data was collected, what's interesting about it, and what stories it can tell. Visualizing Data teaches you how to answer questions, not simply display information.

Buy Now

Click here for more information about Visualizing Data: Exploring and Explaining Data with the Processing Environment

Read More...

Practical Programming: An Introduction to Computer Science Using Python (Pragmatic Programmers) Review

Practical Programming: An Introduction to Computer Science Using Python (Pragmatic Programmers)
Average Reviews:

(More customer reviews)
I had not programmed for 30 years and wanted to do a bit for a small project. After trying several Python books I found this one. I suspect that no one programming book will appeal to all, but this one was a great book to get me started again. Well-written. Good examples. Clear explanations.

Click Here to see more reviews about: Practical Programming: An Introduction to Computer Science Using Python (Pragmatic Programmers)


Computers are used in every part of science from ecology to particle physics.This introduction to computer science continually reinforces those ties by using real-world science problems as examples.Anyone who has taken a high school science class will be able to follow along as the book introduces the basics of programming, then goes on to show readers how to work with databases, download data from the web automatically, build graphical interfaces, and most importantly, how to think like a professional programmer. Topics covered include: Basic elements of programming from arithmetic to loops and if statements. Using functions and modules to organize programs. Using lists, sets, and dictionaries to organize data. Designing algorithms systematically. Debugging things when they go wrong. Creating and querying databases. Building graphical interfaces to make programs easier to use. Object-oriented programming and programming patterns.


Buy Now

Click here for more information about Practical Programming: An Introduction to Computer Science Using Python (Pragmatic Programmers)

Read More...

Artificial Intelligence: A Modern Approach (2nd Edition) Review

Artificial Intelligence: A Modern Approach (2nd Edition)
Average Reviews:

(More customer reviews)
I didn't think that the first edition of this book was as bad as some of the reviewers said, but the second edition is definitely a vast improvement. It's not just some obligatory 2nd edition that some authors release to say that they are staying actively published. The first edition was somewhat confusing in its explanations and the exercises were really blurry on what was being asked. All of that has now been resolved.
The book is a comprehensive and insightful introduction to artificial intelligence with an academic tone. It provides a unified view of the field organized around the rational decision making paradigm, which focuses on the selection of the "best" solution to a problem. The book's overall theme is that the purpose of AI is to solve problems via intelligent agents, and then goes about specifying the features such an agent or agents should have. Pseudocode is provided for all of the major AI algorithms. Being about the broadest book in terms of coverage of AI, you should therefore not expect it to be the deepest in coverage. However, each topic is covered to the extent that the reader should understand its essence. Sections one through six are absolutely wonderful, and comprise the "meat" of AI. Section seven is rather weak since it tries to cover both robotics and text processing in their own individual chapters, and entire books have a hard time covering this material. Section eight is different from the others, since it talks about the philosophy and future of AI.
Another plus for this book is that there is a great deal of extra material that deals with standard AI curriculum. For example, the chapters on logic not only include the typical introduction to propositional and first order logic together with the usual inference procedures, they also give many useful hints how to use first order logic to actually represent aspects of the real world such as measures, time, actions, mental objects, etc. These chapters also contain much information about how to implement efficient logical reasoners.
Finally, this second edition has an excellent website that can be found by going through the publisher's webpage for the book. This website contains four sample chapters, pseudocode, and actual code in Java, Python, and LISP.
I notice that Amazon shows the table of contents from the first edition, so I am showing what the actual table of contents is for the second edition for the purpose of completeness. Note that the book has been significantly reorganized.
I. ARTIFICIAL INTELLIGENCE.
1. Introduction.
2. Intelligent Agents.
II. PROBLEM-SOLVING.
3. Solving Problems by Searching.
4. Informed Search and Exploration.
5. Constraint Satisfaction Problems.
6. Adversarial Search.
III. KNOWLEDGE AND REASONING.
7. Logical Agents.
8. First-Order Logic.
9. Inference in First-Order Logic.
10. Knowledge Representation.
IV. PLANNING.
11. Planning.
12. Planning and Acting in the Real World.
V. UNCERTAIN KNOWLEDGE AND REASONING.
13. Uncertainty.
14. Probabilistic Reasoning Systems.
15. Probabilistic Reasoning Over Time.
16. Making Simple Decisions.
17. Making Complex Decisions.
VI. LEARNING.
18. Learning from Observations.
19. Knowledge in Learning.
20. Statistical Learning Methods.
21. Reinforcement Learning.
VII. COMMUNICATING, PERCEIVING, AND ACTING.
22. Agents that Communicate.
23. Text Processing in the Large.
24. Perception.
25. Robotics.
VIII. CONCLUSIONS.
26. Philosophical Foundations.
27. AI: Present and Future.

Click Here to see more reviews about: Artificial Intelligence: A Modern Approach (2nd Edition)



Buy Now

Click here for more information about Artificial Intelligence: A Modern Approach (2nd Edition)

Read More...

Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition Review

Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition
Average Reviews:

(More customer reviews)
If you're looking for an exhaustive, upto-date reference/textbook for
fundamental, searching and sorting algorithms, then this is one of
the very best available.
Sedgewick has split his popular book into two volumes, with Graph
algorithms being hifted to the second volume. Moreover, many advanced
topics like computational geometry, fft, number theoretic algorithms
etc, which were introduced in the previous edition, seem to be missing
now - so the breadth of coverage seems to have reduced, which is a pity.
However, the depth has increased instead - i doubt that even Knuth
covers more sorting algorithms ! In particular, there are several
recent algorithms and data structures which are treated in greater
detail here than by Knuth. Of course, Knuth analyses all the
algorithms he presents in rigorous and exhaustive detail, which
this book doesn't.
Moreover, the book has many new algorithms and presents the state of the
art in sorting and searching algorithms, giving it a distinct advantage
over the older books.
Sedgewick makes it very clear in the preface that the emphasis is on
the practical importance of the algorithms, so esoteric algorithms which
are important 'only in theory' may find no mention. Also the emphasis is
more on the design of algorithms than on their analysis.
The number of (exercise!!) problems has multiplied manifold in this edition
to become more than most competing textbooks. Problems are graded by
difficulty level to help you choose the ones relevant to your needs.
The exposition is clear and authoritative - Prof. Sedgewick is a leading
authority in the field of algorithms and a student of Donald Knuth.
He has a gift for making difficult concepts seem simple, and the great
illustrations in the book go a long way in explaining the behaviour of
the algorithms.
For the practising professional, this is an ideal reference, since it'll
help you select the best algorithm for your task without bogging you
down with heavy mathematics.
The reasearcher, on the other hand, may benefit by gaining unique insights
from a master of the area, while using other books for the detailed
analysis of algorithms, including prehaps Sedgewick's own book on the
analysis of algorithms(with Flajolet).
A caveat - the code may not be 'ready to run'. It's better not to rely
on this book to provide you with usable code - if that is what you want,
perhaps the books by Drozdek/Weiss/Heileman/Rowe might be better choices.
If you want C code rather than C++, then the C version of this book is
a good choice, since the code provided is of 'K & R' class and therefore
a delight to read.
Of course, if you're looking for a language independent coverage,
then 'Introduction to algorithms' by Cormen,Leiserson and Rivest is
possibly the best book which combines rigor with comprehensive coverage
of the most important algorithms. Look out for the newly released
second edition.
And if you want a more rigorous and equally exhaustive coverage of
sorting and searching, go for Knuth vol.3 - still the authoritative
reference, though it may require more hard work on the reader's part.
Otherwise, invest in this and you won't be disappointed.

Click Here to see more reviews about: Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition

Robert Sedgewick has thoroughly rewritten and substantially expanded and updated his popular work to provide current and comprehensive coverage of important algorithms and data structures. Christopher Van Wyk and Sedgewick have developed new C++ implementations that both express the methods in a concise and direct manner, and also provide programmers with the practical means to test them on real applications.Many new algorithms are presented, and the explanations of each algorithm are much more detailed than in previous editions. A new text design and detailed, innovative figures, with accompanying commentary, greatly enhance the presentation. The third edition retains the successful blend of theory and practice that has made Sedgewick's work an invaluable resource for more than 250,000 programmers!This particular book, Parts 1n4, represents the essential first half of Sedgewick's complete work. It provides extensive coverage of fundamental data structures and algorithms for sorting, searching, and related applications. Although the substance of the book applies to programming in any language, the implementations by Van Wyk and Sedgewick also exploit the natural match between C++ classes and ADT implementations.Highlights Expanded coverage of arrays, linked lists, strings, trees, and other basic data structures Greater emphasis on abstract data types (ADTs), modular programming, object-oriented programming, and C++ classes than in previous editions Over 100 algorithms for sorting, selection, priority queue ADT implementations, and symbol table ADT (searching) implementations New implementations of binomial queues, multiway radix sorting, randomized BSTs, splay trees, skip lists, multiway tries, B trees, extendible hashing, and much more Increased quantitative information about the algorithms, giving you a basis for comparing them Over 1000 new exercises to help you learn the properties of algorithms Whether you are learning the algorithms for the first time or wish to have up-to-date reference material that incorporates new programming styles with classic and new algorithms, you will find a wealth of useful information in this book.

Buy Now

Click here for more information about Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition

Read More...