No other volume provides as broad, as thorough, or as accessible an introduction to the realm of computers as A. K. Dewdney's The Turing Omnibus.
Updated and expanded, The Turing Omnibus offers 66 concise, brilliantly written articles on the major points of interest in computer science theory, technology, and applications. New for this tour: updated information on algorithms, detecting primes, noncomputable functions, and self-replicating computers--plus completely new sections on the Mandelbrot set, genetic algorithms, the Newton-Raphson Method, neural networks that learn, DOS systems for personal computers, and computer viruses.
Contents:
1 Algorithms 2 Finite Automata 3 Systems of Logic 4 Simulation 5 Godel's Theorem 6 Game Trees 7 The Chomsky Hierarchy 8 Random Numbers 9 Mathematical Research 10 Program Correctness 11 Search Trees 12 Error-Corecting Codes 13 Boolean Logic 14 Regular Languages 15 Time and Space Complexity 16 Genetic Algorithms 17 The Random Access Machine 18 Spline Curves 19 Computer Vision 20 Karnaugh Maps 21 The Newton-Raphson Method 22 Minimum Spanning Trees 23 Generative Grammars 24 Recursion 25 Fast Multiplication 26 Nondeterminism 27 Perceptrons 28 Encoders and Multiplexers 29 CAT Scanning 30 The Partition Problem 31 Turing Machines 32 The Fast Fourier Transform 33 Analog Computing 34 Satisfiability 35 Sequential Sorting 36 Neural Networks That Learn 37 Public Key Cryptography 38 Sequential Cirucits 39 Noncomputerable Functions 40 Heaps and Merges 41 NP-Completeness 42 Number Systems for Computing 43 Storage by Hashing 44 Cellular Automata 45 Cook's Theorem 46 Self-Replicating Computers 47 Storing Images 48 The SCRAM 49 Shannon's Theory 50 Detecting Primes 51 Universal Turing Machines 52 Text Compression 53 Disk Operating Systems 54 NP-Complete Problems 55 Iteration and Recursion 56 VLSI Computers 57 Linear Programming 58 Predicate Calculus 59 The Halting Problem 60 Computer Viruses 61 Searching Strings 62 Parallel Computing 63 The Word Problem 64 Logic Programming 65 Relational Data Bases 66 Church's Thesis
Alexander Keewatin (A.K.) Dewdney is a professor of computer science at the University of Western Ontario, a mathematician, environmental scientist, and author of books on diverse subjects.
Wanderers of cyberspace may discover something about my life as a mathematician and computer scientist, environmental scientist, conservationist, and author of books and articles.
The name "Keewatin" is an Ojibway word meaning "north wind." The name ":Dewdney" is from the French/Jewish name, "Dieudonne."
This book was a tremendous disappointment. It's table of contents covered a lot of topics that interest me, but it is horribly written. It had the odor of a 6th grader's 5-paragraph paper plagiarizing an encyclopedia to cover the rise and fall of the British empire. I was hoping this would be a nice refresher/reminder of some of my computer science coursework. Instead, I was just frustrated.
Each chapter comes off more as an advertisement for other books (where each chapter's "test" questions apparently are taken from). The pattern seemed to be: 1. horribly basic intro: a "black box" is something where we can't know what happens on the inside 2. short-shrift coverage of a basic definition. 3. crazy leap to the end that the supposed "general" audience would have any hope of knowing.
This book would have been much better if it covered a smaller number of topics, taking the time to explain & develop them. Don't bother with this one.
This book is not for beginners!!! I was required to read this book as research for a piece of course work before starting my first year of my comp sci degree. It's very clear when reading this book after the first couple chapters that this book is for anyone but beginners, it feels almost as if its a book for overly smart people to read to prove how smart they are, I say this as simple concepts feel overly complicated for no apparent reason. In addition to this tons of metaphors are used to help describe concepts however, they all feel either too simple that it adds little to no insight to how a concept works or on the contrast the metaphor is too complex that it in its self is too complicated to imagine let alone make understanding the concept easier. Another small issue I have with this book is the picture locations, the author begins a sentence then mid way through adds an image then continues the same sentence after the picture. This book contains at least two references per chapter and by the end of 66 chapters it begins to feel like being given a reading list of books that I should have read instead of this one to understand any of these concepts within. If this had not been a mandatory read by my university I would of stopped reading by the third chapter.
First chapter: very simple introduction to algorithms by way of a recipe for enchiladas
Second chapter: finite automata, languages, and regular expressions, all introduced within 5 pages. I tried to keep up, but no matter how many times I re-read the chapter or looked up all the terms online, I couldn't wrap my head around what Dewdney was trying to say about languages. This really deserved more time, if this was truly written for a beginner.
Third chapter: systems of boolean logic. I have plenty of experience with boolean logic and logic gates, so I got through to the "complete bases diagram" before stopping in my tracks. I ended up grasping the whole chapter and completing the exercises thanks to my prior experience. But that's as far as I could get in the book.
From what I hear, it's an excellent review of CS topics, but it's not a suitable introduction to these topics due to the very small coverage given to each. I'm fairly literate in basic theoretical computing concepts, but for something to be billed as an introductory work, it needs to offer much more guidance. It's not clear what level of experience one should have before attempting to work through this book.
I received this book as a Christmas gift after reading a review by Jeff Atwood. I was surprised when I found it disorganized and turgid, but I trudged along thinking, "If Atwood liked it, it must be good." Silly me. It turns out Atwood does not read the books that he reviews.
I made it halfway through before I decided enough was enough. There is only so much time in the world, and there are much more enjoyable books out there.
Took me a good month to get through this one. Lots of bite-sized topics in CS theory. Not many that I haven't encountered before, but it was fun to dust off some college memories (Karnaugh maps, NFA->DFA conversions, NP proofs, etc.) Many topics (such as the details behind the undecidability proof behind Kolmogoroff complexity) had me spending hours finding supporting information on wikipedia and the like.
This book could certainly benefit from a new edition that better motivates some of the discussions (e.g. FFTs), and replaces some of the examples that are showing their age (Quad trees, Perceptrons, etc.).
A very nice idea, but only well-executed about half of the time. He wants to be punchy, but he skips so many steps that sometimes he made me feel like I didn't understand ideas that I'm already comfortable with. I occasionally had to Google up something I already knew just to make sure that I wasn't going crazy.
On the other hand, sometimes it works. Some chapters were framed in such a punchy, interesting way that I became extremely excited to keep going.
Very theoretical material containing mostly theory of computation, algorithm analysis and such. I think it is a must read if you are going for theoretical computer science. Being mathematically literate is a prerequisite.
I put this down and picked it up a few times over the course of reading it, and I have to say, I'm really not sure exactly who this book has in mind as a target audience. The level of exposition is all over the place. An example would be Chapter 9 on The Mandelbrot set. We start off with the absolute basics about complex numbers (x + iy, how we can add and multiply them, etc.). A few pages later, we're talking about a theorem for the set Kc of complex numbers having bounded orbits which is either connected topologically or is a Cantor set...
This issue crops up in exercises as well. After a ~5ish page discussion on finite automata, one of the questions asks what an argument would look like showing that no finite automaton can accept all palindromes over a given alphabet. Personally, I can't see the set of people who can answer that and who have just learned about automata from the section being more than a fraction of a percent.
I personally didn't find the exposition to be particularly easy to read, either. For example, the FFT is covered in Chapter 32 - but pulling up the section on the FFT in CLRS, I found that far more readable. Likewise for the section on Huffman coding.
I like the idea of this book, but the exposition just does not work for me; I do not think it is a good way of learning the material, neither is it sufficient as a reference.
I own this book for over half a decade. I've tried to read it about 4 or 5 times. I think page 100 is as far as I'm ever gonna get.
It's an enticing concept to explore a bunch of computer science topics on a single book. Most of us stop thinking about those as soon as the 4 years or so of college are over. Or maybe a bit later when the first paycheck arrives. Still, feels good revisiting those things that gave me so much trouble back then - and some still do.
We get about 5 pages per topic and of course that can't be enough to fully explore each one. For a lot of those it's not even enough to explain the basics. I think that aiming for this naturally resulted in either tedious or incomplete chapters.
Other approaches could be more entertaining or even informative. How about assuming prior knowledge - it's a CS book for CS graduates anyway - and instead of trying to explain things just tell some anecdotes, some of the back story that never gets much focus? Or zooming into one peculiar application? I would enjoy reading that.
Of course that's just the opinion of a failed reader of this book. I know some very smart people who loved it. It may be that this is just not for me.
Great coffee table book. Explains crucial concepts in computer science like decidability and logic in language arts smart high schooler could understand
Too detailed for a beginner but not detailed enough for someone with solid computer science knowledge, leaving the bracket of people who would enjoy/benefit from this quite small (ironically I fit into this bracket). Tries to both be a casual read and a textbook, and doesn’t really manage to be either. But the topics chosen are really good and very interesting to see how computer science has progressed/stayed the same 20 years on
The topics about which I already have a reasonable understanding were decent refreshers. However, the topics that were new or mostly new were covered far too quickly with explanations often stating that something clearly follows when it certainly didn't. Whilst the book covers a wide range of topics, I think finding them on Wikipedia would provide a better introduction since they have the space to go into more detail and provide better examples. The book attempted to give a more in-depth explanation than the space could allow and a shallower, more clearly explained introduction to the topics would've worked better to inspire the reader. They could then seek further explanation elsewhere. The book could also do with being updated as whilst the theoretical chapters haven't dated, the others sorely have.
(Most chapters read, but some skimmed. I've therefore marked this as abandoned.)
This is a very good introduction to computer science. Each excursion is a problem or a subject area within computer science. Each one is presented in such a way that the reader is encouraged to have a go themselves, and the questions that accompany each excursion often involve writing small computer programs to explore the ideas involved.
After reading this you will have a good idea of both the breadth and depth of computer science, and you will know which areas interest you and which do not. Good to read just before starting an undergraduate degree (and a good "light read" during).
The concept of this book is a good one, and I think the author makes a strong attempt at producing his vision. Unfortunately the result does not live up to expectations.
Contrary to his intent, many of the chapters do not stand alone, and someone not already familiar with the material may have difficulty working through the exercises.
I didn't finish the book. By page 100 I was tired.
The topics are shallow and generally disconnected. After two to four pages on a topic, the bus drives somewhere else entirely. This constant skipping makes for a tiring read. There's no reward in the end, no new insight is offered.
Bite-sized (byte-sized?) computer science. I was familiar with some chapters and not with many more. This was a great way for me to be introduced to big ideas worth further study.
A must read for anyone interested in computers. This excellent book contains 66 short essays on the most important and interesting computing topics, such as compression, Turing machines, recursion, formal grammars, non-computable functions, neural networks and algorithms. The writing style of this book is casual and it contains almost no math.
I read this book cover to cover in one evening. I enjoyed one of the chapters about the Busy Beaver Problem so much that I spent a few days implementing Busy Beaver in several languages and wrote a program that visualizes how the Beaver travels on the tape.