**The factory:**which resembles the arithmetic logical unit or the CPU.**The store:**which resembles the memory or RAM.**The printer:**which is an actual printer that prints the results on paper, but you can consider it as the screen.**The input unit:**This can be considered as the keyboard.

So, the question is: **What was the thing that makes Babbage invented these devices?**

In 1790, Napoléon Bonaparte initiated a mammoth number-crunching project in which he asked to create tables for switching from the old imperial units of measurements (e.g. yard, ounce, foot) to the new metric system (e.g. meter, kilo).

So, Why tables? Before Babbage, the computer is literally a human. Some people sat around all day to calculate many things and record the results in tables. Then, they gathered these tables in a book called a mathematical book. Then, this book will be as a dictionary; if you want to calculate 21 18, you just need to open that book and get the result without calculating it.

Many scientists were obsessed with one idea: “automatic computation”. They need to invent machines that make many tasks automatically even calculations. So, The Napoléon project was a motivation for Babbage to invent these machines where he was a mathematician and an inventor. He invented many machines other than those we mentioned here.

Babbage said that if we can invent the steam locomotive, why we do not invent a machine that can do the math and calculate math problems with less manpower and even reduce the errors that can be done by humans during calculations. So, he invented these machines.

Babbage invented these engines to solve one problem; how to make mathematical calculations with less manpower and without errors?

So, the computer was invented to be used as any other machine to do some tasks or solve problems. Also, the computer is invented by using science, so, computer science is about studying the science that invented the computer.

**So, computer science is not about studying computers.**

We knew that a computer is just a machine used to do something, so, programming is also a tool. But how?

Today, Computers are operated by software, and software is created by using programming languages, so, programming is just a tool to operate the machine which is the computer.

**So, programming is also a tool to operate the computer and it is not computer science.**

**So, if the computer and programming are tools to solve problems, what is the objective of computer science?**

According to the definition of computer science by Norman Gibbs who is a computer scientist, engineer, and mathematician, *the main purpose of computer science is to study algorithms*.

Some people may freak out when they hear the word algorithms because they may think that is a complicated math subject that needs super-intelligent people. So, before you freak out, let us define the word algorithm.

We can say a simple and brief definition of the word algorithm. *An algorithm is well-ordered and has finite steps to do a certain task or solve a problem.*

What? Is it simple like that? **Yes, it is**.

So, when anyone tells me some steps to do anything, is that mean he is telling me an algorithm? **Yes**.

So, if a chef tells me the steps to bake a sponge cake, is this means he/she is telling me the algorithm of the sponge cake? **Exactly**.

So, Why the name algorithm? The word *algorithm *is derived from the last name of Muhammad ibn Musa Al-Khwarizmi, a famous Persian mathematician. In AD 825, Al-Khwarizmi authored another book about the base-10 positional numbering system that had recently been developed in India. In this book, he described formalized, step-by-step procedures for doing arithmetic operations, like addition, subtraction, and multiplication, on numbers represented in this new decimal system. The Latin characters for Al-Khwarizmi were ** Algoritmi**, and eventually, the formalized procedures that he pioneered and developed became referred to as

You may say “I wonder if it is too simple like that”. It is simple but not so simple because there is a branch of computer science called algorithms in which you will learn how to write different algorithms for the same problem and how to test each algorithm and how to choose the best one. This will be a different course, but in this course, you will study a simple introduction.

**The question is:** *what is the relation between algorithms and computer science?* We knew that objective of computer science is to solve problems. Solving problems start by finding the best algorithm to solve that problem. Let us see an example. Suppose scientists need to search in a big database that consists of millions of records. We knew that this problem is already solved but let us take it as an example.

So, what scientists will do is to find different algorithms and test each of them by finding the mathematical properties for each of them to select the best one. Then they start to find the programming language by which they test the best algorithm on a computer. If there is a problem, they can start to search for a different algorithm and so on.

This also confirms that computers and programming are just tools to solve problems. So, if you already know programming or web development, you already solve problems for your clients.

**So, computer science is about the study of algorithms used to solve problems.**

Someone could say “I am already a programmer, and this is my current job without studying computer science. ** Why do I need to study computer science?**”.

OK, many programmers don’t study computer science, but the programmer who studied computer science is more professional than the programmer who does not because he gained a new and clever way of thinking by which he will be able to choose the best algorithms to solve problems.

However, the programmer, who does not know anything about computer science, will be able to create programs, but ** Does he know the best algorithm?** I do not think so.

Let us ask you a question, Do the people who create software for devices like sonar devices are just programmers who did not study computer science? are the people who invented the Google search engine just programmers? Are people who invented the Internet just programmers?

The people who invented the Internet were Ph.D. students in Computer science.

**So, there is a significant difference between a programmer who studied computer science and a programmer who does not.**

So, we have known that studying computer science is so important, but is the introduction to computer science course enough to know everything about computer science?

Of course not. Computer science is a big field and has many branches. The introduction to computer science course gives you a basic introduction to many branches of computer science.

It gives you the basics you need before you get deeper into the computer science branches. In other words, you can consider this course as the bedrock of computer science.

Of course, anyone who loves computer science can study this course. However, computer science students are the people who get the most out of it.

You may be disappointed because you already graduated from another faculty other than computer science and you may think that you cannot get a certificate in computer science.

As science students, we were believing the same thing. But these days, you can find many universities that let you get a diploma in computer science as a postgraduate certificate such as the Faculty of Graduate Studies for Statistical Research (FSSR) at Cairo University which let anyone who has a Bachelor or licenses degrees to a diploma in computer science as postgraduate degree after which you can get master and Ph.D. degrees in computer science.

Also, we need to remind you that if you want to be a professional programmer, you need to study computer science.

We will use 2 references:

**Computer Science: An Overview**

We will use the latest edition which is the 13^{th} edition.

There are 2 versions of this reference: the global version and the AP version.

The global version is for college students and the AP version is for high school students who want to study for the Advanced placement program.

We will use the Global version mainly, but we will consider the exercise of the AP version.

Also, we consider the exercises of the 11^{th} and 12^{th} editions.

**Invitation to Computer Science:**

It is one of the excellent references in computer science.

We will use the 8^{th} edition.