Le Master est découpé en trois semestres d’enseignement, suivis d’un semestre de stage.

Les différents modules enseignés pendant les trois semestres sont décrits plus précisément ci-dessous.

Programme du Master 1

Unité d’enseignement Semestre obligatoire/optionnel Crédits Cours/TD/TP

Réseaux avancés 1

S1

OB

6

21/24/15

Intelligence Artificielle 1

S1

OB

3

12/12/6

Analyse et Développement Logiciel

S1

OB

3

0/30/0

Développement sur GPGPU

S1

OB

3

12/0/18

Moteurs 3D temps-réel

S1

OB

3

12/0/18

Fondements de l’informatique graphique

S1

OB

6

22.5/16.5/21

Applications distribuées J2E

S1

OP

3

9/0/21

Java avancé

S1

OP

3

12/0/18

Complexité et calculabilité

S1

OP

3

12/0/18

Algorithmique et programmation avancée

S1

OP

3

6/12/12

Analyse et Développement Logiciel 2

S2

OB

6

6/12/12

Théorie des jeux

S2

OB

3

9/9/12

Parallélisme et applications

S2

OB

3

9/9/12

Intelligence Artificielle 2

S2

OB

3

9/9/12

Anglais

S2

OB

3

9/9/12

Introduction à la synthèse d’images réalistes

S2

OB

6

18/18/24

Introduction au traitement numérique des images

S2

OB

3

18/12/0

Droit et conduite de projet

S2

OB

3

30/0/0

Programme du Master 2

Unité d’enseignement Semestre obligatoire/optionnel Crédits Cours/TD/TP

Remise à niveau en synthèse d’images

S1

OB

0

0/20/0

Rendu en synthèse d’images

S1

OB

6

33/27/0

Modélisation et animation

S1

OB

6

30/30/0

Production visuelle (motion design)

S1

OB

3

12/18/0

Développement d’extensions logicielles pour la synthèse d’images

S1

OB

4

0/40/0

Simulation de modèles physiques

S1

OP

3

12/18/0

Impression 3D

S1

OP

3

15/15/0

Géometrie discrète image et vision

S1

OP

3

15/15/0

Anglais

S1

OB

3

0/30/0

Organisation de l’entreprise

S1

OB

2

4/16/0

Stage en entreprise ou travail de recherche en laboratoire

S1

OB

30

735h à 910h (21 à 26 semaines)

Détail des Unités d’Enseignement - Master 1

Réseaux avancés 1

  • Introduction et classification des réseaux, notion d’échange avec ou sans connexion.

  • Présentation du modèle en couches. La couche : rôle et service.

  • Modélisation du processus communiquant, application à la modélisation de protocole.

  • Modèle en couches : la couche physique.

  • Codage et transmission de l’information. Détection et correction des erreurs. Segmentation VLANs

  • Modèle en couches : la couche réseau. Routage direct/indirect

  • Modèle en couches : la couche transport. Le protocole TCP (segmentation, modélisation, format et options, contrôle de flux et de congestion (Reno, Tahoe)), le protocle UDP

  • Les Firewalls

  • La QoS dans les réseaux IP

Intelligence artificielle 1

  • Méthodes de recherche dans un espace d’états

    • Méthodes aveugles

    • Méthode globale avec heuristique

    • Méthodes locales avec heuristique

  • Algorithmes pour les jeux (Minmax, AlphaBeta)

  • Les problèmes de satisfaction de contraintes (CSP)

  • Représentation des connaissances et systèmes experts

Analyse et développement logiciel

Travail significatif (encadré par des enseignants de la spécialité) d’analyse, de recherche d’informations et de programmation, réalisé par les étudiants. Orientation vers la recherche (en lien avec des travaux de recherche scientifique menés au sein des laboratoires associés) ou vers l’industrie (réalisation d’un logiciel répondant à un cahier des charges précis). Formation aux outils collaboratifs de développement et à la gestion de projet. Ce projet est réparti sur les deux semestres. Le semestre 1 est consacré à l’analyse du problème, une recherche bibliographique et des études préliminaires. Il donne lieu à la rédaction d’un mémoire intermédiaire.

Développement sur GPGPU

  • Introduction aux processeurs graphiques programmables massivement parallèles, notions de threads et de noyaux

  • Mémoire locale, globale et partagée

  • Mémoire vs calcul intensif

  • Librairies CUDA et OpenCL

  • Illustration sur des problèmes d’algèbre linéaire, d’illumination 3D et de factorisation

Moteurs 3D temps-réel

  • Gestion de la caméra

  • Modélisation de mondes virtuels

  • Gestion de collisions

  • Animation par squelette

  • Shaders

Fondements de l’informatique graphique

  • Opérations vectorielles et matricielles dans le plan et l’espace, systèmes de coordonnées, transformations

  • Algorithmes de rastérisation fondamentaux

  • Algorithmes d’élimination des parties cachées

  • Initiation aux couleurs et ombrages

  • Courbes et surfaces

  • Initiation à la modélisation

Applications distribuées J2E

  • Introductions aux applications distribuées et aux serveurs d’applications dans JEE 8

  • Les Servlets

  • JSF (Java Server Faces) et la programmation front end

  • Les EJB

  • La persistance de donnée avec JPA

  • Les architectures de micro-services

  • Conception et développement de services web REST et SOAP en JEE

  • La sécurité JEE

Java avancé

Programmation Android pour téléphone mobile et l’embarqué Présentation de la pile Android et du système sous-jacent Base du langage : Activités, Intents, Framgents Services … Persistance et stockage de données : SQLLite, système de fichiers… Managers : Téléphonie Manager, Bluetooth Manager, capteurs intertiels Intégration de service web REST dans une application Les autres services Google : Google Map, Agenda, Firebase

Complexité et calculabilité

  • Modèles de calcul : machines de Turing, fonctions récursives, calcul lambda. Calculabilité. Décidabilité.

  • Classe de complexité : P, NP, co-NP, problèmes NP-complets. Complexité des algorithmes.

Algorithmique et programmation avancée

Ce module présente une approche des grandes familles d’algorithmes couramment utilisées pour résoudre efficacement des problème complexes de l’informatique. Le but de ce module est de fournir un ensemble d’outils algorithmiques concrets afin de vous permettre de fournir des solutions intéressantes à divers problèmes courants en informatique. Cette UE reprendra les notions de Diviser Pour Régner, de Programmation Dynamique, d’Algorithmes gloutons, de Branch and Bound et d’approximation probabiliste.

Analyse et développement logiciel 2

Travail significatif (encadré par des enseignants de la spécialité) d’analyse, de recherche d’informations et de programmation, réalisé par les étudiants. Orientation vers la recherche (en lien avec des travaux de recherche scientifique menés au sein des laboratoires associés) ou vers l’industrie (réalisation d’un logiciel répondant à un cahier des charges précis). Formation aux outils collaboratifs de développement et à la gestion de projet. Ce projet est répartit sur les deux semestres. Le semestre 2 est consacré au développement informatique du projet. Il est ponctué par la rédaction d’un mémoire global et une soutenance orale.

Théorie des jeux

  • Introduction à la théorie des jeux

  • Concepts de solution

  • Jeux sous forme normale : stratégies dominantes/dominée, Équilibre de Nash, Critère de Pareto, stratégies mixtes et jeux à somme nulle

  • Jeux sous forme extensive

  • Équilibres corrélés

  • Jeux répétés

Parallélisme et applications

  • Modélisation de processus communiquant, Classification de Flynn

  • Les modèles : MISD, SIMD, SM SIMD

  • SIMD et réseaux d’interconnexion : arbre, anneau, grille, hypercube

  • Programmation de processus concurrents au sein d’un même processeur

  • Méthodes de répartition de tâches entre différents processeurs

  • Parallélisme à différents niveaux de granularités

  • Programmation distribuée et sur une machine parallèle : CUDA et OpenMP

  • Outils de parallélisation automatique

  • Evaluation en complexité

  • MPI (Message Parsing Interface) et clusters

Intelligence artificielle 2

  • Introduction aux réseaux bayésiens

  • Intelligence artificielle distribuée :

    • Introduction aux systèmes multi-agents

    • Systèmes Intelligents à base de colonies de fourmis

  • Introduction aux méthodes d’apprentissage supervisé

    • Réseau Bayésien naif

    • K-plus proche voisins

    • Réseaux de neurones

  • Introduction aux méthodes d’apprentissage non supervisé

Anglais

Formation orientée sur les deux années de façon à préparer les étudiants à atteindre le niveau B2 européen.

Introduction à la synthèse d’images réalistes

  • Méthodes de rendu

  • Lancer de rayon

  • Eclairage et BRDF

  • Modélisation géométrique, Animation

  • Architecture et périphériques graphiques

Introduction au traitement numérique des images

  • Domaines spatial et fréquentiel, filtrage d’images

  • Détection de contours, Segmentation, Perception visuelle

  • Vision par ordinateur, reconnaissance de formes

Droit et conduite de projet

  • Initiation au droit de l’Informatique : propriété intellectuelle, loi « Informatique et Libertés », Loi Godfrain, législation sur la cryptographie…​

  • Introduction à la conduite de projet Informatique.

Détail des Unités d’Enseignement - Master 2

Remise à niveau en synthèse d’images

Rappels sur les cours de M1.

Rendu en synthèse d’images

  • Aliasing et méthodes d’antialiassage 2D et 3D

  • Méthodes d’application de textures 2D et 3D

  • Systèmes de couleurs et perception

  • Ray tracing et ses extensions

  • Rendu temps-réel avancé

  • Méthodes d’illumination

Modélisation et animation

  • Mosélisation basée sur la topologie: cartes combinatoires généralisées et applications, L-systèmes et modélisation de croissance inspirée par la biologie

  • Courbes et surfaces implicites, reconstruction géométrique à partir de nuage de points

  • Introduction à l’animation 3D, simulations dynamiques et basées physique

  • Systèmes de particules pour l’animation et la simulation de fluide.

Production visuelle

Conception graphique, production de contenu animé avec des logiciels spécialisés.

Développement d’extensions logicielles

Développement de plug-ins pour des logiciels de modélisation ou de rendu faisant référence dans le domaine de la création graphique.

Simulation de modèles physiques

  • Intégration et rendu de Monte Carlo

  • Eclairage avancé

  • Etudes de différents modèles d’éclairage

Impression 3D

  • Introduction à la fabrication additive et à l’impression 3D

  • Tranchage, génération de chemins d’impression

  • Problématiques de qualité de fabrication.

  • Rôle du logiciel et de l’algorithmique pour le pilotage de machines et pour améliorer la qualité de fabrication

  • Fichiers de commandes numériques (G-Code)

  • Modélisation algorithmique appliquée à la fabrication

  • Programmation graphique pour l’impression 3D

  • Aperçu des axes de recherche actuels dans le domaine de la fabrication additive

  • Tests des travaux réalisés sur machines (5 imprimantes sont disponibles pour les étudiants)

Géometrie discrète, image et vision

  • Géométrie orientée pixels/voxels, avantages et inconvénients par rapport à l’univers vectoriel

  • Modéliser et utiliser le monde discret en imagerie

  • Principaux algorithmes de discrétisation

  • Modèles analytiques dans le monde discret

  • Applications de la géométrie discrète

  • Utilisation des flux lumineux naturels

  • Principes des grandes familles de méthodes de rendu à base d’images

  • Acquisition/restitution/interpolation

  • Exploiter les photographies pour le rendu réaliste

Anglais

Formation orientée sur les deux années de façon à préparer les étudiants à atteindre le niveau B2 européen.

Organisation de l’entreprise

Organisation du travail en entreprise.

Stage

Le stage a une durée de 21 à 26 semaines. A l’issue de ce stage, un mémoire de stage d’une cinquantaine de pages doit être remis à la scolarité. Les soutenances ont chacunes une durée d’une vingtaine de minutes, suivies d’une quinzaine de minutes de questions. Le stage peut-être effecté en entreprise ou, plus rarement, sous forme d’un travail de recherche en laboratoire.