Amazon.com
"Intended as an upper-level undergraduate or introductory graduate text in computer science theory," this book lucidly covers the key concepts and theorems of the theory of computation. The presentation is remarkably clear; for example, the "proof idea," which offers the reader an intuitive feel for how the proof was constructed, accompanies many of the theorems and a proof. Introduction to the Theory of Computation covers the usual topics for this type of text plus it features a solid section on complexity theory--including an entire chapter on space complexity. The final chapter introduces more advanced topics, such as the discussion of complexity classes associated with probabilistic algorithms.
Book Description
Michael 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.
Customer Reviews:
My choice for textbook in my computation theory class.......2007-10-01
I recently encountered this book at a publisher's booth at a computer conference and read it on the ride back home. This morning I made a trip to the college bookstore and notified them that it is the textbook that I will be using in my computation theory class this spring.
The chapter titles are:
0) Introduction - this chapter contains the fundamental mathematical background of sets, functions, graphs and proofs. For most students, it could be skipped or skimmed.
1) Regular languages - this chapter is an introduction to deterministic and nondeterministic finite automata and regular expressions.
2) Context-free languages - an introduction to context-free grammars and pushdown automata.
3) The Church-Turing theses - an introduction to Turing machines and the variants, such as multiple tapes and nondeterministic Turing machines.
4) Decidability - the definition of decidability and how Turing machines and finite automata are used to prove or disprove if a language is decidable.
5) Reducibility - the definition of reducible and how Turing machines can be used to execute reductions.
6) The recursion theorem - an introduction to the recursion theorem and some applications to formal theories.
7) Time complexity - the first chapter in the coverage of algorithmic complexity, in this case execution time.
8) Space complexity - an examination of the complexity of algorithms from the perspective of the amount of memory required.
9) Intractability - an examination of the problems that can be solved in principle but not in practice.
10) Advanced topics in complexity theory - approximation algorithms, probabilistic algorithms, alternation, interactive proof systems, parallel computation and cryptography.
There is less coverage of grammars than most books, which is replaced by more in the area of algorithmic analysis. In my opinion, that is an appropriate tradeoff, the analysis of algorithms gives the students some understanding of how automata are applied in computer science.
Another excellent feature of this book is the solutions to selected exercises that appear at the end of the chapters. My estimate is that reasonably detailed solutions to approximately one-third of the problems are included. This allows the students to work extra problems by themselves, and helps the instructor if they are asked to do another example in class that they have not already worked through.
The exposition is very good; I am convinced that the students will be able to read the material on their own, which is one more reason why I adopted this book for my course.
well-organized, progressive, and understandable.......2007-01-06
As an intro to the theoretical background to computer science goes, this book is about as readable and approachable as you can get.
It gives a very thorough treatment of the whole theoretical basis, from regular languages and pumping lemmas out through Turing machines and related issues, and on to some interesting language classes (like NP and PSpace-complete).
If there's a single sticking point with the book, it's that it insists on a very strict formalism (ie: everything is proof-based) -- something necessary for the topic, but it sometimes renders the material a bit hard to digest.
Great book on the subject.......2006-12-27
If you are interested in or for other reasons must read a book on this subject, this is the book. I took a class last semester which used Hopcroft as the text and I found myself often turning to this book for better understanding. This book is more intuitive and thus a bit less formal than Hopcroft but when trying to learn, understanding is better than mathematical formalism. If you are new to the subject, Sipser is the book to begin with.
Very readable, diverse, and a little sparse.......2006-11-25
This is a wonderful little gem of a book that presents the theory of computation in a fascinating way. It is targeted at advanced undergraduates in computer science, but assumes remarkably little prior knowledge, making it accessible to nearly anyone. The book covers a lot of ground, including the standard fare of automata, computability, and complexity results, plus some bonus material such as probablistic and parallel complexity, information theory, decidable logical theories, and other topics that are normally left out of introductory books. On top of this, the book is remarkably thin!
The best attribute of Sipser's book, though, is the engaging style. This is an easy book to read. You will not feel like you're running into a brick wall, as is sometimes the case with books on abstract topics. It's not so much that the book is slow or gentle (it's really not) as that it is interesting, engaging, and has a knack for stopping short of getting too caught up in details. A number of small things -- the occasional amusing exercise, the "proof idea" sections, or helpful pictures -- add up to an enjoyable reading experience.
Two cautions are appropriate to students considering this book. First, there are variations between authors in the definitions of various automata (especially PDAs). The differences are trivial, and more a matter of taste than of any real importance; but it could come up if you use Sipser as a supplement to a course that follows a different textbook. Second, the coverage of many topics in Sipser's book is brief and concise, sometimes more than you might like. Some important concepts (for example, pairwise distinguishability of strings) are only mentioned in exercises, not in the main chapter, so at least skim all the exercises even if you don't do them. The sketchy coverage is especially pronounced in advanced topics, so (as always) expect to do some filling in of concepts if you go on into further study of this area.
Most appropriate for CS students.......2006-06-01
As a teacher of the subject, I have had the chance to evaluate numerous books on the theory of computation. Of all the available texts, I think this one is the most appropriate for CS students. In the past I taught out of Dexter Kozen's book, which is incredibly elegant, but had some resistance from the students. Thinking it over I decided that Kozen's text, although beautiful, may be better suited to students pursuing a degree in pure math. Sipser's book, on the other hand, is more gentle. I find that Sipser demands far less mathematical maturity from his readers, and thus allows the difficulty to be shifted from excessive formalism to the inherent challenges present in the material. In addition, following Sipser's treatment, I was able to cover finite state machines and pushdown automata in far less time, thus allowing me to concentrate on computability and beyond. The book really shines in its treatment of computability theory, eloquently directing attention to some of the most beautiful aspects.
Another benefit of Sipser's book is the exercises, of which there are many more in this edition. Someone studying on their own should find the initial group of exercises in each section quite approachable. Even the more challenging problems are not incredibly hard, and typically draw their difficulty from the deeper themes of the chapter instead of obscure details.
If you are looking for an enjoyable, well-paced book with an introduction to computability and complexity that is truly inspiring, this is the one for you. A mathematician looking for a bit more rigor may do better with Kozen.
Amazon.com
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.
Book 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:
A Butchered Classic.......2007-09-28
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.......2007-08-29
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.
Good, but just it.......2007-06-27
A good book, but just it.
It's like a normal book. It's not bad but not excellent...
Automata theory. The heart of Computer Science.......2007-04-06
Excellent book. Nothing to say for this one.
Eh... Whatever..........2007-01-21
Uhm... I had to buy this book because it was a required text for a required course. Who would buy a book like this otherwise? Duh!
Average customer rating:
- No Ackermann function
- Needlessly cryptic; too clever for its own good
- Great math, bad writing.
- Content left as an exercise
- A good textbook
|
Elements of the Theory of Computation (2nd Edition)
Harry R. Lewis , and
Christos H. Papadimitriou
Manufacturer: Prentice Hall
ProductGroup: Book
Binding: Paperback
General
| Algorithms
| Programming
| Computers & Internet
| Subjects
| Books
Computer Mathematics
| Artificial Intelligence
| Computer Science
| Computers & Internet
| Subjects
| Books
General
| Computers & Internet
| Subjects
| Books
Discrete Mathematics
| Pure Mathematics
| Mathematics
| Science
| Subjects
| Books
Logic
| Pure Mathematics
| Mathematics
| Science
| Subjects
| Books
General
| Mathematics
| Science
| Subjects
| Books
Probability & Statistics
| Applied
| Mathematics
| Science
| Subjects
| Books
Discrete Mathematics
| Pure Mathematics
| Mathematics
| Professional Science
| Professional & Technical
| Subjects
| Books
Logic
| Pure Mathematics
| Mathematics
| Professional Science
| Professional & Technical
| Subjects
| Books
General
| Computer Science & Information Systems
| New & Used Textbooks
| Stores
| Books
General
| Mathematics
| Sciences
| New & Used Textbooks
| Stores
| Books
All Titles
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Computers & Internet
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Professional
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Science
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Look Inside Computer Books
| Trip
| Specialty Stores
| Books
Look Inside Science Books
| Trip
| Specialty Stores
| Books
Similar Items:
-
Computational Complexity
-
JFLAP: An Interactive Formal Languages and Automata Package
-
Introduction to Automata Theory, Languages and Computation (Addison-Wesley Series in Computer Science)
-
Introduction to the Theory of Computation, Second Edition
-
Operating System Concepts
ASIN: 0132624788 |
Book Description
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.
Customer Reviews:
No Ackermann function.......2007-10-01
Computability: An Introduction to Recursive Function Theory I have a better book that gives a better introduction to this field. I have read several books (older and newer) along these lines.
While this book gives a bad introduction to the tiling problem,
it ignores what is pretty much a "standard" problem in
modern texts : the Ackermann recursion. The text takes the Mathematical high road and leaves most of the human race out in the cold by lack of good illustrations and explanations.
If I were teaching the course in computation , I might tell students to look this book up in the library, but never make them
spend this much for a text that will fail all but the top 5 % of students.
Needlessly cryptic; too clever for its own good.......2007-06-30
This book claims to "make the essentials of the subject accessible to a broad undergraduate audience in a way that is mathematically sound but presupposes no special mathematical experience." On this count, the book fails miserably. The book starts easily enough with an introduction to sets and languages, but by the time Chapter 3 rolls around, the writing degenerates into the hectoring style of Russell and Whitehead... pages and pages of non-intuitive academic proofs, and making simple concepts needlessly complex in the name of Formality. The concepts the authors are presenting are fascinating, but in order to get to them you have to spend way too much time shuffling symbols. By the time we've made it to Chapters 6 and 7 (the good ones) we've lost most of the students in the muddy bootcamp of Chapters 3 and 4.
Don't buy this book, and don't use it to teach; the Sipser book is the way to go.
Great math, bad writing........2007-06-10
I read this book while taking a bachelor level course in computer science. I am not many many years beyond that degree and thought it would be nice to reflect on it as a working professional.
I now understand the math much better, and I can now somewhat read through this book... However, when I recall my days as a student, this book simply did not serve well as a text book (nor does it serve as recreational reading).
The author obviously knows his set theory and discrete mathematics... The writing is just so poor and hard to read that it makes the book relatively worthless.
Good books take a (potentially) complicated subject and make it easy to understand. The subject may look complicated, but it really isn't that hard to grasp once you develop a general understanding of it. If it isn't explained well, then the subject matter seems to be written in a different language. That is what happens with this book.
Explanations are often given a line or two before the author continues to build upon the material. Similarly to a calculus course, the information you just learned will be used in a more advanced manner, increasing in complexity as you move forward. That is what happens here. The problem is that the few sentences aren't always enough to "get" or understand the material. If you don't quite grasp what is happening, then you immeidately become lost as the author moves on.
The examples aren't always that helpful, and the information is just presented in a non reader-friendly fashion that it is exceptionally easy to get lost and lose your way...
The book has the potential to be very good... but it would probably take 600 pages of writing instead of 300. If the author spent more time "hammering" in the facts of the topic, it would be way more effective as a learning tool..
Content left as an exercise.......2005-06-08
I had the "pleasure" of being exposed to this nightmare of a book in a bachelor level course. I am told that it is normal to use this book on masters-degree level, so maybe it's because I wasn't "prepared" enough for this book that my take on it is so negative. The book does have it's moments, where things are understandable, but thats mainly if the stuff is easy. There is a lack of explenations throughout the entire book. It seems the author(s) view of "explenation" is the words "it is easy to see..." or "left as an exercise"....The proof of my feelings toward this book, can be seen on the teeth-marks that decorate the books cover. Im not writing this, because I need to vent steam...I passed the course on the first try, and it is now behind me, but I advice anyone faced with this book, to seek alternatives..this book is not a teaching book, it is a telling book.
The best way to describe the book, is if you imagine a book, that on page 2 reads "content left as an exercise"...and then its blank for the rest.
A good textbook.......2005-04-25
I taught a couple of classes from the first edition of this textbook, and my students did fairly well. On the whole, they were able to understand the material and solve the homework problems. I certainly wouldn't mind teaching a class on this subject from the second edition as well, which I feel is a mild improvement over the first one.
The chapter on finite automata is excellent. And the material on context-free languages is thorough and well written. So is the introduction to Turing machines.
Of course, the book then spends a fair amount of time on recursive function theory. That is exactly what I want it to do. And I think the chapter on unsolvability, starting with the Halting Problem, is excellent.
The style, especially of the first edition, is a little formal. But this is serious mathematical material, and I think it is not asking too much to require students to handle this subject in such a manner.
Average customer rating:
- Catches the Misconceptions Before They Happen
- a good sophomore-level book
- Great Book for Understanding Logic
|
Introductory Logic and Sets for Computer Scientists (International Computer Science Series)
N. Nissanke
Manufacturer: Addison Wesley
ProductGroup: Book
Binding: Paperback
Discrete Mathematics
| Pure Mathematics
| Mathematics
| Science
| Subjects
| Books
Discrete Mathematics
| Pure Mathematics
| Mathematics
| Professional Science
| Professional & Technical
| Subjects
| Books
Computer Mathematics
| Artificial Intelligence
| Computer Science
| Computers & Internet
| Subjects
| Books
General
| Computers & Internet
| Subjects
| Books
General
| Software
| Computers & Internet
| Subjects
| Books
Look Inside Computer Books
| Trip
| Specialty Stores
| Books
Look Inside Science Books
| Trip
| Specialty Stores
| Books
All Titles
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Computers & Internet
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Professional
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Science
| Qualifying Textbooks - Fall 2007
| Stores
| Books
ASIN: 0201179571 |
Book Description
This text provides a practical, modern approach to teaching logic and
set theory, equipping students with the necessary mathematical
understanding and skills required for the mathematical specification
of software. It covers all the areas of mathematics that are
considered essential to computer science including logic, set theory,
modern algebra (group theory), graph theory and combinatorics, whilst
taking into account the diverse mathematical background of the
students taking the course. In line with current undergraduate
curricula this book uses logic extensively, together with set theory,
in mathematical specification of software. Languages such as Z and VDM
are used for this purpose.
Features
Particular emphasis is placed on the application of logic in the fields of software engineering, artificial intelligence and natural language processing
Customer Reviews:
Catches the Misconceptions Before They Happen.......2003-03-13
This book not only covers discrete mathematics well, but shows real professionalism in education. I have over twenty years of software experience and this book was arranged to allow me to refresh or learn for the first time precisely the material I wanted.
Not only this, but Dr Nissanke is well aware of common misconceptions and misunderstandings that students may have in learning discrete mathematics. Examples are the differences between bound and free variables, unknowns and genuine variables, what to guard against in building proofs, and more. For me, I had missed in my education the material from the entire chapters on Interpretation of Formulae and Proofs in Predicate Logic, and never had the time and patience to piece this together from textbooks where this material was learned by osmosis or "between-the-lines".
Another big plus for me was the introductory material to Z, formal specification, functional programming, and lambda calculus. These were done very straightforwardly and user-friendly.
The book also spends more than a tenth of its 400 pages on giving solutions to its exercises.
Finally, it is reasonably priced, especially considering that other introductory textbooks in discrete mathematics run $100 to $125 but are still short on the educational know-how.
My only regrets are that it does not cover posets and graphs. However, this may be a good division of labor between this and a follow-on course.
a good sophomore-level book.......2001-09-15
a nice sophomore-level book. it introduces basic set theory and logic concepts, but at "gentle" pace. the type of book that would be used at a liberal arts college, but not at a "real" engineering school. has a nice examples and does a decent job in explaining the basics.
Great Book for Understanding Logic.......1999-05-08
I like this book very much. It's very clearly written and a delight to read. I especially like the chapters on transformational proofs and propositional logic. The author makes the topics easy for students to grasp the theory and understand the fundamentals of what may seem to be a difficult subject.
Book Description
Discrete Mathematics and its Applications, Sixth Edition, is intended for one- or two-term introductory discrete mathematics courses taken by students from a wide variety of majors, including computer science, mathematics, and engineering. This renowned best-selling text, which has been used at over 500 institutions around the world, gives a focused introduction to the primary themes in a discrete mathematics course and demonstrates the relevance and practicality of discrete mathematics to a wide a wide variety of real-world applications…from computer science to data networking, to psychology, to chemistry, to engineering, to linguistics, to biology, to business, and to many other important fields.
Customer Reviews:
The most confusing and worst representated math book I've ever had.......2007-10-01
This book does an excellent job in confusing and misleading student, where as does it a bad job in explanation the concepts. Several of questions ask about the problems that the author never mentions in his text. What is it for? To stimulate students' mind? No, not at all, you confuse your readers instead, Dr. Rosen. I found myself in much easier and helpful situation w/ the help of wikipedia and some other sources than your text itself. I daren't say that your intellectual product is trash, but I definitely can say that your book is a piece of disaster for STUDENTS. You should have better noted in the front cover of the book "MUST BE WITH THE SOLUTION GUIDE." Period.
better than the rest.......2007-09-17
many of the complaints that you read have some validity. i still like it more than most other texts available, because it nicely uses computer science examples (as is clearly stated by the author) AND has a VER through study guide.
Rosen's study guide is thicker than most texts. VERY detailed answers so that you can actually figure out why you got the wrong answer. i would pay more for the study guide than i would for 90% of the krapp being sold today. too many authors take the cheap cop-out of "letting the student explore on their own" = lazy author.
get the study guide, you'll be happy you did.
I liked it.......2007-08-09
Having had many, many math classes, this is one of the better-written books I've used. The subject is, as some have implied or explicitly stated, confusing and kind of a melange of topics. This book does a good job of explaining most topics very clearly and has copius examples for each sub-topic that make learning easier. Overall I was very happy with this book.
Rosen's book: Profs love it, students hate it.......2007-07-09
I have used Rosen's book half a dozen or more times for classes I have taught to undergraduates and graduate students (using editions 3, 4, 5, and 6). My universal experience has been that students find it hard to follow and incomplete. However, because it is so broad in its coverage of topics, has lots of excellent problem sets, and treats the subject seriously, I find it useful as a resource in the class, and a reference outside of class. When I use this book, I know that the students will have to get the concepts from me (won't get them from the text)... but that's what I'm there for. The depth of the text pulls the more advanced students along, and is a sufficient review of a well-planned lecture that, overall, it works.
Could be much better..........2007-05-20
I'm going to have to disagree with previous review and say this book takes a rather easy subject (basic logic..probability...graph theory) and turns it into a mess! I was so confused for the first week or two because i was just reading book and going to lecture. So I stopped reading the book altogether and just went to lecture and it was much better. It seemed like the book was just confusing me more than it was really worth.
Average customer rating:
- You will learn so much with this book!
- Good book, with caveats
- Best book for the purpose and audience
|
Logic and Structured Design for Computer Programmers
Harold J. Rood
Manufacturer: Course Technology
ProductGroup: Book
Binding: Paperback
Computer Design
| Microprocessors & System Design
| Hardware
| Computers & Internet
| Subjects
| Books
Structured Design
| Software Design, Testing & Engineering
| Programming
| Computers & Internet
| Subjects
| Books
Logic
| Software Design, Testing & Engineering
| Programming
| Computers & Internet
| Subjects
| Books
General
| Programming
| Computers & Internet
| Subjects
| Books
General
| Computers & Internet
| Subjects
| Books
Logic & Language
| Philosophy
| Nonfiction
| Subjects
| Books
Logic
| Pure Mathematics
| Mathematics
| Science
| Subjects
| Books
All Titles
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Computers & Internet
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Nonfiction
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Science
| Qualifying Textbooks - Fall 2007
| Stores
| Books
Similar Items:
-
Problem Solving and Program Design in C (5th Edition)
ASIN: 0534373860 |
Book Description
LOGIC AND STRUCTURED DESIGN is an introduction to the logic of data processing. It is intended for those who plan, but have not yet begun, to study programming, particularly those with little background in mathematics or logic. The author avoids reference to specific programming languages, isolating questions of logic from questions of syntax. This approach enables readers to concentrate on the logic of problems. The book walks readers through logical problems common to a variety of programming languages and provides the background in logic that many programming texts and courses assume.
Customer Reviews:
You will learn so much with this book!.......2003-05-11
I am just completing Dr. Rood's course at Washburn Univ. and from the student's perspective, I think his book is terrific. I found it to be both challenging and interesting, and I would say it's been an excellent tool for me in beginning to learn what programming is all about and how programs are structured. I would recommend it to anyone who is thinking about using it to teach a course, because I think most students find it a good and helpful book with good practice problems. I would also recommend it to anyone who's just interested in picking up a book about programming and trying to learn how things work.
Good book, with caveats.......2001-07-12
First, I would say that overall this is a good book. Just that - not excellent, not inspiring, not... current. The techniques and principles mentioned in this book are applicable only if you really plan to throw out some of the cruft (with the predominance of OO languages such as Java, C++, Perl, Python and others, do we really need flowcharts?). Good logic and good structure are always required and this book gives you that - just remember there are other (better?) ways of doing design (UML anyone?). Also keep in mind that the way Warnier Orr is presented in this book deviates from the "standard" - so don't be surprised if you have some relearning to do.
Best book for the purpose and audience.......1999-04-06
Professor Rood's book is about the best textbook in this subject that I have encountered in 20 years of teaching the material. It is intended for a CIS/MIS/IT or similar audience. It will provide an excellent introduction of a multitude of problem analysis methods and algorithm design languages (flowcharts, Nassi-Schneiderman, Warnier-Orr). It fosters structured programming and top down design as natural processes.
Since the inside of an Object is procedure oriented code, this work is also an excellent reference for those who think they can jump into so-called "object oriented programming" without learning "old fashioned" procedure oriented first.
They may be better texts for CS majors, but not for the rest.
Book Description
"The book is outstanding and admirable in many respects. ... is necessary reading for all kinds of readers from undergraduate students to top authorities in the field." Journal of Symbolic Logic Written by two experts in the field, this is the only comprehensive and unified treatment of the central ideas and their applications of Kolmogorov complexity. the book presents a thorough treatment of the subject with a wide range of illsutrative applications. Such applications include the randomeness of finite objects or infinite sequences, Martin-Loef tests for randomness, information theory, computationla learning theory, the complexity of algorithms, and the thermodynamics of computing. It will be ideal for advanced undergraduate students, graduate students, and researchers in computer science, mathematics, cognitive sciences, philosophy, artificial intelligence, statistics, and physics. the book is self-contained in that it contains the basic requirements from mathematics and computer science. Included are also numerous problem sets, comments, source references, and himnts to solutions of problems. In this new edition the authors have added new material on circuit theory, distributed algorithms, data compression, and other topics.
Customer Reviews:
Biggest return for the biggest investment.......2005-05-08
This was the second-hardest book I ever read. Honestly, it took me years and years to get through it. I even had to buy a 2nd copy, because I kept getting frustrated and throwing the first copy across the room until it was destroyed. So yes, this book requires a substantial effort to read.
But the payback!! I've gotten more return on investment from this book than from any other book I've ever read. If you dilligently read and master this book, you will be able to analyze and solve problems your collegues just can't.
The basic idea behind Kolmogorov complexity is straighforward: a good measure of the complexity of an object is the length of the shortest computer program which will construct that object. From this basic idea an amazing variety of insights and powerful techniques have been developed, and this book is quite comprehensive in cataloging and explaining them.
For computer scientists and working programmers, probably the most useful result of Kolmogorov complexity would be the "Incompressibility Method", which is a powerful technique for the analysis of the runtime of algorithms. Typically, it is relatively easy to figure out what the best case or the worst case runtime of an algorithm is. Until now, it was hard to calculate the average runtime of an algorithm, because it usually involved a tricky counting problem, to enumerate all possible runs of the the algorithm and summing over them. The incompressibility method eliminates the need for doing these complicated enumerations, by letting you perform the analysis on a single run of the algorithm which is guarunteed to be representative of the average runtime of the algorithm. If you program for a living like I do, this will give you an edge, because if you can accurately predict that the worst-case runtimes almost never happen, you can usually simplify and streamline your programs by optimizing it for the average case. If your competitors are wasting time optimizing for a worst case which almost never happens--at the expense of _not_ optimizing for the average case, you win bigtime.
For philosophers of science and AI/knowledge representation folks, the most useful results of Kolmogorov complexity are probably the contributions of Kolmogorov complexity to Baysianism. To be a Baysian is to follow a two step process: (STEP 1) for every possible sentence, assign to it a number between 0 and 1 which represents how certain you are that that sentence is true. This initial assignment should be a probability distribution over all possible sentences. It should be a "good" probability distrubution, but of course it won't be perfect, since you don't know everything. (STEP 2) when confronted with new evidence, e.g. an observation, update your current "good" degrees of belief by using Bayes' law, to yield a new "better" set of degrees of belief.
The Baysians always had a good story for Step 2--just use Bayes law. But until now, they were mostly hand-waving on Step 1--what would constitude a "good" initial probability distribution? There were many proposals (e.g. maximum entropy) but all proposals had benefits and drawbacks. What Kolmogorov complexity provides is the so-called "universal" distribution, which is guarunteed to be a "good" initial distirbution. This book devotes much time to explaining and exploring this, and shows how previous techniques, like maximum entropy, minimum description length, etc all can be seen as computable approximations to the (unfortunately uncomputable) universal distribution. This really gives a nice framework for evalutating and formulating good prior distributions.
After remarking on how hard this book was to read, I should emphasize that this is not due to bad writing on the part of the authors! Indeed, after throwing the book across the room, I was always drawn back by Li & Vitanyi's most engaging writing style to pick the book back up, dust it off, and have another go at it. If it were not for their wonderul ability to expain a very complicated subject matter, I never would have gotten through it.
An unsung hero of this book is Peter Gacs, who wrote a set of lecture notes which really could be considered to be an Urtext for this book. If you tackle this book, I highly recommend that you also get ahold of these notes, because it is sometimes very useful, when trying to puzzle out a difficult argument, to get another description/explaination of it from a different point of view. These notes are available on the web, just google for "Lecture note on descriptional complexity and randomness" by Peter Gacs.
If you're up to the challange, then buy this book, dilligently read it, swear at it--then swear by it.
A must.......2003-10-29
The book provides all the tools needed for a productive use of the theory. Written by leading experts in the field, the book is both a fascinating introduction as well as a comprehensive reference for experts.
The authors are careful to place the development of the theory in its historical context, give a face to the main players in the field and explore frictions with other lines of thought. But the main storyline is the mathematical world of Kolmogorov complexity. Neccessary background knowledge is provided, most proofs are given and the open problems are presented. Most chapters are more or less self sufficient, making it possible to skip those that are of less relevance to you. In the later chapters much thought is given to the different fields of application.
A third edition is in the making which will include recent advances. But since the authors make new discoveries available on the web, the present edition will continue for a long time to hold a prominent place in the book shelves of many computer scientist.
Excellent if you have the math..........2002-08-13
to understand it. This book is intended for serious students of computer science or those who have some similar training - it is definitely set up as a textbook. However, that being said, if you have the background the authors' delivery is fist-class and very clear.
The reviews below give more than enough information so I won't belabour the Kolmogorov complexity here. Suffice it to say you won't find the subject detailed more fully in any other reference work in existence today.
However, this book does need to be revised and updated. There has been a lot of development in the field and the sections overviewing Solomonoff's work, in particular, could be expanded. Also, I found it hard to believe that nothing about the 'philosophical' importance of the whole induction question - this is at the core of many very important questions and should not be treated trivially.
There should also be some overview of two other areas that, in combination with the theory outlined in this text, are starting to form the nexus of a "new kind of science" (definitely not Wolfram's pathetic attempt). I refer to some information regarding non-classical logical systems as well as anticipatory computing systems. Both will, I predict, become core areas in addition to extensions to Kolmogorov/Chaitin complexity in the future.
All textbooks should be as clear and concise as this example.
The only one of its kind...........2001-09-23
The theory of Kolmogorov complexity attempts to define randomness in terms of the complexity of the program used to compute it. The authors give an excellent overview of this theory, and even discuss some of its philosophical ramifications, but they are always careful to distinguish between mathematical rigor and philosophical speculation. And, interestingly, the authors choose to discuss information theory in physics and the somewhat radical idea of reversible computation. The theory of Kolmogorov complexity is slowly making its way into applications, these being coding theory and computational intelligence, and network performance optimization, and this book serves as a fine reference for those readers interested in these applications. Some of the main points of the book I found interesting include: 1. A very condensed but effective discussion of Turing machines and effective computability. 2. The historical motivation for defining randomness and its defintiion using Kolmogorov complexity. 3. The discussion of coding theory and its relation to information theory. The Shannon-Fano code is discussed, along with prefix codes, Kraft's inequality, the noiseless coding theorem, and universal codes for infinite source word sets. 4. The treatment of algorithmic complexity. The authors stress that the information content of an object must be intrinsic and independent of the means of description. 5. The discussion of the explicit universal randomness test. 6. The discussion (in an exercise) of whether a probabilistic machine can perform a task that is impossible on a deterministic machine. 7. The notion of incompressibility of strings. 8. The discussion of randomness in the Diophantine equations; it is shown that the set of indices of the Diophantine equations with infinitely many different solutions is not recursively enumerable; with the initial segment of length n in the characteristic sequence having Kolmogorov complexity n. 9. The discussion on algorithmic probability, especially the test for randomness by martingales. 10. The Solomonoff theory of prediction and its ability to solve the problem of induction. 11. The treatment of Pac-learning and the resultant formalization of Occam's razor. 12. The discussion of compact routing; the optimal space to represent routing schemes in communication networks on the average for all static networks. 13. Computational complexity and its connection to resource-bounded complexity. 14. The notion of logical depth, i.e. the time required by a universal computer to compute the object from its compressed original description. 15. The connection between algorithmic complexity and Shannon's entropy. 16. The discussion on reversible computation, i.e. logically reversible computers that do not dissipate heat. 17. The treatment of information distance, i.e. for two strings, the minimal quantity of information sufficient to translate from one to the other.
Comprehensive and Excellent.......1999-07-31
This is one of the best-written mathematical texts I've read. It builds up the theory from basic principles, and illustrates it with numerous examples and applications. A definitive work.
Book Description
Category theory is a branch of pure mathematics that is becoming an increasingly important tool in theoretical computer science, especially in programming language semantics, domain theory, and concurrency, where it is already a standard language of discourse. Assuming a minimum of mathematical preparation, Basic Category Theory for Computer Scientists provides a straightforward presentation of the basic constructions and terminology of category theory, including limits, functors, natural transformations, adjoints, and cartesian closed categories. Four case studies illustrate applications of category theory to programming language design, semantics, and the solution of recursive domain equations. A brief literature survey offers suggestions for further study in more advanced texts. Benjamin C. Pierce received his doctoral degree from Carnegie Mellon University.
Contents: Tutorial. Applications. Further Reading.
Customer Reviews:
Good Introduction.......2007-02-21
I have been reading several different category theory texts recently, and this one was very succinct and accessible. Particularly useful for understanding functional programming.
Basic crib sheet for category theory.......2006-04-03
Anyone coming to this book from Pierce's "Types and Programming Languages" will be disappointed. While his "Types ..." book is a model of clear exposition, this book reads like a set of notes jotted down on the back on an envelope. The extensive bibliographic sections are more than fifteen years out of date. Much of the material referenced is no longer in print, and recent developments are, of course, not mentioned. Those seeking a very gentle introduction to category theory would do better with the book by Lawvere and Schanuel, who cover more of category theory than Pierce. Mathematically mature computer science readers will find everything they need to know about the subject in Mac Lane's book.
Really expensive for a set of notes..........2005-12-07
You can find better introductions to category theory available on the net for free. And I'm not talking about P2P! Try searching for Lambert Meertens, Marten Fokkinga, and Jaap Van Oosten, for example.
If you have some money to spend, get Barr and Wells, Category Theory for Computing Science. It's a great book, *way* better than this!
Too terse.......2004-03-28
This is a very short book: 70 pages of text + a bibliography. The first 50 pages are about general category theory, and the last 20 pages are specifically for computer scientists. My interest is in general category theory, and I bought this because I have a BS in CS and thought I'd find plenty of familiar examples. Unfortunately this book doesn't have nearly enough examples. I found it easier to skim some undergrad abstract algebra books in the library (groups, rings, vector spaces) and then continuing with category theory intros written for math students.
the best understaning of categories you can get.......2002-05-06
This book is tiny in volume but large in contents. It does not only provide the definitions of the fundamental concepts but also clear explanations and motivations of why must everything be defined that way, which are not always found in other texts. Plenty of the right examples help you build the right intuitions. The case studies at the end put everything into context and prepare you for CS texts on semantics, type theory, etc.
If you want to UNDERSTAND this wonderful theory read this book!
Book Description
Methods of dimensionality reduction provide a way to understand and visualize the structure of complex data sets. Traditional methods like principal component analysis and classical metric multidimensional scaling suffer from being based on linear models. Until recently, very few methods were able to reduce the data dimensionality in a nonlinear way. However, since the late nineties, many new methods have been developed and nonlinear dimensionality reduction, also called manifold learning, has become a hot topic. New advances that account for this rapid growth are, e.g. the use of graphs to represent the manifold topology, and the use of new metrics like the geodesic distance. In addition, new optimization schemes, based on kernel techniques and spectral decomposition, have lead to spectral embedding, which encompasses many of the recently developed methods.
This book describes existing and advanced methods to reduce the dimensionality of numerical databases. For each method, the description starts from intuitive ideas, develops the necessary mathematical details, and ends by outlining the algorithmic implementation. Methods are compared with each other with the help of different illustrative examples.
The purpose of the book is to summarize clear facts and ideas about well-known methods as well as recent developments in the topic of nonlinear dimensionality reduction. With this goal in mind, methods are all described from a unifying point of view, in order to highlight their respective strengths and shortcomings.
The book is primarily intended for statisticians, computer scientists and data analysts. It is also accessible to other practitioners having a basic background in statistics and/or computational learning, like psychologists (in psychometry) and economists.
Book Description
This introductory text covers the key areas of computer science, including recursive function theory, formal languages, and automata. It assumes a minimal background in formal mathematics. The book is divided into five parts: Computability, Grammars and Automata, Logic, Complexity, and Unsolvability.
* Computability theory is introduced in a manner that makes maximum use of previous programming experience, including a "universal" program that takes up less than a page.
* The number of exercises included has more than tripled.
* Automata theory, computational logic, and complexity theory are presented in a flexible manner, and can be covered in a variety of different arrangements.
Customer Reviews:
Pure mathematical view of Computability and Complexity.......2002-02-14
This is not a common book on Computability and Complexity as Hopcroft-Ullman, Sipser or Papadimitrou. You won't find here too many words describing topics: you'll find the power and elegance of a superlative mathematical approach from one the best authors of the century in the field. Conversely, you'll find here a detailed and elegant treatment of the whole history of computational models that starts at the Primitive Recursive Functions, something you won't find in the other books above mentioned.
A special note goes to the chapter on Blum's complexity, which is about the only good place where I found it and from where I studied for my course on Complexity I.
For this reason the book requires quite more attention than others, but it really worths all the time one can spend reading it. Truly understanding Computability and Complexity as Professor Davis teaches them with this book is in my opinion a definitely high achievement, bringing the sensation that you grasp it totally, with no space for ambiguity or weakness.
Beautiful overview.......2001-07-11
The authors of this book define theoretical computer science as the mathematical study of models of computation, and they do an excellent job of detailing the major results in the theory of computation as related to mathematical logic. Mathematicians, programmers, and philosophers will find the book an effective one in which to learn computability theory, and it serves well as a textbook for courses in the subject.
After a brief review of elementary mathematics and mathematical logic in chapter 1, the authors move right into the consideration of computable functions in chapter 2. They choose a particular abstract programming language in which to study the computability theory, which is built from variables, and programs that can be built from lists of instructions. Examples of programs are given, which have a Fortran flavor, with examples of computing partial functions. Unfortunately, a plethora of GOTO statements appear in the programs, and throughout the rest of the book, which is surprising given the publishing date. The use of these GOTO statements in the book is a major annoyance.
Then in chapter 3, the authors discuss primitive recursive functions, beginning with a treatment of composition, followed by the all-important concept of recursion. The class (PRC) of primitive recursive functions is introduced, and shown to be computable. The primitive recursive predicates are introduced, followed by a proof that the existential and universal quantifiers over an element of a PRC class are also PRC. This is followed by a discussion of minimalization and Godel numbers.
The next chapter is very interesting, wherein the famous halting problem is discussed and related to Church's thesis. The authors stress, most importantly, that an algorithm cannot be defined outside of the choice of a language, and therefore Church's thesis cannot be proved as a theorem. The authors also introduce recursively enumerable sets and show, via diagonalization, that non-recursively enumerable sets exist. They give an interesting example of a function that is computable but not primitive recursive.
The next chapter extends the results to strings of symbols instead of just numbers, and the authors introduce programming languages for doing string computations. One of these is the famous Post-Turing language, which they use to discuss the halting problem, with a variant used in the next chapter on Turing machines. The authors discuss the famous halting problem for Turing machines in this chapter. This is followed in chapter 7 by a discussion of productions and simulation of nondeterministic Turing machines. A very lucid treatment of Post's correspondence problem is given.
Things get somewhat more complicated in chapter 8, where the authors attempt to classify unsolvable problems. It contains one of the best discussions I have seen in the literature on oracles, and the authors give a very clear treatment of arithmetic hierarchies.
The second part of the book reads more like a book on compilers, as the authors delve into the area of grammars and automata. Regular languages, deterministic and non-deterministic finite automata are discussed, and Kleene's theorem, which states that regular languages and finite automata define the same languages, is proven. The context-free languages, so familiar from the study of compilers, are discussed also, along with a proof that a context-free grammar can be reduced to a Chomsky normal form grammar. Pushdown automata, needed for accepting context-free languages, are treated in detail. The authors give a good explanation here as to the additional facilities needed for a finite automaton to decide if a word belongs to a "bracket" language. Chomsky hierarchies are also discussed, and the authors motivate nicely the need for a linear bounded automaton to accept context sensitive languages.
Part three of the book is an overview of mathematical logic, and begins with a treatment of the propositional calculus. The satisfiability problem is discussed for this system, along with how to reduce formulas to normal form. The important compactness theorem is given a very detailed proof. Predicate calculus is then discussed, and Herbrand's theorem, which effectively reduces logical inference in predicate calculus to a problem of satisfiability of universal sentences, is proven. This theorem is fascinating and has important applications to automated theorem proving, as it ties together semantic and syntactical properties of a formal system. The Godel incompleteness theorem and the unsolvability of the satisfiability problem in predicate logic is proven.
In part 4, issues in computational complexity are addressed, the measure of complexity given in terms of the Blum axioms. This is a very abstract way of introducing complexity theory, as it introduces measures of complexity that more general than time and space complexity. The fascinating gap theorem, comparing program performance on two computing machines via complexity measures, is proven. This is followed by a detailed discussion of the speedup theorem, which essentially states that there is a wildly complicated recursive function such that for any program computing this function, there exists another program computing the function that works a lot faster for almost every input. The polynomial-time computability is discussed along with the famous P vs NP problem, with the discussion given in terms of Turing machines. Examples of NP-complete problems are given.
The last part of the book covers semantics, with operational and denotational semantics defined and compared. The emphasis in this part is on programming languages and constructions that one would actually find in practice, and so the preceding chapters on computable functions must be extended. The concept of an approximate ordering is introduced to allow for the instantaneous of a computation at some point before its completion. The denotational semantics of recursion equations and infinitary data structures are discussed, with the latter put it in to deal with the sophisticated systems that are constructed here. The discussion here is very involved, but the authors do a fair job of explaining the need for these types of data structures. The same is done for operational semantics, and the authors finally show that the computable numerical functions are actually partially computable. They then show the existence of computable irrational numbers.
My favorite book on the theory of computation.......2000-05-11
I first learned computability from this book and I loved every minute of it. It has lots of material and is superbly written. In fact, I think the chapters on logic are the most painless way to learn that subject. There are many other books around on this subject, but this is the ultimate!
CS Theory at it's best.......2000-03-30
I haven't found a better book on the Theoretical foundations of Computer Science. However since this IS theory the text can be a bit cryptic. Still, I'd recomend this book to any PhD Candidate or full Professor. Even a lowly Master's student like myself could use it.
This is a wonderful text about the theory of computation........1999-02-25
It taught me how to think about the theory of computation. The exercises added to the second edition are a big improvement over the first editon.
Books:
- Linear Algebra with Applications
- Linear System Theory and Design (Oxford Series in Electrical and Computer Engineering)
- Mathematical Problems in Image Processing: Partial Differential Equations and the Calculus of Variations (Applied Mathematical Sciences)
- Mathematical Structures for Computer Science
- MATLAB: An Introduction with Applications 2nd Edition
- MATLAB: An Introduction with Applications 2nd Edition
- Methods, Standards, & Work Design
- Modeling Structured Finance Cash Flows with Microsoft Excel: A Step-by-Step Guide.Book & CD-ROM
- Modeling the Supply Chain
- Moduli Spaces of Curves, Mapping Class Groups and Field Theory
Books Index
Books Home
Recommended Books
- Rome Sweet Home: Our Journey to Catholicism
- Not Your Mother's Slow Cooker Recipes for Two: For the Small Slow Cooker
- History: Fiction or Science
- History: Fiction or Science
- History: Fiction or Science
- Laser Fundamentals
- Into the Wild
- The Goodyear Story: An Inventor's Obsession and the Struggle for a Rubber Monopoly
- Guyana: Experience With Macroeconomic Stabilization, Structural Adjustment, and Poverty Reduction
- Hong Kong Metamorphosis