Learn Computer Science Fundamentals of Best Resources

Learn Computer Science Fundamentals of Best Resources

Our reliance as humans on computers in most aspects of our lives has caused an increase in the demand for applications that depend on computer science. This has encouraged scientific platforms and institutions around the world to provide thousands of free resources for those wishing to enter and master this field.

In this article we introduce you to the basics of computer science and provide you with several reliable sources to study and specialize in it.

In a previous article we explained computer science and its most important fields... We advise you to review it in order to understand this article more clearly.

The following are most important aspects upon which the basics of computer science are based:

1. Basic Computer Components

Computer science depends on the geometry between the two components of a computer, namely:

  • Hardware or tangible components.

  • Programs and applications or what is known as Software.

Like any electronic device tangible parts perform the basic functions of a computer which boils down to processing data we can say that any operation that takes place on a computer is considered a form of data processing with the aim of converting it into a form that humans can deal with.

Computer parts communicate with each other in the language of binary numbers or binary system. This system is based on two numbers (1 and 0) which we will explain in more detail later.

Programs and operating systems are the link between us and the tangible components of the computer, as we use them to communicate with these components.

Of course the communication process consists of several steps and other details that we will explain more in the coming paragraphs.

a) Equipment or tangible components or what is known as Hardware

The tangible components are divided into the famous division of input and output or input and output. The number of these parts is changing day by day, as continuous technological progress causes the need to dispense with parts and create new ones.

However, the following pieces are considered the most famous pieces that are considered inputs in the computer world at the present time:

  • Keyboard.

  • Mouse.

  • Scanner.

  • Web cam.

  • Microphone.

As for the outputs most famous of them are:

  • The Screen.

  • The Printer.

  • headphones.

In terms of performing functions the following components are responsible for performing the main functions of a computer on top of which is data processing:

  • CPU.

  • Motherboard.

  • Storage units of different types (mechanical - fixed, external and internal) Storage devices.

  • Random storage memory or RAM.

  • Power Supply.

b) Software and Applications

Programming languages ​​are the most important elements of programs and applications, and contrary to popular belief, programming languages ​​differ among themselves. This difference comes in many ways. We do not mean here the difference between the Java language and the Python language, for example, but rather the difference between languages ​​at the functional level.

We can summarize programming languages ​​in terms of their functions into 3 types:

2. Machine Language

Machine language is the only language that a computer can understand and process. This language is also known as the language of binary numbers (1 and 0), which is a simple programming language that converts the flow and non-flow of electric current into ones and zeros.

Simply 1 is equal to an electric current in an electronic component, and zero means that there is no electric current passing through this component. Of course, computer commands are not limited to one and zero repeated once or twice, but rather each specific repetition means a specific command or word.

For example when we write “print this” on one of the computer programs for example the latter cannot understand it in its form. Rather, what happens is that it is transformed through languages ​​and through the stages that we will explain later to the following form:

01110000 01110010 01101001 01101110 01110100 00100000 01110100 01101000 01101001 01110011

This form can be understood and absorbed by the computer and then execute the user's commands.

3. Assembly Language

Assembly language is a low-level programming language that humans can read and understand. Assembly language can convert binary into assembly instructions.

The conversion process takes place in two different directions, the first direction is from the binary system to assembly instructions when issuing the outputs of the data processing process such as displaying an image, while the second is when humans communicate with the computer.

Humans use assembly language (through programs and operating systems) to issue commands that assembly language converts into binary.

Assembly languages ​​are a bridge between machine language and high-level programming languages ​​such as Java. Since the invention of the computer, a variety of assembly languages ​​have been invented. However, the following are the most popular languages ​​in this field:

  • ARM

  • MIPS

  • X86

These languages ​​have specialized programs (called assembly programs) that convert them into machine language.

4. High-Level Languages

High-level languages ​​are popular programming languages ​​such as:

  • Python.
  • C++
  • JavaScript
  • Java 
  • Visual Basic.

Through these languages developers develop operating systems, programs, and applications that deal with assembly languages. These languages ​​allow the creation of useful programs and applications without having to write many commands, as is the case with assembly language or dealing with the binary system.

High-level programming languages ​​work in conjunction with two important programs:

  • Compiler
  • Interpreter

Compiler: It is a program that compiles the code written in the previous languages ​​and then converts it into a machine language class.

Interpreter: It is a program that performs the same task as the previous program, but deals with each line of code separately.

We can say that the difference between the two programs is that interpreter deals with code line by line, while Compiler deals with the program that consists of these lines as a whole (of course this simplified explanation).

For more information about programming, we recommend that you see our article, which explains it in a practical and brief way.

c) Operating System

The operating system can be considered a huge program that contains several subprograms through which the computer performs its basic functions, you may have heard about the Windows operating system, the most famous computer operating system ever, the Ubuntu operating system, Linux, and others.

5. Data Structures and Properties

Data structures or data structure is one of the most important basics of computer science, data structures are a format that aims to organize, process, retrieve and store data. There are several types of data structures and they are all designed to arrange the data to fit a specific goal.

Data structures make it easier for users to access and work with the data they need in appropriate ways. Data structures also organize information so that computers and humans can better understand and work with it.

In computer science (specifically in programming) the method of structuring data can be chosen to store it for use with different algorithms, in some cases the basic operations of algorithms are closely related to the way in which the data was structured.

In other words, data structures may control the nature of the work of the algorithms they manage. Data structures contain information about data values and relationships between each other, sometimes data structures also contain functions and commands that can be applied to them.

Like computer components, the field of data structuring contains several basic concepts studied by computer scientists, these concepts are considered methods of structuring data.

The Most Common Methods of Structuring Data

a) Structuring Data via Group or Array Method

A set is several elements that have the same variable type or variable that are stored in random memory, each element in the collection is indexed in an order starting from the number zero, the collection is used to recall data in order to see it at some time.

See the following image to better understand group-style data structure:

Structuring Data via Group or Array Method

Note that Array Elements means Set Elements and Array Indexes means their order or indexing.

b) Structuring data via linked list method

The linked list consists of several items of data, each element known as a node or node. Unlike a group, items in the linked list are not regularly indexed and have no record or index of their own.

Well this can be confusing how these nodes are arranged or how each node can be located relative to the other? The answer to this question lies in the configuration of each node which is divided into two fields, one that contains data and another field that contains an address specific to the next node.

In other words, each node contains two parts; one contains the data recorded within it and another contains the details of the next node, so the linked list can understand the order of the nodes and display them in the correct order. (See the following illustration):

Structuring data via linked list method

In the previous image, the details of the data occupy the first part of each node while the second part is left to indicate the next node.

c) Tree Data Structuring

The tree is the structure of data in a non-linear way, what is meant by non-linear here is that the structuring of data in this method does not follow a sequential order such as the sequence of numbers, for example, structuring data in a tree method is used to represent hierarchical data.

Hierarchical data is that data from which data and other elements emerge, you can imagine it as a drawing of a family tree. Representing data through this method uses a hierarchical shape that shows the data and the data emanating from it and so on.

See the following image for further explanation:

Tree Data Structuring

d) Horizontal Data Structuring

This method of structuring data is called stacking (from a stack or stack). This method is based on arranging data horizontally, in which the data is arranged in the form of elements one element on top of another.

This system is based on two basic operations: Push, whose role is to add elements to the data structure, and the second process is Pop, whose role is to remove the elements that it displayed to make room for the display of new elements.

This method of data structuring presents the data in a last-first-out manner, defined by graduates of business schools as Last in first out or LIFO.

Imagine a group of boards stacked on top of each other... The last panel you place on top of the rest of the board is the first panel you put out for display, meaning that the last data added to the data structure is the first data to be displayed.

(See the following image for further illustration):

Horizontal Data Structuring

e) Queuing Data Structuring

A queue is a system that structures data in a linear manner similar to the previous stacking method, however this method differs in that the data is displayed in a first-in-first-out or first-in, first-out (FIFO) manner.

This method works in the same way as the traditional queue that we use to enter places, applying this method to data is as follows: The data that is added first to the data structure is the first data that is taken out of it.

See the following image for further explanation:

Queuing Data Structuring

As you can not, enqueue means in line or waiting while dequeue means out of line or on turn.

f) Graph Data Structuring

Structuring data through this method displays it in a geometric shape consisting of vertices and edges, vertices are sometimes referred to as nodes and edges, and the shape usually consists of lines or arcs connecting any two nodes in the graph.

More more clearly, structuring data in a graph style consists of vertices (V) and a set of edges (E).

See the following image for further explanation:

Graph Data Structuring

What are The Most Important Uses of Data Structures?

a) Data Storage

We do not mean storage in the common sense of it in the field of computers or saving data on storage space, but beyond that. The concept of data storage in the field of data structuring aims to ensure that the data that these structures maintain is constantly present.

Also, data structures can collect several data with certain features and save them in records that are easy to understand and view at any time, the process of storing data is an important process in the field of preparing databases.

b) Resource and Service Management

Data structures provide resources (computer resources such as a processing unit and RAM) for operating system services, in other words, these structures provide the resources that the Windows operating system, for example, needs to run smoothly, and the programs and functions it performs.

Data structures based on the Linked Lists method manage computer resources excellently. These structures allocate the random memory and central processor capacity for each role played by the computer, including running programs, managing files, and others.

c) Data Exchange

Data structures determine the ways in which information is organized between applications, this function depends on communication technologies between different devices such as TCP / IP packets for computer communication to each other and to the Internet.

d) Sort and Sorting

Data structure methods (such as structuring data through the binary search tree system method) provide efficient ways to sort data items.

Also, by using a specific method of data structuring, programmers can manage elements organized according to a certain priority, this can be easily completed by structuring data using the method of priority queues or Priority Queue.

For example, when a user asks a program for several commands, this method manages these commands, and executes them according to the importance of each command.

e) Indexing

A complex data structuring method such as the B or B-trees method is used to index data elements, and databases are the most common field in which this method is used.

f) Research

Data indexing and organizing methods that facilitate data searches, these methods accelerate the ability to find information in databases.

j) Scalability and Growth

Big data applications use data structures to customize and manage data volumes across distributed storage locations, providing scalability to collect and manage this data and improving the performance of data centers.

3. Algorithms

Algorithms are a series of pre-prepared commands and steps for computer execution, algorithms are the guide that the computer resorts to to solve any problem it faces, and since computer science is interested in solving problems, it is no wonder that algorithms are one of its basics.

Algorithms are applied to most of the previous data structuring methods, algorithms are a huge field that is relied on in computer science intensively, fields such as artificial intelligence and machine learning rely mainly on algorithms of all kinds to achieve their goals.

Talking about algorithms needs a huge article, if not more, so we advise you to read our article on algorithms and their different types in detail, but if you are interested in the field of artificial intelligence, I advise you to read our detailed article about this field and its impact on employment.

Computer Science Learning Resources

1. Harvard University website

The Harvard University website provides a huge number of training courses in the field of computer science fundamentals and related fields, there are courses in many fields such as data science, cybersecurity and many others.

However, the most famous and powerful course offered by Harvard University in the United States is CS50's Introduction to Computer Science, this course is considered the most famous online course in the field of computer science.

CS50's Introduction to Computer Science is a free course that you can study through the popular EDX website. Access to all course content is free of charge, but if you want to obtain a certificate of completion of the course, you will pay 149 USD.

The duration of the course is only 3 weeks and its content is excellent, the course shows you the basic concepts of areas such as programming, algorithms, data formation, and development of applications and websites.

Finally, CS50's Introduction to Computer Science is the perfect choice for beginners in the field of computer science.

2. Udemy

Udemy provides several strong training courses in the field of computer science, the most important of which are:

3- Foundations of Computer Science: Theory and Practice

Foundations of Computer Science: Theory and Practice is one of the most important courses in the basics of computer science, this is due to several reasons, foremost of which is the content of this course and the category directed to it.

The course explains most of the basics of computer science that I discussed in this article in a simple and detailed style at the same time, the course was studied by more than 19 thousand students and its content duration is relatively short (about 4 hours).

Finally, the reason for the high demand for this course by users of the Udemy platform is that it is beginner-oriented and completely free.

4- Computer Science 101 – Computers & Programming for Beginners

Computer Science 101 – Computers & Programming for Beginners is a very fun course, the presentation of the content of this course is designed in an interesting way that is easy for beginners to remember and understand.

We can present the advantages of this course, but it has an important advantage that is not found in competing courses, which is its importance for companies, companies such as WordPress and NetApp advise their employees to study this course... This means that they offer a real benefit in this area.

The price of this course is currently around 180 EGP instead of 230 for a limited time.

5- Introduction to Computer Science

Introduction to Computer Science is a fun course in the field of computer science fundamentals. The course covers the basics of this field in a simple way and provides several questions after each section to help you remember the most important information addressed by the latter.

The duration of the course is about 3 hours, and its content explains a variety of basics of computer science such as algorithms, robotics, etc., the price of this course is currently about 200 Egyptian pounds instead of 1200 for a limited time.


In this article we tried to introduce you to the most important basics of computer science. This field contains a huge number of fields and sub-sciences that are constantly developing at a high pace yet basics that we presented in this article remain the most important pillars of this science old modern and future.

Are you thinking of studying one of the basics of computer science? Share with us your opinion in the comments about the field that you see most suitable for you in this science.

Imead Rmouche

Programmer and developer of websites. I have been working in the fields of print-on-demand as a designer since 2019. I have entered into many fields of business and profit online , and I strive to be a part of foreign technical content in an effort to enrich this content in various fields.

Post a Comment

Previous Post Next Post

نموذج الاتصال