# Computer Science

The Principles Of Computation

Computationis 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.

Computabilityis a measure of what can and cannot be computed.

Computingis the study of information processes, both natural and artificial.

## What Is Computing?

Computing is no more about computers than astronomy is about telescopes.

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

Algorithmdescribes 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

Programdescribes 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.