Charles Petzold's book The Annotated Turing, which covers Turing's 1936 paper on computable numbers and much of the background material needed to understand it, is more than decent. As a result, I was treated to a full semester of serious study of the work of David Hilbert, Georg Cantor, Bertrand Russell, Alfred North Whitehead, Kurt Gödel, Alonzo Church, Martin Davis… and Alan Turing. We talked about completeness, decidability, computability, and the halting problem. When we covered decidability and computability, we naturally went through Turing’s seminal 1936 paper on computable numbers and das entscheidungsproblem, or the decidability problem, which was given as problem #10 in Hilbert’s 1900 list of the 23 most important unsolved problems facing mathematicians in the 20th century.Even with a good professor and a decent textbook, Turing’s computability paper was tough going. Trying to really understand all the mechanics of the conceptual Turing machine put me off programming until grad school, even though I had started programming in high school.The good news for us in 2008 is that Charles Petzold’s book The Annotated Turing, which covers Turing’s paper and much of the background material needed to understand it, is more than decent: it does at least as good a job of explaining the material as I remember getting from my course in Mathematical Logic, which was a small seminar with a professor who reveled in the subject. If you’re technical enough to read this blog regularly, you’ll probably make it through the book on your own. It’s still hairy material, and you may find yourself nodding off if you try to delve too deeply into the original Turing material reproduced here. On the other hand, if you can forge ahead, Petzold is right there explaining what’s going on — and fixing Turing’s bugs.Enjoy. Software Development