# Programming 101–2. computing machine

D*isclaimer: the Programming 101 series was originally written to be published as a short book. However, since I never got round to finishing it, I’m publishing the chapters here as individual blog posts…*

# The computing machine

So let’s start with the most basic question: “What is a computer program?” And perhaps we need to go even further back and ask “What is a

computer?”

## Alan Turing and computability

The best place to start answering these questions is the notion of the

“computing machine” as proposed by Alan Turing (1912–1954), a British

mathematician who is widely considered to be the father of computer

science. Turing formalized the concepts of algorithm and computation by

describing the so-called Turing machine, which can be considered a model

of a general-purpose computer.

Turing first described his “computing” machine in 1936 with a strictly

mathematical purpose. Turing was looking for a way to prove that while

it is possible to formulate a procedure to produce all rational numbers

— — numbers that can be expressed as a fraction, e.g. 1 (1/1), 0.5 (1/2)

or 0.333… (1/3) — — , it is *not*…