Course Handout Algorithms and Data Structures
No Thumbnail Available
Date
2026
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
university of ghardaia
Abstract
A widely held, yet mistaken, belief in public, industrial, and even academic circles
is that a computer is a machine capable of solving problems because it is endowed
with a certain intelligence. In reality, this machine is capable of nothing unless an
entity (for example, a programmer) has shown it the steps to follow, without any
belief that this machine can provide the slightest interpretation of these steps. In
other words, the machine blindly executes the steps. This philosophy of showing
the machine the steps to follow to solve a problem is called an algorithm.
A survey of graduates from Stanford University asked which courses they relied
on most in their professional careers. The introduction to programming module took
first place, followed closely by core software courses covering basic data structures
and algorithms.
In light of this, this course handout, Algorithms and Data Structures: Part 1, is tailored for first-year undergraduate students in Computer Science and Mathematics.
As of the 2025–2026 academic year, it fully complies with the most recent official
ministry curriculum for the Computer Systems (Systèmes Informatiques) specialization. Furthermore, it serves as an excellent foundational resource for other technical disciplines and institutions teaching introductory programming and algorithm
modules.
Additionally, in strict alignment with the strategic policy of the Ministry of Higher
Education and Scientific Research, this course manual is presented in English. This
initiative promotes the widespread use of English in higher education and research,
ensuring our students are well-equipped to integrate seamlessly into the global academic and professional landscape.
While algorithm textbooks are abundant in the literature, they can often be daunting or overly theoretical for novice students. Our objective is to provide learners
with a manual that is accessible, practical, and easy to comprehend, both conceptually and technically. To achieve this:
• We draw upon all our experience acquired over more than seventeen years of eaching algorithms at the University of Ghardaia and other institutions.
• We accompany the explanation of new concepts and new techniques with examples and illustrations.
• Each chapter is followed by a certain number of exercises of varying degrees
of difficulty, well-designed to implement the theoretical knowledge acquired.
These exercises aim to cover professional life situations (mathematical calculations, management, . . . ).
For the algorithmic formalism, we mainly used the conventions of the Pascal language. This formalism makes it easier for students to implement algorithms in a
high-level language. In order to implement the algorithmic solutions, in this handout, we have chosen to use two programming languages: C and Pascal. The C language is chosen because it is prescribed in the official ministry curriculum. The
Pascal language was chosen for its pedagogical value in helping students master
fundamental programming concepts.
To be in line with the official ministry curricula, this book is the first part of a
series of three parts that cover the teaching of the algorithms and data structures
module for the first three semesters of the Computer Science specialty in the Mathematics and Computer Science domain. The first part, "Algorithms and Data Structures 1", covers the following elements:
1. Introduction to Computer Science.
2. Basic Elements of Algorithms.
3. Presentation of the Algorithmic Formalism.
4. Arrays and Strings.
5. Custom Types.
We also plan to include Python programming languages in future versions. With
the aim of facilitating and widening access to this series of handouts, we plan to
produce versions in Arabic.
At the end of this work, I would first like to thank God the Almighty and Merciful, who gave me the strength and patience to accomplish this modest work.
My sincere thanks go to Messrs. Slimane Oulad-Naoui, Abdelkader Bouhani,
Chaker Abdelaziz Kerrache, Khaled Kechida, Ahmed Saidi, Messaoud Benguennane
and Misses Habiba Benabderrahmane, Wassila Belfardi, and Asma Bouchekkouf
teachers at the University of Ghardaia, who accompanied me throughout these years
in teaching the Algorithms and Data Structures module. Their footprints are clearly
visible on the content of this handout.
Finally, my thanks also go to all those who have, in one way or another, directly
or indirectly, provided their support
Description
Keywords
MATHEMATICS::Applied mathematics::Theoretical computer science, Basic Elements of Algorithms, Presentation of the Algorithmic Formalism, Arrays and Strings, Custom Types, Further Reading
