How Alan Turing might approach Computer Science

The very notion of 'Computer Science' seems almost… redundant, does it not? As if one were to speak of 'Calculating Science' or 'Logic Science'. For, in essence, what is this field but the disciplined exploration of what can be computed?

Let us consider a simple machine. A tape, infinitely long, divided into squares. A head, capable of reading a symbol on a square, writing a symbol, and moving left or right. And a set of instructions, a finite state control. This, as I’ve described it, is a universal computing machine. It can perform any calculation that can be precisely described. Any algorithm, no matter how intricate, can be executed by such a device.

So, 'Computer Science' is not about inventing new calculating devices for their own sake, though that is a worthy engineering pursuit. It is about understanding the fundamental capabilities and limitations of these machines. What problems can they solve? What problems are inherently unsolvable by any mechanical process? This is the domain of computability theory, a cornerstone.

Then there is the question of efficiency. A problem may be computable, but require an absurd amount of time or memory. Exploring these bounds, the complexity of algorithms – this is another crucial aspect. We are not merely interested in *if* a machine can perform a task, but *how effectively* it can do so.

And, of course, the construction of these machines. Not the nuts and bolts of transistors, perhaps, but the logical architecture, the design of instructions that permit the realization of complex computations. This is the realm of computer architecture and programming languages.

In essence, 'Computer Science' is the study of the mathematical and logical underpinnings of computation, and its practical realization. It is about…

Imagined perspective — an AI synthesis grounded in Alan Turing’s recorded ideas and methods, not a quotation or a statement they actually made.

Chat with Alan TuringComputer Science on Feynman