# Computer ScienceThe Principles Of Computation

Computation is the act of calculating something by mathematical means. In current years it has come to refer to more often to the use of computers to calculate or determine something mathematically, logically or by interactive means.

Computability is a measure of what can and cannot be computed.

Computing is the study of information processes, both natural and artificial.

## What Is Computing?

Edsger Dijkistra

Professor Edsger Dijkistra was a Dutch computer scientist who established the mathematical foundation for structured programming and is quite a famous figure in the history of computing.

It is now understood that computation and information processing underpin many other fields and are essential to our understanding of biology, chemistry and physics. Computing is a natural science and has been with us for far longer than we tend to think.

Computing could be considered to date back to the development of early writing systems (Sumerian Writing), early calculating devices (abacus) and the algorithms used by the ancient mathematicians. One such example is the Sieve Of Eratosthenes, an algorithm for calculating prime numbers which you will come to in the C# section. A search for computing history timeline will give you throw up a few overviews that will give you an idea of where the modern science of computing comes from.

An Algorithm describes a process that achieves a useful outcome.

An algorithm describes the process without using a specific programming language. The idea is that the algorithm can be implemented in a range of languages and on a range of platforms that are suitable for the task.

A Program describes a process that achieves a useful outcome.

The program describes the process in a programming language.

## Principle: Abstraction

The difference between the terms algorithm and program is subtle. The algorithm describes the general case, the set of steps that are followed whichever programming language you use. This is, if you like, the concept of the program, the idea of it rather than the actual program. It is the process in the abstract. When you create a C# program using the algorithm, you create an instance of that concept, you put the idea into practice. You have to use the specific syntax, terms and language constructs of C# to do that.

Abstraction removes unnecessary details and focuses in on the essentials of the problem.

## Principle: Automation

The C# program that you make is an example of the automation. It is the algorithm put into practice.