Showing posts with label computer science. Show all posts
Showing posts with label computer science. Show all posts

Introduction to the Theory of Computation Review

Introduction to the Theory of Computation
Average Reviews:

(More customer reviews)
Are you looking to buy Introduction to the Theory of Computation? Here is the right place to find the great deals. we can offer discounts of up to 90% on Introduction to the Theory of Computation. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Introduction to the Theory of Computation ReviewWhen I picked up this book I thought, "You have to be kidding me." This book is very thin, and then a fair chunk of it is mathematics review for some of the formal arguments the book is going to be making later on. One wouldn't think there was much in this book.
One would be wrong. This book goes into rather impressive depth on some rather abstract concepts of computer science without dabbling for too long in the details. It does the best job I've ever seen of explaining the Turing machine and how it relates to computability and decidablity.
The exercises are both easy and insanely difficult - so you can basically chose your level and then go through the book, some of the problems are very hard, some are trivially easy, a great mix makes for great homework assignments.
The "Proof Idea:" sections before every proof give you the underlying concepts in plain english that are about to be stated formally so you have a clue what's happening when the formal definitions start flying. These are priceless and should be included in every other book that uses formal proof techniques.
The book reads fairly well on its own, or makes for a great class text book, which I used it for. As my professor said, "This is a good book because it doesn't have any extra words." but you don't seem to mind as you read it. Probably the best work on the science of computation in the world, certainly the best I've ever seen.Introduction to the Theory of Computation OverviewMichael Sipser's emphasis on unifying computer science theory - rather than offering a collection of low-level details - sets the book apart, as do his intuitive explanations. Throughout the book, Sipser builds students' knowledge of conceptual tools used in computer science, the aesthetic sense they need to create elegant systems, and the ability to think through problems on their own.

Want to learn more information about Introduction to the Theory of Computation?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Advanced Compiler Design and Implementation Review

Advanced Compiler Design and Implementation
Average Reviews:

(More customer reviews)
Are you looking to buy Advanced Compiler Design and Implementation? Here is the right place to find the great deals. we can offer discounts of up to 90% on Advanced Compiler Design and Implementation. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Advanced Compiler Design and Implementation ReviewThis book is the comprehensive text for anyone working on an optimizing compiler for uniprocessor systems. It gives good detail on all major approaches and is up-to-date on important techniques like SSA form and partial redundancy information. As someone working directly in the field, it's saved me the effort of hunting up original research papers in many areas. One drawback for this book as a practical tool: the pseudocode used to illustrate examples is often pretty far from being suitable for real implementations.
A warning: this is not an introductory book, and people who want to learn about the basics of building a compiler should look elsewhere; perhaps Andrew Appel's ``Modern Compilers'' series. Muchnick's book is for people who want to write compilers which generate high-performance code.Advanced Compiler Design and Implementation Overview
From the Foreword by Susan L. Graham: This book takes on the challenges of contemporary languages and architectures, and prepares the reader for the new compiling problems that will inevitably arise in the future.
The definitive book on advanced compiler design This comprehensive, up-to-date work examines advanced issues in the design and implementation of compilers for modern processors. Written for professionals and graduate students, the book guides readers in designing and implementing efficient structures for highly optimizing compilers for real-world languages. Covering advanced issues in fundamental areas of compiler design, this book discusses a wide array of possible code optimizations, determining the relative importance of optimizations, and selecting the most effective methods of implementation.* Lays the foundation for understanding the major issues of advanced compiler design* Treats optimization in-depth* Uses four case studies of commercial compiling suites to illustrate different approaches to compiler structure, intermediate-code design, and optimization-these include Sun Microsystems's compiler for SPARC, IBM's for POWER and PowerPC, DEC's for Alpha, and Intel's for Pentium an related processors* Presents numerous clearly defined algorithms based on actual cases* Introduces Informal Compiler Algorithm Notation (ICAN), a language devised by the author to communicate algorithms effectively to people

Want to learn more information about Advanced Compiler Design and Implementation?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Code Complete (Microsoft Programming Series) Review

Code Complete (Microsoft Programming Series)
Average Reviews:

(More customer reviews)
Are you looking to buy Code Complete (Microsoft Programming Series)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Code Complete (Microsoft Programming Series). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Code Complete (Microsoft Programming Series) ReviewAbout previous comments: Verbose? Don't think so, every page has some piece of valuable information
For beginners only? Don't think so, but if you are a beginner this is a good place to start. After several years of programming you'll mostly stop thinking about style and follow your habits... so you better have some good habits!
Insistence on using hungarian naming convention? Not at all, did you read this book? The author did talk about this convention but he also gives examples why this is can be bad (and also why it can be good).
This book covers a wide range of material, from variable declaration to software estimation and probably everything concerning software construction.
Also as this book talks a lot about style, the best thing is it is backed up with hard facts not just because of personal preference.
The examples are written in several languages (such as C, Pascal and Basic). One chapter is devoted to object orientation. Although you're heavily into OOP then in no way should you skip over this book as the advices in this book can be applied to every methodology of programming. So this book is in no way out dated.
Each chapter has a 'recommended reading' section so you know where to go for more. This is extremely handy.
I've read this book several times and I just love it. I own every book written by the author. Check them out also - they are very good too.
Summary: This book teaches you how you can write good and self-describing code. I wished every program I've had to read had been written by programmers who read this book and applied that knowledge.
Thanks, ABOCode Complete (Microsoft Programming Series) OverviewHere is a thorough expert look at the intricate process of commercial software development. The text is rich in example code, contains powerful insights on managing technical yet creative people, and examines each milestone in software development in considerable detail. Ideal for professional, self-taught, and student programmers.

Want to learn more information about Code Complete (Microsoft Programming Series)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Head First C# Review

Head First C#
Average Reviews:

(More customer reviews)
Are you looking to buy Head First C#? Here is the right place to find the great deals. we can offer discounts of up to 90% on Head First C#. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Head First C# ReviewHead First C# was my first experience with the Head First series, although I have since also purchased the excellent Head First Design Patterns (Head First).
This book is designed to teach you C# from the beginning. Technical books can generally be categorized as either tutorials or reference texts -- and this is absolutely in the tutorial category. It's intended to be read and worked through in order, from start to finish. If you already know C# and are looking for a reference text, look elsewhere. If you're an experienced C++ programmer looking to learn C# but are already very familiar with object oriented programming, consider checking out the excellent and concise Accelerated C# 2008 (Accelerated). If you're an experienced C# programmer and just want to learn the advanced features of C#2 and C#3, you'll again want to look elsewhere, and you couldn't do better than C# in Depth: What you need to master C# 2 and 3.
But if you want to *learn* C# and object-oriented programming, and especially if you have little or no prior programming experience, look no further than this fantastic book. If you're reading reviews of the book, then you probably know two things: it has an unusual style and some quirky humor, and it has a bit more than it's fair share of errors. These two things are true, but there's a lot more about the book that you should know, and that's mostly what I want to talk about in this review. Before I move on, though, let me say two things. First, the conversational style and the humor are sometimes overstated -- this is a book about programming, and it's not a joke a minute or anything. I know that you can't Search Inside here on Amazon to see what the book is like, which I assume is because of the visuals-heavy design and unusual layout of the text, but just do a quick search for the book's website and you can download a full sample chapter and some other excerpts. Judge for yourself before dismissing an excellent book based on its unusual (but effective!) design. Second, the errata *are* extensive, but they don't get in the way of your learning. This book shines for its well-chosen examples, its focus on your learning (you'll be talked to rather than at), and its great overall structure -- and none of the errata interfere with any of that at all. If the extensive errata lists do bother you, I wrote a small free program that can sort through them for you and filter out the types of errors or page ranges you're not interested in. (You can find the link stickied at the web forum for Head First C#.)
There are also some features of the book that I don't see mentioned often enough, and which I want to comment on briefly before getting to the heart of the review. First, I love that the introduction is actually useful, giving you valuable insights on why the authors made the design choices they did (why text is in the pictures, rather than beneath them as captions, for example), and offering advice on how best to approach the book if you want to maximize your learning experience. I highly recommend reading it. Second, it's worth mentioning the way that the book uses the (free) Visual Studio 2008 IDE to make graphical Windows applications throughout, rather than focusing on a text editor and console applications like many other introductory texts. Visual Studio is a powerful IDE, and it *helps* you learn with syntax highlighting and Intellisense -- I'm very glad that the Head First C# authors chose to incorporate its use into the book, because it often allowed me to focus on concepts at first rather than syntax, picking that up gradually through repeated use with the IDE's guidance. Third, you'll be making some genuinely impressive software over the course of the book -- between the use of Visual Studio and the authors' being unafraid to assign projects that take several pages just to *describe*, you'll get a much better feel for what it's like to make real software than you would from the small "toy" examples that are more common in many other introductory books. (But don't worry, there's plenty of guidance, including fully annotated solution code for most of them, and a helpful web forum if you get stuck.) Finally, the book has the advantage of going to print for the first time after C# 3.0 and .NET 3.5 were released, and it fluently combines the various iterations of the language, teaching C# *as it now exists* from the ground up in an order that makes sense for someone learning now from scratch, rather than taking the more common but less sensible route of introducing C#1.0 features before C#2 before C#3. This is great, because it allows the authors to introduce some of the powerful and convenient features of the newer editions of the language and framework -- the stuff that really makes C# appealing as a language -- quite early in the book.
The funny thing about Head First C# is that the conversational tone, the humor, the quirky layout, and the pictures make the book seem completely un-academic. At first glance, it's as far from an academic textbook as you could possibly get! But I've come to realize that reading through the book from the beginning, doing all the exercises, is as close to the structured learning experience of an academic course as you can get in book form. The brilliance of Head First C# isn't in the phrasing of any given sentence or the coding style in a particular snippet -- it's in the overall structure of the book and especially in the examples chosen for exercises, which allow you to build up your knowledge incrementally while still reviewing past material. (Which is why the errata really aren't a big deal.) I've seen some reviews point out the book's "redundancy" as a flaw, and I just shake my head. The book is often repetitious, but never redundant, and always deliberately -- seeing the same material repeatedly from different perspectives and at different times is absolutely key to learning anything, and the repetition is one of the best features of the Head First series in general and this book in particular.
So there are errors. So there's a bit of fuzziness in the phrasing sometimes. So it doesn't cover Advanced Language Topic A or B. So what? This book is a teaching tool. It's a full course -- instructor, fellow students, textbook, homework, projects, review sessions, and conversations with peers -- stuffed onto paper, rolled up, printed, and stuck between covers.
I've learned C#, and I've *retained* what I've learned. I've had fun doing it. And if you too want to learn C# and programming, I can't recommend Head First C# highly enough.Head First C# Overview
Head First C# is a complete learning experience for object-oriented programming, C#, and the Visual Studio IDE. Built for your brain, this book covers C# 3.0 and Visual Studio 2008, and teaches everything from language fundamentals to advanced topics including garbage collection, extension methods, and double-buffered animation. You'll also master C#'s hottest and newest syntax, LINQ, for querying SQL databases, .NET collections, and XML documents. By the time you're through, you'll be a proficient C# programmer, designing and coding large-scale applications. Every few chapters you will come across a lab that lets you apply what you've learned up to that point. Each lab is designed to simulate a professional programming task, increasing in complexity until-at last-you build a working Invaders game, complete with shooting ships, aliens descending while firing, and an animated death sequence for unlucky starfighters. This remarkably engaging book will have you going from zero to 60 with C# in no time flat.


Want to learn more information about Head First C#?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Operating System Concepts, 6th Edition Review

Operating System Concepts, 6th Edition
Average Reviews:

(More customer reviews)
Are you looking to buy Operating System Concepts, 6th Edition? Here is the right place to find the great deals. we can offer discounts of up to 90% on Operating System Concepts, 6th Edition. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Operating System Concepts, 6th Edition ReviewThis popular book was written as an introductory course to operating systems but systematically provides an extensive description of operating system concepts. The 1st half of the book is typically used for undergraduate computer science classes although the book as a whole is often required for graduate level classes.
It is assumed that readers will have some knowledge of high-level languages and general computer organization. The book does not spotlight any one particular operating system but rather presents concepts and algorithms that are common to many of the Oss that are commonly used today, including MS-DOS, Windows 2000 & NT, Linux, Sun Microsystems' Solaris 2, IBM OS/2, Apple Macintosh, and DEC VMS.
The book has 7 major parts:
1) Overview: What Operating Systems are, what they do, how they are designed, and where they came from. General history and explanations. Some discussion on hardware.
2) Process Management: How information is processed. Methods for process scheduling, interprocess communication, process synchronization, deadlock handling, and threads.
3) Storage Management: How main memory functions and executes. The mechanisms for storage of and access to data is covered. The classic internal algorithms and structures of storage management is discussed and the advantages and disadvantages of each.
4) I/0 Systems: The types of devices that attach to a computer. How the devices are accessed and controlled. Performance issues and examined thoroughly.
5) Distributed systems: The collection of processors that do not share a clock or memory. How distributed file systems are shared, synchronized, communicate, and deal with deadlocks.
6) Protection and Security: How mechanisms ensure that only certain processes that have obtained proper authorization can use certain files, memory segments, CPU, etc.
7) Case Studies: This is where individual real operating systems are discussed in depth. These systems are Linux, Windows 2000, FreeBSD, Mach, and Nachos.

Of course this is a very general list and omits many other aspects of Operating Systems that are included in the book. This 887 page book does not include formal proofs but it does contain (though it would be better to have more) figures, diagrams, examples, and notes to help explain concepts.Operating System Concepts, 6th Edition OverviewCelebrating its 20th anniversary, Silberschatz: Operating Systems Concepts, Sixth Edition, continues to provide a solid theoretical foundation for understanding operating systems. The Sixth Edition offers improved conceptual coverage and added content to bridge the gap between concepts and actual implementations. Threads has been added to this latest edition and includes coverage of Pthreads and Java threads. All code examples have been rewritten and are now in C. Increased coverage of small footprint operating systems such as PalmOS and real-time operating system, as well as a new chapter on Windows 2000, have been added.Market: Computer Scientists; Programmers.

Want to learn more information about Operating System Concepts, 6th Edition?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Understanding Object-Oriented Programming With Java Review

Understanding Object-Oriented Programming With Java
Average Reviews:

(More customer reviews)
Are you looking to buy Understanding Object-Oriented Programming With Java? Here is the right place to find the great deals. we can offer discounts of up to 90% on Understanding Object-Oriented Programming With Java. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Understanding Object-Oriented Programming With Java ReviewThis is not a book to learn java from, nor is it even a good reference. Read and understand the title before buying this book.
This review refers to the previous edition to this one.
I found the text ordered well, with most examples clearly explained. There were some minor bugs in the code which a beginning java programmer would struggle with.
After finishing the book, and running the examples, and working through several of the exercises, I found that I understand OOP much better, and of course understand java better too.
I've noted several people who don't know java syntax are frustrated by the book, as they are expecting to learn java from it, and are never reaching the point where they will learn OOP or java from the book.
In conclusion, don't buy the book to learn java, buy it only if you need to learn OOP and are having difficulty doing so.Understanding Object-Oriented Programming With Java OverviewTimothy Budd, leading author, educator and researcher in the object-oriented programming community, provides a deep understanding of object-oriented programming and Java.Understanding Object-Oriented Programming with Java teaches readers why the Java language works the way it does, as opposed to many other books that focus on how Java works.Readers learn about the development decisions that went into making the Java language, and leave with a more sophisticated knowledge of Java and how it fits in the context of object-oriented programming. Throughout the text, the focus remains on teaching readers to master the necessary object-oriented programming concepts. Dr. Budd explains to the reader in clear and simple terms the fundamental principles of object-oriented programming, illustrating these principles with extensive examples from the Java standard library. In short, he thoughtfully created this book, not as a reference manual for the Java language, but as a tool for understanding Java and the object-oriented programming philosophy.Highlights:* Provides several graduated example programs in Part II (i.e., cannon and pinball games) for readers to work through and successively learn object-oriented programming features.* Includes extensive examples from the Java standard library so that readers can better understand the many design patterns found in the AWT, the multiple purposes for which inheritance is used in the standard classes, and more. * Discusses features of Java in Part V that are important for students to understand, but not necessarily notable for their object-oriented features. Instructors have the flexibility to omit altogether, or introduce in parallel with earlier material. 0201308819B04062001

Want to learn more information about Understanding Object-Oriented Programming With Java?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Data Structures and Algorithms in Java Review

Data Structures and Algorithms in Java
Average Reviews:

(More customer reviews)
Are you looking to buy Data Structures and Algorithms in Java? Here is the right place to find the great deals. we can offer discounts of up to 90% on Data Structures and Algorithms in Java. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Data Structures and Algorithms in Java ReviewI'm finding the 4th edition reasonably clear and comprehensive. However, the book is teeming with typographical errors. Most of them are typesetting errors involving superscripts and subscripts that overlap the adjacent characters so they aren't fully legible. But there are numerous other miscellaneous typos.
So, I've been marking them in my copy, in order to submit them to the authors or publisher, but apparently they don't want to know about the typos. The "errata" section at java.datastructures.net contains no errata and no instructions on how to submit errata. I wrote to one of the authors to ask how to submit errata, but received no reply.Data Structures and Algorithms in Java OverviewFundamental data structures in a consistent object-oriented frameworkNow revised to reflect the innovations of Java 5.0, Goodrich and Tamassia's Fourth Edition of Data Structures and Algorithms in Java continues to offer accessible coverage of fundamental data structures, using a consistent object-oriented framework. The authors provide intuition, description, and analysis of fundamental data structures and algorithms. Numerous illustrations, web-based animations, and simplified mathematical analyses justify important analytical concepts.Key Features of the Fourth Edition:* Updates to Java 5.0 include new sections on generics and other Java 5.0 features, and revised code fragments, examples, and case studies to conform to Java 5.0.* Hundreds of exercises, including many that are new to this edition, promote creativity and help readers learn how to think like programmers and reinforce important concepts.* New case studies illustrate topics such as web browsers, board games, and encryption.* A new early chapter covers Arrays, Linked Lists, and Recursion.* A new final chapter on Memory covers memory management and external memory data structures and algorithms.* Java code examples are used extensively, with source code provided on the website.* Online animations and effective in-text art illustrate data structures and algorithms in a clear, visual manner.Access additional resources on the web www.wiley.com/college/goodrich):* Java source code for all examples in the book* Animations* Library (net.datastructures) of Java constructs used in the book* Problems database and search engine* Student hints to all exercises in the book* Instructor resources, including solutions to selected exercises* Lecture slides

Want to learn more information about Data Structures and Algorithms in Java?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Software Engineering (6th Edition) Review

Software Engineering (6th Edition)
Average Reviews:

(More customer reviews)
Are you looking to buy Software Engineering (6th Edition)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Software Engineering (6th Edition). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Software Engineering (6th Edition) ReviewSommerville gives a keen view of the entire breath of this broad topic. His text is filled with easy to understand illustrations and chapter summaries. The examples are end-to-end because he provides the needed preliminaries (concepts and foundations) to understand the results. His treatment of requirements engineering and formal specification methods is quite good. In addition to the key points (of each chapter) he provides pointers to other resources on each subtopic. I find this text better for use in the classroom than the other leading text (which I use as a reference) because Sommerville's presentation provides a more logical flow and organization (i.e., its easier to read). I used the slides that are available (.ppt) from his web site to supplement my lectures.Software Engineering (6th Edition) OverviewSoftware Engineering presents a broad perspective on software systems engineering, concentrating on widely-used techniques for developing large-scale software systems. This best-selling book covers a wide spectrum of software processes from initial requirements elicitation through design and development to system evolution. It supports students taking undergraduate and graduate courses in software engineering. The sixth edition has been restructured and updated, important new topics have been added and obsolete material has been cut. Reuse now focuses on component-based development and patterns; object-oriented design has a process focus and uses the UML; the chapters on requirements have been split to cover the requirements themselves and requirements engineering process; cost estimation has been updated to include the COCOMO 2 model.

Want to learn more information about Software Engineering (6th Edition)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Introduction to Parallel Computing: Design and Analysis of Parallel Algorithms Review

Introduction to Parallel Computing: Design and Analysis of Parallel Algorithms
Average Reviews:

(More customer reviews)
Are you looking to buy Introduction to Parallel Computing: Design and Analysis of Parallel Algorithms? Here is the right place to find the great deals. we can offer discounts of up to 90% on Introduction to Parallel Computing: Design and Analysis of Parallel Algorithms. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Introduction to Parallel Computing: Design and Analysis of Parallel Algorithms ReviewI bought this book when I was a 2nd grade CS student. I planned to start my research project in supercomputing field. So I decided to study the aspects of parallel computing starting by its concepts and programming. As a programmer I found that I would need the general view before coding. Kumar's book is great in which it gives you generalized overview of hardware and software architectures. He and his contributors don't take care of what system nor language you're using. Instead, they want you to learn Parallel Programming. Scientific and non-numerical algorithms are overviewed and explained mathematically. They prove everything they state by using mathematics. I don't know any better way. Do you? It's worth every penny.Introduction to Parallel Computing: Design and Analysis of Parallel Algorithms OverviewTake an in-depth look at techniques for the design and analysis of parallel algorithms with this new text. The broad, balanced coverage of important core topics includes sorting and graph algorithms, discrete optimization techniques, and scientific computing applications. The authors focus on parallel algorithms for realistic machine models while avoiding architectures that are unrealizable in practice. They provide numerous examples and diagrams illustrating potentially difficult subjects and conclude each chapter with an extensive list of bibliographic references. In addition, problems of varying degrees of difficulty challenge readers at different levels. Introduction to Parallel Computing is an ideal tool for students and professionals who want insight into problem-solving with parallel computers. Features: *Presents parallel algorithms in terms of a small set of basic data communication operations, greatly simplifying the design and understanding of these algorithms. *Emphasizes practical issues of performance, efficiency, and scalability. *Provides a self-contained discussion of the basic concepts of parallel computer architectures.*Covers algorithms for scientific computation, such as dense and sparse matrix computations, linear system solving, finite elements, and FFT. *Discusses algorithms for combinatorial optimization, including branch-and-bound, unstructured tree search, and dynamic programming. *Incorporates various parallel programming models and languages as well as illustrative examples for commercially-available computers. Audience: Junior/Senior/Graduate Computer Science and Computer Engineering majors Professional/Reference Courses: Distributed Computing Parallel Programming Parallel Algorithms Prerequisites: Operating Systems and Analysis of Algorithms 0805331700B04062001

Want to learn more information about Introduction to Parallel Computing: Design and Analysis of Parallel Algorithms?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Data Structures and Algorithms in C++, Second Edition Review

Data Structures and Algorithms in C++, Second Edition
Average Reviews:

(More customer reviews)
Are you looking to buy Data Structures and Algorithms in C++, Second Edition? Here is the right place to find the great deals. we can offer discounts of up to 90% on Data Structures and Algorithms in C++, Second Edition. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Data Structures and Algorithms in C++, Second Edition ReviewOn my bookshelf right now I have 13 books on DS&A using C++. Every time I am in need of a new type of data structure or algorithm, and quickly scan through each of them to determine which seem to have the most relevant information, and also which have useable source-code. Drozdek's book is almost always the book I end up selecting to learn a new topic.
Without a doubt, Drozdek's DS&A book is the most complete and well-written of its kind. It includes a chapter of graphs, which many books surprisingly omit. Also, as of the 3rd edition, it includes a chapter on string matching. As far as I know, this is the *only* C++ DS&A book to dive into this subject.
Surprisingly (because of such a broad-scoped book), the material presented in the string matching chapter is modern and incredibly useful. I found the coverage of suffix tries to be excellent. According to Professor Drozdek (via email correspondence), this chapter is actually a compressed version of what was to be an entire C++ book on string matching. Apparently no publisher would touch such a 'specialized' book. How short-sighted of them!
I work in a research-intensive company focused on developing cutting-edge algorithms to solve difficult modern problems. We do the majority of our coding in C++, which is what originally attracted me to Drozdek's book. Since then, I have referred several colleagues to this book, all of which now use it regularly and are loving it.
My only complaint about this book is that it doesn't discuss primality or random-number generation at all. So many algorithms rely heavily on one or both of these, so I find it strange that this book (and most others) completely ignore them.
As for the reviewer who negatively commented "worst written educational book I have ever read", this person obviously bought Drozdek's book expecting to learn C++ and not DS&A. If you're looking to learn C++, I recommend "C++ Primer Plus (5th Edition)" by Stephen Prata (ISBN: 0672326973). Despite its awkward title and oft-maligned publisher, it really is an excellent book for learning C++ (and also as a reference for an experienced programmer).
Depending on your needs, you might look into supplementing Drozdek's book with Robert Sedgewick's books 'Algorithms in C++'. His books do not go as deep as Drozdek does, but he provides an enormous number of fully implemented algorithms that don't exist in any other C++ DS&A book. Be sure to get the 3rd edition; it is much improved over the 2nd.
Here's a complete TOC of Drozdek's book (3rd edition):
Table of Contents
1. Object-Oriented Programming Using C++
2. Complexity Analysis
3. Linked Lists
4. Stacks and Queues
5. Recursion
6. Binary Trees
7. Multiway Trees
8. Graphs
9. Sorting
10. Hashing
11. Data Compression
12. Memory Management
13. String Matching
Appendices
A: Computing BIG-O
B: Algorithms in the Standard Template Library
C: NP-Completeness
Data Structures and Algorithms in C++, Second Edition OverviewBuilding on widespread use of the C++ programming language in industry and education, this book provides a broad-based and case-driven study of data structures -- and the algorithms associated with them -- using C++ as the language of implementation.

Want to learn more information about Data Structures and Algorithms in C++, Second Edition?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

C++ Programming: From Problem Analysis to Program Design Review

C++ Programming: From Problem Analysis to Program Design
Average Reviews:

(More customer reviews)
Are you looking to buy C++ Programming: From Problem Analysis to Program Design? Here is the right place to find the great deals. we can offer discounts of up to 90% on C++ Programming: From Problem Analysis to Program Design. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

C++ Programming: From Problem Analysis to Program Design ReviewAlthough the author is obviously very knowledeable of the subject, the content seems out of order and examples incomplete. Malik builds from previous code, so often times you have to flip back to previous chapters to see complete code. Malik does not explain some concepts clearly, often referring to lines or blocks of code as "self explanatory". Lots of good information, but I learned more from my instructor's supplementary materials and from trial and error.C++ Programming: From Problem Analysis to Program Design OverviewNow in its fourth edition, C++ Programming: From Problem Analysis to Program Design remains the definitive text for CS1 courses. Best-selling author D.S. Malik employs a student-focused approach, using complete programming examples to teach introductory programming concepts. This fourth edition has been enhanced to further demonstrate the use of OOD methodology, to introduce sorting algorithms (bubble sort and insertion sort), and to present additional material on abstract classes. In addition, the exercise sets at the end of each chapter have been expanded to include several calculus and engineering-related exercises.All programs have been written, compiled, and quality-assurance tested with Microsoft Visual C++ .NET, available as an optional compiler with this text. C++ Programming: From Problem Analysis to Program Design, Fourth Edition is the ideal text to motivate your students as they learn the theory behind programming.

Want to learn more information about C++ Programming: From Problem Analysis to Program Design?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Data Structures and Program Design In C (2nd Edition) Review

Data Structures and Program Design In C (2nd Edition)
Average Reviews:

(More customer reviews)
Are you looking to buy Data Structures and Program Design In C (2nd Edition)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Data Structures and Program Design In C (2nd Edition). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Data Structures and Program Design In C (2nd Edition) ReviewI just finished an online course on data structures at UMass, Lowell (secured an A grade without any problem) and this is the textbook used for this course. I agree with some of the comments made by the reviewers here - that typedef's are used beyond reason, code is presented in fragments. I must strongly disagree with the reviewers who said - the book is not worth the money (it's cheap if you buy a used one), it is a bad book, useful only as a paper weight. The strong plus point for this book is that it presents theory well - there are many figures using which it is easy to understand complicated stuff. The other plus point is that it also analyzes the performance of algorithms and I felt the book does a great job of explaining this part in clear terms. The main drawback is that the code is fragmented and spread out, which is certainly frustating. Also, in order to get the code to work on a compiler (I used Microsoft VC++ version 6), you will need to "fill in the gaps" as most code examples (I tried 90% of the examples in the text on MVC++ compiler) are by no means complete but this was not difficult. You can download the code from the publisher's website and the code is actually not organized into different files (sorted by chapter and example) but it comes in a few files where examples from different chapters are mixed. You will have to search and find the part you need. I do agree usage of dummy functions creates confusion. This book has a rocky start with the life game example, which was not very easy to follow with the explanation provided. While I was frustated with the first two chapters, the rest of the chapters are presented well. To the reviewer who said that the code has bugs (which certainly isn't true), my guess that the gaps are not properly filled. I patiently tested most of the code on the computer (after filling in the gaps of course!) and find absolutely no problems with it. This however took lot of time since significant effort is needed from the student to fill the missing code to make it work. I have supplied working code to my fellow students who were facing difficulties in getting the code to run. In a couple of places in the text, the author surprised me with C syntax I did not know was legal (I consider myself intermediate programmer).
I suspect the reason why many readers have problems with this book is two-fold: 1.The code is not available in a format that can be tested on the compiler. Having read a lot of CS books which supply with readily usable code, this book gets annoying. I was wondering why the authors did not give downloadable working code for all examples in the text (which is a definite minus point) 2. The reader will have to go back and forth between the chapters as some functions developed in former chapters are used in later chapters. This does get irritating. I have read books that do this to a ridiculous level but this book stays with in tolerable bounds.
I will not rate this book as the best one on the subject out there but it is definitely good enough to learn data structures. I have used another book as a supplement: Data Structures & Algorithms in Java (Mitchell Waite Signature Series) (Hardcover) By Mitchell Waite, Robert Lafore ISBN: 1571690956. This book has lot of applets that show step by step how algorithms work. I am a visual learner and this helped tremendously. However, I felt that Waite Series book did not present the theory as thoroughly as Robert Kruse's text.
In summary, I consider this book as "decent". I was very much concerned when I first purchased this text because of so many bad reviews. As it turns out, those that can understand C and are willing to sit in front of the computer to make the code samples in this book work need not have any fear. As I said earlier, the theory is presented well, and all it needs is patience and diligence from the student to go through the code examples on a compiler. I believe that I now have a good understanding of the subject and I can move on books that deal with it at more depth. There are a plethora books on this topic out there and there may be better books than the ones mentioned in this review.Data Structures and Program Design In C (2nd Edition) Overview Progressing from the concrete to the abstract —and using numerous, substantial case studies and sample programs —this book explores structured problem solving, data abstraction,software engineering principles, and the comparative analysis ofalgorithms as fundamental tools of program design. Emphasizes principles of top-down refinement, programdesign, review, and testing. Uses the C programming languagethroughout. Offers Internet access to the source codefor all the programs and program extracts printed in the book.

Want to learn more information about Data Structures and Program Design In C (2nd Edition)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Elements of the Theory of Computation (2nd Edition) Review

Elements of the Theory of Computation (2nd Edition)
Average Reviews:

(More customer reviews)
Are you looking to buy Elements of the Theory of Computation (2nd Edition)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Elements of the Theory of Computation (2nd Edition). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Elements of the Theory of Computation (2nd Edition) ReviewThis was one of my favorite textbooks from college. In fact, I still have it on my shelf. It is a fantastic textbook, attemtping to introduce the Theoretical Foundations of Computer Science, in essence the science. In covering this, it moves into topics such as Finite Automata, Parsing, and Turing Machines.
I feel the negative reviews are due to some confusion. This is not an algorithms book, or a programming book, or an "intro to AI" book. It's a Math textbook. It's language is one of theorems and proofs, and this would be hard going for someone not comfortable with a college-level abstract mathematics background.
For those of you who have such a background, this book covers a topic where mathematics can become elegant. A physics major friend of mine fell in love with it, and he had no interest in Comp Sci!!
For it's topic, a similar book would be Feynman's lecture notes on Physics. Both those volumes and this book were attempt to bring the highest levels of theory within the field to the undergraduate audience. Both succeed.Elements of the Theory of Computation (2nd Edition) Overview Lewis and Papadimitriou present this long awaited Second Edition of their best-selling theory of computation. The authors are well-known for their clear presentation that makes the material accessible to a a broad audience and requires no special previous mathematical experience. In this new edition, the authors incorporate a somewhat more informal, friendly writing style to present both classical and contemporary theories of computation. Algorithms, complexity analysis, and algorithmic ideas are introduced informally in Chapter 1, and are pursued throughout the book. Each section is followed by problems.

Want to learn more information about Elements of the Theory of Computation (2nd Edition)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Smalltalk Best Practice Patterns Review

Smalltalk Best Practice Patterns
Average Reviews:

(More customer reviews)
Are you looking to buy Smalltalk Best Practice Patterns? Here is the right place to find the great deals. we can offer discounts of up to 90% on Smalltalk Best Practice Patterns. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Smalltalk Best Practice Patterns ReviewAlthough I've never used SmallTalk and have read only a couple of on-line introduction chapters on Dolphin SmallTalk, I had no problems reading it and applying the patterns in another language like Java, C++ or Python.
Let me put it simple: If you want to learn to think in objects, don't just read the book, do it!
If you have read "Refactoring: Improving the Design of Existing Code" by Martin Fowler et al. then you'll recognize the thougts presented in this book. In this book the patterns are close to refactorings with a bunch of simple, good, readable and understandable advices to just about every little thing - it's more than a simple style guide: You'll always get told what the raison d'etre is - and if not, where to look for it.
I'm currently using the book as a reference for style of OOP. From a teaching point of view, the book is also extremely useful. Kent Beck likes to ask quistions in a heuristic manner. Because of the simple approach to every day experiences of developing, all the way down to the experiences of beginners, you won't have any trouble answering these quistions. In fact you'll probably start asking quistions to yourself likewise because of the magnicifent way this mind trick works for your way of thinking in objects (or otherwise).
As a developer - doing these patterns - you'll be amazed at how much little things can mean in a much bigger and more complex context, when you develop systems applying OO - especially huge systems.
I am compelled to repeat: Don't just buy it, do it!Smalltalk Best Practice Patterns OverviewThis book presents a set of patterns that organizeall the informal experience successful Smalltalk programmers have learnedthe hard way. Understand these patterns, and you can write much moreeffective code. Understand the concept of Smalltalk patternsand why they work. Then learn patterns for working with methods, messages,state, collections, classes and formatting. Walk through a developmentexample utilizing patterns.Smalltalk programmers, projectmanagers, teachers and students -- both new and experienced.

Want to learn more information about Smalltalk Best Practice Patterns?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

The Practice of Programming Review

The Practice of Programming
Average Reviews:

(More customer reviews)
Are you looking to buy The Practice of Programming? Here is the right place to find the great deals. we can offer discounts of up to 90% on The Practice of Programming. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

The Practice of Programming ReviewIn computing, the learning curve is doubly steep. Not only do we have to learn very complex operations, but we have to learn them at a pace unrivaled in any other field. Furthermore, the equipment improves at a rate that simply boggles the mind. In this frantic environment, we rarely have time to read our code twice, much less read a book about code. Therefore, when we do read, we must make every minute count. This is one book where your count of wasted minutes would be a very small one.
Some of the tips in this book are obvious in retrospect, yet ones that you probably would not think of. My favorite is the fact that due to the changes in processors, a double precision floating point arithmetic operation can be faster than the equivalent one for integers. In the "old" days, the gospel was that you must avoid floating point operations unless absolutely necessary, to avoid the degradation of performance.
Other tips, such as methods to assure you comment what is necessary, taking a few minutes to learn simple performance features, debugging and testing guidelines; portability issues and basic algorithm analysis should cause you to pause for a moment. Even in our hectic development environments, stopping and analyzing your code is a necessity.
It is difficult to conceive of someone who will not find a tip in here that will justify the cost of the book. Unless of course, you are one of the authors. I listed it as one of the top books of the year in my On Books column that appeared in the September, 1999 issue of _Journal of Object-Oriented Programming_.The Practice of Programming Overview

Want to learn more information about The Practice of Programming?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

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

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

(More customer reviews)
Are you looking to buy Artificial Intelligence: A Modern Approach (2nd Edition)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Artificial Intelligence: A Modern Approach (2nd Edition). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Artificial Intelligence: A Modern Approach (2nd Edition) ReviewI 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.Artificial Intelligence: A Modern Approach (2nd Edition) Overview

Want to learn more information about Artificial Intelligence: A Modern Approach (2nd Edition)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

The C++ Standard Library: A Tutorial and Reference Review

The C++ Standard Library: A Tutorial and Reference
Average Reviews:

(More customer reviews)
Are you looking to buy The C++ Standard Library: A Tutorial and Reference? Here is the right place to find the great deals. we can offer discounts of up to 90% on The C++ Standard Library: A Tutorial and Reference. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

The C++ Standard Library: A Tutorial and Reference ReviewOn my second reading, I'm still finding more gems in this book. Up to now, it was almost impossible to find any comprehensive material on the standard library. All one could find was the odd article about some aspect of the library, or rather specialized books about STL. Nicolai has fixed that particular problem once and for all.
The book reminds of Richard Stevens's famous UNIX books. Incredibly complete, incredibly detailed, incredibly accurate, and a great tutorial and reference at the same time. And, best of all, it's just as accessible to someone who is not a real expert as it is for someone who's been using C++ for years.
This is one of the *very* few books that get a spot on my top shelf. A classic that I will come back to again and again.The C++ Standard Library: A Tutorial and Reference OverviewThe C++ Standard Library provides a set of common classes and interfaces that greatly extend the core C++ language. Josuttis' book not only provides comprehensive documentation of each library component, it also offers clearly written explanations of complex concepts, describes the practical programming details needed for effective use, and gives example after example of working code. This thoroughly up-to-date book reflects the newest elements of the C++ standard library incorporated into the full ANSI/ISO C++ language standard. In particular, the text focuses on the Standard Template Library (STL), examining containers, iterators, function objects, and STL algorithms.

Want to learn more information about The C++ Standard Library: A Tutorial and Reference?

>> Click Here to See All Customer Reviews & Ratings Now
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)
Are you looking to buy Introduction to Algorithms (MIT Electrical Engineering and Computer Science)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Introduction to Algorithms (MIT Electrical Engineering and Computer Science). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Introduction to Algorithms (MIT Electrical Engineering and Computer Science) ReviewI 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 !Introduction to Algorithms (MIT Electrical Engineering and Computer Science) OverviewThe 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.

Want to learn more information about Introduction to Algorithms (MIT Electrical Engineering and Computer Science)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

A Discipline for Software Engineering Review

A Discipline for Software Engineering
Average Reviews:

(More customer reviews)
Are you looking to buy A Discipline for Software Engineering? Here is the right place to find the great deals. we can offer discounts of up to 90% on A Discipline for Software Engineering. Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

A Discipline for Software Engineering ReviewThis book's title contains two key words that are woefully missing from most development projects: "discipline" and "engineering". With this book Mr. Humphrey introduced the personal software process (PSP), which subsequently spawned the team software process (TSP). Although the material is over 6 years old and does not seem to have gained wide acceptance in commercial development and project environments, it provides a roadmap to effectively integrating the increasingly popular extreme programming (XP)approach that was developed by Kent Beck.
How does PSP align to XP? Both approaches focus heavily on project planning and estimating, and controlling quality, cost and schedule. Both approaches also use metrics as a baseline and past performance to predict future productivity and quality during the planning and estimation phases of new projects. Moreover, both approaches impose a rigorous discipline at a low level in the development process - PSP at the individual level and XP at the 2-person paired team level. An excellent book on XP that supports this premise is Planning Extreme Programming by Kent Beck and Martin Fowler.
The methods that Mr. Humphrey proposes in this book are the building blocks of an effective XP organization because much of the metrics he proposes for capture, analysis and tracking are the very ones that are key to XP. These methods add the "discipline" into the development process, and "engineering" into the quality approach to any development effort, regardless of whether the methods are aligned to XP or any other methodology. Further, the disciplined engineering approach will provide organizations striving for capability maturity model (CMM) level 4 (managed) or 5 (optimizing) with some valuable tools and techniques with which to achieve these higher levels of maturity. Of course, this is also useful to organizations that are implementing SPICE (Software Process Improvement Capability dEtermination), organizing software process engineering groups, or implementing mature project management methods for development projects.
I agree with a previous reviewer that development is also a social and cognitive discipline, but it is not solely those. The social and cognitive approach will only get you so far. The same is true of the disciplined engineering approach. You need both, and this book is a valuable work for the latter.
In my opinion this book is probably more valuable today then when it was first published because the approach required too much rigor for most organizations to adopt. However, with the growing movement towards XP I believe that this book will add details and techniques that are only superficially addressed in the XP body of knowledge and literature. If you are a proponent of XP this book provides some proven, concrete techniques. If you are striving for higher levels of capability maturity this book (and the companion, Introducing the Team Software Process by Mr. Humphrey) will give you the tools to get to managed, and from there to optimizing. I believe this book is a 5-star classic that was ahead of its time.A Discipline for Software Engineering OverviewThis book from Watts Humphrey broadens his disciplined approach to software engineering. In his earlier book, Managing the Software Process, Humphrey developed concrete methods for managing software development and maintenance. These methods, now commonly practiced, provide programmers and managers specific steps for evaluating and improving their software capabilities. In this book, he scales down those methods to a personal level, helping software practitioners develop the skills and habits they need to plan, track, and analyze large and complex projects more carefully and successfully.

Want to learn more information about A Discipline for Software Engineering?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...

Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1) Review

Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1)
Average Reviews:

(More customer reviews)
Are you looking to buy Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1)? Here is the right place to find the great deals. we can offer discounts of up to 90% on Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1). Check out the link below:

>> Click Here to See Compare Prices and Get the Best Offers

Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1) ReviewSince I'm reviewing both "Accelerated C++" as well as "Thinking in C++", I thought I'd post the review on both book links.
There have already been excellent reviews of this book, but I would think the main reason people purchase these books is because they have an explicit purpose, which is to learn Standard C++. That being said, C++ is one of the most powerful and multi-faceted languages around, and no other language provides both high level abstractions and low level control in one programming language as C++.
Because of these features, it is often opinied that C++ is too complicated, large and takes too long to master. While there are some merits to this criticism, many important real world systems are being bult with C++ and professional developers need to master the fundamentals of C++ now. With that in mind, and after spending (or wasting) much money on various books proclaiming to teach C++ from the ground up, it was not until reading Konig and Moo's "Accelerated C++" and Eckel's "Thinking in C++" and in that order, that I finally "got it".
Why I emphasize "in that order" in the last paragraph, is due to the methodologies used to teach C++ by ACPP and TICPP, and due to this, its best to read ACPP first, then TICPP for the most effective learning. Here's my reasons:
ACPP teaches C++ in a top down fashion. What I mean by this, is that the higher level Standard Libraries are integrated right from the start to teach programming contructs such as looping, selection and decisions making using library facilities such as , , and . The Standard is utilized from chapter zero, and relieves much of the burden of C strings and all the low level details one would have to know to use them properly. This can be especially burdensome to the beginner.
As important as the container classes are to the Standard library, are the algorithms used with them. ACPP ulitizes these as well, and from chapters 0 to 7, the student is taught to use the common algorthms such as sort(), copy(), find() and accumulate(). By teaching these features right from the beginning, the reader is able to write some non-trivial programs without having to wade through the typical and troublesome C features typically taught in other books. Thus, by the time the Reader reaches the second half of the book (chapters 8-16), s/he is ready to understand how to build their own user defined types, and other important topics such as pointers, memory management, classes, as well as object oriented and generic programming.
In contrast, TICPP teaches C++ from a more traditional bottom up approach. Throughout the book, the assumption is that the Reader is comming to C++ from a C background. For example, throughout the book starting from chapter 4, Eckel demonstrates a Stash and Stack application, developed first as a "better C", then throughout the book adds features to them such as grouping data structures with the functions that act on them in the form of classes. The concepts of constructors and destructors, function overloading and default arguments, using const and static effectively, inlining, namespaces, references, copy constructors, operator overloading, using new and delete for dynamic objects, etc. are all covered.
In my opinion, the last two chapters where virtual functions, abstract classes, and an introduction to templates and iterators are covered, is where the book really shines, as these chapters allow the book to finally culminate the benefits of true object oriented programming and give a solid introduction to generic programming in the form of templates and iterators. By this point, the Stash and Stack examples are utilizing pure virtual functions and iterating through containers in an STL-like fashion that is similar to the ones in the Standard Library.
The current trend in C++ is to favor the abstractions provided by the Standard Libraries when developing professional software, and ACPP exemplifies this attitude throughout the book. The lower level C-like aspects of C++ can and have caused much trouble in the form of memory leaks, buffer overruns, etc. Nevertheless, certain class of applications require the ability to get close to the metal, and C++ allows this ability without restrictions when necessary. Also, there are many (and some could argue that most C++ based systems out there still adhere to this) legacy systems where C++ is still being used as a "better C". TICPP is the book that will teach one how to make these programs more type safe, as well as migrating it to take advantage of more modern C++ idioms. And in Volume 2 of TICPP which just came out, Eckel and Allison cover the Standard Library in depth, as well as other professional methodologies such as RTTI, Multiple Inheritence, Design Patterns and Concurrent programming.
But by careful and methodical study of both books, and as is recommended by me, reading ACPP first then TICPP, one will learn C++ from the highest layer to the lower, then from the lower back up the higher and obtain a through knowledge of the basics of C++. One can then effectively study the more advanced books, such as by Meyers, Sutter, Stroupstrup, etc. and have the confidence to tackle professional C++ projects.
Postscript - Though I advocate the above learning method for C++, I would like to add that the above two books presume a certain programming maturity, though one does not need to be a guru. A person with the experience typical of first year CS1 (and CS2) in a language like Java or Python (in fact, for a complete novice, I would recommend learning Python first) would be most suited to following the above presciption. Also recommened is to study a book about data stuctures and algorithms, which will provide the Reader with a solid understanding of the mechanisims that underly the STL (meaning the Standard Template Library which encompass the Containers, Iterators and Algorithms of the Standard C++ Library which was originally part of SGI's implementation).
-Don KimThinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1) Overview

Want to learn more information about Thinking in C++: Introduction to Standard C++, Volume One (2nd Edition) (Vol 1)?

>> Click Here to See All Customer Reviews & Ratings Now
Read More...