Goodreads helps you keep track of books you want to read.
Start by marking “Understanding Computation: From Simple Machines to Impossible Programs” as Want to Read:
Understanding Computation: From Simple Machines to Impossible Programs
Enlarge cover
Rate this book
Clear rating
Open Preview

Understanding Computation: From Simple Machines to Impossible Programs

4.23  ·  Rating details ·  235 ratings  ·  21 reviews
Finally, you can learn computation theory and programming language design in an engaging, practical way. Understanding Computation explains theoretical computer science in a context you’ll recognize, helping you appreciate why these ideas matter and how they can inform your day-to-day programming.

Rather than use mathematical notation or an unfamiliar academic p
Paperback, 332 pages
Published May 10th 2013 by O'Reilly Media (first published January 1st 2013)
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Understanding Computation, please sign up.

Be the first to ask a question about Understanding Computation

Community Reviews

Showing 1-30
Average rating 4.23  · 
Rating details
 ·  235 ratings  ·  21 reviews

More filters
Sort order
Start your review of Understanding Computation: From Simple Machines to Impossible Programs
Jun 24, 2013 rated it really liked it
Despite the fact that there's no real reason to be apologetic, I also haven't yet reached the point in my career as a software developer where I've stopped apologizing for the fact that I have no "real" Computer Science Background.[^1] And/but that's exactly what draws me to books like Understanding Computation by Tom Stuart (O'Reilly, 2013). Stuart describes the books as for:

...programmers who are curious about programming languages and the theory of computation, especially those who don’t have a formal backgroun/>
Stefan Kanev
Aug 28, 2013 rated it it was amazing
Simply put: it's a great book.

It goes over various things in theory of computation. I really like both the depth and the presentation.

Unlike a "Math for Programmers" book I read recently, this one is not shallow. It goes deep enough into all its subjects (automata, state machines, Turing machines, lambda calculus, types, and so on). Things don't just get overviewed – you get enough details to appreciate how those things actually work and what they are used for. Furthermor
Oct 27, 2013 rated it really liked it
While most computer science students will already know the gist of this material, I found this to be a great refresher that also highlighted some other connections I had missed while learning the concepts in a purely academic setting. Stuart's use of Ruby definitely makes the material more approachable, as the semantics of Ruby are perhaps more intuitive to most developers than abstract mathematical notation.

Definitely would recommend for any Rubyist interested in either reacquaintin
Rutvik Patel
Jun 09, 2018 rated it it was amazing
An excellent read...
Computation is not only about a "programming" as most of "new age programmers" think. Its much more deeper than that and this book will help you to understand it with the most practical way possible.
I should have come across this book while I was doing graduation but its better to be late than never. ;)
You can think of this book as easy entry to theoretical side of compatibility. Author has done fantastic job explaining all the hard core concepts without usi
Nov 21, 2016 rated it it was amazing
Shelves: programming
This book is excellent and delivers on exactly what the description says: "for (Ruby) programmers versed in modern languages, with little or no formal training in computer science". The examples are built up fairly well, given the topic. I was a little surprised at what "computation theory" really meant, so reading it in the context of book club with people who do have more formal training was quite helpful in answering my questions of "but what is the point of this" (usually the answer is: if w ...more
Nov 02, 2013 rated it really liked it
Shelves: tech, astea
Although anybody with a formal CS education will be familiar with most of the theory in the book, it was a fun read, containing lots of example code and interesting experiments. If you are curious to see FizzBuzz implemented in lambda calculus (the solution with Ruby procs is included, spanning over nearly 5 pages) or an overview of a few interesting universal systems, give this book a try.
Sep 18, 2017 rated it really liked it
Shelves: cs
Understanding Computation provides a high-level overview of the theory behind computation. It does so from a highly practical perspective, showing the theoretical concepts using implementations in Ruby.

I used this book as a refresher on the relevant courses during my bachelor. Specifically, I was looking for ways how use the concepts in my work.

Although I had my doubts before reading, the book actually does a great job of covering most of the subjects. The focus on the pr
Aug 28, 2017 rated it really liked it  ·  review of another edition
Good over of things like FSMs, Turing machines, what it means to be Turing complete, and the limits of computability. I'm not a Ruby guru by any stretch, but his code examples are clear and readable for anyone that can follow basic modern OO code in a language like Ruby. It was fun to see the theory expressed as code and general reasoning instead of formal proofs.

I didn't have any "whoa, amazing" responses to what was presented --- most CS practitioners will encounter this stuff as p
Tristan Colgate
Jan 28, 2018 rated it really liked it  ·  review of another edition
This is a highly approachable introduction to computability. It has an exceptionally practical approach, guiding the reader through its various topics using simple ruby code. Even if you've never written ruby (or simply don't like it), do not dismiss the book for its choice of language.
May 10, 2017 rated it liked it
Shelves: real-book
A fun review of the stuff I learned in CS252 ("## - new life!"). Clever work here alongside the ruminations on computing power.
Nicolay Hvidsten
Oct 21, 2013 rated it it was ok
This book does what it promises to do - take the reader from the most basic simplifications of computers (finite automata), through more complex simplifications (Turing machines) to reasoning about 'impossible' problems (The quotation marks are added because these problems will surely be solved one day or another by some clever fellow with too much brain activity and spare time, but are impossible for now). I really enjoyed the fact that the author was able to use Ruby code to illuminate his exa ...more
Jan 05, 2017 rated it really liked it
This book is a little pearl. It aims right at the central topic on what is needed and not needed
to perform computation. It covers important material from operational semantics, automaton
theory, different computational models like the turing machine, lambda calculus, partical recusive functions etc. until it closes with important results of in those fields that affect the decidability of problems and ultimately the reasoning about program behaviour. It provides a practical view on that mat
Nov 01, 2015 rated it really liked it
Shelves: kcls
It's an interesting book about the notion of computation, algorithms, abstract machines, and programs. Especially useful if you've had practical experience in programming and interested in more theoretical ideas behind it. Still, the book uses Ruby to explain the ideas instead of pure math.
It obviously describes the Turing machines and lambda calculus, and also partial recursive functions, SKI combinator calculus, Jota, tag systems, cyclic tag systems, Conway's Game of Life, Rule 110, and
Oct 14, 2013 rated it liked it
Автор використовує Рубі, і пояснює, як створити власну метамову. Суть в тому, щоби на основі цієї штучної мови написати свій компілятор, який би запускав самописні процедури для ядра. Паралельно описується формальна семантика, функціональне програмування і нудна теорія автоматів. Купа коду, читати у форматі електронної книги, як я це робив, просто нема сенсу. Глибока і класна книжка, тільки чого ж бляха Рубі! Очі вилазять, тому що ця метамова на основі Рубі, чим далі абстракції (далі, ніж прості ...more
Cario Lam
Aug 20, 2015 rated it really liked it  ·  review of another edition
First this is not a book about software engineering or programming. Instead it delves into the abstract core of what is the essence of a computer. Concepts like finite automata and Turing machines are a few that are presented and discussed. An engineering or mathematical background is not a requirement to tackling the material. In addition the simulations of the concepts presented are done in Ruby but fear not the author devotes a fair amount of pages to the features of Ruby so the non-programm ...more
Sep 28, 2013 rated it really liked it
Shelves: owned
This review has been hidden because it contains spoilers. To view it, click here.
Minh Nhật
Jul 21, 2018 rated it really liked it
Shelves: computaion
đã học được món automata T_T
Sep 03, 2014 rated it it was ok
Interesting idea, but the book is rather boring with the code and tech details.
Pouya Kary
Mar 13, 2016 rated it really liked it
loved it, one of the best
Jonathan Lim
Good stuff, but not for me at this time. Maybe when I need a refresher.
Xavier Shay
Jul 07, 2013 rated it really liked it
Fun read, inspired me to try out many different toy programming ideas. I skipped over the Ruby examples because the material made sense to me without it.
rated it liked it
Mar 20, 2019
Jason Liggi
rated it really liked it
Nov 06, 2015
rated it it was amazing
May 03, 2015
Mitchell Boulter
rated it it was amazing
Jan 15, 2019
Diego Essaya
rated it liked it
Apr 06, 2019
Ema Jones
rated it really liked it
Apr 20, 2017
Nick Everitt
rated it it was amazing
Jul 13, 2019
rated it really liked it
Jun 04, 2013
Ryan Bone
rated it it was amazing
Dec 10, 2013
« previous 1 3 4 5 6 7 8 next »
There are no discussion topics on this book yet. Be the first to start one »

Readers also enjoyed

  • The Moment of Lift: How Empowering Women Changes the World
  • Read This if You Want to Take Great Photographs of People
  • How to Lie with Statistics
  • Read This If You Want to Take Great Photographs
  • Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values
  • The Hidden Life of Trees: What They Feel, How They Communicate – Discoveries from a Secret World
  • Java Concurrency in Practice
  • Bandit Algorithms for Website Optimization
  • Practical Object Oriented Design in Ruby
  • The Millionaire Real Estate Investor
  • The Pragmatic Programmer: From Journeyman to Master
  • Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age
  • Gödel, Escher, Bach: An Eternal Golden Braid
  • How an Economy Grows and Why It Crashes
  • Code
  • Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »