- No requirements
- New students who want to learn computer science and programming
Whatever the name, they all agree on one thing; this is the first course you must take if you want to study computer science.
Notice that I said if you want to study computer science, not programming. You may already study one or more programming languages, but this does not mean that you studied computer science because programming is just a small part of computer science, not the whole computer science. This is what you will see in this introduction.
Misconceptions about computer science:
1) Computer science is about studying computers
Many people think that computer science means studying computers. Also, many computer science students when someone asks them what do you study? They say computers.
When we say that we will study a living object, this means that this object is created by God and humans need to study it, such as human body anatomy, or Coronavirus that we need to study to know the treatment. But a computer is created by humans and, of course, we do not need to study it.
Humans created the computer or even think to invent it to use it as any other machine to do some tasks. In other words, humans created computers to use them like any other machine. To know this, you should go back to computer history.
Let us get into some history to explain this idea. We will not talk about Pascal’s calculator invented by Blaise Pascal or Leibnitz’s Wheel invented by Gottfried Wilhelm Leibniz which are mechanical calculators, however, let’s start talking about Charles Babbage whose studies are considered the start of computer science as known in these days.
Babbage invented the difference engine which can do addition and subtraction, then he invented the analytical engine which could make even more complex calculations, including multiplication and division. Both are also mechanical calculators such as those of Pascal and Leibniz, but the analytical engine is different because it resembles modern computers as it consists of 4 parts:
- 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.
3) Computer science is about studying Programming:
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?
What is the real 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 algorithmsin his honor.
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.
Why should you study computer science?
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.
The goal of the course?
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.
Who are our Audiences? (Who should take this course?)
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.
References we depend on
We will use 2 references:
- Computer Science: An Overview
We will use the latest edition which is the 13th 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 11th and 12th editions.
- Invitation to Computer Science:
It is one of the excellent references in computer science.
We will use the 8th edition.