This course presents blockchain technology and how it is changing our life. The course treats the following items:
1) Why the block chain: The bitcoin as a first experience
2) Basic cryptography for blockchain
3) Protocols in blockchain: Consensus protocols
4) Example of plateforms: Fabric Ledger, Solidity, etc

The cours is presented in two sessions per week: a course+ a Lab.
In the lab, students will learn how to implement a block-chain using Jscript.

This course aims to present a set of techniques and tools which are used in the verification of distributed systems. Basically, this course is build based on the knowldege that students learn in the 1st semeter in the course (OS: Outils de Specification). In this course, the students will learn deeply more techniques used for formal verification (like model-checking) then the students will discover how those techniques are automated through a set of automatic tools like UPPAAL and SPIN tools. The course is presented in a theorical course as well as in a lab.

Ce cours offre une introduction complète à la calculabilité effective en se basant sur la Thèse de Church. Il commence par examiner l'idée fondamentale que tout est un mot et explore ensuite les concepts d'encodage. La formalisation de la calculabilité est explorée à travers l'approche classique de la Machine de Turing . Les étudiants découvriront en profondeur les mécanismes des Machines de Turing, y compris les notions de langages acceptés et décidés, ainsi que les distinctions entre les langages récursifs et récursivement énumérables. Des extensions modernes des Machines de Turing sont également abordées, telles que les machines à ruban multiples et les machines à mémoire à accès direct. Enfin, le cours examine des questions importantes telles que la terminaison et conclut en récapitulant les principales idées et résultats présentés.

This course is intended for computer science master students and typically covers the principles, techniques, and applications of creating mathematical models to represent complex systems and simulating their behavior. The course usually encompasses both theoretical concepts and practical implementation using computer software.

Here's a brief overview of what such a course might entail:

  1. Introduction to Modeling and Simulation: The course begins with an overview of the fundamental concepts of modeling and simulation, including the importance of abstraction, types of models (e.g., deterministic, stochastic), and the simulation lifecycle.

  2. Mathematical Modeling Techniques: Students learn various mathematical techniques used for modeling different types of systems, such as differential equations, discrete-event simulation, agent-based modeling, and state-based models.

  3. Modeling Complex Systems: This part of the course focuses on modeling complex systems found in various domains such as computer networks, transportation systems, biological systems, and social systems. Emphasis is placed on understanding system dynamics and identifying key variables for modeling.

  4. Simulation Software Tools: Hands-on experience with popular simulation software tools like MATLAB and Simulink. Students learn how to use these tools to develop, analyze, and validate models.