Syllabus of the courses

Master Informatique

Syllabus of courses

Please refer to the main description to see which are the courses activated for your program.

Semestre 1

AI game programming › J.-C. Régin
This course presents different techniques to program games for one or two players. For two-player games, only full information games will be considered. Read More ›

AI: Models and Applications › E. Formenti
The main goal of the course is to introduce the students to the different concepts of machine learning by neural networks (also several other models will be considered). For most subjects, first the formal aspects and concepts will be introduced and explained, then they will be illustrated through a series of programming exercises and experiments. Read More ›

Software Components and Services for Internet of Things (IoT) › G. Menez
The Internet of Things (IoT) creates opportunities for more direct integration of the physical world into computer-based systems, resulting in efficiency improvements, economic benefits, and reduced human exertions. This is a true challenge for deployed technologies and sciences. This course will introduce some issues and candidate solutions from a software standpoint. Read More ›

Advanced Algorithms › C. Crespelle
Les graphes sont un objet mathématique très simple composé d'un ensemble de sommets dont certains sont deux à deux reliés par des arêtes. Malgré leur simplicité, ils modélisent des situations très variées et de nombreux problèmes d'optimisation sont formulés en termes de graphes. Le cours introduira les notions de base sur les graphes, leurs représentations en mémoire, les problèmes algorithmiques classiques sur ces objets et les techniques pour les résoudre. Le cours abordera en particulier les problèmes suivants: - plus courts chemins, - arbre couvrant de poids minimum, - voyageur de commerce et cycle/chemin hamiltonien, - coloration des sommets, - flot maximum et coupe minimum. Nous concevrons des algorithmes pour résoudre ces problèmes, qui mettront en œuvre des techniques générales d'algorithmique telles que la programmation dynamique, les algorithmes gloutons et l'approche diviser pour régner. Read More ›

Aerial Robotic Systems: from modeling to motion planning › T. Hamel
Introduction to Modeling, Control Methodologies, and State Observers for Drones and Aerial Robots Read More ›

Architectures de processeurs hautes performances › S. Touati
L’informatique est composée d’une partie logicielle et d’une partie matérielle. Cette matière est destinée aux étudiants souhaitant approfondir leurs connaissances et compréhension dans le fonctionnement des machines d’aujourd’hui et demain. Ces connaissances sont indispensables pour parfaire vos études en sciences et ingénierie informatiques, mais également pour que vous puissiez écrire des programmes efficaces et performants. Il ne s’agit pas d’un cours de conception de processeurs, mais un cours d’explications des mécanismes internes, vous permettant de comprendre comment le logiciel et le matériel interagissent ensemble. Lire plus ›

Complex Systems › C. Crespelle
L'étude des réseaux complexes est devenue centrale en science des données. Ces grands jeux de données organisés en réseaux, c'est-à-dire composés d'un très grand nombre d'entités en interaction entre elles, se retrouvent dans des contextes aussi variés que l'informatique, les sciences sociales, la biologie, la médecine, la linguistique, les transports, les communications, l'économie, la production industrielle et d'autres encore. L'étude de ces réseaux est devenue cruciale pour répondre aux questions qui se posent dans tous ces contextes. Le cours fournira les notions et outils de base pour la manipulation et l'analyse de ces immenses jeux de données. Incontournable dans la panoplie du data scientist. Le cours couvrira en particulier les aspects suivants: - propriétés fondamentales de ces réseaux (densité, distribution des degrés, coefficient de clustering, distances), - les modèles classiques (Erdos-Rényi, Configuration model, Watts-Strogatz, Barabasi-Albert), - mesures de centralité (pierre angulaire du succès de Google), - structure communautaire, - prévision de liens (mécanisme des systèmes de recommandation), - réseaux dynamiques, - phénomènes de diffusion. Read More ›

Computer networks › R. Aparicio-Pardo
This course aims to present the architecture of the computer networks from a protocol perspective. Read More ›

Concurrent Programming › C. Di Giusto, E. Lozes
In this course we will study how to design and implement concurrent algorithms for modern multicore machines. Read More ›

Distributed-memory Parallel Programming and its Applications › C. Xu
This course mainly focus on distributed-memory parallel framework, where each processor (core, CPU, GPU, IoT device) has its own memory space which can not be shared with others. Read More ›

Gestion de projet › M. Winter
Ce cours est conçu pour fournir une formation pratique et détaillée sur la planification et le suivi de projets informatiques. Lire plus ›

Introduction to Computability › E. Formenti
Le cours adopte tout d’abord une vision abstraite (les fonctions partielles partiellement récursives – PPR en abrégé) pour aller définir une classe de fonctions “candidate” à caractériser les capacités calculatoires des ordinateurs d’aujourd’hui (et de tous ceux qui sont basées sur le modèle de Von Neumann). Ensuite nous allons introduire les machines RAM en tant que version simplifiée d’un ordinateur moderne et nous montrerons que les fonctions calculées par ces machines coïncident avec les fonctions PPR. Par un argument diagonal nous montrerons qu’il existe des fonctions non-calculables. Read More ›

Introduction to Constraint Programming › J.-C. Régin
Ce cours introduit les principes de la modélisation en programmation par contraintes. Divers problèmes seront considérés et diverses modélisations envisagées. On s’intéressera aux contraintes globales, aux symétries et aux méthodes de recherches de solutions. Read More ›

Logic for AI › A. Tettamanzi
Logic plays an important role in areas of computer science as diverse as software engineering (specification and verification), programming languages (semantics, logic programming), and artificial intelligence (knowledge representation and reasoning). Read More ›

Model Checking › E. De Maria
This course covers methods and tools for automatically checking whether a system (software or hardware) meets a given specification. Read More ›

Problem Solving › M. Pelleau
This course aims to demonstrate how real-life problems can be solved, such as gate allocation for airplanes, constrained pathfinding, etc. Various types of methods will be presented, such as greedy algorithms, local search, and constraint programming. Read More ›

Programmation efficace
L'objectif est de former les programmeurs à codes des applications efficaces optimisables par compilation avancée, et de comprendre les phénomènes de dégradation/accélération des performances, comme le ralentissement des temps d'exécution ou l'augmentation de la consommation d'énergie. Lire plus ›

Programming challenge › A. Malapert
This course will introduce an interesting variety of subjects in programming, algorithms, and discrete mathematics though puzzles and problems which have appeared in the International ACM Programming Contest and similar venues. Read More ›

Software Engineering › J.-C. Régin
L’objectif est de prolonger l’apprentissage du développement en partant du paradigme de la programmation orientée objet acquis en Licence vers des méthodes et techniques du Génie Logiciel. L’évolution se fera par l’étude de design patterns et de notions de métriques, puis par la programmation orientée composant. Read More ›

Synchronous Programming › F. Mallet
Le cours offre une introduction à la programmation synchrone en mélangeant les approches déclaratives, flots de données ou basées sur les états. Read More ›

Semestre 2

Advance OS › S. Touati
We will learn some internal concepts on operating systems and their kernels. Read More ›

Algorithmique et Complexité › E. Formenti
La complexité computationnelle est une notion fondamentale en informatique qui essaye de comparer/classer les algorithmes par rapport à des fonctions de coût des ressources demandées par leur exécution (complète). La complexité d’un algorithme est donc une mesure de la qualité et comme toute mesure elle a besoin d’un système de référence. Les machines de Turing vont être notre principal système de référence. Lire plus ›

Anglais › P. Yamate
The objectives of the course are to improve your general and professional English level. Read More ›

Combinatorial Optimization › J.-C. Régin
This course presents greedy algorithms, decision diagrams, and markov models. Read More ›

Communication and Concurrency › C. Di Giusto
L’objectif du cours est d'introduire des formalismes mathématiques pour modéliser et raisonner sur les propriétés de systèmes parallèles. Read More ›

Entrepreneuriat › N. Sauvage
L’objectif de ce module est d’aborder les différents choix qui s’offrent à un créateur d’entreprise sous un aspect pratique et surtout en insistant sur les pièges à éviter. Lire plus ›

Graphs › N. Nisse
This lecture presents different ways to efficiciently address « difficult » (NP-hard) problems. Read More ›

Internet of the future › R. Aparicio-Pardo
This course is not available in 2020-2021. This course aims to present the most recent trends, technologies and protocols deployed in Internet nowadays. Read More ›

Programmation de jeux vidéo multi-joueurs (mineure) › M. Buffa
Nous vous proposons ici une mineure DS4H de programmation de jeux vidéo multi-joueurs, incluant graphismes 2D et 3D à 60 images/s, les aspects multi-joueurs temps réel, comportements réactifs et implémentations d'algorithmes classiques (graphes, A*, quadtrees, etc.). L'implémentation se fera en JavaScript et sans doute à l'aide d'une librairie 2D ou 3D. Le suivi de la mineure Technologies Web que je propose à côté de ce cours sera un bon complément/support d'apprentissage de la programmation JavaScript. Lire plus ›

Logique avancée › M. Avanzini, E. Lozes
With this lecture we invite you to discover some close links between logic and automata. Read More ›

Méthodes avancées PPC/PL › A. Malapert
Nous introduisons la programmation linéaire tout en continuant l'apprentissage de la modélisation PPC/PL avec un solveur très utilisé dans l'industrie. Lire plus ›

Modélisation Programmation par Contraintes › J.-C. Régin
Ce cours introduit les principes de la modélisation en programmation par contraintes. Divers problèmes seront considérés et diverses modélisations envisagées. On s’intéressera aux contraintes globales, aux symétries et aux méthodes de recherches de solutions. Lire plus ›

Operations Research › J.-C. Régin
This course is about shortest path and maximum flow problems in graphs. Read More ›

Programmation Synchrone › F. Mallet
Le cours offre une introduction à la programmation synchrone en mélangeant les approches déclaratives, flots de données ou basées sur les états. Lire plus ›

Safety critical systems › F. Mallet
Safety critical systems require the use of formal models and rely on exhaustive analysis techniques to ensure that a piece of software actually does what it is supposed to do (with regards to the requirements) et does it correctly (without bugs). This lecture gives an overview of some techniques and languages used in that context. Read More ›

Sécurité › B. Martin
Ce cours présente les concepts généraux de la sécurité et de la vie privée selon différents points de vue. Lire plus ›

Traitement automatique du texte en IA › E. Cabrio
En intelligence Artificielles (IA), le Traitement Automatique du Langage Naturel (TALN) est une discipline qui a pour objectif de modéliser, grâce à l'informatique, le langage qu'il soit écrit ou parlé. Les technologies TALN sont présentes, de manière grandissante, dans divers systèmes grands public (par ex. Google, IBM Watson, Facebook, Apple Siri). Lire plus ›

Web › A. Tettamanzi
The Web, originally intended to be an open document-sharing platform, has evolved into a distributed platform for the deployment and execution of applications, to the point that it can now be viewed as a sort of global operating system (the programmable web). Read More ›