For years I struggled to clarify exactly what a Turing machine needs to do, and more importantly, how Turing conceived of it. Even after I finished a CS degree I wasn’t able to “build one from scratch” because I hadn’t yet *independently realized* what he had…

Recently I had a moment of insight and hit on an improved analogy for the “program” of a Turing machine, which Turing describes as “a book”. I took this one step further and clarified that each *page* in this book can be thought of as a unique *state*. A page contains a single *instruction* to follow (which takes the form of a *conditional statement*). This subtle step is something Turing didn’t include in his paper (instead he skipped ahead and simply refers to it as a ‘big table’, which can be tough to digest at first)

I feel this is the key to make the mechanism behind Turing machines more concrete and intuitive for the new learner. I hope Turing would approve of my modification to his analogy…and after reading his paper some 20 times, I can say with certainty that he would.

Here is the video on how it all works (this is also the 2nd last video in the CS series)