A computer system consists of hardware and system software that work together to run application programs. Specific implementations of systems change over time, but the underlying concepts do not. All computer systems have similar hardware and software components that perform similar functions. 

This course provides insight into these components and how they work, which may help you in programming and in understanding how these components affect the correctness and performance of your programs.

The course consists of the following chapters: 

  • Chapter 1: Definitions and Generalities
  • Chapter 2: Elements of a Computer
  • Chapter 3: Electronic Components of a Computer
  • Chapter 4: Different Types of Peripherals
  • Chapter 5: Connecting to a Computer
  • Chapter 6: Operating Systems
  • Chapter 7: Networks

  • Class Schedule: 
    • Lecture :  Tuesday at 13:30 in the '19 Mai' amphitheater
    • Tutorial: 90 minutes, once a week

    Coefficient: 2
    Credits: 4
    Evaluation Method:

    • Final Exam: 60%
    • Tutorials (TD): 40%


    This course is intended for first-year students in  Mathematics. The objective is to introduce students to algorithmics and data structures. The content of this course is organized around 06 chapters. Chapter 1 initiates the course by presenting a brief historic about computer science and introducing the main concepts of algorithmics, chapter 2 details the simple sequential algorithm (parts of an algorithm, data : variables and constants, etc.), chapter 3 is devoted to presenting conditional structures (in algorithmic language and in C programing language), chapter 4 explains loops (in algorithmic language and in C programing language), Chapter 5 presents arrays and strings and the last chapter (chapter 6) presents custom types.

    Le cours "Algorithmique et Structures de Données" vise à doter les étudiants des compétences essentielles pour la manipulation de données et la conception de programmes informatiques solides. Dans cette perspective, les sous-programmes, incluant les fonctions et les procédures, sont étudiés en profondeur, permettant aux étudiants de maîtriser la définition, l'utilisation et le passage des paramètres entre ces entités. De plus, la récursivité, une technique puissante, est explorée pour sa capacité à résoudre des problèmes de manière efficace et élégante.

    Parallèlement, les étudiants sont initiés à la gestion des fichiers, comprenant l'ouverture, la lecture, l'écriture et la fermeture, ainsi qu'à la compréhension des différents types de fichiers et de leurs caractéristiques distinctives. Enfin, une exploration des structures de données fondamentales, telles que les listes chaînées, est entreprise. Les étudiants apprennent à conceptualiser, implémenter et manipuler ces structures, y compris les variantes telles que les piles et les files, tout en explorant le rôle crucial des pointeurs dans la gestion dynamique de la mémoire.