Tables of Contents
Tables of Contents
TABLES OF CONTENTS
INTRODUCTION......................................................................................................................2
I. PROGRAMMING...........................................................................................................3
1. DEFINITION...............................................................................................................3
2. USES............................................................................................................................3
3. .COMMON CONCEPTS.............................................................................................3
4. Programming Paradigms..............................................................................................4
CONCLUSION...........................................................................................................................9
WEBOGRAPHIE.....................................................................................................................11
2
INTRODUCTION
English is the most widely spoken language in the professional field. Its use is indeed
common in international relations and in particular in commercial negotiations. In addition,
there are about 1.5 billion English speakers in the world, both native and second languages.
It is therefore very difficult to avoid it, especially if you plan to develop a career in the IT
sector. This field is indeed more than ever concerned by the use of the English language.
Concerning the field of computer science in particular, you should also know that new
technology professionals prefer the use of English in their publications. This is due first of all
to the fact that its use is more widespread in the world and also because this language gives
access to a rich technical vocabulary, essential in computer science.
Especially since it is now possible to find all kinds of sources of information and free books
on the internet. Knowing that 55% of web page content is written in English, it gives an idea
of how much information you won't be able to access just because you don't speak English.
3
I. PROGRAMMING
1. DEFINITION
Computer programming is the process of designing, writing, testing, and maintaining the
source code of computer programs. This is also known as coding or software development. 1
2. USES
In particular, it makes it possible to describe the structures of the data that will be manipulated
by the computer device and what the manipulations will be. A programming language serves
as a means of communication with the computer but also between programmers: programs are
usually written, read and modified by a team of programmers.
The algorithm: the algorithm is the set of steps to be followed to solve a very specific
problem
3. .COMMON CONCEPTS
An instruction
A variable
program
A constant
One type
Each piece of data has a classification, which influences the range of possible values, the
operations that can be performed and the representation of the data in the form of bits10. Each
1
https://datascience.eu/fr/programmation-informatique/quest-ce-que-la-programmation-informatique/
4
programming language offers a range of primitive types, incorporated into the language.
Some languages offer the possibility of creating new types.
Common primitive data types are integers, real numbers, Boolean, strings, and pointers.
Specifically, the Boolean type is a type that has only two values, true and false, while the
pointer type refers to a piece of data that is somewhere in memory.
A data structure
Common structures are arrays, records, lists, stacks, queues, and trees.
A statement
A program sentence that is used to inform the translator (compiler, interpreter, etc.) of the
names and characteristics of program elements such as variables, procedures, types, etc.
Modules
Programming languages may also offer the ability to split a program into multiple pieces
called modules, each with a specific role, and then combine the pieces.
The notions of procedure and module are intended to facilitate the creation of complex and
large programs by assisting in the management of this complexity. These functions allow
modularity and abstraction in particular.
4. Programming Paradigms
a. Imperative Programming
5
Imperative programming is one of the first programming paradigms that was developed, and it
continues to be one of the most predominant approaches in the world of programming. At the heart of
this paradigm is the idea that programs are designed as a linear sequence of instructions, each telling
the computer a specific action to perform. These instructions are executed one after the other,
sequentially, exactly as they are written in the source code. This sequentiality is a direct representation
of how early computers were designed to work. The machines received orders, executed them, and
moved on to the next order. This reflects very mechanical and direct thinking about computation. In
the minds of many programmers, this makes imperative programming intuitive, because it follows
"cause and effect" logic. Each instruction is like an order given to the computer: "Do this, then this,
then that...".
Many popular programming languages, such as C, Pascal or Fortran, are strongly rooted in the
imperative paradigm . They allow developers to explicitly describe each step the machine must take to
achieve a desired result.
b. procedural programming
This in itself is a natural and logical evolution of imperative programming. It builds on the
foundations of the imperative while introducing mechanisms to structure and organize the code in a
more efficient and readable way. This structuring is obtained through the introduction of routines or
functions, which make it possible to group several instructions into a single block, which can be
invoked at will. Think of imperative programming as telling a story where every detail is described
every time. Procedural programming, on the other hand, is like creating a lexicon of these details,
allowing the narrator to simply refer to the lexicon instead of redescribing each item. This lexicon, in
the context of programming, is made up of procedures and functions.
c. Structured programming
Born in the 70s, structured programming is the result of a growing awareness in the developer
community: well-organized code is easier to understand, maintain and debug. This approach goes
beyond simply introducing routines or functions, as procedural programming does. It focuses on how
these functions interact with each other and how control flows are managed within the program.
d. Declarative programming
Declarative programming is based on a philosophy radically different from that of imperative or
procedural programming. Instead of describing step by step how to achieve a result, like an orchestra
conductor guiding each movement of his musicians, declarative programming simply defines what we
want to obtain, leaving it to the "system" to determine the best way to achieve this. It's a bit like
ordering a dish in a restaurant: you choose the dish you want to taste without worrying about the exact
recipe or cooking method.
e. Functional programming
Functional programming has its roots in the fundamental concepts of mathematics and at the heart
of this approach, we find functions, pure entities which, for a given input, always produce the same
6
output without causing any effects secondary. In other words, a function depends only on its
arguments and does not modify external state or variables outside its scope. This leads to an essential
property of functional programming: immutability. Once a data structure is created, it cannot be
modified. If a transformation is necessary, a new structure is generated.
This perspective offers many advantages. Immutability ensures greater code predictability, reduces
common errors related to side effects, and facilitates parallelism because data is not changed “in
place,” eliminating the risk of concurrency conflicts.
f. Logic programming
It constitutes an approach where reasoning dominates the programming process. Rather than
focusing on a sequence of instructions to be executed, as is the case in imperative or procedural
paradigms, logic programming revolves around the formulation of statements (or predicates) that
describe relationships, facts or rules. These statements form a knowledge base that the system will use
to logically deduce solutions or answers.
Let's take a simple example: if we have a predicate stating that "all men are mortal" and another
stating that "Socrates is a man”, logical programming would allow us to deduce, from these two
statements, that “Socrates is mortal”. The program does not need to be explicitly instructed on how to
draw this conclusion; he uses logic to arrive at this deduction.
g. Object-oriented programming (or OOP)
Object-oriented programming, commonly abbreviated OOP, has revolutionized the way
developers design and structure their code. This approach invites us to see the world of programming
through the prism of “objects”, entities that encapsulate both data (attributes) and behaviors (methods).
The heart of OOP: Classes and Objects
The basis of OOP is the concept of “class”. A class is like a blueprint or mold from which objects are
created. It defines a set of attributes (which describe the state) and methods (which define the actions).
So, if we take the example of a class "Car", the attributes could be "color" or "brand", and the methods
could be "started" or "honk".
An "object" is an instance concrete of this class and if we continue with the example of the car, a
particular object could be a red car of the Ferrari brand. Each time a new instance is created, it has its
own attribute values, but shares the behaviors defined by the class.
Encapsulation, Inheritance and Polymorphism
Beyond the simple definition of classes and objects, OOP introduces powerful concepts already
discussed here such as:
Encapsulation: This involves hiding the internal details of an object and only exposing what is
necessary. This protects data integrity and makes complexity easier to manage.
Inheritance: Classes can inherit properties and behaviors from other classes, allowing code reuse and
hierarchical structuring.
7
Pomorphism: It allows an object to take several forms. For example, a "Bird" class may have a "sing"
method, but the way a nightingale and a crow sing may be different. Thanks to polymorphism, each
bird can implement this method in its own way.
OOP has influenced many modern languages such as Java, C, Python or Ruby. It offers a natural
approach to modeling and solving problems, aligning the software world more closely with the real
world, where everything is, in essence, an object interacting with other objects.
h. Prototype-oriented programming
Prototype-oriented programming, often seen as a subset or variant of object-oriented
programming, offers a different and more flexible vision of the creation and interaction of objects.
Rather than relying on the classic model of classes and instances, it favors the creation of objects by
direct cloning from other objects, called prototypes.
The absence of the class hierarchy
Contrary to the Classic object-oriented programming, where a class serves as a blueprint or template
for creating objects, prototype-oriented programming does not require such formal definitions. A
prototype is a complete object in itself, which can be duplicated or extended to create new objects.
This flexibility allows objects to be created and modified on the fly, without having to redefine or
adjust entire classes.
Prototype-based inheritance
One of the essential features of prototype-oriented programming is its ability to allow inheritance
without the intervention of classes. When an object is cloned from a prototype, it inherits the attributes
and behaviors of that original object. If an attribute or method is not found on the object, the system
moves up the prototype chain until it finds what it is looking for or until it reaches the base prototype.
- Flexibility and dynamism
The ability to clone and add or modify attributes and methods on individual objects provides great
flexibility. This also means that objects can evolve dynamically as needed, without requiring
significant structural changes or redefinitions. JavaScript here is one of the most famous programming
languages that uses this paradigm. In JavaScript, all objects can serve as prototypes for other objects,
allowing a dynamic and flexible approach to object creation and inheritance.
i. Class-oriented programming
Class-oriented programming, finally, is an essential pillar of the digital world; It is based mainly
on the notion of “class”, serving as a blueprint for the creation of objects. These classes define the
attributes and methods of objects, such as those of a "Car" which would include information such as
brand and functions such as start. Central concepts such as encapsulation, which protects the object's
data, inheritance, allowing a new class to borrow attributes from an existing class, and polymorphy,
which promotes code flexibility, shape this paradigm. Many modern languages like Java or Python
rely on this approach, making software design more structured, robust, and maintainable.
8
Each paradigm has its own advantages, disadvantages, and ideal use cases. Some programming
languages are strictly linked to one paradigm, while others offer the flexibility to use several, as you
have seen in this topic. Likewise, depending on the purposes, we will largely move towards one type
of programming or another; we obviously do not build a showcase website like software.
9
CONCLUSION
The programmer analyst plays a key role in software development by combining
technical skills and understanding of business needs.
We also advise all computer engineers to practice English a lot because the IT world evolves
with English.
10
WEBOGRAPHIE
https://queveutdire.com/technologie/programmation-informatique-definition/
https://fr.wikipedia.org/wiki/Langage_de_programmation