"Computer science is no more about computers than astronomy is about telescopes."
Edsger W. Dijkstra

So, we have an biased overview of the history of computers, but what do these computers actual compute?

The first mechanical computers of the 17th century were able to perform the 4  basic arithmetic operations, addition, subtraction, multiplication and division.

As soon a computer is able to perform addition, he is also able to perform the further 3 operations, which can be broken down, in multiple steps, into the addition of values.

Nowadays computers are binary, means they compute with base 2, zeros and ones, true and false, power on and power off.

Therefore transistors are used, these work like relays, and are coupled together to form logical circuits, which are able to perform the actual computation.

The Z3 (1941) had 600 relays for computation, the 6502 chip (1975) had about  3500 transistors, nowadays CPUs (2018) have billions of them.

So, all these funny programs out there are broken down into simple arithmetic and logical operations.

To perform such an magic, some math is in need.

George Bool introduced in 1847, the Boolean Algebra, with the three basic, logical components, the AND, OR and NOT gates. With these simple gates, logical circuits can be build to perform the addition of values.

Alan Turing introduced in 1936 the Turing-Machine, a mathematical computer, and with the Church-Turing-Thesis it was shown, that everything that can be effectively computed (by an mathematician using pen and paper), can also be computed by an Turing-Machine.

With the help of the Turing-Machine it was possible to define problems and write algorithms for solving them. With the Boolean Algebra it was possible to build binary computers to run these problem solving algorithms.

So, in short, computers can compute everything that our math is able to describe.


Haha, we would live in another world if.

Of course, the available processing power and memory limits the actual computation of problem solving algorithms.

But beside the technical limitation, there is an mathematical, some mathematical problems are simply not decidable, the famous "Entscheidungsproblem".

Mathematicians are able to define problems wich can not be solved by running algorithms on computers.

Turing showed that even with an Oracle-Machine, there will be some limitations, and some scientists believe that only with real Quantum-Computers we will be able to build Hyper-Turing-Machines...