One of the people most directly responsible for the current concept of computing machines is Alan Turing. Other early giants in the field of Computer Science include Kurt Godel, Emil Post, and Alonzo Church.

Turing and others proposed mathematical models for computing which allowed for the study of algorithms and in absence of any particular computer hardware. These abstraction have proved invaluable in the field of computer science, allowing for general results about algorithms and their run time complexity to be obtained without having to consider a variety of potential computation engines on which those algorithms would run. Turing's model is called a Turing machine. The design of the Turing machine is the following: The machine consists of an infinite tape divided into cells, each cell can contain a 1, a 0, or a blank. There is also a head which can move about the tape, read a cell, write to a cell, change its internal state, or end computation. It is the internal state of this head that is the program which decides what action the head will take next. (Steane)

As simple as this model appears, it encompasses all the functionality of today's most modern supercomputer. That is to say, given the time and memory, there is not a single computation that can be performed on a modern supercomputer that can not be performed on a Turing machine. The immense value of the Turing machine is that when examining what sort of functions can be computed by a computer, one need only to examine a Turing machine, and not one of the millions of potential computing devices to determine if a computation is possible. If a Turing machine can perform the computation, then it is computable. If a Turing machine can not, then the function can not be computed by any classical computer. (Shor)