My books

In my books, I'd like to share my knowledge and experience about computers and software development for a variety of audiences:


Software as a Garden

Software as a Garden

Software Development for Non-Developers

A non-technical guide to software development for anyone who works in the field and wants to understand what developers are talking about—with enough detail to see the big picture, but not make your head spin.


Building a Universal Machine

Building a Universal Machine

A Hands-on Introduction to Computability

Turing machines, finite automata, register machines, recursive functions, lambda calculus, tag systems, cellular automata, and hypercomputation.

A friendly, informal guide to computing—from Turing machines to electronic circuits. The joy of discovery over dry mathematics!


Computer Science for Kids

Computer Science for Kids

Discover how computers work and learn the power of programming!

Join a little robot on an exciting adventure! Discover the world of computers and learn how to speak their language. With cool pictures and lots of fun activities, you'll explore programming and help the robot find its way back home. Get ready for an exciting, educational adventure!

For children aged 10 and up.