Communication Protocols and Distributed Systems is a course that explores the foundational principles and practical applications of network communication and distributed computing. Students delve into the design and analysis of communication protocols essential for coordinating multiple networked systems, while also examining key aspects of distributed architectures such as synchronization, fault tolerance, scalability, and security. Through a mix of theoretical study and hands-on projects, the course equips learners with the tools to design robust, efficient systems that operate reliably in today’s interconnected digital environments.

Ce module présente les fondements logiques de l’informatique.  il se focalise sur trois domaines centraux en informatique: la logique, les modèles de calculs et calculabilité et la complexité en Temps et en espace

Le but du module LFI2 est triple:

1.Introduire les concepts de base de la Complexité Temporelle et spatiale.

2.Etre capable de calculer la complexité d’un algorithme versus d’un problème.

3.Etre capable de différencier entre les problèmes P, NP et NP complétude.

Ce module permet à l’étudiant de se rendre compte du fondement théorique des sémantiques des langages de programmation. Sur des exemples de langages simples, ce cours montrera les notions de sémantiques opérationnelles, dénotationnelles et axiomatiques sur différents paradigmes de programmation


This course covers both written and oral communication, including the preparation and presentation of written and visual materials for final project defense and academic presentations. The course guides students throughout their research journey, fostering the development of: (1) Cognitive skills crucial for scientific inquiry, (2) Professional and behavioral competencies necessary for effective communication, and (3) Techniques for presenting, enhancing, and disseminating scientific work with clarity and impact.