Introduction to Automata Theory, Languages, and Computation (3rd Edition) | 
| Authors: John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman Publisher: Addison Wesley Category: Book
List Price: $125.60 Buy New: $74.98 You Save: $50.62 (40%)
New (23) Used (11) from $50.99
Avg. Customer Rating: 41 reviews Sales Rank: 419922
Media: Hardcover Edition: 3 Number Of Items: 1 Pages: 535 Shipping Weight (lbs): 2.4 Dimensions (in): 9.4 x 6.5 x 1.1
ISBN: 0321462254 Dewey Decimal Number: 511.35 EAN: 9780321462251 ASIN: 0321462254
Publication Date: July 15, 2006 Availability: Usually ships in 1-2 business days Condition: All orders ship same business day via standard shipping (USPS Media Mail) if received by 1 PM CST.
|
| Also Available In:
|
| Similar Items:
|
| Editorial Reviews:
Amazon.com Review This book is a rigorous exposition of formal languages and models of computation, with an introduction to computational complexity. The authors present the theory in a concise and straightforward manner, with an eye out for the practical applications. Exercises at the end of each chapter, including some that have been solved, help readers confirm and enhance their understanding of the material. This book is appropriate for upper-level computer science undergraduates who are comfortable with mathematical arguments.
Product Description
This classic book on formal languages, automata theory, and computational complexity has been updated to present theoretical concepts in a concise and straightforward manner with the increase of hands-on, practical applications. This new edition comes with Gradiance, an online assessment tool developed for computer science. Gradiance is the most advanced online assessment tool developed for the computer science discipline. With its innovative underlying technology, Gradiance turns basic homework assignments and programming labs into an interactive learning experience for students. By using a series of “root questions” and hints, it not only tests a student’s capability, but actually simulates a one-on-one teacher-student tutorial that allows for the student to more easily learn the material. Through the programming labs, instructors are capable of testing, tracking, and honing their students’ skills, both in terms of syntax and semantics, with an unprecedented level of assessment never before offered.
|
| Customer Reviews: Read 36 more reviews...
The best theoretical computer science book out there. June 25, 2008 1 out of 1 found this review helpful
This book is a one stop solution to your theoretical computer science needs (at least, as an introduction). If you're interested in language theory, deterministic / non deterministic finite state automata design, grammars and regular languages, computational complexity (temporal and spatial complexity), this the book for you. The formal notation used in the book is not the heaviest ever seen for this kind of subject, so it remains comprehensible (assumed it's not your first exposition to this discipline). I found it particularly interesting starting from chapter 8, when it covers turing machines, indecidibility in chapter 9 and intractability in chapter 10. All in all, it's a good introduction to these concepts. I give it 4 stars because some proofs could have been easier, but this is not a big problem. The P and NP classes of problems are wonderfully explained. We are speaking about a book every computer scientist out there should have on his/her shelf. Those who consider this book extremely hard and difficult is because of their lack of fundamental knowledge in computer science. Of course, this is not the first book you should read on the subject. But be assured, this book will give you what it promises: a good knowledge about languages theory, indecidibility and intractability of problems.
Very nice book May 15, 2008 I read this book from cover to cover, not because it was required by the Formal Languages course that I took, but because it is a very good read. This book gives all the necessary details in every theorem that it proves, which can be considered both a good and a bad thing, depending on your level of knowledge of the subject. I personally believe it is a good thing, because after reading any proof in this book you do not feel skeptical if it works or not, like it can be after reading a proof that skips lots of steps.
I haven't used their online resources, and I didn't do many problems from this book, because the professor teaching the course came up with problems of his own. However, from what I've seen, they have a very reasonable collection of problems suited for self-study. Every well established field has a list of standard problem, and Language Theory is no exception. The problems in this book certainly cover most of the standard ones. Please, also be aware that although this book is a good read, it is not necessary an easy read - be prepared to invest considerable amount of time into this book.
I cannot give this book 5 stars simply because I do not think it is much better than previous editions. As a matter of fact, I think it is worse. I did not have a very close look at previous editions, but I know for a fact that they were more rigorous and formal and covered more topics. As a result of that, they were less suited for teaching an introductory course, but some of the topics they studied there are really nice. From what I've heard about previous editions though, it seems that they described several open problems, that are no longer open. So I'd suggest getting this new edition, simply because it has more contemporary information.
Some people write in their review that this book requires solid background in the area it covers. I respectfully disagree - I had little to none background in Language Theory and Complexity Theory prior to taking this course and (consequently) starting to read this book; however, I did very well in the course and enjoyed it very much. Of course, I was lucky to have an excellent professor teaching that course. If good books came with good professors that would be a killer package, but unfortunately they don't.
I have not read any other books in this field, so I have nothing to compare with, but all in all, for me it worked great and if you have a good professor and are passionate about the subject, I'm sure this book won't be a miss.
extremely confusing as a beginners textbook March 12, 2008 This was used as a 3rd/4th year computer theory course at my university. For the most part the book was only used for homework problems where we got help from the TA and the professor had detailed slides. But from the times I tried reading the book to understand some problems it was literally like trying to read something in a different language. This book makes no attempt to make things understandable.
A Butchered Classic September 28, 2007 5 out of 5 found this review helpful
I've heard that the first edition of this book is a classic. Reading the second edition, I can kind of see that -- occasionally there will be a stretch of 5 pages or so that is wonderfully clear, concise, and informative.
But overall, this edition is a disappointment. The explanations tend to be mechanical and unhelpful, and are sometimes confused or just incorrect. New sections on mathematical foundations and applications have been added, but there isn't really adequate space devoted to covering either topic, and the results are so rushed and lacking in context that I can't see those sections being useful to anyone who would need them in the first place. Finally, this edition needs to be proofread for correctness! It contains numerous mistakes, some of them in the presentations of key proofs.
Updated Classic Text August 29, 2007 The previous edition of this text was published in the late 70's (1979), and it was still in use today in many schools and Universities across the world. For good reason too, the authors of this text really nail down the concept of computability as we understand it today. It is very difficult to find an undergraduate curriculum that does not include a course in Computability or theory of computation, and that is certainly a change from a couple of decades ago where this type of study was left to the Graduate level curricula. What this means to the reader is that one can not be a Computer Scientist without understanding the concepts and theory behind what computability really means.
Things like Context Free languages and grammar are used readily in things like XML and its accompanying standards such as the DTD. So, it makes sense to update a classic text to include such topics and further illustrate to the reader that what once was a theory is now center stage of Computer Science and the IT industry as a whole.
The text starts with the classics such as an introduction to automata theory followed by languages. The authors have taken a more relaxed approach to the topics as the proofs are less formal and easier to follow. Plain text is usually used to informally proof the topic at hand, and the authors go into a more formal approach on selected proofs. This is definitely a better approach than the other texts in the same topic that proofs are center stage of the discussion and the reader gets lost early on in the process. The text is easy to read for students, and easy to explain for the instructors. I remember when I took theory of Computation for my graduate work proofs were so convoluted and difficult to read that I had to spend many of nights trying to understand what the instructor was talking about in the class.
As one would expect, the book then goes into Turning Theory and Machine with the concept to computability and complexity. Well, the good news is that the authors' approach to the topic does not change; lots of explaining of the basics followed by a more detailed formal approach to the topic. All I need to say is that I wish my text was this reader friendly! Chapter 8, Introduction to Turing Machines, sets the ground work for the rest of the text. It explains reducibility and more importantly how to reduce a problem, something I have never seen in any other text in such detail! Automata and its relation to Turing Machine is depicted in detail, so there is no gap between the topics. What is interesting is that the authors close the loop with actually talking about, for example the Halting problem, in the real world with a program.
As one would expect, different classes of problems are explored in detail with many examples (theory and real-world examples) that accompany the topic at hand. Each chapter ends with a summary of topics discussed followed by a set of exercises. There are also a number of exercises at the end of each section in a given chapter in order to reel-in the topic for the reader.
All and all, this is one great text on automata and computation theory. It is easy to read and follow for the students without the loss of content. The authors relate abstract concepts to real-world examples to further illustrate the importance of the topic at hand.
|
|
|