Le Master Informatique de la FST vous propose une formation avancée, fondamentale et appliquée dans le domaine de l’informatique. Avec cette formation, vous développez une solide culture en informatique : • Algorithme, • Analyse et conception de logiciels, • Logique, • Intelligence artificielle, • Réseaux, • etc. ainsi que des spécialisations dans différents domaines : • Ingénierie des logiciels • Sécurité • Intelligence artificielle • Informatique décisionnelle • Interaction Humain-Machine Le Master est co-habilité avec CentraleSupélec.
Le Master Informatique vous propose une première année (M1) unique et bi-localisée sur les sites de Metz et Nancy.
Lors de votre deuxième année (M2), vous approfondissez certains domaines de connaissances grâce aux parcours types.
Cela vous donne l’opportunité de creuser les sujets dont vous avez besoin pour votre projet professionnel.
Le Master Informatique comporte 5 parcours d’études (la FST en enseigne 3 ; les autres se déroulent à Metz).
Les domaines de connaissances de la formation
La formation permet l’acquisition des concepts fondamentaux de l’informatique comme : • l’algorithmique et la complexité, • les paradigmes de programmation (objet, impératif, fonctionnel, distribution,…), • les techniques de modélisation du logiciel, • la validation des logiciels, • les modèles de calcul, • les systèmes d’informations, • l’aide à la décision, • la gestion et l’exploitation des grandes bases de données, • les approches de modélisation mathématique, • et les domaines de connaissances liés aux grands domaines des parcours types.
Vous développez ainsi des compétences spécialisées selon votre projet professionnel : • l’ingénierie des logiciels, • la sûreté et la sécurité des informations et des systèmes, • l’intelligence artificielle, • la vision par ordinateur, • l’exploitation informatique des masses de données, • l’informatique décisionnelle, • l’interaction humain-machine.
Programme du Master informatique
Les enseignements du Master Informatique sont prodigués par des enseignants-chercheurs du Loria et de LCOMS, deux laboratoires de recherche à la pointe de l’informatique, ainsi que par des professionnels issus d’une vingtaine d’entreprises.
La première année de master (M1), commune à l’ensemble de la mention, est déployée à l’identique sur les deux sites. Cela permet aux étudiants de choisir une des spécialisations thématiques proposées à l’entrée en deuxième année et indépendamment du site où la première année a été suivie.
Le master offre un panel large de spécialisations permettant de faire un choix éclairé en fonction du projet professionnel de chacun
La première année est un socle commun sur les deux sites Nancy et Metz, la spécialisation ne se fait qu’à partir de la deuxième année.
L’année est divisée en deux semestres. Le premier semestreest constitué de 5 cours fondamentaux, quatre de 44 heures et un de 72 heures, auxquels s’ajoutent 24 heures d’anglais et une activité intégratrice permettant de mettre en application les connaissances acquises dans les modules du semestre et valider les compétences visées par la formation.
Le deuxième semestre s’articule autour de deux cours fondamentaux et d’un choix de 6 cours d’approfondissement de 24h parmi une vingtaine de cours. Ces options offrent une ouverture vers les différentes thématiques proposées en M2, mais ne constituent pas des pré-requis pour les parcours-types correspondants. Ce semestre est complété par des cours de communication et d’anglais ainsi qu’un projet d’initiation à la recherche encadré par des chercheurs des laboratoires de recherche de rattachement.
Compétences scientifiques et techniques
Concevoir des algorithmes et évaluer leur complexité
Modéliser des problèmes complexes
Proposer des solutions informatiques à des problèmes complexes
Concevoir des systèmes logiciels complexes et interactifs
Développer la logique métier et les interfaces utilisateurs des applications informatiques
Mettre en service et maintenir les applications informatiques
semestre 7
Algorithmique et complexité
Conception et analyse d’algorithmes efficaces. – Algorithmes randomisés. – Complexité des algorithmes, classes P et NP. – Algorithmes d’approximation.
Prérequis Bases de l’algorithmique et des probabilités.
Acquis d’apprentissage – Méthode de construction d’algorithmes: Diviser pour Régner, Algorithmes Gloutons, Programmation Dynamique. – Algorithmes probabilistes: type Monte-Carlo, Las Vegas, temps attendu. – Classes P et NP : définitions, conséquences algorithmiques de P = NP, NP-complétude, réduction polynomiale. – Algorithmes d’approximation: rapport d’approximation, qualité d’un algorithme d’approximation.
Compétences visées – Concevoir des algorithmes et évaluer leur complexité. – Modéliser des problèmes complexes. – Proposer des solutions informatiques à des problèmes complexes.
5
22
22
–
–
Crédits
CM
TD
TP
PRJ
Réseaux
L’objectif de cette UE est d’apporter des connaissances fondamentales dans le domaine des réseaux, en particulier au niveau des protocoles mis en œuvre dans l’Internet, afin d’être capable d’analyser, diagnostiquer et faire évoluer le fonctionnement d’une architecture réseau. Elle a également pour objectif de faciliter l’appropriation future des nouvelles technologies réseaux en perpétuelle évolution et la compréhension des concepts informatiques et de sécurité liés aux réseaux.
Prérequis – Connaissances de base sur les réseaux : modèle OSI, taxonomie des réseaux, fonctionnement de base d’un réseau local Ethernet, le – fonctionnement d’IP en réseau local et dans une interconnexion de réseau. – Connaissances de base en programmation des sockets. – Connaissances de base sur UDP/TCP et la couche7.
Acquis d’apprentissage – Analyser le fonctionnement d’une architecture de réseau fondée sur le modèle Internet (TCP/IPv4/IPv6) au niveau des couches application, transport et réseau (adressage, NAT, multicast, protocoles de routage, algorithmes de TCP), DNS, applications réseaux. – Mettre en œuvre un plan d’adressage Ipv4 et IPv6. – Configurer statiquement et dynamiquement le routage dans une interconnexion de réseaux. – Appréhender quelques technologies de cœurs de réseaux comme MPLS. – Connaître les principaux concepts et technologies mis en œuvre dans les couches basses du modèle OSI (modulation, multiplexage, codes détecteurs/corecteurs, Ethernet, VLAN, Spanning Tree, réseaux sans fil). – Compléter ses connaissances en programmation des sockets (IPv6, serveurs concurrents et multiport). – Posséder quelques notions de sécurité (parefeu, proxys).
Compétences visées – Analyser le fonctionnement d’une interconnexion de réseaux fondée sur la pile de protocoles Internet et la faire évoluer. – Traiter les problèmes d’informatique et de sécurité liés aux réseaux. – Concevoir des systèmes logiciels complexes et interactifs. – Mettre en service et maintenir les applications informatiques.
5
22
8
14
–
Crédits
CM
TD
TP
PRJ
Logique et modèles de calculs
L’objectif de cette UE est de présenter à la fois la logique comme modèle de calcul et outil de programmation et d’aborder la notion de calculabilité et les différents modèles de calcul. Une première partie est consacrée à la logique des prédicats et la construction de preuves dans différents systèmes formels, incluant la résolution et sa mise en œuvre en programmation logique. Une seconde partie est consacrée à la calculabilité et à différents modèles de calcul, leurs correspondances et leurs impacts sur des langages de programmation.
Prérequis Fondements mathématiques.
Acquis d’apprentissage – Logique classique du premier ordre – Sémantique – Systèmes formels : calcul des séquents, déduction naturelle – Correction, complétude, construction de preuves – Résolution et preuves – Mise sous forme clausale – Résolution : concepts, clauses, stratégies – Programmation logique : clauses de Horn, SLD-résolution – Machines de Turing – Définitions – Calculabilité – Fonctions récursives – Définitions – Équivalence avec les machines de Turing – Calculabilité et non-calculabilité – Calculabilité et décidabilité – Principe de réduction pour l’indécidabilité – Équivalences entre les modèles de calcul – Fonctions récursives et lambda-calcul.
Compétences visées – Comprendre et mettre en œuvre des méthodes de raisonnement et de démonstration en vue de la vérification de programmes. – Maîtriser les notions de calculabilité et de décidabilité pour proposer des solutions algorithmiques à certains problèmes. – Concevoir des algorithmes et évaluer leur complexité. – Modéliser des problèmes complexes.
5
22
22
0
–
Crédits
CM
TD
TP
PRJ
Optimisation combinatoire
L’objectif est de fournir les bases de la programmation linéaire nécessaires à la formalisation et à la résolution algorithmique de problèmes d’optimisation combinatoire en lien avec des problématiques d’aide à la décision.
Programmation Linéaire – Modélisation et formulation d’un programme linéaire en variables réelles (PL) et en variables binaires ou entières (PLNE) – Théorèmes fondamentaux de la programmation linéaire et dualité – Algorithmes (primal et dual) du simplexe – Analyse post-optimale Techniques de l’optimisation combinatoire – Programmation Linéaire continue versus Programmation Linéaire discrète – Résolution approchée d’un PLNE – Résolution exacte d’un PLNE : énumération implicite
Prérequis Bases de l’algorithmique et de l’algèbre linéaire.
Acquis d’apprentissage – Le paradigme de la programmation linéaire continue et discrète : concevoir un modèle PL/PLNE pour un problème de décision. – L’algorithme du simplexe et ses variantes pour la programmation linéaire continue : conception, mise en œuvre informatique et application. – Les algorithmes d’énumération implicite pour la programmation linéaire discrète : conception, mise en œuvre informatique et application. – L’analyse post-optimale en programmation linéaire : interprétation économique des solutions calculées. – Connaître les solveurs de référence d’optimisation pour la modélisation et résolution de PL/PLNE. Compétences visées – Maîtriser les outils mathématiques et informatiques de base de modélisation, d’analyse et de résolution de problématiques en lien avec les sciences de la décision. – Connaître les logiciels de référence d’optimisation et concevoir des solutions logicielles adaptées à des problématiques de décisions. – Concevoir des algorithmes et évaluer leur complexité. – Modéliser des problèmes complexes. – Proposer des solutions informatiques à des problèmes complexes.
5
22
14
8
–
Crédits
CM
TD
TP
PRJ
Analyse et conception de logiciels
Le génie logiciel s’intéresse aux méthodologies permettant le développement de logiciels de grande taille qui correspondent aux besoins des leurs utilisateurs, sont fiables et évolutifs. Après un rappel des concepts fondamentaux du paradigme orienté objet et une présentation d’un ensemble de bonnes pratiques pour la programmation objet (classes et interfaces, création d’objets, méthodes usuelles, etc.), le cours introduit les notions de base liées au processus de développement logiciel – modèles du processus de développement logiciel, les activités du processus de développement logiciel – et les méthodes agiles. On abordera ensuite l’utilisation des diagrammes (UML) dans le processus de développement ainsi que les différentes techniques et outils de gestion de versions et d’automatisation de construction de logiciels. La validation et vérification des logiciels seront abordées au travers de méthodologies et techniques de test avec, en particulier, les tests unitaires et les bouchons. Un projet mettant en œuvre les techniques et outils présentés dans ce cours sera réalisé en utilisant un processus de développement agile.
Prérequis Connaissances dans un langage de programmation langage orienté objet, de préférence Java.
Acquis d’apprentissage – Principaux modèles de développement logiciel et leurs activités. – Techniques et langages (UML) de modélisation orientés objet. – Bonnes pratiques de programmation orientée objet. – Principes et outils de gestion de versions et d’automatisation de construction. – Techniques de test unitaire.
Compétences visées – Choisir les processus et techniques de développement les mieux adaptés pour réaliser les fonctionnalités d’une application donnée. – Analyser, concevoir, implémenter et valider une application. – Concevoir des systèmes logiciels complexes et interactifs. – Développer la logique métier et les interfaces utilisateurs des applications informatiques.
8
44
12
16
–
Crédits
CM
TD
TP
PRJ
Intégration méthodologique
Ce module vise à mettre en pratique les principes, techniques, technologies et méthodologies abordés dans les UEs du semestre. Il consiste en la réalisation en équipe d’une application de grande taille potentiellement distribuée. L’équipe est en charge de toutes les étapes du processus de développement de l’analyse fonctionnelle au déploiement de l’application en passant par la conception, le développement et la validation. Les étudiants utiliseront les algorithmes présentés dans les différents cours proposés dans la formation, des techniques de modélisation, développement et vérification abordées dans les cours de conception logicielle et mettront en place des outils et méthodes de déploiement. L‘application sera accompagnée d’une documentation.
Prérequis Bonnes connaissances des langages de programmation orientés objets.
Acquis d’apprentissage – Analyse fonctionnelle des besoins utilisateurs. – Mise en application de connaissances et compétences des cours proposés dans la formation. – Maîtrise d’environnements actuels de développement collaboratif. – Maîtrise d’une méthode de développement agile. – Rédaction des rapports, des cahiers des charges, fiches techniques ou manuels.
Compétences visées – Concevoir des systèmes logiciels complexes et interactifs. – Développer la logique métier et les interfaces utilisateurs des applications informatiques. – Mettre en service et maintenir les applications informatiques.
–
–
–
–
96
Crédits
CM
TD
TP
PRJ
Anglais
Approfondissement de la langue de spécialité, vocabulaire technique et scientifique. Pratique des cinq compétences : compréhension de l’oral, expression orale en continu, expression orale en interaction, compréhension de l’écrit, expression écrite. Utilisation des documents authentiques et à caractère scientifique.
Prérequis Un niveau B1 en anglais est fortement souhaitable.
Acquis d’apprentissage – Acquérir des connaissances et des compétences en anglais général et de spécialité.
Compétences visées – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère. – Savoir utiliser le vocabulaire et la grammaire nécessaire à une bonne pratique de l’anglais dans leur spécialité.
2
–
24
–
–
Crédits
CM
TD
TP
PRJ
Semestre 8
Intelligence artificielle
Cette UE a pour objectif de fournir les bases nécessaires à la compréhension et l’utilisation des outils de l’intelligence artificielle que l’on retrouve aujourd’hui dans de nombreux systèmes informatiques, et en particulier l’apprentissage machine. Ainsi, cette UE permettra aux étudiants d’appréhender les concepts clés de l’apprentissage à partir d’exemples et de la généralisation, ainsi que les techniques standards de clustering, classification et régression, avec une introduction aux méthodes plus avancées liées à l’apprentissage profond.
Prérequis Notions de base en algèbre linéaire et algorithmique.
Acquis d’apprentissage – Définitions de l’IA et de ses divers aspects – Concepts clés de l’apprentissage machine – Techniques de clustering – Techniques de classification – Techniques de régression linéaire – Bases de l’apprentissage profond
Compétences visées – Modéliser des problèmes complexes. – Proposer des solutions informatiques à des problèmes complexes.
3
16
4
16
–
Crédits
CM
TD
TP
PRJ
Conception centrée utilisateurs
L’intelligence artificielle (IA) est aujourd’hui de plus en plus présente dans le quotidien et les applications informatiques utilisées par le grand public. La conception centrée sur l’opérateur humain (norme ISO 9241-210) est une manière de concevoir les systèmes et services interactifs, ayant pour but de rendre les systèmes utilisables et utiles en se concentrant sur les utilisateurs, leurs besoins et leurs exigences, et en appliquant les facteurs humains, l’ergonomie et les connaissances et techniques existantes en matière d’utilisabilité. Cette approche favorise l’efficacité et l’efficience, améliore le bien-être de l’homme, ainsi que la satisfaction des utilisateurs, et réduit les effets nuisibles potentiels de leur utilisation sur la santé, la sécurité et les performances. Ce cours abordera dans un premier temps les notions d’utilisabilité et d’expérience utilisateur. Les étudiants apprendront des méthodes d’utilisabilité qui peuvent être utilisées de manière indépendante ou combinée afin d’assurer une conception centrée utilisateur. Chaque méthode sera décrite avec ses avantages, ses inconvénients et d’autres facteurs relatifs à sa sélection et à son utilisation en fonction des différentes étapes du cycle de vie du produit. Parmi les méthodes qui seront abordées notons par exemple : l’analyse des tâches et de l’activité, l’observation, tri de cartes, méthodes de créativité, etc.
Prérequis Notions de base en algèbre linéaire et algorithmique.
Acquis d’apprentissage – Connaître et comprendre des méthodes et approches pour la conception centrée utilisateur – Savoir appliquer ces méthodes pour la conception d’un système interactif. – Savoir communiquer les propositions centrée utilisateur. – Connaître des ressources dans le domaine de la conception centrée utilisateur.
Compétences visées – Communiquer avec un client et un utilisateur final. – Définir les besoins réels des utilisateurs à partir des méthodes d’analyse. – Appliquer des méthodes centrées utilisateurs pertinentes pour l’évaluation d’applications interactives – Construire des solutions répondant aux attentes des utilisateurs, des clients et du contexte métier – S’organiser dans une équipe pluridisciplinaire. – Concevoir des systèmes logiciels complexes et interactifs. – Développer la logique métier et les interfaces utilisateurs des applications informatiques
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Initiation à la recherche
Cette UE vise à effectuer un travail d’initiation à la recherche au sein d’une équipe d’un des laboratoires supports du master informatique. Les étudiants choisissent un sujet de stage d’initiation à la recherche parmi ceux proposés par des équipes des laboratoires d’appui et travaillent sur ce sujet, encadré par un enseignant-chercheur ou chercheur permanent, sur une période de douze semaines à raison d’une journée par semaine. Un suivi régulier de l’étude et des travaux sera réalisé sous la forme de la rédaction de documents intermédiaires et d’un rapport final. L’évaluation se fait à partir d’une soutenance orale des travaux, du rapport final et de l’avis de l’encadrant sur le travail réalisé.
Prérequis –
Acquis d’apprentissage – Découverte de la recherche scientifique en général et d’un domaine plus spécifique
Compétences visées – Mobiliser des savoirs hautement spécialisés, dont certains sont à l’avant-garde du savoir dans un domaine de travail ou d’études, comme base d’une pensée originale. – Résoudre des problèmes pour développer de nouveaux savoirs et de nouvelles procédures et intégrer les savoirs de différents domaines. – Identifier, sélectionner et analyser avec esprit critique diverses ressources spécialisées pour documenter un sujet et synthétiser ces données en vue de leur exploitation. – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère.
2
–
–
–
96
Crédits
CM
TD
TP
PRJ
Anglais
Approfondissement de la langue de spécialité, vocabulaire technique et scientifique. Pratique des cinq compétences : compréhension de l’oral, expression orale en continu, expression orale en interaction, compréhension de l’écrit, expression écrite. Utilisation des documents authentiques et à caractère scientifique.
Prérequis Un niveau B1 en anglais est fortement souhaitable.
Acquis d’apprentissage – Acquérir des connaissances et des compétences en anglais général et de spécialité.
Compétences visées – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère. – Savoir utiliser le vocabulaire et la grammaire nécessaire à une bonne pratique de l’anglais dans leur spécialité.
2
–
24
–
–
Crédits
CM
TD
TP
PRJ
Techniques de communication et d’expression
Travail sur les différents modes d’expression en milieu scientifique et technique. L’objectif est de pouvoir s’exprimer avec aisance à l’oral comme à l’écrit et de maîtriser les codes des présentations orales (soutenances, exposés… ) et écrites (rapports) dans un contexte technique ou de vulgarisation.
Prérequis Maîtrise du français.
Acquis d’apprentissage – Techniques d’expression orale et écrite – Formats standards de présentations et de rapports – Rédaction de supports de présentation.
Compétences visées – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère.
2
8
16
–
–
Crédits
CM
TD
TP
PRJ
Choix de 6 options avec au maximum 3 options dans chaque thématique (la liste les options réellement ouvertes est déterminée en cours d’année)
Représentation des données visuelles
Cette UE vise à aborder des notions fondamentales de l’imagerie 2D et 3D. En particulier seront vus des aspects liés à la perception et au stockage des images 2D, ainsi qu’à la représentation, à la manipulation et à l’animation d’objets 3D.
Prérequis Aucun.
Acquis d’apprentissage – Processus de visualisation d’une image 2D ou 3D. – Modèles de perception humaine. – Définitions physiques de la couleur. – Espaces colorimétriques. – Réglages colorimétriques. – Stockage des images avec ou sans perte. – Méthodes de rendu et modèles d’éclairage simples. – Algorithmes de représentation des images 3D. – Perspective et transformations géométriques.
Compétences visées – Connaître les modèles de représentation d’images. Maîtriser les principes de base de génération d’une image multidimensionnelle.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Fonctionnement d’un moteur de rendu 3D
L’objectif de cette UE est d’acquérir les techniques fondamentales de l’informatique graphique qui approfondissent des notions élémentaires présentées dans le cours de Représentation de données visuelles.
Prérequis Bases en programmation.
Acquis d’apprentissage – Algorithmes élémentaires en dimension 2 – Rasterisation de droites (Brésenham, …) – Remplissage de triangles – Attributs des objets géométriques (épaisseur, couleur, …), anti-aliassage – Clipping – Éléments de graphique en dimension 3Modélisation géométrique – Bases de la géométrie projective, spécification d’une vue en 3D – Élimination des parties cachées : z-buffer, lancer de rayon et autres techniques – Rendu : modèles d’illumination, ombrage, transparence, textures…
Compétences visées – Connaître et programmer le pipeline moderne de rendu des scènes tridimensionnelles.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Traitement, synthèse et reconnaissance de la parole
Ce module a pour objectif de faire découvrir la parole à travers ses applications et les questions scientifiques soulevées. Les concepts de base du traitement automatique de la parole depuis les techniques d’analyse spectrale jusqu’aux méthodes de reconnaissance automatique de la parole seront présentés aux étudiants. L’étudiant sera amené à manipuler des logiciels et algorithmes simples pour illustrer certaines étapes d’analyse, de traitement et de reconnaissance de la parole.
Prérequis Aucun.
Acquis d’apprentissage – Découvrir le domaine pluridisciplinaire du traitement de la parole en étant sensibilisé aux questions scientifiques sous-jacentes. – Identifier les principales caractéristiques d’un son. – Expliciter les méthodes de bases utilisées pour représenter un signal acoustique (fenêtrage, transformée de Fourier, prédiction linéaire, lissage cepstral, coefficients MFCC) et pour analyser des phénomènes classiques (détection de la fréquence fondamentale…). – Identifier les grandes familles d’algorithmes utilisés pour la transformation et la synthèse de la parole. – Caractériser les différentes étapes d’un système de reconnaissance automatique de la parole (modélisation des sons de la parole, modèles de Markov cachés, algorithme de décodage, notion de modèle de langage).
Compétences visées – Identifier les différentes étapes de base mises en œuvre lors d’une analyse, d’un traitement, de la synthèse et de la reconnaissance de la parole. – Réaliser un programme effectuant une brique de traitement sur un signal de parole en sachant quel outil utiliser pour évaluer le résultat. – Mettre en œuvre un enchaînement d’étapes pour réaliser une tâche de reconnaissance vocale dans un contexte simple en utilisant des outils logiciels existants ou en implantant un algorithme de base.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Introduction à la robotique autonome
Ce module est une introduction aux techniques de l’intelligence artificielle utilisées en robotique mobile. Nous abordons ainsi les notions de contrôle (ou de décision), de navigation dans un environnement complexe et continu, de perception, et de coordination entre robots. Sur ce dernier point, nous présentons la robotique collective (ou ‘swarm robotics’) qui vise à coordonner entre eux de nombreux robots mobiles simples. Il s’agit également de faire découvrir aux étudiants les plateformes robotiques, ainsi que les outils de simulation permettant l’étude et la conception de robots mobiles autonomes. Trois séances de manipulation sont prévues : une sur robot réel (Thymio II) et deux en simulation (robot individuel sous ROS et robotique collective en Java).
Prérequis Aucun.
Acquis d’apprentissage – Différentes techniques de contrôle réactif. – Aperçu de la perception multi-sensorielle. – Principales méthodes de planification. – Exemples de robotique collective (intelligence en essaim).
Compétences visées – Construire un contrôleur (évitement d’obstacle, suivi de cible, …, combinaison, …). – Choisir une méthode de planification adaptée à un cadre applicatif (en fonction du robot et de la tâche à accomplir) et la programmer. – Mettre en œuvre une technique d’intelligence en essaim.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Introduction à la cryptographie
L’objectif de cette UE est d’introduire les principaux algorithmes de la cryptographie. Il s’agira donc de s’intéresser et de se familiariser avec les algorithmes utilisés en cryptographie symétrique (Fonctions de hachage, chiffrements à flot, chiffrements par blocs, modes opératoires) et également avec les principaux algorithmes utilisés en cryptographie asymétrique (RSA, El Gamal, signatures, certificats) ainsi qu’aux bases de l’arithmétique nécessaires à leur utilisation.
Prérequis Aucun.
Acquis d’apprentissage – Maîtrise des bases arithmétiques nécessaires à la cryptographie. – Maîtrise des mécanismes de base de la cryptographie. – Maîtrise des principaux algorithmes utilisés en cryptographie symétrique et asymétrique.
Compétences visées – Utiliser les mécanismes cryptographiques de base.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Introduction à la sécurité des systèmes d’information
L’objectif de ce cours est de fournir une introduction aux divers aspects de la sécurité des systèmes d’information (SSI) et d’en illustrer certains, comme la cryptographie et les protocoles de sécurité, par l’étude plus approfondie de quelques mécanismes ou protocoles d’authentification.
Prérequis – Connaissances de base en cryptographie. – Connaissances de base en systèmes d’information et en développement d’applications Web.
Acquis d’apprentissage – Connaissance des différents domaines concernés par la sécurité des systèmes d’information. – Compréhension de l’utilisation des mécanismes cryptographiques dans les protocoles d’authentification. – Connaissance des problématiques de gestion des clés cryptographiques.
Compétences visées – Identifier les problèmes de sécurité lors de la gestion d’un système d’information ou d’une application Web. – Comprendre l’intérêt des différents mécanismes de sécurisation des données et des échanges d’information.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Droit informatique
Le droit informatique, et le droit des contrats informatiques sont en grande partie composés par le droit des obligations, mais ils connaissent certaines spécificités. Ce champ du droit s’est trouvé encadré par des dispositions législatives et réglementaires, ainsi que communautaires. Peu de disciplines ont connu un tel foisonnement. Cette UE a pour objectif de balayer les principaux textes du domaine, ceux qui permettent de comprendre les droits des entreprises et des individus en matière de protection des données et des communications, ainsi que les sanctions encourues. Les enseignements seront illustrés par des études d’affaires liées à l’actualité du moment.
Prérequis Aucun.
Acquis d’apprentissage – Connaître les textes de lois fondamentaux – Comprendre le rôle et la responsabilité des différents acteurs du systèmes d’information (éditeur, développeur, RSSI, entreprise, …).
Compétences visées – Connaissances de base en droit informatique.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Initiation à l’algorithmique parallèle
Présentation des différents systèmes parallèles et des modèles de parallélisme. Développement des notions fondamentales pour l’analyse et la conception d’algorithmes parallèles. Prise en main des outils de référence pour la mise en œuvre du parallélisme (OpenMP et MPI). Évaluation expérimentale d’un programme parallèle.
Prérequis – Connaissances fondamentales en algorithmique (niveau licence informatique). – Notions de complexité algorithmique. – Notions élémentaires du langage C/C++.
Acquis d’apprentissage – Identifier les différents contextes de parallélisme. – Établir une analyse théorique élémentaire d’un algorithme parallèle. – Réaliser un programme parallèle en utilisant OpenMP et/ou MPI. – Évaluer expérimentalement un programme parallèle.
Compétences visées – Concevoir des algorithmes parallèles simples faisant intervenir plusieurs cœurs et/ou plusieurs machines en réseau.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Introduction au parallélisme de données
Ce cours a pour objet d’introduire les concepts de base de la programmation « data parallèle » exploitant les processeurs graphiques récents, pour des applications sans rapport direct avec le graphique (GPGPU) – bien que le cours comporte quelques aspects historiques de synthèse d’images.
Prérequis Base de programmation en C/C++.
Acquis d’apprentissage – Introduction au GPU. – Introduction à la programmation data parallèle avec OpenCL. – Efficacité des traitements. – Algorithmique pour la programmation data-parallèle. – Algorithmes de hachage spatial. – Traitement d’images avec OpenCL.
Compétences visées – Avoir des notions de parallélisme de données et expérimenter avec OpenCL.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Initiation à l’ordonnancement
L’ordonnancement consiste généralement à distribuer un ensemble de tâches sur un ensemble de ressources chargées de les exécuter. On retrouve ce type de problèmes dans un grand nombre de domaines, informatiques (systèmes d’exploitation, compilation, systèmes parallèles et distribués…) ou non (transport, logistique…). Dans ce cours nous allons essayer de nous intéresser à cette branche particulière de l’algorithmique en nous penchant sur une présentation des problèmes classiques d’ordonnancement ainsi que des techniques mises en place pour les résoudre.
Acquis d’apprentissage – Bases d’ordonnancement : définition, difficulté, caractéristiques. – Typologie (ateliers à machines parallèles, à cheminement unique, à cheminement multiple, à cheminement libre, ateliers flexible). – Méthodes de résolution des cas simples sur une machine. – Règles de priorité et performance expérimentale. – Problèmes online et offline. – Projet d’illustration.
Compétences visées – Identifier un problème d’ordonnancement et de définir la méthode de résolution adéquate. – Implémenter une méthode de résolution en faisant appel à différentes compétences acquises.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Métaheuristiques & Algorithmes de recherche stochastique
Ce module est une introduction aux algorithmes de recherche stochastique dans les cas discrets et continus. Il abordera les algorithmes de type recherche locale, descente de gradient, optimisation par colonies de fourmis ainsi que les stratégies d’évolution et autres types d’algorithme évolutionnaires. Il mettra l’accent sur l’algorithmique de ces approches, les liens qui existent entre elles ainsi qu’à l’évaluation de leurs performance sur différents problèmes d’intelligence artificielle avec des outils statistiques. Au cours du module, ces algorithmes seront mis en œuvre et implémentés sur des problèmes classiques (comme le voyageur de commerce ou le Knapsack problem).
Prérequis – Notions de base en probabilités et statistiques. – Bonne maîtrise d’un langage de programmation et des connaissances de base en algorithmique.
Acquis d’apprentissage – Notion d’espace de recherche. – Modélisation sous la forme de problèmes d’optimisation. – Compréhension de différents algorithmes de recherche stochastique. – Comparaison des performances d’algorithmes stochastiques avec des outils statistiques.
Compétences visées – Modéliser correctement les problèmes d’optimisation. – Choisir et mettre en œuvre un algorithme adapté pour sa résolution. – Évaluer les performances et la robustesse de ces algorithmes.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Traitement d’images et vision par ordinateur
Cette UE a pour objectif d’initier les étudiants aux techniques de base du traitement d’images et de la vision par ordinateur.
Prérequis Aucun.
Acquis d’apprentissage – Introduction au traitement d’images : Échantillonnage – Filtrage – Opérateurs de morphologie mathématique – Transformations géométriques – Détecteurs de contours – Introduction à la vision par ordinateur : Étude de la stéréovision – Modèle de caméra et calibration – Problème de la mise en correspondance – Reconstruction – Exemples d’applications existantes de la stéréovision
Compétences visées – Connaître les principes fondamentaux du traitement d’images et de la vision par ordinateur. – Avoir une expérience plus approfondie des algorithmes les plus utilisés.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Données semi-structurées et XML
Ce cours propose d’étudier les modèles de données semi-structurées comme une alternative aux modèles de données fortement structurées, en particulier quand il s’agit de traiter des données hétérogènes. Il introduit également les modèles de contrôle d’accès aux documents XML ainsi que les problèmes de recherche encore ouverts dans le domaine.
Prérequis Connaissances sur la conception des systèmes d’information et la théorie relationnelle de données. Connaissances des diverses fonctions offertes par un SGBD.
Acquis d’apprentissage – Objets complexes structurés versus objets semi-structurés. – Standards autour de XML. – Métadonnées, Grammaire et Schéma (XML-Namespace, XML-Schema). – Évaluation de requêtes (XQuery). – XML et les Bases de Données, orientation documents et données.
Compétences visées – Maîtriser les modèles et techniques d’échange liés à l’exploitation des données semi-structurées : définition de schémas, vérification, langages de requêtes, contrôle du changement. – Protéger les données XML selon les standards W3C.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Sémantique des langages de programmation
L’objectif de cette UE est de décrire les idées et méthodes principales utilisées en sémantique des langages de programmation, de les illustrer sur des exemples et d’étudier les relations entre les différentes méthodes.
Prérequis Aucun.
Acquis d’apprentissage – Notions de bases de la sémantique – Introduction aux méthodes – Un langage impératif simple – Sémantique opérationnelleSémantique naturelle, sémantique structurelle – Équivalence des sémantiques – Sémantique dénotationnellethéorie du point fixe – applications à la sémantique dénotationnelle – équivalence avec la sémantique opérationnelle – Sémantique axiomatiquecorrection partielle de programmes – logique de Hoare et applications à la vérification de programmes
Compétences visées – Maîtriser au travers de la sémantique la compréhension des langages de programmation et des programmes écrits dans ces langages. – Vérifier formellement l’exécution et la correction des programmes.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Bases de données avancées
Face au déluge des données dans la plupart des secteurs, les systèmes de bases de données relationnelles ne permettent pas de répondre à tous les besoins en gestion de gros volumes de données. L’objectif de cette unité d’enseignement est de donner aux étudiants des connaissances de base dans le domaine des bases de données nouvelle génération (NoSQL, RDF, …) et dans la conception des bases de données réparties. Application à des systèmes représentatifs.
Prérequis Notions avancées dans la conception et l’exploitation des bases de données.
Acquis d’apprentissage – Construire et implémenter des schémas de données relationnelles réparties. – Construire et exploiter des données NoSQL ou RDF.
Compétences visées – Concevoir et exploiter des bases de données réparties et des bases de données NoSQL ou RDF.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Représentation et extraction de connaissances
L’UE se partage en deux parties. La première concerne la représentation de connaissances et les raisonnements (RCR). Elle décrit plusieurs formalismes, en particulier des formalismes de RC liées au Web sémantique (OWL et les logiques de descriptions d’une part, RDFS et les graphes conceptuels d’autre part) et des problématiques dépassant le raisonnement déductif classique (logiques multi-valuées, logiques possibilistes, révision des croyances, raisonnement à partir de cas). Des outils pour la gestion de bases de connaissances et le raisonnement artificiel seront présentés (éditeur d’ontologies, moteurs d’inférences). La deuxième concerne l’extraction de connaissances à partir de bases de données (ECBD) : sachant qu’on dispose d’un important volume de données, comment, de façon semi-automatique extraire des connaissances à partir de cette masse de données. L’ECBD est constitué de façon générale de trois grandes étapes : la préparation des données, la fouille de données et l’interprétation des motifs issus de la fouille. Les aspects méthodologiques et technologiques de ces étapes seront présentées.
Prérequis – Connaissances de base en d’algorithmique. – Notions de base sur les ensembles (intersection, union,relations binaires, fonctions, etc.).
Acquis d’apprentissage – Connaître les principes du Web sémantique et des technologies associées et comprendre leur utilité – Les principales logiques de descriptions (p. ex., ALC, EL, SHOIQ(D), OWL DL) et les outils associés – RDFS et les outils associés (triple stores avec déduction, etc.) – La théorie des sous-ensembles flous – La théorie des possibilité et les logiques possibilistes – La révision des croyances et les problématiques proches (contraction, fusion, etc.) – Le raisonnement à partir de cas – Les principes de l’ECBD – La préparation des données (acquisition des données, formatage, filtrage) – Différentes techniques de fouille de données (motifs fréquents, règles d’association, analyse formelle de concepts) – L’interprétation des motifs extraits
Compétences visées – Construction d’un système à base de connaissances, incluant un moteur d’inférences: – Identifier le formalisme utile pour la représentation des connaissances du domaine d’application visé. – Construire une base de connaissances simple. – Écrire et envoyer une requête SPARQL (pour RDFS et OWL DL). – Mettre en œuvre un processus d’extraction de connaissances pour alimenter la base de connaissances d’un tel système.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Informatique quantique
L’informatique quantique est un domaine en pleine expansion. Des phénomènes mis en évidence par la physique quantique comme la superposition ou l’intrication peuvent être exploités pour rendre le traitement de l’information plus efficace et plus sûr. Par exemple l’algorithme de Shor permet de factoriser des nombres efficacement à l’aide d’un ordinateur quantique, remettant ainsi en cause la sécurité de protocoles largement utilisés de nos jours comme RSA. D’un autre côté des protocoles quantiques comme BB84 permettent de communiquer de l’information avec une sécurité inconditionnel, n’ayant pas d’équivalent classique. Nous verrons différents algorithmes et protocoles quantiques et quels sont leurs impacts actuels (ou dans un futur proche) en informatique.
Prérequis Notions d’algorithmique.
Acquis d’apprentissage – Quelques algorithmes et protocoles quantiques
Compétences visées – Comprendre la puissance et les limites de l’informatique quantique.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Preuves et déduction automatique
L’objectif de cette UE est d’aborder la démonstration et la recherche de preuves automatique suivant deux axes: un premier qui consiste à proposer des méthodes de déduction et recherche de preuves en logique des prédicats du premier ordre et un second qui consiste à étudier la mécanisation de la preuve de programmes avec une mise en œuvre avec un assistant de preuve.
Prérequis Aucun.
Acquis d’apprentissage – Méthodes de preuves logique des prédicats du 1er ordre – méthodes des tableaux : calcul propositionnel et calcul des prédicats – méthodes des connexions : calcul propositionnel et calcul des prédicats – Preuves de programmes – présentation d’une preuve formelle à la main – logique propositionnelle en Coq – quantificateurs et types inductifs simples – prédicats inductifs et preuves par induction – étude et complétion d’une version mécanisée d’une preuve formelle
Compétences visées – Maîtriser des méthodes de preuve et leur automatisation. – Vérifier des propriétés de programmes à l’aide d’un assistant de preuve.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Algorithmique distribuée
L’objectif de ce module est de présenter des problématiques liées aux systèmes distribués. Au travers d’algorithmes classiques le cours abordera des problématiques comme l’exclusion mutuelle, l’élection de leader ou la détection de terminaison. Il présentera également des techniques utiles dans ce contexte, comme l’utilisation d’horloges logiques ou d’algorithmes par vagues.
Prérequis Connaissances fondamentales en algorithmique.
Acquis d’apprentissage – Connaître les problématiques classiques des systèmes distribués et des algorithmes pour y répondre. – Concevoir et assurer la correction d’algorithmes distribués adaptés à un objectif donné et un niveau de défaillance des processus participants.
Compétences visées – Concevoir des algorithmes et des logiciels corrects.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Automates cellulaires
Le jeu de la vie est l’automate cellulaire le plus connu, mais il existe une infinité de règles, déterministes ou probabilistes, qui permettent d’obtenir une gamme variée de comportements. On s’intéresse à un ensemble de cellules qui communiquent de manière locale pour former un comportement cohérent. Les automates cellulaires sont un modèle de calcul fondamental, qui peut aussi bien être un outil de modélisation qu’une façon de concevoir des algorithmes parallèles et massivement distribués. En s’inspirant du vivant, on peut également construire des systèmes auto-organisés qui résistent au bruit et à différentes perturbations. Ce cours présente les outils mathématiques pour décrire les automates cellulaires et permet de découvrir les bases de la modélisation des systèmes complexes.
Prérequis Niveau mathématique de licence d’informatique
Acquis d’apprentissage – Savoir lire et décrire un modèle de type système dynamique discret – Connaître les différents types de classification de systèmes complexes – Concevoir des systèmes robustes et auto-organisés – Applications en modélisation de phénomènes naturels (propagation d’une épidémie, feu de forêt, formation d’essaims d’oiseaux, mouvements de piétons, etc.) – Applications en modélisation de systèmes informatiques distribués (réseaux de capteurs, consensus sur réseaux, etc.) – Graphique en dimension 3
Compétences visées – Modéliser des problèmes complexes (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1).
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Calcul neuromorphique
Le calcul neuromorphique imite le fonctionnement du cerveau pour réaliser des tâches de traitement de l’information. L’essor récent des circuits et des capteurs neuromorphiques se traduit notamment par l’implication croissante de grandes entreprises (par exemple Intel, IBM, Sony) dans la conception de ces matériels. Les circuits neuromorphiques sont basés sur des modèles de neurones artificiels communiquant – à la manière des neurones biologiques – au moyen d’impulsions produites dans le temps. Parmi les capteurs neuromorphiques, les caméras événementielles fonctionnent de manière analogue à la rétine en transmettant l’information sous forme d’impulsion uniquement lorsqu’un changement local de luminosité est détecté, permettant une vitesse d’échantillonage très élevée malgré une consommation énergétique réduite. Ce cours introduit les concepts du calcul neuromorphique, l’apprentissage spécifique à ce calcul, et illustre notamment l’utilisation de caméras événementielles.
Prérequis programmation impérative et orientée objet
Acquis d’apprentissage – Fondements biologiques : mécanismes neuronaux – Modèles de neurones intègre-et-tire – Introduction aux circuits neuromorphiques – Apprentissage hebbien (règle de Hebb, règle STDP). – Principes des caméras événementielles – Applications à la perception visuelle
Compétences visées – Modéliser des problèmes complexes (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1).
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Programmation fonctionnelle
Ce cours présente les concepts et les principes de la programmation fonctionnelle, en mettant l’accent sur l’utilisation des fonctions comme blocs de construction de base des programmes. L’objectif est de montrer comment utiliser la programmation fonctionnelle pour résoudre des problèmes de programmation. Les sujets abordés comprennent les concepts de programmation fonctionnelle, la récursivité, les fonctions d’ordre supérieur, les structures de données et les paradigmes de programmation fonctionnelle.
Prérequis Bonnes connaissances en algorithmique. La connaissance d’un langage de programmation est un plus.
Acquis d’apprentissage – Comprendre les fonctions récursives et d’ordre supérieur et être capable de les utiliser pour écrire des programmes. – Définir et utiliser des structures de données dans un paradigme de programmation fonctionnelle.
Compétences visées – Modéliser des problèmes complexes (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1).
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Moindres carrés pour les programmeurs
Ce cours explique l’optimisation par les moindres carrés, une technologie aujourd’hui simple et bien maitrisée. Nous montrons comment cette méthode simple peut résoudre un grand nombre de problèmes qu’il serait difficile d’aborder autrement. Ce cours s’adresse aux étudiants qui savent programmer de manière traditionnelle : en décomposant des tâches complexes en opérations élémentaires qui manipulent des structures combinatoires (arbres, graphes, maillages…). Nous présentons ici un paradigme différent, dans lequel nous décrivons ce à quoi ressemble un bon résultat, et laissons les algorithmes d’optimisation numérique le trouver pour nous.
Prérequis Aucun.
Acquis d’apprentissage – Méthodes itératives de résolution de systèmes linéaires – Des bases d’optimisation numérique – Découverte de relations avec d’autres domaines (probabilités / machine learning)
Compétences visées – Modéliser des problèmes complexes (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1).
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Algorithmique online
L’objectif de cette UE est de fournir les outils pour concevoir et analyser la performance des algorithmes pour de problèmes d’optimisation quand les données de l’entrée ne sont pas connues d’avance, mais elles arrivent de façon dynamique au fur et à mesure pendant l’exécution de l’algorithme. Différents modèles online seront présentés ainsi que différentes techniques de conception algorithmique aillant de heuristiques simples aux méthodes utilisant la programmation mathématique.
Acquis d’apprentissage – Connaissance de différents modèles online. – Algorithmes online avec garanties de performance. – Méthodologies de conception et analyse d’algorithmes sans connaissance préalable de données d’entrée. – Étudier la difficulté de conception des garanties de performance pour de problèmes online.
Compétences visées – Modéliser des problèmes complexes (BCC 5 M1-1) – Concevoir des algorithmes et évaluer leur complexité (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1).
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Outils d’aide à la décision
L’objectif du cours est de montrer comment utiliser les graphes comme des outils d’aide à la décision.
Acquis d’apprentissage – Modélisation de problèmes de décision sous forme des problèmes d’optimisation dans les réseaux. – Algorithme d’optimisation dans les réseaux.
Compétences visées – Modéliser des problèmes complexes (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1) – Maîtrise du concept de flots (algorithmes et applications) – Maîtrise de la technique des arbres couvrant de poids minimum (algorithmes et application
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Introduction aux modèles financiers
Dans cette UE, on s’intéressera à la modélisation des portefeuille en finance.
Acquis d’apprentissage – Notions de base en finance. – Modèles fondamentaux de gestion optimale d’un portefeuille en finance.
Compétences visées – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1) – Maitrise des outils et des concepts de gestion d’un portefeuille en finance.
3
12
12
–
–
Crédits
CM
TD
TP
PRJ
Graphes d’attaques et réseaux de transport
L’objectif est d’apprendre à exploiter toute la puissance de l’outil « graphe » pour traiter des problèmes difficiles et réalistes notamment en lien avec les cheminements dans les réseaux.
Prérequis – Bases de l’algorithmique des graphes. – Connaissance de base en réseaux. – Connaissance de base en optimisation combinatoire.
Acquis d’apprentissage – Sécurité des réseaux informatiques et des systèmes d’information : graphes d’attaque – réseaux ad-hoc – Algorithmique pour les cheminements dans les réseaux de transport : problèmes de transport avec capacités limités – chemins à valuations multicritères – chemins avec des contraintes de ressources
Compétences visées – Modéliser des problèmes complexes (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1) – Traiter des problématiques réalistes en mobilisant différentes connaissances acquises dans différents cours. – Exploiter la puissance de l’outil « graphe » pour traiter des problèmes en lien avec les cheminements dans les réseaux.
3
12
–
12
–
Crédits
CM
TD
TP
PRJ
Bases de l’ergonomie des systèmes interactifs
La conception centrée sur l’humain (norme ISO 9241-210) et en particulier les recommandations s’appuient sur des connaissances en ergonomie, en psychologie cognitive, sur les facteurs humains et les technologiques. Ce cours vise à former les étudiants aux concepts fondamentaux de la psychologie cognitive de l’ergonomie et des facteurs humains afin de compléter leur formation vers la conception centrée utilisateurs. Ce cours abordera les 3 premières catégories de connaissances : ergonomie, psychologie en particulier cognitive et facteurs humains. Il permet entre autres de comprendre les recommandations ergonomiques utilisées lors de la conception et l’évaluation de systèmes interactifs et ainsi de mieux les appliquer. En particulier cet enseignement vise à préparer les étudiants à la conception d’interactions et d’interfaces destinées à des utilisateurs dits « non classiques » tels que les personnes handicapées, les enfants, les personnes âgées ou les personnes venant d’une autre culture.
Prérequis Aucun.
Acquis d’apprentissage – Connaître et comprendre l’approche ergonomique de conception et d’évaluation en général. – Introduction aux méthodes d’analyse de situation de travail. – Connaître les bases psychologiques utilisées dans la conception et l’évaluation des IHMs. – Être sensibilisé à la différence entre les différents publics d’utilisateurs et aux notions d’accessibilité et d’inclusion.
Compétences visées – Développer la logique métier et les interfaces utilisateurs des applications informatiques (BCC 6 M1-2) – Communiquer avec un client et un utilisateur final. – Définir les besoins réels des utilisateurs à partir des méthodes d’analyse. – Appliquer des méthodes centrées utilisateurs pertinentes pour l’évaluation d’applications interactives. – Construire des solutions répondant aux attentes des utilisateurs, des clients et du contexte métier. – S’organiser dans une équipe pluridisciplinaire
3
12
–
12
–
Crédits
CM
TD
TP
PRJ
Initiation à la multimodalité
Former les étudiants au développement des applications multimodales en les sensibilisant à l’usage d’autres canaux de communication et à l’usage de modalités innovantes. Connaître des techniques et modèles pour faciliter la conception d’applications multimodales.
Prérequis Aucun.
Acquis d’apprentissage – Comprendre ce qu’est une application multimodale. – Savoir analyser une application multimodale dans un espace de conception. – Être capable de critiquer une application multimodale en analysant les techniques d’interactions utilisées – Savoir déterminer les types de coopération entre modalités dans une application multimodale.
Compétences visées – Concevoir des systèmes logiciels complexes et interactifs (BCC 6 M1-2) – Développer la logique métier et les interfaces utilisateurs des applications informatiques (BCC 6 M1-2)
3
12
–
12
–
Crédits
CM
TD
TP
PRJ
Prototypage d’interfaces par langages de script
Étude d’un langage de script (par exemple Python) – Principes de base – Approche objets Étude d’une librairie de widgets adaptée (par exemple Tk) Prototypage d’interfaces Approche modulaire par bus logiciel
Prérequis – Algorithmique
Acquis d’apprentissage – Maîtrise d’un langage de script – Maîtrise d’une librairie de widget – Sensibilisation à la notion de bus logiciel
Compétences visées – Concevoir des systèmes logiciels complexes et interactifs (BCC 6 M1-2) – Développer la logique métier et les interfaces utilisateurs des applications informatiques (BCC 6 M1-2) – Savoir développer rapidement un logiciel avec son interface – Savoir utiliser un langage de script – Savoir concevoir un logiciel modulaire
3
12
–
12
–
Crédits
CM
TD
TP
PRJ
Développement .Net
Introduction à la plateforme .Net Principes et usage du langage C#. Création d’interfaces graphiques avec .Net Framework
Prérequis – Algorithmique – Compréhension de l’approche par objets
Acquis d’apprentissage – Maîtriser la plateforme .NET et ses outils de développement.
Compétences visées – Concevoir des systèmes logiciels complexes et interactifs (BCC 6 M1-2) – Mettre en service et maintenir les applications informatiques (BCC 6 M1-2) – Savoir développer des applications interactives sur la plateforme .NET
3
12
–
12
–
Crédits
CM
TD
TP
PRJ
Initiation à la programmation parallèle
L’usage des machines multiprocesseurs est aujourd’hui incontournable pour quiconque s’intéresse aux applications nécessitant le recours au calcul intensif. Ces applications concernent à la fois la recherche scientifique publique ou privée, mais également les entreprises industrielles et commerciales. L’objectif de cette UE est de donner aux étudiants des bases théoriques et expérimentales leur permettant d’aborder les concepts du calcul intensif et parallèle.
Prérequis – Système (notion de processus et communication entre processus)
Acquis d’apprentissage – Les modèles de parallélisme : granularité du parallélisme, théorème de Brent, performance des programmes parallèles – Synchronisation et coopération de processus – Modèles MPI et OpenMP
Compétences visées – Concevoir des algorithmes et évaluer leur complexité (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1)
3
12
–
12
–
Crédits
CM
TD
TP
PRJ
Apprentissageautomatique
Introduction progressive à l’apprentissage automatique.
Prérequis – Les bases de l’IA tel qu’elles sont enseignées dans l’UE obligatoire « Intelligence Artificielle » du semestre S7
Acquis d’apprentissage – Maîtriser et implémenter les principes suivants : – Gradients et descente de gradients, – Régression linéaire, – Régression logistique, logit et sigmoïd, – Réseaux de neurones profonds et softmax, – Réseaux de neurones convolutifs.
Compétences visées – Concevoir des algorithmes et évaluer leur complexité (BCC 5 M1-1) – Proposer des solutions informatiques à des problèmes complexes (BCC 5 M1-1)
3
12
–
12
–
Crédits
CM
TD
TP
PRJ
Le Master mention Informatique de Lorraine comporte cinq parcours en M2 sur les 2 sites qui comportent chacune 1 ou 2 orientations :
M2 – Ingénierie des Logiciels (IL) avec 2 orientations
La conception de logiciels est devenue une activité de plus en plus complexe par la taille des systèmes informatiques, leur composition hétérogène, leur exécution distribuée. Il est plus que jamais essentiel de maîtriser cette complexité afin d’éviter des erreurs de conception et de programmation aux conséquences désastreuses. La production de logiciels doit donc reposer sur des concepts maîtrisés et des techniques et méthodes rigoureuses. Dans ce contexte, l’objectif du parcours-type Ingénierie des Logiciels au travers de ses orientations est de préparer les étudiants aux techniques et méthodes rigoureuses pour l’ingénierie logicielle ainsi qu’aux méthodes formelles pour la sécurité et la sûreté des programmes et des systèmes informatiques. Méthodes Formelles pour des Logiciels Sûrs (MFLS) – Nancy Ingénierie Logicielle (IL) – Nancy – ouvert à l’alternance
M2 – Intelligence Artificielle et ses Applications en Vision et Robotique (IA2VR) avec 1 orientation
Une seule orientation est proposée dans ce parcours type, avec la volonté de renforcer la complémentarité de la double approche thématique (apprentissage, vision) et du double niveau de compétences (concepts fondamentaux et maîtrise technologique ), dans une perspective cohérente axée autour des usages robotiques en plein essor. Intelligence Artificielle et ses Applications en Vision et Robotique(IA2VR) – Nancy
M2 – Sécurité de l’Information et des Systèmes (SIS) avec 2 orientations
Le parcours type « Sécurité de l’Information et des Systèmes (SIS) » propose des formations développant des compétences à forte valeur ajoutée. Deux orientations y sont proposées. L’orientation « Sécurité Informatique, Réseaux et Architectures Virtuelles (SIRAV) » localisée sur le site de Nancy est tournée vers les aspects technologiques de la sécurité (sécurité des réseaux, virtualisation, Internet des objets, sécurité des logiciels, cryptographie, etc.), en s’appuyant en particulier sur les équipes de recherche particulièrement en pointe dans ces domaines. L’orientation « Sécurité des Systèmes d’Information (SSI) » sur le site de Metz est quant à elle, tournée vers les aspects liés à la gouvernance de la sécurité dans les entreprises (audit de sécurité, politique de sécurité, résilience du système d’information, etc.). Sécurité Informatique, Réseaux et Architectures Virtuelles (SIRAV) – Nancy Sécurité des Systèmes d’Information (SSI) – Metz – ouvert à l’alternance
M2 – Informatique Décisionnelle (ID) avec 2 orientations
Au carrefour de l’informatique et des sciences de la décision, le parcours-type « Informatique Décisionnelle » vise les métiers de la conception, de l’analyse et de l’exploitation des données et des systèmes informatiques d’aide à la décision et de l’optimisation pour les modèles de grande taille. L’objectif est de former des futurs cadres professionnels de niveau ingénieur et futurs chercheurs/enseignants-chercheurs ayant des compétences solides en informatique et en aide à la décision avec mise en œuvre dans divers grands secteurs d’activité comme la finance, la logistique, le transport et l’optimisation des ressources. Intelligence des Données, DÉcision, Apprentissage Automatique ALgorithmique (IDÉAL) – Metz Systèmes d’Information Décisionnelle (SID) – Metz – ouvert à l’alternance
M2 – Génie informatique et Interactions Humain-Machine (G2IHM) avec 2 orientations
Le parcours type G2IHM représente le parcours type pour apprendre à maîtriser les nouvelles technologies pour obtenir des applications adaptées aux utilisateurs. Les étudiants peuvent suivre ce parcours en alternance : ce mode de formation combine enseignement théorique et expériences professionnelles au sein d’une entreprise. Deux orientations sont proposées : Génie Informatique (GI) – Metz – exclusivement en alternance Interaction Humain-Machine (IHM) – Metz – ouvert à l’alternance
Uniquement basé à Nancy, le parcours Intelligence artificielle et ses applications en vision et robotique (IA2VR) vous enseigne la conception et l’analyse de modèles avancées d’IA pour : • l’analyse et l’interprétation de scènes visuelles (traitement d’images et de vidéos, réalité augmentée, etc.), • la visualisation dynamique 3D (jeux vidéos, etc.), • la gestion des différentes couches logicielles d’un système autonome (robotique), • et la reconnaissance automatique de la parole.
OBJECTIFS DU parcours AVR
Les objectifs du parcours-type « Intelligence Artificielle et ses Applications en Vision et Robotique » se situent dans le contexte général d’une évolution majeure des systèmes numériques qui, après l’ère de l’ordinateur personnel, suivie de l’avènement des systèmes nomades, puis de l’informatique ubiquitaire, s’oriente peu à peu vers le développement massif de systèmes intelligents autonomes et capables d’interactions directes avec l’environnement et l’être humain. Dans ce contexte, la formation proposée met l’accent sur l’intelligence artificielle, à travers la notion d’apprentissage automatique, et ses apports dans le domaine de la vision et de la robotique.
L’apprentissage est la condition première de l’émergence d’un comportement intelligent autonome, et l’image reste le canal privilégié de l’interaction de haut niveau des systèmes robotiques avec leur environnement. Cette double approche permettra aux diplômés de ce parcours-type de non seulement développer une compétence pointue dans les aspects informatiques de la conception de systèmes intelligents et interactifs notamment robotiques, mais aussi de disposer d’une formation reconnue dans les domaines plus généraux de l’intelligence artificielle et de la vision par ordinateurs, deux domaines particulièrement dynamiques de l’informatique actuelle.
Le parcours-type ainsi défini réalise un équilibre entre les concepts fondamentaux et les connaissances plus appliquées, avec notamment un projet axé sur la navigation d’un robot dans son environnement et sur son interaction avec l’être humain. Cet équilibre ouvre des débouchés larges, aussi bien dans les métiers de conception et de développement que dans les métiers de la recherche. Une seule orientation est proposée dans ce parcours-type, avec la volonté de renforcer la complémentarité de cette approche thématique (intelligence artificielle et apprentissage automatique, vision, robotique) et du double niveau de compétences (concepts fondamentaux et maîtrise technologique), dans une perspective cohérente axée autour des systèmes robotiques et intelligents en plein essor.
Compétences scientifiques et techniques spécifiques au parcours AVR
Identifier les besoins des systèmes autonomes (notamment robotiques) qui peuvent être satisfaits au moyen de techniques issues de l’intelligence artificielle
Connaître les principales approches de l’apprentissage artificiel et savoir définir, choisir, paramétrer et mettre en oeuvre un modèle d’apprentissage automatique pour une tâche donnée
Maîtriser les principaux concepts de la vision par ordinateur (analyse d’images, réalité augmentée, modélisation 3D) et savoir analyser et traiter des données perceptives
Maîtriser les différents niveaux de gestion d’un système robotique (modélisation, commande, planification, gestion des interactions) et savoir concevoir le logiciel d’un système robotique intégré
Orientation Intelligence Artificielle et ses Applications en Vision et Robotique (IA²VR)
Les étudiants du parcours IA²VR seront en mesure de concevoir et d’analyser des modèles avancés pour l’analyse et l’interprétation de scènes visuelles (traitement d’images et de vidéos, réalité augmentée, etc.), pour la visualisation dynamique 3D (jeux vidéos, etc.), pour la gestion des différentes couches logicielles d’un système autonome (robotique) et pour la reconnaissance automatique de la parole.
Semestre 9
Unités d’enseignement fondamentales
Apprentissage statistique et deep learning
L’UE traite de l’apprentissage automatique, allant de la théorie statistique de l’apprentissage et des fondements du deep learning à la conception et la mise en œuvre de réseaux de neurones pour répondre à des problèmes concrets en IA. La première partie de ce cours dédiée au Deep Learning fournit un panorama de l’apprentissage par réseaux de neurones, couvrant les briques neuronales élémentaires (couche totalement connectée, convolutive, récurrente, modèle d’attention, normalisation, etc.), la conception d’une architecture répondant au problème à résoudre, le choix d’une fonction de coût appropriée selon la tâche (classification, détection, segmentation, apprentissage auto-supervisé, etc.) et les algorithmes de minimisation de cette fonction de coût (rétropropagation du gradient, descente de gradient, moment, dropout, etc.). Le cours sera illustré par des exemples d’architectures, des plus simples aux plus récentes. Des TD et un projet permettront d’appliquer ces connaissances à des problèmes concrets tels que la segmentation sémantique d’images grâce à une bibliothèque logicielle dédiée. La théorie statistique de l’apprentissage cherche à expliquer et comprendre les phénomènes en jeu dans l’apprentissage à partir d’exemples. La seconde partie de ce cours permet d’introduire les fondements théoriques de l’apprentissage supervisé et d’appréhender les mesures de capacité des classes de fonctions et la dérivation de bornes sur l’erreur de généralisation. Ces concepts sont instanciés sur des classifieurs tels que les machines à noyaux et les machines à vecteurs supports (SVM), illustrant aussi le principe de contrôle de la capacité par régularisation. Les aspects propres aux problèmes multi-classes sont également traités. En apprentissage, la sélection de variables et de modèle constituent des étapes à la fois cruciales pour diminuer la complexité du modèle et améliorer les capacités de généralisation. L’extraction de caractéristiques et leur visualisation sont deux étapes importantes dans l’utilisation et la compréhension des données qui seront également abordées. Ce cours présente aussi les techniques standards (notamment les approches basées sur la notion de parcimonie) et montre comment dans ce cadre la théorie peut être instanciée pour obtenir un bénéfice pratique.
Prérequis – Maîtrise du langage Python. – Notions de base de mathématiques (probabilités et statistiques, algèbre linéaire, calcul de dérivées)..
Acquis d’apprentissage – Fondements du deep learning. – Fondements statistiques de l’apprentissage. – Techniques de régularisation. – Techniques de sélection de variables. – Techniques de sélection de modèle.
Compétences visées – Définir et paramétrer un modèle d’apprentissage automatique pour une tâche donnée, modéliser et manipuler un système stochastique. – Préparer les données d’apprentissage, savoir en réduire la dimensionnalité, analyser la pertinence des caractéristiques, analyser les résultats d’apprentissage, évaluer la pertinence des différents modèles, combiner les modèles d’apprentissage.
4
32
16
–
Crédits
CM
TD
TP
Traitement et modélisation pour l’image
Le cours est composé de deux parties. Une partie porte sur les techniques de modélisation utilisées en reconnaissance de formes. L’objectif est d’étudier différents outils géométriques, statistiques et numériques qui forment la base des méthodes de reconnaissance des formes et interviennent dans la construction effective de modèles à partir d’une collection de données ou de mesures. La seconde partie est sur le traitement et l’analyse d’images. Nous y étudions des méthodes de segmentation d’images et des modèles d’objets associés aux images numériques : leurs représentations (structures discrètes) et leur exploitation (filtrage). Le cours abordera d’abord les problématiques de détection d’objet et de comparaisons de formes, aussi bien du point de vue des méthodes conventionnelles que des méthodes issues des réseaux de neurones convolutionnels (CNN). Les méthodes de modélisation linéaire seront ensuite présentées. Enfin les méthodes d’estimation, et en particulier l’estimation robuste, qui sont au coeur des techniques conventionnelles de reconnaissance ou des méthodes basées sur les CNN seront abordées. Le problème de la segmentation des images, point crucial dans l’analyse de celles-ci, sera exploré en présentant différentes approches (régions, contours, morphologiques). Suite de la segmentation, l’analyse d’images consiste à extraire des caractéristiques géométriques des formes présentes dans l’image : les attributs de régions, de contours ou le changement de représentation. Des applications aux images 2D et 3D seront proposées pour le traitement et l’analyse d’images en lien avec la reconnaissance de formes.
Prérequis – Connaissances de base en mathématique (algèbre linéaire, analyse numérique et probabilité). Programmation orientée objet.
Acquis d’apprentissage – Métriques de comparaison de formes : des descripteurs « faits main » aux descripteurs issus des réseaux de neurones – Modélisation linéaire : rappels d’algèbre linéaire, régression, analyse en composantes principales, analyse en composantes indépendantes. – Méthode d’estimation : formulation d’un problème d’estimation (moindres carrés, max de vraisemblance, fonction de coût…) et estimation des paramètres (descente de gradient, gradient stochastique, méthodes de différentiation automatique). – Estimation robuste en présence de données erronées ou aberrantes : transformée de Hough, M-estimateurs, méthodes de type RANSAC. – Outils de base du traitement d’images : morphologie mathématique, algorithmes de filtrage, algorithmes de segmentation. – Méthodes de calcul de descripteurs de formes dans les images : attributs de contours et de régions, changement de représentation.
Compétences visées – Analyser et traiter des données perceptives (image, parole, etc.) possiblement bruitées, interpréter un environnement visuel, extraire des informations contextuelles, enrichir la perception. – Préparer les données d’apprentissage, savoir en réduire la dimensionnalité, analyser la pertinence des caractéristiques, analyser les résultats d’apprentissage, évaluer la pertinence des différents modèles, combiner les modèles d’apprentissage.
4
32
16
–
Crédits
CM
TD
TP
Planification, Apprentissage et Contrôle pour la robotique
Pour résoudre un problème complexe, un système robotisé évoluant dans un environnement constitué d’obstacles doit être capable d’agir et de raisonner à plusieurs niveaux : il doit pouvoir reconnaître les situations rencontrées et planifier une séquence de tâches, construire une trajectoire en tenant compte des obstacles et de ses contraintes de mouvement, et enfin contrôler ses mouvements avec précision pour prévenir des dérives et s’adapter aux nouveaux obstacles. Cette UE se concentre sur la chaîne de traitements permettant de contrôler un robot à partir d’une tâche définie à haut niveau. Elle aborde, séquentiellement, les différents niveaux allant du symbolique et abstrait au continu : – modélisation probabiliste pour la prise de décision dans l’incertain — comment représenter un problème de décision haut niveau et mettre à jour les connaissances du robot sur son environnement à partir d’informations partielles et bruitées ; – apprentissage par renforcement pour identifier les modèles du robot et de son environnement — comment apprendre un modèle probabiliste en agissant dans le monde pour résoudre une tâche ; – planification de trajectoire dans une carte connue — comment calculer une trajectoire optimale vers un but donné dans un environnement connu et réalisable par un robot en fonction de ses caractéristiques ; – suivi d’une trajectoire avec évitement d’obstacle — comment calculer les commandes à envoyer aux moteurs d’un robot mobile pour suivre la trajectoire planifiée tout en évitant des obstacles qui n’étaient pas présents dans la carte. À l’issue de cette UE, les étudiants seront capables de mettre en œuvre les différentes couches d’un système de prise de décision permettant de contrôler un robot pour résoudre un problème défini à haut-niveau.
Prérequis – Connaissances de base en mathématiques (probabilités, matrices). – Connaissances de base en algorithmique (tri, parcours de graphe).
Acquis d’apprentissage – Modélisation probabiliste de systèmes dynamiques (réseau bayésien dynamique, chaîne de Markov cachée). – Prise de décision dans l’incertain (processus décisionnel de Markov) et apprentissage par renforcement. – Notion de robot non holonome et d’espace de configuration – Planification de chemin à l’aide d’algorithmes déterministes (A*) et stochastiques (RRT, RRT*) – Contrôle réactif (Braitenberg, champ de force) et basé modèle (MPC, cinématique inverse) d’un système robotique
Compétences visées – Modélisation probabiliste de systèmes dynamiques (réseau bayésien dynamique, chaîne de Markov cachée). – Prise de décision dans l’incertain (processus décisionnel de Markov) et apprentissage par renforcement. – Notion de robot non holonome et d’espace de configuration – Planification de chemin à l’aide d’algorithmes déterministes (A*) et stochastiques (RRT, RRT*) – Contrôle réactif (Braitenberg, champ de force) et basé modèle (MPC, cinématique inverse) d’un système robotique
3
24
12
–
Crédits
CM
TD
TP
Intégration méthodologique
Ce module a pour objectif d’amener les étudiants à conduire et mettre en œuvre, en groupe, un projet d’envergure dans le domaine de la robotique mobile ou de la robotique interactive. L’étudiant pourra ainsi acquérir les compétences nécessaires à la conduite d’un projet informatique (répartition des rôles, gestion de version, documentation, simulation, production) et d’approfondir ses compétences dans le domaine de l’informatique appliquée à des questions de robotique moderne et/ou d’intelligence artificielle. L’objectif opérationnel sera d’amener les étudiants à réaliser le projet en s’appuyant sur des outils de simulation et des plateformes robotiques existantes à l’UFR et au LORIA (robots mobiles, robot humanoïdes). Par exemple, les étudiants pourront être amenés à concevoir un robot d’accueil indiquant le parcours pour atteindre une salle particulière d’un bâtiment, ou un robot assistant pour chercher un objet simple (tasse de café, lettres…) ou encore un robot assistant d’ascenseur (pouvant s’adapter à toute configuration d’ascenseur). Les étudiants seront organisés en groupes de 5 à 9 personnes pour réaliser l’intégralité du projet. Les étudiants feront l’intégration, au sein d’un système réel complet de différents algorithmes allant du plus bas niveau de l’architecture (asservissements, commande, traitement du signal, capteurs) au plus haut niveau (perception, apprentissage, classification, décision, interaction…) en s’appuyant sur leurs compétences et savoirs acquis dans les autres UEs du master et des années précédentes..
Prérequis – Notions de gestion de projet. – Connaissances techniques liées au parcours-type.
Acquis d’apprentissage – Expérience de gestion de projet et de travail en groupe. – Maîtrise d’outils de gestion de version et de documentation lors de la conduite d’un projet. – Utilisation d’un logiciel de simulation et d’un intergiciel compatibles avec un robot physique réel. – Appropriation d’un système robotique. – Mettre en œuvre les acquis des autres UEs.
Compétences visées – Définir et paramétrer un modèle d’apprentissage automatique pour une tâche donnée, modéliser et manipuler un système stochastique. – Analyser et traiter des données perceptives (image, parole, etc.) possiblement bruitées, interpréter un environnement visuel, extraire des informations contextuelles, enrichir la perception. – Modéliser et apprendre la coordination au sein d’un système robotique distribué, gérer les interactions robot-robot et humain-robot pour traiter collectivement une tâche. – Concevoir un système robotique intégré et son modèle cinématique ou dynamique, planifier la séquence de tâches d’un système robotique, maîtriser un logiciel de simulation robotique. – Modéliser et traiter un environnement 2D et 3D, modéliser et analyser géométriquement des objets et des environnements, planifier le mouvement d’un robot.
3
–
36
–
Crédits
CM
TD
TP
Gestion de projet
Un premier objectif de ce module est de permettre aux étudiants de mettre en application de manière concrète un processus de développement. Cette mise en application sera réalisée dans le cadre de l’activité intégratrice proposée aux étudiants durant la formation. Le cours débutera par quelques rappels concernant la gestion de projet : la définition d’un projet, les principales phases permettant de concrétiser un projet. L’étudiant se familiarisera ensuite avec les notions de la gestion de projet, telles que par exemple l’état d’esprit, les valeurs, les rôles ou l’estimation, qu’il aura l’occasion d’expérimenter au travers d’une pratique appelée “serious game”. En s’appuyant sur des retours d’expérience, le module abordera également les principaux points d’attention à considérer lorsqu’une entreprise décide de réaliser un projet informatique. Cet enseignement a également vocation à faire découvrir aux étudiants les activités des industriels et des professionnels en lien avec les compétences développés dans le parcours-type. Cela pourra prendre aussi bien la forme de conférences données par des professionnels ou de cours plus classiques pour comprendre la problématique métiers en relation avec le parcours-type.
Prérequis – Connaissances générales en gestion de projet.
Acquis d’apprentissage – Comprendre les principes de la gestion de projet. – Savoir appliquer les pratiques de gestion de projet. – Savoir comment s’organiser dans une équipe. – Savoir comment obtenir des résultats démontrables régulièrement. – Comprendre l’importance de la coresponsabilité dans une équipe. – Comprendre l’importance des indicateurs de progression. – Comprendre l’importance de la notion d’amélioration continue. – Comprendre l’apport des compétences de gestion de projet par rapport aux compétences techniques.
Compétences visées – Gérer des contextes professionnels ou d’études complexes, imprévisibles et qui nécessitent des approches stratégiques nouvelles. – Prendre des responsabilités pour contribuer aux savoirs et aux pratiques professionnelles et/ou pour réviser la performance stratégique d’une équipe. – Conduire un projet (conception, pilotage, coordination d’équipe, mise en œuvre et gestion, évaluation, diffusion) pouvant mobiliser des compétences pluridisciplinaires dans un cadre collaboratif. – Analyser ses actions en situation professionnelle, s’autoévaluer pour améliorer sa pratique dans le cadre d’une démarche qualité. – Respecter les principes d’éthique, de déontologie et de responsabilité environnementale.
2
12
12
–
Crédits
CM
TD
TP
Professionnalisation IA²VR
Cet enseignement vise à plonger les étudiants dans le monde professionnel (y compris les métiers de la recherche) et découvrir les établissements finançant les projets de recherche (Europe, ANR, universités, CNRS, CNES, CEA, INRIA, FSTAR,…). La première partie consiste à les aider dans leur recherche de stage, puis d’emploi. Des professionnels du recrutement en informatique leur montreront comment adopter les bonnes pratiques tant dans leur recherche que lors de l’entretien d’embauche. Nous visons les métiers de l’informatique (entreprise de services du numérique, éditeurs de logiciel, cabinet de conseil en informatique,…) ainsi que les métiers de recherche scientifique (institutions de recherche publique, universités, laboratoires, centres privés de recherche, grands groupes dotés des services/centres de recherche,…).
Prérequis Aucun.
Acquis d’apprentissage – Savoir rechercher un stage ou un emploi en utilisant les outils adaptés au monde actuel. – Connaître les bonnes pratiques lors d’un entretien. – Connaître les démarches pour devenir chercheur/consultant ou s’insérer dans le monde professionnel.
Compétences visées – Être capable de trouver un emploi. – Être capable de créer son entreprise (cabinet de consulting).
2
12
12
–
Crédits
CM
TD
TP
Anglais
Approfondissement de la langue de spécialité, vocabulaire technique et scientifique. Pratique des cinq compétences : compréhension de l’oral, expression orale en continu, expression orale en interaction, compréhension de l’écrit, expression écrite. Utilisation des documents authentiques et à caractère scientifique.
Prérequis Un niveau B1 en anglais est fortement souhaitable.
Acquis d’apprentissage – Acquérir des connaissances et des compétences en anglais général et de spécialité.
Compétences visées – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère. – Savoir utiliser le vocabulaire et la grammaire nécessaire à une bonne pratique de l’anglais dans leur spécialité.
2
–
24
–
Crédits
CM
TD
TP
Unités d’enseignement d’approfondissement
Réalité augmentée et modèles géométriques pour la vision
La Réalité Augmentée (RA) vise à enrichir la perception du réel à l’aide d’images virtuelles ancrées géométriquement à la scène observée, avec des applications en robotique et dans l’industrie (assemblage, maintenance, …) mais également pour le grand public. En plus de présenter la problématique scientifique et technique de la RA, ce cours abordera différents outils (mathématiques, géométriques, algorithmiques) de la vision par ordinateur, conçus pour faciliter cet ancrage dans des environnements de plus en plus complexes.
Prérequis – Notions d’algèbre linéaire
Acquis d’apprentissage – Base de géométrie (Plan et espace, affines et projectifs, bases et transformations, droites dans l’espace). – Modèles perspectifs de caméra. – Traduction géométrique des correspondances entre images. – Principaux descripteurs images SIFT, SURF, … – Suivi temporel d’indices. – Calcul du point de vue (problème PnP). – Capteurs physiques de mouvement. – Acquisition d’un modèle de scène par stéréovision. – Localisation et cartographie simultanées (SLAM monoculaire). – Cas particulier des mondes multiplans. – Interactions réel/virtuel (ombrages, occultations, interfaces tangibles). – Positionnement de caméra et reconnaissance de scène par apprentissage profond.
Compétences visées – Analyser et traiter des données perceptives (image, parole, etc.) possiblement bruitées, interpréter un environnement visuel, extraire des informations contextuelles, enrichir la perception. – Modéliser et traiter un environnement 2D et 3D, modéliser et analyser géométriquement des objets et des environnements, planifier le mouvement d’un robot.
2
16
8
–
Crédits
CM
TD
TP
Robotique Interactive Collective
Le domaine de la robotique permet actuellement de produire des robots dotés d’autonomie et capables de gérer de façon robuste les perturbations lors de la locomotion ou lors de l’accomplissement d’actions dans son environnement. Malgré ces progrès, le comportement des robots dans des situations d’interaction avec un humain ou avec d’autres agents reste un domaine ouvert, fondamental pour l’intégration des robots dans notre société. Cette UE va se concentrer sur la dimension collective/sociale de la robotique et abordera les concepts et les outils qui ouvrent la voie à de véritables interactions. – Techniques d’asservissement et de commande en robotique pour le réglage du comportement, en envisageant sur le long terme la capacité à interagir avec d’autres entités (humains ou robots). – Introduction à la robotique sociale : notions d’interaction inspirée du vivant (partage attentionnel, action conjointe, sélection d’action, etc.) afin de développer des modèles et algorithmes permettant au robot d’agir dans des situations d’interaction humain-robot. En complément, différentes familles de modèles bio-inspirés sont présentées. Les champs d’application traités concernent la commande des robots sur la base des interactions en modalités sensorielles visuelle, proprioceptive, et/ou auditive. – Introduction à la robotique collective à travers la robotique évolutionnaire, où la conception de contrôleurs pour une flottille de robots sera réalisée par algorithmes d’évolution dans différentes situations : contrôleur homogène, hétérogène, en ligne ou hors ligne
Prérequis – Notions en algorithmique. – Notions en probabilités et statistiques.
Acquis d’apprentissage – Bases de la commande robotique et de l’asservissement, régulateur PID. – Modèles cinématiques directs et inverses, application à l’asservissement. – Sensibilisation aux problématiques de l’interaction homme-robot. – Notions d’attention partagée et d’action conjointe. – Notions de sélection d’action et d’asservissement humain-dans-la-boucle. – Modèles bio-inspirés pour l’interaction. – Applications à l’interaction visuelle, proprioceptive et/ou auditive. – Fondements de l’apprentissage évolutionnaire et de la robotique en essaim. – Conception de contrôleurs pour flottille de robots.
Compétences visées – Modéliser et apprendre la coordination au sein d’un système robotique distribué, gérer les interactions robot-robot et humain-robot pour traiter collectivement une tâche. – Concevoir un système robotique intégré et son modèle cinématique ou dynamique, planifier la séquence de tâches d’un système robotique, maîtriser un logiciel de simulation robotique.
2
16
8
–
Crédits
CM
TD
TP
Ingéniérie logicielle pour l’IA et la robotique
L’objectif de cette UE est d’acquérir de bonnes pratiques d’ingénierie logicielle et de maitriser les paradigmes et bibliothèques de programmation associées pour résoudre des problèmes réels dans les domaines de la robotique et de l’apprentissage automatique. Cette UE est composée de deux parties : – Enseignements en robotique : cette partie abordera la conception et la mise en œuvre d’un système robotique utilisant le framework Robotic Operating System (ROS). Une discussion sur les bonnes pratiques pour la simulation, la perception et la sûreté dans la commande sera engagée pour mener à une réalisation concrète. – Enseignements en deep learning : cette partie abordera la prise en main d’un framework dédié à l’apprentissage profond (PyTorch par exemple). Une réflexion de conception sera engagée avec les étudiants pour conduire à une spécification d’une librairie Python modulaire, déployable sur un cluster de calcul, permettant de dérouler un plan d’expérience pour résoudre la tâche de régression à partir d’image, nécessaire pour la conduite autonome du véhicule. Pendant ce cours, les étudiants réaliseront la conception et la mise en œuvre d’un système robotique intégrant des algorithmes d’apprentissage profond (deep learning) appliqués sur des images. L’UE sera structurée autour d’un projet fil-rouge de conduite autonome d’un robot simulé. Les étudiants construiront une base d’apprentissage annotée (automatiquement) des commandes motrices à envoyer au robot, en pilotant eux-mêmes le système, entraîneront un réseau de neurones convolutif pour prédire les commandes à exécuter à partir des images pour finalement déployer le réseau entraîné assurant la conduite autonome du véhicule. Dans cette UE, les étudiants développeront leurs compétences en ingénierie logicielle, mais aussi, plus généralement, en programmation, en traitement d’images, en manipulation de données et en intégration de systèmes. Ce faisant, ils se familiariseront avec les défis et les complexités de la robotique et de l’intelligence artificielle et seront capables de concevoir et de mettre en œuvre un système robotique complet.
Prérequis – Programmation Python – Connaissance des concepts nécessaires à l’entraînement d’un réseau de neurones convolutifs (architecture du réseau, algorithme d’optimisation, régularisation).
Acquis d’apprentissage – Connaissance d’un intergiciel robotique et son écosystème. – Connaissance d’un framework pour l’apprentissage profond. – Bonnes pratiques en apprentissage automatique et en robotique. – Expérience de conception et d’implémentation d’un système robotique complet avec un contrôleur basé sur de l’apprentissage automatique.
Compétences visées – Définir et paramétrer un modèle d’apprentissage automatique pour une tâche donnée, modéliser et manipuler un système stochastique. – Analyser et traiter des données perceptives (image, parole, etc.) possiblement bruitées, interpréter un environnement visuel, extraire des informations contextuelles, enrichir la perception. – Concevoir un système robotique intégré et son modèle cinématique ou dynamique, planifier la séquence de tâches d’un système robotique, maîtriser un logiciel de simulation robotique.
2
16
8
–
Crédits
CM
TD
TP
Communication parlée multimodale
Ce cours porte sur l’interaction parlée homme-machine. Cette interaction repose sur différentes modalités (voix, visage, gestes) qui portent des informations de nature linguistique (mots prononcés) et paralinguistique (état émotionnel du locuteur). Ce cours abordera différents volets de la communication parlée et leur extension à un contexte multimodal: acquisition de données, reconnaissance de la parole et de traits paralinguistiques, synthèse expressive de la parole. Les techniques d’apprentissage sousjacentes (modèles de Markov, réseaux de neurones profonds) seront approfondies. Les notions seront expérimentées sur des données réelles en TD.
Prérequis – Connaissances de base sur les probabilités.
Acquis d’apprentissage – Bases de traitement du signal audio. – Modélisation acoustique et linguistique de la parole. – Algorithmes de reconnaissance et de classification. – Algorithmes de synthèse. – Acquisition et exploitation de données (voix, visage, gestes). – Méthodes de reconnaissance et de synthèse multimodales.
Compétences visées – Analyser et traiter des données perceptives (image, parole, etc.) possiblement bruitées, interpréter un environnement visuel, extraire des informations contextuelles, enrichir la perception. – Préparer les données d’apprentissage, savoir en réduire la dimensionnalité, analyser la pertinence des caractéristiques, analyser les résultats d’apprentissage, évaluer la pertinence des différents modèles, combiner les modèles d’apprentissage.
Le parcours-type « Informatique Décisionnelle » vise les métiers de la conception, de l’analyse et de l’exploitation des données et des systèmes informatiques d’aide à la décision et de l’optimisation pour les modèles de grande taille. L’objectif est de former des futurs cadres professionnels de niveau ingénieur et futurs chercheurs/enseignants-chercheurs ayant des compétences solides en informatique et en aide à la décision avec mise en œuvre dans divers grands secteurs d’activité comme la finance, la logistique, le transport et l’optimisation des ressources.
L’orientation Intelligence des Données, DÉcision, Apprentissage et Algorithmique (IDÉAL) et Systèmes d’Information Décisionnels (SID) correspondent à deux facettes de l’informatique décisionnelle et se différencient par l’ensemble des cours disciplinaires obligatoires, spécifiques à chaque orientation. Les cours disciplinaires optionnels, présentant d’autres aspects de l’informatique décisionnelle, sont en revanche partagés par les deux orientations. L’ouverture à l’apprentissage impose un minimum de 400H d’enseignement par an.
L’orientation « Intelligence des Données, DÉcision, Apprentissage Automatique et ALgorithmique (IDÉAL) » est ouverte en formation initiale ou en alternance. Elle propose une formation de haut niveau axée sur l’Informatique Décisionnelle et l’Intelligence Artificielle (IA). Le contenu de cette formation couvre analyse et visualisation des données, apprentissage automatique, apprentissage profond, Big-Data, algorithmes avancés pour la résolution des problèmes décisionnels de grande taille (approchés et/ou à performance garantie), bio-informatique, etc. On s’y intéresse également aux applications réelles (systèmes décisionnels, logistique, finance, ordonnancement, transport, etc.). Ceci facilite grandement l’insertion professionnelle de nos étudiants. La formation offre également une compétence solide dans l’algorithmique et l’intelligence des données permettant ainsi à nos étudiants d’être capables de concevoir, de développer et d’améliorer leurs propres outils logiciels à la carte, ce qui la distingue des autres formations du marché.
Semestre 9
Unités d’enseignement fondamentales
Unités d’enseignement
Crédits
CM
TD
TP
Apprentissage automatique et modèles d’IA
2
12
12
–
Problèmes décisionnels de grande taille
4
24
24
–
Algorithmes de décision à performance garantie
4
24
24
–
Graphes avancés
2
12
12
–
Unités d’enseignement transversales
Unités d’enseignement
Crédits
CM
TD
TP
Professionnalisation
3
18
8
–
Situation intégratrice
3
–
36
–
Anglais
2
–
24
–
Unités d’enseignement d’approfondissement (5 au choix)
Unités d’enseignement
Crédits
CM
TD
TP
Algorithmes d’analyse des données
2
12
12
–
Visualisation des données
2
12
12
–
Big-Data
2
12
12
–
Apprentissage profond
2
12
12
–
Bio-informatique
2
12
12
–
Cas d’études : optimisation par le logiciel
2
12
12
–
Ordonnancement
2
12
12
–
Optimisation industrielle
2
12
12
–
Décision dans l’incertain
2
12
12
–
Aide à la décision multicritère
2
12
12
–
Semestre 10
Unités d’enseignement
Crédits
CM
TD
TP
Stage
30
–
–
–
Le stage a une durée de 5 mois (20 semaines) minimum. Il peut se dérouler dans une entreprise ou dans un établissement de recherche/développement. Le sujet du stage est en lien avec un ou plusieurs thèmes du M2 IDÉAL.
L’orientation « Systèmes d’Information Décisionnelle (SID) » est centrée sur le besoin de rationaliser les choix et les décisions par la gestion et l’exploitation de masses de données, ainsi que sur le développement de nouveaux outils informatiques (accès aux données globales de l’entreprise, outils d’analyse, de simulation et d’extraction d’informations) et la conception, le développement et l’exploitation de systèmes d’aide à la décision. Cette orientation peut être suivie, au choix, en formation classique ou en alternance par apprentissage ou contrat de professionnalisation.
Semestre 9
Unités d’enseignement fondamentales
Unités d’enseignement
Crédits
CM
TD
TP
Intégration méthodologique SID
2
–
36
–
Gestion de projet
2
12
12
–
Professionnalisation SID
2
12
12
–
Isfates: enseignement interculturel
2
26
4
–
Datawarehouse : conception d’un entrepôt de données
2
12
12
–
Datawarehouse : modélisation dimensionnelle
2
12
12
–
Conception d’un système d’information décisionnel
2
12
12
–
Reporting & Dashboarding : création de tableaux de bord
2
12
12
–
Portails Web d’entreprises 1
2
12
12
–
Anglais ou Français langue étrangère
2
24
–
–
Unités d’enseignement d’approfondissement (6 au choix)
Unités d’enseignement
Crédits
CM
TD
TP
Aide à la Décision
Aide à la Décision Multicritère
2
12
12
–
Décision dans l’Incertain
2
12
12
–
Décision pour les Systèmes Parallèles et Distribués
2
12
12
–
Problèmes de Satisfaction de Contraintes
2
12
12
–
Modèles de Satisfabilité (SAT)
2
12
12
–
Traitement masses de données
BigData
2
12
12
–
Fouille Informatique des Données
2
12
12
–
Techniques de visualisation de données et analyse
2
12
12
–
Algorithmique d’Analyse des Données
2
12
12
–
BioInformatique et Datamining
2
12
12
–
Applications de l’ID
Ordonnancement et Applications
2
12
12
–
Optimisation et Logiciels – Etude de Cas en Transport
2
12
12
–
Problèmes de Dimensionnement de lots
2
12
12
–
Modèles Décisionnels pour la Sécurité des SI
2
12
12
–
Portails Web d’Entreprises 2
2
12
12
–
Semestre 10
Unités d’enseignement
Crédits
CM
TD
TP
Applications de l’Informatique Décisionnelle
2
14
14
–
Stage
28
–
–
–
Le stage a une durée de 5 mois (20 semaines) minimum. Les sujets des stages de recherche sont proposés par les enseignants-chercheurs, ou chercheurs des laboratoires ou d’autres équipes de recherche partenaires du Master.
La conception de logiciels est devenue une activité de plus en plus complexe par la taille des systèmes informatiques, leur composition hétérogène, leur exécution distribuée. Il est plus que jamais essentiel de maîtriser cette complexité afin d’éviter des erreurs de conception et de programmation aux conséquences désastreuses. La production de logiciels doit donc reposer sur des concepts maîtrisés et des techniques et méthodes rigoureuses.
Dans ce contexte, l’objectif du parcours-type Ingénierie des Logiciels au travers de ses deux orientations, Ingénierie Logicielle (IL) et Méthodes Formelles pour les Logiciels Sûrs (MFLS) est de préparer les étudiants aux techniques et méthodes rigoureuses pour l’ingénierie logicielle ainsi qu’aux méthodes formelles pour la sécurité et la sûreté des programmes et des systèmes informatiques.
Compétences scientifiques et techniques spécifiques au parcours IL
Concevoir et développer des systèmes logiciels sûrs et sécurisés
Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques
Mettre en service et maintenir les applications informatiques
Gérer toutes les étapes d’un projet de développement, depuis l’étude des besoins jusqu’à la mise en production
Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données
Pré-requis spécifiques au parcours IL
Bonne connaissances en :
Algorithmique, Calculabilité et Complexité
Analyse et Conception des Logiciels
Logique, Sémantique et Vérification
Bases de données
Applications distribuées et Web
Projet professionnel en adéquation avec la formation.
Orientation Ingénierie des Logiciels (IL)
L’orientation Ingénierie Logicielle a pour objectif de former des spécialistes de niveau ingénieur en conception, développement et déploiement de logiciels de grande taille, hétérogènes et distribués. Plus particulièrement, ce parcours forme des experts capables d’analyser et de mettre en œuvre des produits logiciels tout en maîtrisant les coûts, la sécurité et la qualité.
Les enseignements proposés couvrent des compétences à la fois larges et pointues, rendues indispensables par la complexité grandissante des applications logicielles. La formation vise à faire acquérir la maîtrise de concepts, de méthodes formelles et de techniques de pointe (objets, composants, distribution, services, ingénierie des données, etc.) ainsi que l’acquisition de compétences nécessaires à la gestion de projet et de la qualité (méthodes agiles, certification, validation, etc.).
Semestre 9
Unités d’enseignement fondamentales
Paradigmes de programmation
Ce cours présente différents paradigmes et langages de programmation permettant la réalisation d’applications concurrentes sûres et performantes. Les langages étudiés offrent des primitives permettant une prise en charge native du multithreading et de la concurrence, ainsi que des primitives de communication (canaux) pour permettre l’échange de données entre les threads en toute sécurité. Nous nous intéressons également aux mécanismes de gestion de la mémoire qui garantissent une bonne efficacité tout en assurant des propriétés telles que l’absence d’accès concurrents invalides, de dépassements de tampon et de déréférencement de pointeurs nuls. Le cours présente ces différents concepts ainsi que les bonnes pratiques de développement dans les langages correspondants. Le cours comprendra des exercices pratiques et des projets pour permettre aux étudiants de développer leurs compétences en programmation dans ces langages.
Prérequis – Bonnes connaissances des langages de programmation.
Acquis d’apprentissage – Comprendre et utiliser les concepts de concurrence et de parallélisme dans des langages proposant des primitives natives correspondantes. – Maîtriser les types de données et la gestion mémoire pour ce type de langages. Savoir utiliser les routines et les canaux pour la programmation concurrente.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données.
4
32
16
–
Crédits
CM
TD
TP
Modélisation des systèmes informatiques
Le développement de systèmes informatiques requiert des techniques permettant de garantir la qualité du système produit ou maintenu et sa conformité à un cahier des charges en vue de sa certification. Ce cours vise à acquérir les concepts et les techniques de modélisation et de vérification au travers de méthodes s’appuyant sur des cadres formels comme Event-B et TLA+, et sur un savoir-faire acquis au cours d’études de cas. Au niveau de la modélisation, deux concepts fondamentaux sont mis en avant, l’abstraction et le raffinement, et le cours montre comment les outils de preuve automatiques ou interactifs facilitent ce processus de développement et mettent en œuvre la méthodologie de développement dite incrémentale. Le cours introduit également les principaux concepts et techniques de vérification algorithmique qui visent la vérification automatique d’algorithmes et systèmes informatiques, en particulier concurrents et distribués. S’appuyant sur des bases logiques et algorithmiques, ces techniques sont largement utilisées pour la validation de systèmes embarqués, de protocoles de réseaux et d’algorithmes répartis. Le cours s’appuie sur des études de cas d’applications réelles comme les bases de données réparties ou les CPS (cyber-physical systems), …
Prérequis – Connaissances de base en logique, algorithmique, programmation et systèmes informatiques.
Acquis d’apprentissage – Familiarisation à des environnements formels de développement. – Éléments d’ingénierie système formelle. – Maîtrise de la technique de raffinement de modèles. – Principe de conception correcte par construction. – Systèmes de transitions et logiques temporelles. – Algorithmes de vérification de formules LTL ou CTL pour des systèmes discrets et temporisés. – Algorithmes de model checking symbolique par BDD ou techniques SAT.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques. – Modéliser un algorithme ou système concurrent, ou réparti éventuellement temporisé. – Exprimer des propriétés de ces systèmes par des formules logiques. – Utiliser sur des cas concrets des outils mettant en œuvre la vérification algorithmique.
4
32
16
–
Crédits
CM
TD
TP
Méthodologies et environnements de développement
Ce module a pour but d’explorer l’évolution des différentes méthodologies de développement et de mettre en place des outils et méthodes qui sont en ligne avec les différents secteurs de l’industrie logicielle. Nous verrons notamment qu’est-ce qu’un cycle de livraison, les méthodologies (agiles) de développement qui y sont associées, et mettrons en place les pratiques (gestion de versions, construction et déploiement automatisés, intégration continue, peer programming, code review, etc.) et les outils (GIT, Maven, Jenkins, etc.) en équipe et sur des cas concrets. Le cours présente également des techniques de vérification et validation dynamiques avec, en particulier, différentes techniques de test (unitaire, d’intégration, d’acceptance, utilisateur,…). Des techniques d’analyse statique permettant de découvrir des défauts, des failles de sécurité ou des anomalies dans les logiciels seront également présentées.
Prérequis – Notions de base en génie logiciel, gestion de versions, construction et déploiement automatisés.
Acquis d’apprentissage – Principes et outils de gestion de version. – Principes et outils construction et déploiement automatisés. – Principes et outils intégration continue. – Méthodes et outils d’analyse statiques de logiciels. – Techniques et outils pour le test automatisé.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Mettre en service et maintenir les applications informatiques. – – Gérer toutes les étapes d’un projet de développement, depuis l’étude des besoins jusqu’à la mise en production. Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. – Concevoir l’environnement de développement et de déploiement d’une application de grande taille développée en équipe.
3
24
12
–
Crédits
CM
TD
TP
Traitement de données massives
L’objectif de ce cours est d’introduire les problématiques liées à l’analyse de données massives ainsi que leur mise en œuvre, sous deux volets complémentaires. Le premier porte sur l’ingénierie de données à travers la présentation de deux systèmes distribués de gestion de données non relationnels et sur les principes et les algorithmes de machine learning pour extraire des connaissances à partir de données massives. Le second volet porte sur les plateformes d’analyse de données de type Big Data, en particulier Hadoop et Spark et le modèle algorithmique sous-jacent, Map-Reduce.
Prérequis – Programmation Java. – Connaissances usuelles en algorithmique. – Systèmes de gestion de données relationnels.
Acquis d’apprentissage – Comprendre les caractéristiques d’un système de gestion de données distribué noSQL – Comprendre les notions et enjeux associés au machine learning – Fonctionnement et utilisation d’Hadoop/Spark ainsi que du système de fichier HDFS. – Développer un programme de type Map-Reduce.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. – Savoir utiliser deux systèmes noSQL (en configuration distribuée) – Savoir utiliser les librairies spécialisées pour faire du machine learning sur des données tabulaires – Utilisation d’un parallélisme simple pour réduire le temps d’analyse..
3
24
12
–
Crédits
CM
TD
TP
Services web
Les services web sont des applications accessibles sur Internet, et basées sur les standards du web permettant de l’échange de l’information et de l’interopérabilité entre eux à travers Internet, indépendamment de leur plate-forme et leur langage d’implémentation. Le cours se concentre sur le modèle architectural orienté services et le paradigme de conception orienté services. Il aborde les concepts et les principes de l’architecture orientée services, ainsi que les considérations de qualité pour le développement de systèmes logiciels modernes d’un point de vue technique et organisationnel. Le cours couvrira les principes de conception de l’architecture orientée services et les modèles de conception de l’architecture orientée services. L’approche architecturale basée sur les microservices est également. Les concepts étudiés sont mis en application dans le cadre de l’implémentation d’une ou plusieurs applications en utilisant un framework adapté au développement et à la mise en place de (micro)services.
Prérequis – Bonnes connaissances des langages de programmation orientés objets.
Acquis d’apprentissage – Comprendre les principes fondamentaux des architecture basées sur les services. – Développer et exposer des services dans le cadre d’une application. – Utiliser des services web (google, amazon,…) à partir d’une application.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. – Concevoir et implémenter des applications avec une architecture orientée services.
2
16
8
–
Crédits
CM
TD
TP
Technologies web
Différents processus d’analyse et de conception sont actuellement utilisés pour le développement d’applications extensibles et réactives tout en garantissant une productivité accrue. Dans le contexte d’applications Web il faut s’assurer que les paradigmes de programmation et les langages associés sont d’actualité et permettent développement d’applications adaptable aux dispositifs mobiles. Nous aborderons les nouveaux paradigmes et les nouvelles techniques de programmation, telles que l’immutabilité des variables, la programmation fonctionnelle …, mais aussi les nouveaux langages et frameworks de programmation. Nous verrons également que pour réaliser une application de A à Z, il n’est pas toujours nécessaire de développer l’ensemble des composants suivant ce dont nous avons besoin et qu’avec nos choix technologiques, un développeur front-end peut réaliser des fonctionnalités back-end et inversement. L’objectif du cours est d’acquérir les compétences nécessaires à la réalisation d’une application réactive complète (front-end, back-end, persistance), en respectant l’état de l’art de la programmation moderne tout en étant innovant dans ses choix technologiques. Ces compétences permettront aux développeurs d’être compétitifs et réactifs sur le marché pour répondre au mieux aux attentes de leurs futurs clients.
Prérequis – Bonnes connaissances des langages de programmation orientés objets. – Connaissances sur les architectures en composants. – Des connaissances en Javascript serait un plus
Acquis d’apprentissage – Processus de développement pour les applications réactives modernes. – Frameworks pour le développement Web. – Développement back-end et front-end. – Gestion de la persistance des données.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Mettre en service et maintenir les applications informatiques. – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. – Choisir les architectures et composants logiciels les mieux adaptés pour réaliser les fonctionnalités d’une application Web moderne. – Concevoir et implémenter des applications de grande taille fiables et évolutives tout en ayant une productivité accrue.
2
16
8
–
Crédits
CM
TD
TP
Situation intégratrice
Ce module vise à mettre en pratique les principes, techniques, technologies et méthodologies nécessaires pour le développement de logiciels devant répondre à un ensemble de critères de fiabilité, sûreté et sécurité. Il consiste en la réalisation en équipe de 6-8 étudiants d’une application de grande taille potentiellement distribuée. L’équipe est en charge de toutes les étapes du processus de développement de l’analyse fonctionnelle au déploiement de l’application en passant par la conception, le développement et la validation. Les étudiants utiliseront les techniques de modélisation, développement et vérification abordées dans les autres cours proposés dans la formation et mettront en place des outils et méthodes de développement qui correspondent aux pratiques actuelles. On utilisera un processus de développement correspondant aux méthodologies modernes de gestion de projet. Le produit final sera accompagné d’une documentation et des présentations des versions intermédiaires seront réalisées régulièrement.
Prérequis – Bonnes connaissances des langages de programmation orientés objets.
Acquis d’apprentissage – Analyse fonctionnelle des besoins utilisateurs – Maîtrise d’environnements actuels de développement collaboratif – Maîtrise d’une méthode de développement agile – Rédaction des rapports, des cahiers des charges, fiches techniques ou manuels.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés – Mettre en service et maintenir les applications informatiques – Gérer toutes les étapes d’un projet de développement, depuis l’étude des besoins jusqu’à la mise en production. – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données – Travailler en équipe autant qu’en autonomie et responsabilité au service d’un projet – Choisir les architectures et composants logiciels les mieux adaptés pour réaliser les fonctionnalités d’une application donnée – Concevoir, implémenter et déployer des applications de grande taille fiables, sécurisés et évolutifs.
4
–
36
–
Crédits
CM
TD
TP
Gestion de projet
Un premier objectif de ce module est de permettre aux étudiants de mettre en application de manière concrète un processus de développement. Cette mise en application sera réalisée dans le cadre de l’activité intégratrice proposée aux étudiants durant la formation. Le cours débutera par quelques rappels concernant la gestion de projet : la définition d’un projet, les principales phases permettant de concrétiser un projet. L’étudiant se familiarisera ensuite avec les notions de la gestion de projet, telles que par exemple l’état d’esprit, les valeurs, les rôles ou l’estimation, qu’il aura l’occasion d’expérimenter au travers d’une pratique appelée “serious game”. En s’appuyant sur des retours d’expérience, le module abordera également les principaux points d’attention à considérer lorsqu’une entreprise décide de réaliser un projet informatique. Cet enseignement a également vocation à faire découvrir aux étudiants les activités des industriels et des professionnels en lien avec les compétences développés dans le parcours-type. Cela pourra prendre aussi bien la forme de conférences données par des professionnels ou de cours plus classiques pour comprendre la problématique métiers en relation avec le parcours-type.
Prérequis – Connaissances générales en gestion de projet.
Acquis d’apprentissage – Comprendre les principes de la gestion de projet. – Savoir appliquer les pratiques de gestion de projet. – Savoir comment s’organiser dans une équipe. – Savoir comment obtenir des résultats démontrables régulièrement. – Comprendre l’importance de la coresponsabilité dans une équipe. – Comprendre l’importance des indicateurs de progression. – Comprendre l’importance de la notion d’amélioration continue. – Comprendre l’apport des compétences de gestion de projet par rapport aux compétences techniques.
Compétences visées – Gérer des contextes professionnels ou d’études complexes, imprévisibles et qui nécessitent des approches stratégiques nouvelles. – Prendre des responsabilités pour contribuer aux savoirs et aux pratiques professionnelles et/ou pour réviser la performance stratégique d’une équipe. – Conduire un projet (conception, pilotage, coordination d’équipe, mise en œuvre et gestion, évaluation, diffusion) pouvant mobiliser des compétences pluridisciplinaires dans un cadre collaboratif. – Analyser ses actions en situation professionnelle, s’autoévaluer pour améliorer sa pratique dans le cadre d’une démarche qualité. – Respecter les principes d’éthique, de déontologie et de responsabilité environnementale.
2
16
8
–
Crédits
CM
TD
TP
Anglais
Approfondissement de la langue de spécialité, vocabulaire technique et scientifique. Pratique des cinq compétences : compréhension de l’oral, expression orale en continu, expression orale en interaction, compréhension de l’écrit, expression écrite. Utilisation des documents authentiques et à caractère scientifique.
Prérequis Un niveau B1 en anglais est fortement souhaitable.
Acquis d’apprentissage – Acquérir des connaissances et des compétences en anglais général et de spécialité.
Compétences visées – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère. – Savoir utiliser le vocabulaire et la grammaire nécessaire à une bonne pratique de l’anglais dans leur spécialité.
2
–
24
–
Crédits
CM
TD
TP
Unités d’enseignement d’approfondissement (2 au choix)
Infrastructures virtualisées
– L’objectif général de cette UE est de permettre aux étudiants d’appréhender des infrastructures virtualisées (notamment cloud) en vue d’y déployer des services et applications de manière scalable et sécurisée. – Introduction au cloud (IaaS/PaaS/SaaS, principaux fournisseur de clouds publics et solutions de clouds privés, architecture générale et services typiques). – Gestion des données dans le cloud. – Outils de gestion de configuration (Puppet, Chef ou Ansible) pour le déploiement d’applications. – Outils de Continuous Integration / Continuous Deployment. – Containers pour le déploiement d’applications (y compris orchestration). – Passage à l’échelle & répartition de charge.
Prérequis – Notions d’administration système sous Linux.
Acquis d’apprentissage – Maîtrise des environnements virtualisés.
Compétences visées – Administrer un système et utiliser des solutions de cloud pour y déployer des services et applications.
2
16
8
–
Crédits
CM
TD
TP
Sécurité des applications web
La sécurité est actuellement un enjeu majeur dans le développement des applications Web. En effet, il ne se passe pas un mois sans que de nouvelles attaques soient divulguées, entraînant des vols d’identité, de données personnelles, ou des tentatives d’extorsion. Il s’agit d’une UE très pratique, dans laquelle nous nous intéresserons en priorité aux vulnérabilités spécifiques au Web et aux dégâts que peuvent entraîner les attaques Web. Nous étudierons les attaques sur les différentes versions du Web et nous verrons les approches modernes pour éviter les vulnérabilités.
Prérequis – Connaissances sur les bases de cryptographie (chiffrement, authentification, protocoles) – Connaissances minimales en développement Web
Acquis d’apprentissage – Connaissances sur les bases de cryptographie (chiffrement, authentification, protocoles) – Connaissances minimales en développement Web
Compétences visées – Gérer et surveiller le système d’information (connaissance des protocoles, detection de flux malveillants, journalisation, gestion des politiques de sécurité ) – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) – Concevoir et développer des systèmes logiciels sûrs et sécurisés – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. – Bases de l’analyse de sécurité Web – Solutions de sécurité Web – Analyser les incidents de sécurité (réaction aux incidents, forensics, contrôle d’accès) – Partager et analyser les données coopératives des incidents de sécurité (Threat intelligence, émulation de l’adversaire)
2
16
8
–
Crédits
CM
TD
TP
Sécurité des protocoles
Les protocoles cryptographiques sont des programmes visant à sécuriser les communications digitales sur des réseaux ouverts comme Internet. Les exemples de protocoles sont nombreux : protocoles de paiement par carte bancaire, établissement d’un canal sécurisé (par exemple TLS sous-jacent à HTTPS), protocoles de vote électronique, etc. D’apparence simple, ils sont notoirement difficiles à concevoir et les bonnes pratiques actuelles imposent de les vérifier via des analyses formelles rigoureuses. Ce cours présentera des méthodes de modélisation et d’analyse formelle pour des protocoles cryptographiques, basées sur des techniques de déduction automatique et de résolution de contraintes. Nous apprendrons aussi à utiliser un outil d’analyse dédié, tel que ProVerif. Cela pourra prendre la forme d’une mini-compétition entre élèves pour concevoir le protocole le plus robuste et trouver des failles et attaques dans les autres protocoles.
Prérequis Connaissances de base en logique.
Acquis d’apprentissage – Gérer et surveiller le système d’information (connaissance des protocoles, detection de flux malveillants, journalisation, gestion des politiques de sécurité) B1C1 – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) B1C5 – Fonctionnement de différents protocoles (TLS, protocoles de vote électroniques, etc.) – Exemples d’attaques sur ces protocoles et leur impact. – Fondations logiques : Algèbre de termes, théorie équationnelle, clauses de Horn et procédures de résolution. – Apprentissage et utilisation d’un langage formel pour la modélisation des protocoles via l’utilisation d’un outil de preuve dédié. – Concevoir et analyser des protocoles cryptographiques pour les prouver sûr ou trouver des attaques.
Compétences visées – Concevoir, modéliser et d’analyser des protocoles cryptographiques à l’aide d’outils dédiés tels que ProVerif. – Gérer et surveiller le système d’information (connaissance des protocoles, détection de flux malveillants, journalisation, gestion des politiques de sécurité) – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) – Concevoir et développer des systèmes logiciels sûrs et sécurisés – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques.
2
16
8
–
Crédits
CM
TD
TP
Malware
Dans ce cours, nous abordons la problématique des malwares, un souci d’ordre sociétal majeur, et en augmentation. Les infrastructures informatiques demandent maintenant des spécialistes en sécurité capable de prévenir des attaques, et d’analyser les dégâts causés par les malwares. Le cours comporte trois parties : – Construction de codes offusqués, offuscation d’appel de fonction, chiffrement, automodification – Analyse de code binaires offusqués par analyse statique, construction des graphes de contrôle de flot, recherche de boucles de déchiffrement, – Analyse de code binaire par analyse dynamique, utilisation du débuggueur, recherche de clés de déchiffrement. L’évaluation du cours s’appuie sur un contrôle continu et un projet.
Prérequis – Connaissances en langage C. – Connaissances en systèmes d’exploitation.
Acquis d’apprentissage – Connaissances en langage C. – Connaissances en systèmes d’exploitation.
Compétences visées – Maîtriser l’analyse de code binaire, la recherche de propriétés de programmes offusqués, l’analyse comportementale. – Maîtriser la sécurité logicielle et notamment les malwares. – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données.
2
16
8
–
Crédits
CM
TD
TP
Preuve de programmes
L’objectif de cette UE est d’introduire les principaux concepts et méthodes en vue de maîtriser la preuve de programmes fonctionnels ou impératifs. Dans le premier cas on se focalise sur les preuves par induction à partir de structures de données inductives simples. Dans le second on considére l’utilisation des sémantiques formelles pour la preuve de propriétés de programmes mais surtout la sémantique axiomatique (Logique de Hoare) et sa mise en oeuvre. L’UE inclut l’étude de la mécanisation des preuves et la mise en oeuvre à l’aide d’un assistant de preuve.
Prérequis – Connaissances de base en logique, sémantique et programmation.
Acquis d’apprentissage – Logique d’ordre supérieur. – Types de données abstraits et prédicats inductifs. – Preuves sur les structures de données récursives simples (listes). – Sémantiques formelles et preuves de programmes. – Logique de Floyd-Hoare:Triplets, pre- et post-conditions; – Invariants, preuves de correction. – Mécanisation des preuves.
Compétences visées – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques. – Maîtriser et mettre en œuvre les méthodes formelles pour la spécification ou modélisation d’un problème donné, la preuve et la vérification de propriétés dans le contexte de la sûreté et la sécurité logicielle. – Concevoir et développer des approches formelles adaptées, leur combinaison et des outils associés, pour la certification de systèmes complexes. – Développer des preuves de programmes. – Utiliser sur des exemples concrets un assistant de preuve pour prouver des programmes.
2
16
8
–
Crédits
CM
TD
TP
Semestre 10
Stage
Stage
30
–
–
–
Crédits
CM
TD
TP
Orientation « Méthodes Formelles pour des Logiciels Sûrs (MFLS) »
L’orientation Méthodes Formelles pour des Systèmes Sûrs vise à donner aux étudiants une formation solide et approfondie aux concepts et principes fondamentaux pour la conception de logiciels sûrs, fiables et robustes ainsi qu’aux méthodes formelles et outils informatiques associés actuels ou en cours d’élaboration. Pour développer de tels logiciels, il est nécessaire d’approfondir les différentes activités qui constituent le cycle de vie d’un logiciel, leurs enchaînements et leurs interactions.
Semestre 9
Unités d’enseignement fondamentales
Génie Logiciel Avancé
Le génie logiciel s’intéresse aux méthodologies permettant le développement de logiciels de grande taille qui correspondent aux besoins des leurs utilisateurs, sont fiables et évolutifs. Une des techniques établies qui peut aider les développeurs à surmonter la complexité des logiciels est la structuration des systèmes logiciels en utilisant des composants. Ce cours est un approfondissement des connaissances en analyse et conception de logiciels, en particulier, dans le cadre du développement d’applications distribuées multitiers. L’objectif du cours est de comprendre les enjeux de la réutilisation dans le développement logiciel et de fournir des connaissances en développement à base de composants. Les méthodologies et techniques de développement et de composition de composants indépendants à couplage faible sont illustrés par le développement d’applications dans un framework (e.g. JEE – Java Enterprise Edition) et leur déploiement dans les conteneurs et serveurs d’application.
Prérequis – Connaissances avancées dans un langage de programmation orienté objet, de préférence Java.
Acquis d’apprentissage – Processus de développement basés sur les composants. – Modèles orientés composants (e.g. EJB). – Mécanismes de communication asynchrones (e.g. MDB) et scheduling (e.g. Timer). – Notions de programmation orientée aspect. – Persistance des données (e.g. JPA).
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. – Choisir les architectures et composants logiciels les mieux adaptés pour réaliser les fonctionnalités d’une application donnée. – Concevoir et implémenter des applications de grande taille fiables et évolutifs.
2
16
8
–
Crédits
CM
TD
TP
Modélisation des systèmes informatiques
Le développement de systèmes informatiques requiert des techniques permettant de garantir la qualité du système produit ou maintenu et sa conformité à un cahier des charges en vue de sa certification. Ce cours vise à acquérir les concepts et les techniques de modélisation et de vérification au travers de méthodes s’appuyant sur des cadres formels comme Event-B et TLA+, et sur un savoir-faire acquis au cours d’études de cas. Au niveau de la modélisation, deux concepts fondamentaux sont mis en avant, l’abstraction et le raffinement, et le cours montre comment les outils de preuve automatiques ou interactifs facilitent ce processus de développement et mettent en œuvre la méthodologie de développement dite incrémentale. Le cours introduit également les principaux concepts et techniques de vérification algorithmique qui visent la vérification automatique d’algorithmes et systèmes informatiques, en particulier concurrents et distribués. S’appuyant sur des bases logiques et algorithmiques, ces techniques sont largement utilisées pour la validation de systèmes embarqués, de protocoles de réseaux et d’algorithmes répartis. Le cours s’appuie sur des études de cas d’applications réelles comme les bases de données réparties ou les CPS (cyber-physical systems), …
Prérequis – Connaissances de base en logique, algorithmique, programmation et systèmes informatiques.
Acquis d’apprentissage – Familiarisation à des environnements formels de développement. – Éléments d’ingénierie système formelle. – Maîtrise de la technique de raffinement de modèles. – Principe de conception correcte par construction. – Systèmes de transitions et logiques temporelles. – Algorithmes de vérification de formules LTL ou CTL pour des systèmes discrets et temporisés. – Algorithmes de model checking symbolique par BDD ou techniques SAT.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques. – Modéliser un algorithme ou système concurrent, ou réparti éventuellement temporisé. – Exprimer des propriétés de ces systèmes par des formules logiques. – Utiliser sur des cas concrets des outils mettant en œuvre la vérification algorithmique.
4
32
16
–
Crédits
CM
TD
TP
Logiques non-classiques et preuves
L’objectif de cette UE est d’étudier et de maîtriser les concepts et les techniques de construction de preuves dans des logiques non-classiques, utilisées en vue de modéliser et prouver des propriétés de programmes et de systèmes.
Prérequis – Connaissances de base en logique.
Acquis d’apprentissage – Logique classique et logiques non-classiques. – Théorie de la démonstration:Déduction naturelle, calcul des séquents, preuves; – Lambda calculs associés (normalisation, types). – Logique intuitionnisteSémantique à la Kripke, sémantique de Heyting; – Calculs – Isomorphisme de Curry Howard, lambda-calcul – Logiques modales et logique linéaire:Logiques modales : sémantique, axiomatisations et calculs; – Logique linéaire : ressources, preuves, réseaux de preuve.
Compétences visées – Maîtriser et mettre en œuvre les méthodes formelles pour la spécification ou modélisation d’un problème donné, la preuve et la vérification de propriétés dans le contexte de la sûreté et la sécurité logicielle. – Concevoir et développer des approches formelles adaptées, leur combinaison et des outils associés, pour la certification de systèmes complexes. – Maîtriser le raisonnement et la construction de preuves dans des logiques non-classiques utilisées pour la modélisation de concepts et de systèmes. – Développer des systèmes de typage et d’inférence de types pour des langages.
2
16
8
–
Crédits
CM
TD
TP
Preuve de programmes
L’objectif de cette UE est d’introduire les principaux concepts et méthodes en vue de maîtriser la preuve de programmes fonctionnels ou impératifs. Dans le premier cas on se focalise sur les preuves par induction à partir de structures de données inductives simples. Dans le second on considére l’utilisation des sémantiques formelles pour la preuve de propriétés de programmes mais surtout la sémantique axiomatique (Logique de Hoare) et sa mise en oeuvre. L’UE inclut l’étude de la mécanisation des preuves et la mise en oeuvre à l’aide d’un assistant de preuve.
Prérequis – Connaissances de base en logique, sémantique et programmation.
Acquis d’apprentissage – Logique d’ordre supérieur. – Types de données abstraits et prédicats inductifs. – Preuves sur les structures de données récursives simples (listes). – Sémantiques formelles et preuves de programmes. – Logique de Floyd-Hoare:Triplets, pre- et post-conditions; – Invariants, preuves de correction. – Mécanisation des preuves.
Compétences visées – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques. – Maîtriser et mettre en œuvre les méthodes formelles pour la spécification ou modélisation d’un problème donné, la preuve et la vérification de propriétés dans le contexte de la sûreté et la sécurité logicielle. – Concevoir et développer des approches formelles adaptées, leur combinaison et des outils associés, pour la certification de systèmes complexes. – Développer des preuves de programmes. – Utiliser sur des exemples concrets un assistant de preuve pour prouver des programmes.
2
16
8
–
Crédits
CM
TD
TP
Situation intégratrice
Ce module vise à mettre en pratique les principes, techniques, technologies et méthodologies étudiés dans les modules fondamentaux et d’approfondissement de l’orientation MFLS, concernant notamment la logique, les preuves, la modélisation et la vérification de systèmes informatiques, le génie logiciel, la sécurité des logiciels et des systèmes et les nouveaux modèles de calcul. Il permet d’aborder les méthodologies de recherche et développement en méthodes formelles. Il conduira à l’étude d’un cadre logique général ou plus spécifique, par exemple la logique linéaire, la logique temporelle ou la logique de séparation et à une étude, incluant une analyse bibliographique la plus complète possible, de ce cadre au travers des différentes thématiques ci-dessus abordées dans les différents modules. Ce travail d’analyse et d’intégration sera fait par l’ensemble des étudiants avec des sous-groupes affectés aux diverses tâches (thématiques) et un étudiant coordinateur veillant à la réalisation et à la coordination des tâches. Le produit final sera un article scientifique de synthèse, complet et rédigé en anglais, sur le sujet proposé dont les versions préliminaires seront l’objet de présentations et discussions.
Prérequis – Bonnes connaissances des thématiques en méthodes formelles de MFLS.
Acquis d’apprentissage – Lecture et analyse d’articles scientifiques relevant du sujet proposé. – Synthèse de résultats et présentations orales et/ou écrites de ces résultats. – Coordination et interactions entre les différentes thématiques abordées. – Rédaction collective d’un article scientifique de synthèse sur un sujet intégrant les thématiques abordées dans MFLS
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques. – Travailler en équipe et aussi en autonomie sur un sujet scientifique intégrant différents aspects fondamentaux et applicatifs. – Lecture et analyse d’articles scientifiques. – Gérer et maîtriser les étapes d’une étude scientifique approfondie et de sa rédaction
4
–
36
–
Crédits
CM
TD
TP
Gestion de projet
Un premier objectif de ce module est de permettre aux étudiants de mettre en application de manière concrète un processus de développement. Cette mise en application sera réalisée dans le cadre de l’activité intégratrice proposée aux étudiants durant la formation. Le cours débutera par quelques rappels concernant la gestion de projet : la définition d’un projet, les principales phases permettant de concrétiser un projet. L’étudiant se familiarisera ensuite avec les notions de la gestion de projet, telles que par exemple l’état d’esprit, les valeurs, les rôles ou l’estimation, qu’il aura l’occasion d’expérimenter au travers d’une pratique appelée “serious game”. En s’appuyant sur des retours d’expérience, le module abordera également les principaux points d’attention à considérer lorsqu’une entreprise décide de réaliser un projet informatique. Cet enseignement a également vocation à faire découvrir aux étudiants les activités des industriels et des professionnels en lien avec les compétences développés dans le parcours-type. Cela pourra prendre aussi bien la forme de conférences données par des professionnels ou de cours plus classiques pour comprendre la problématique métiers en relation avec le parcours-type.
Prérequis – Connaissances générales en gestion de projet.
Acquis d’apprentissage – Comprendre les principes de la gestion de projet. – Savoir appliquer les pratiques de gestion de projet. – Savoir comment s’organiser dans une équipe. – Savoir comment obtenir des résultats démontrables régulièrement. – Comprendre l’importance de la coresponsabilité dans une équipe. – Comprendre l’importance des indicateurs de progression. – Comprendre l’importance de la notion d’amélioration continue. – Comprendre l’apport des compétences de gestion de projet par rapport aux compétences techniques.
Compétences visées – Gérer des contextes professionnels ou d’études complexes, imprévisibles et qui nécessitent des approches stratégiques nouvelles. – Prendre des responsabilités pour contribuer aux savoirs et aux pratiques professionnelles et/ou pour réviser la performance stratégique d’une équipe. – Conduire un projet (conception, pilotage, coordination d’équipe, mise en œuvre et gestion, évaluation, diffusion) pouvant mobiliser des compétences pluridisciplinaires dans un cadre collaboratif. – Analyser ses actions en situation professionnelle, s’autoévaluer pour améliorer sa pratique dans le cadre d’une démarche qualité. – Respecter les principes d’éthique, de déontologie et de responsabilité environnementale.
2
18
8
–
Crédits
CM
TD
TP
Anglais
Approfondissement de la langue de spécialité, vocabulaire technique et scientifique. Pratique des cinq compétences : compréhension de l’oral, expression orale en continu, expression orale en interaction, compréhension de l’écrit, expression écrite. Utilisation des documents authentiques et à caractère scientifique.
Prérequis Un niveau B1 en anglais est fortement souhaitable.
Acquis d’apprentissage – Acquérir des connaissances et des compétences en anglais général et de spécialité.
Compétences visées – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère. – Savoir utiliser le vocabulaire et la grammaire nécessaire à une bonne pratique de l’anglais dans leur spécialité.
2
–
24
–
Crédits
CM
TD
TP
Unités d’enseignement d’approfondissement (6 au choix)
Modèles de calculs
Alors que les modèles de calculs classiques donnent une définition précise des fonctions calculables, ils sont inopérants lorsqu’on s’intéresse à un système pouvant interagir avec des objets infinis ou semi-infinis, comme des streams dans un langage de programmation ou des entrées continues. De plus, ils ne permettent de manipuler que de manière limitée la notion de ressource, qu’elle soit classique (temps, mémoire) ou quantique (intrication). Ce cours offre une introduction aux techniques et outils permettant de raisonner et manipuler ce type d’objets. Une première partie expliquera comment représenter et manipuler des réels, des fonctions ou des qubits (bits quantiques), soit de façon intrinsèque en utilisant un modèle de calcul adapté (automates cellulaires, modèle BSS, circuits quantiques) ou extrinsèque en les représentant comme des suites binaires infinies (machines de Turing). Une deuxième partie expliquera comment mesurer de façon statique les ressources, comme le temps, l~espace mémoire ou l~intrication, utilisées par un calcul.
Prérequis – Notions de complexité et de calculabilité.
Acquis d’apprentissage – Calcul sur des objets infinis : représentation et manipulation des nombres réels, des fonctions et des flux de données par suites binaires infinies. – Nouveaux modèles de calcul : automates cellulaires, calcul quantique. – Ressources du calcul : évaluation statique des ressources d’un processus, complexité d’ordre supérieur.
Compétences visées – Maîtriser et mettre en œuvre les méthodes formelles pour la spécification ou modélisation d’un problème donné, la preuve et la vérification de propriétés dans le contexte de la sûreté et la sécurité logicielle. – Concevoir et développer des approches formelles adaptées, leur combinaison et des outils associés, pour la certification de systèmes complexes. – Concevoir des programmes manipulant des objets continus, des fonctions, des qubits. – Évaluer a priori les ressources classiques et quantiques utilisées par un programme.
2
16
8
–
Crédits
CM
TD
TP
Preuve de programmes avancée
L’objectif de cette UE est d’introduire des concepts et méthodes avancés pour la preuve de programmes. Une première partie est consacrée à l’utilisation de la logique de séparation comme langage d’assertions pour prouver des programmes complexes, notamment avec des structures de données mutables. Une seconde partie traite de la preuve interactive de spécifications et de la programmation certifiée avec une mise en œuvre avec un assistant de preuve.
Prérequis – Connaissances de base en logique, programmation et spécification.
Acquis d’apprentissage – Logique de séparation (SL) et preuves de programmesSL comme langage d’assertions preuves de programmes avec structures de données inductives, listes et arbres mise en œuvre avec l’outil Smallfoot. Programmation certifiée en Coqprogrammation et spécification preuve interactive de spécifications extraction de programmes certifiés types dépendants et combinaison de la programmation et de la certification mise en œuvre avec l’outil CoqIDE
Compétences visées – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques. Maîtriser et mettre en œuvre les méthodes formelles pour la spécification ou modélisation d’un problème donné, la preuve et la vérification de propriétés dans le contexte de la sûreté et la sécurité logicielle. Concevoir et développer des approches formelles adaptées, leur combinaison et des outils associés, pour la certification de systèmes complexes. Développer des preuves de programmes sur des structures de données mutables. Utiliser sur des exemples concrets des outils de preuve et de vérification pour des programmes complexes.
2
16
8
–
Crédits
CM
TD
TP
Sémantique, preuves et types
L’objectif de ce cours est de présenter les liens entre preuves,types et programmes au travers de l’isomorphisme de Curry-Howard et des lambda-calculs typés. Dans ce contexte on étudiera un certain nombre de logiques sous-structurelles et de logiques de ressources du point de vue de la sémantique et de la théorie de la preuve en présentant des concepts et méthodes adaptées de recherche de preuves et de réfutations avec un intérêt fort pour la génération de contre-modèles.
Prérequis – Connaissances de base en logique.
Acquis d’apprentissage – Logiques sous-structurelleslogique intuitionniste, logiques de ressources – sémantiques et calculs avec ou sans labels – Preuves et typesisomorphisme de Curry-Howard – lambda-calculs typés, preuves et programmes – Preuves et réfutationscomplétude par recherche de preuves – structures sémantiques et calculs – génération de contre-modèles.
Compétences visées – Maîtriser et mettre en œuvre les méthodes formelles pour la spécification ou modélisation d’un problème donné, la preuve et la vérification de propriétés dans le contexte de la sûreté et la sécurité logicielle. – Concevoir et développer des approches formelles adaptées, leur combinaison et des outils associés, pour la certification de systèmes complexes. – Développer des systèmes de preuves en lien avec la programmation. – Construire des contre-modèles en vue d’analyser l’échec de la vérification formelle de certaines propriétés de programmes.
2
16
8
–
Crédits
CM
TD
TP
Procédures de décision pour la preuve de programmes
Dans ce cours, on s’intéresse plus particulièrement à la preuve (de programmes) et aux moteurs de preuve basés sur la Satisfiabilité Modulo des Théories (SMT). L’objectif est de comprendre les méthodes de preuve sous-jacentes. Un moteur SMT utilise différents composants : des procédures de décision (pour différentes théories), un solveur Booléen pour le calcul propositionnel, ainsi que des méthodes de combinaison lorsque le système à prouver est spécifié grâce à plusieurs théories. Les points importants qui seront étudiés sont : – un panorama des différentes théories utilisées dans le cadre de la preuve de programmes : théorie de l’égalité, fragments d’arithmétique, structures de données. – la description pour chacune de ces théories, d’une procédure de décision à l’aide d’un système d’inférence dont la correction est montrée formellement. – la conception de nouvelles procédures de décision de façon incrémentale en appliquant des méthodes de combinaison et du raisonnement équationnel. – la spécification et l’analyse formelle du fonctionnement général d’un prouveur SMT. – l’étude approfondie de la mise en oeuvre d’un prouveur SMT.
Prérequis – Connaissances en logique et algorithmique.
Acquis d’apprentissage – Logique équationnelle et théories utilisées dans le contexte de la preuve de programmes. – Systèmes d’inférences, procédures de saturation et de combinaison. – Réécriture appliquée à la conception de procédures de décision. – Satisfiabilité propositionnelle et modulo des théories.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés, notamment avec des méthodes formelles. – Maîtriser et mettre en oeuvre les méthodes formelles pour la spécification ou modélisation d’un problème donné, la preuve et la vérification de propriétés dans le contexte de la sûreté et la sécurité logicielle. – Concevoir et développer des approches formelles adaptées, leur combinaison et des outils associés, pour la certification de systèmes complexes. – Spécifier et prouver en logique du premier ordre avec égalité. – Développer des outils d’aide à la décision. Comprendre, analyser et concevoir des outils de vérification et de preuve.
2
16
8
–
Crédits
CM
TD
TP
Ingénierie des données et extraction des connaissances
L’objectif de ce cours est d’introduire les problématiques liées à l’analyse de données massives ainsi que leur mise en œuvre, sous deux volets complémentaires. Le premier porte sur l’ingénierie de données à travers la présentation de deux systèmes distribués de gestion de données non relationnels et sur les principes et les algorithmes de machine learning pour extraire des connaissances à partir de données massives. Le second volet porte sur les plateformes d’analyse de données de type Big Data, en particulier Hadoop et Spark et le modèle algorithmique sous-jacent, Map-Reduce.
Prérequis – Programmation Java – Connaissances usuelles en algorithmique – Systèmes de gestion de données relationnels.
Acquis d’apprentissage – Comprendre les caractéristiques d’un système de gestion de données distribué noSQL Comprendre les notions et enjeux associés au machine learning Fonctionnement et utilisation d’Hadoop/Spark ainsi que du système de fichier HDFS. Développer un programme de type Map-Reduce.
Compétences visées – Concevoir et développer des systèmes logiciels sûrs et sécurisés. Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. Savoir utiliser deux systèmes noSQL (en configuration distribuée) Savoir utiliser les librairies spécialisées pour faire du machine learning sur des données tabulaires Utilisation d’un parallélisme simple pour réduire le temps d’analyse.
2
16
8
–
Crédits
CM
TD
TP
Sécurité des protocoles
Les protocoles cryptographiques sont des programmes visant à sécuriser les communications digitales sur des réseaux ouverts comme Internet. Les exemples de protocoles sont nombreux : protocoles de paiement par carte bancaire, établissement d’un canal sécurisé (par exemple TLS sous-jacent à HTTPS), protocoles de vote électronique, etc. D’apparence simple, ils sont notoirement difficiles à concevoir et les bonnes pratiques actuelles imposent de les vérifier via des analyses formelles rigoureuses. Ce cours présentera des méthodes de modélisation et d’analyse formelle pour des protocoles cryptographiques, basées sur des techniques de déduction automatique et de résolution de contraintes. Nous apprendrons aussi à utiliser un outil d’analyse dédié, tel que ProVerif. Cela pourra prendre la forme d’une mini-compétition entre élèves pour concevoir le protocole le plus robuste et trouver des failles et attaques dans les autres protocoles.
Prérequis Connaissances de base en logique.
Acquis d’apprentissage – Gérer et surveiller le système d’information (connaissance des protocoles, detection de flux malveillants, journalisation, gestion des politiques de sécurité) B1C1 – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) B1C5 – Fonctionnement de différents protocoles (TLS, protocoles de vote électroniques, etc.) – Exemples d’attaques sur ces protocoles et leur impact. – Fondations logiques : Algèbre de termes, théorie équationnelle, clauses de Horn et procédures de résolution. – Apprentissage et utilisation d’un langage formel pour la modélisation des protocoles via l’utilisation d’un outil de preuve dédié. – Concevoir et analyser des protocoles cryptographiques pour les prouver sûr ou trouver des attaques.
Compétences visées – Concevoir, modéliser et d’analyser des protocoles cryptographiques à l’aide d’outils dédiés tels que ProVerif. – Gérer et surveiller le système d’information (connaissance des protocoles, détection de flux malveillants, journalisation, gestion des politiques de sécurité) – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) – Concevoir et développer des systèmes logiciels sûrs et sécurisés – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques.
2
16
8
–
Crédits
CM
TD
TP
Infrastructures virtualisées
– L’objectif général de cette UE est de permettre aux étudiants d’appréhender des infrastructures virtualisées (notamment cloud) en vue d’y déployer des services et applications de manière scalable et sécurisée. – Introduction au cloud (IaaS/PaaS/SaaS, principaux fournisseur de clouds publics et solutions de clouds privés, architecture générale et services typiques). – Gestion des données dans le cloud. – Outils de gestion de configuration (Puppet, Chef ou Ansible) pour le déploiement d’applications. – Outils de Continuous Integration / Continuous Deployment. – Containers pour le déploiement d’applications (y compris orchestration). – Passage à l’échelle & répartition de charge.
Prérequis – Notions d’administration système sous Linux.
Acquis d’apprentissage – Maîtrise des environnements virtualisés.
Compétences visées – Administrer un système et utiliser des solutions de cloud pour y déployer des services et applications.
2
16
8
–
Crédits
CM
TD
TP
Sécurité des applications web
La sécurité est actuellement un enjeu majeur dans le développement des applications Web. En effet, il ne se passe pas un mois sans que de nouvelles attaques soient divulguées, entraînant des vols d’identité, de données personnelles, ou des tentatives d’extorsion. Il s’agit d’une UE très pratique, dans laquelle nous nous intéresserons en priorité aux vulnérabilités spécifiques au Web et aux dégâts que peuvent entraîner les attaques Web. Nous étudierons les attaques sur les différentes versions du Web et nous verrons les approches modernes pour éviter les vulnérabilités.
Prérequis – Connaissances sur les bases de cryptographie (chiffrement, authentification, protocoles) – Connaissances minimales en développement Web
Acquis d’apprentissage – Connaissances sur les bases de cryptographie (chiffrement, authentification, protocoles) – Connaissances minimales en développement Web
Compétences visées – Gérer et surveiller le système d’information (connaissance des protocoles, detection de flux malveillants, journalisation, gestion des politiques de sécurité ) – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) – Concevoir et développer des systèmes logiciels sûrs et sécurisés – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. – Bases de l’analyse de sécurité Web – Solutions de sécurité Web – Analyser les incidents de sécurité (réaction aux incidents, forensics, contrôle d’accès) – Partager et analyser les données coopératives des incidents de sécurité (Threat intelligence, émulation de l’adversaire)
2
16
8
–
Crédits
CM
TD
TP
Semestre 10
Stage
Stage
30
–
–
–
Crédits
CM
TD
TP
L’informatique aujourd’hui est en constante évolution. Développer des applications innovantes demande une maîtrise des nouvelles technologies. Le parcours type G2IHM représente le parcours type pour apprendre à maîtriser les nouvelles technologies pour obtenir des applications adaptées aux utilisateurs à travers l’orientation Interaction Humain-Machine (IHM) et adaptées aux domaines d’application à travers l’orientation Génie Informatique (GI).
Les étudiants peuvent suivre ce parcours en alternance: ce mode de formation combine enseignement théorique et expériences professionnelles au sein d’une entreprise. Les deux orientations proposées partagent un socle disciplinaire indispensable autour du développement Web et du développement mobile. Hormis les enseignements disciplinaires, les deux orientations proposent une intégration méthodologique, de la gestion de projet, des applications thématiques, des langues et un stage.
Orientation « Génie Informatique (GI) »
L’orientation GI ne peut se faire qu’en alternance. L’étudiant poursuit sa formation à travers un socle disciplinaire large autour du logiciel et de son développement : sécurité, aide à la décision, génie logiciel, etc. Elle ne propose pas de professionnalisation thématique puisque les étudiants sont déjà intégrés au monde professionnel et suivent des cours très professionnalisants comme la création d’entreprise, le management, etc.
Semestre 9
Unités d’enseignement fondamentales
Unités d’enseignement
Crédits
CM
TD
TP
Conception logicielle
2
12
12
–
Gestion de projet
2
12
12
–
Entrepôt de données
–
12
12
–
Portails Web d’entreprises
–
12
12
–
Sécurité des réseaux
–
12
12
–
Sécurité des systèmes d’information
–
12
12
–
Projet en entreprise
3
–
–
–
Anglais ou Français langue étrangère
2
24
–
–
Unités d’enseignement d’approfondissement
Unités d’enseignement
Crédits
CM
TD
TP
Développement mobile 1
2
12
12
–
Développement mobile 2
2
12
12
–
Développement Web 1
2
12
12
–
Développement Web 2
2
12
12
–
ERP1 – Introduction au progiciel de gestion intégré
–
12
12
–
ERP2 – Introduction au progiciel de gestion intégré
–
12
12
–
Unités d’enseignement pour ouverture d’alternance (2 au choix)
Unités d’enseignement
Crédits
CM
TD
TP
Les nouveaux défis du manager
2
26
14
–
Management et gestion de projet
2
40
–
–
Création d’entreprise
2
40
–
–
Marketing
2
40
–
–
Droit et fiscalité
–
40
–
–
Gestion de la chaîne logistique
–
40
–
–
Semestre 10
Unités d’enseignement
Crédits
CM
TD
TP
Découverte de l’IHM dans les domaines d’application
2
14
14
–
Stage
28
–
–
–
Le stage a une durée de 5 mois (20 semaines) minimum. Les sujets des stages de recherche sont proposés par les enseignants-chercheurs, ou chercheurs des laboratoires ou d’autres équipes de recherche partenaires du Master.
Orientation « Interaction Humain-Machine » (IHM)
L’orientation IHM peut se faire en alternance ou non. Elle forme les étudiants au développement d’interfaces de haut niveau à travers des cours sur les technologies actuelles, voire de demain : visualisation de données, interfaces tangibles, réalité augmentée, interfaces haptiques, etc. L’étudiant acquiert aussi une vision différente du développement logiciel, une vision plus proches des utilisateurs à travers des cours sur l’accessibilité, sur des modèles de conception centrées utilisateurs et sur des méthodes pour évaluer les logiciels développés.
Semestre 9
Unités d’enseignement fondamentales
Développement mobile
Cet enseignement vise à montrer comment développer une application interactive sur un support mobile (tablette, téléphone, …). Les aspects technologiques seront abordés à travers l’utilisation de plateformes de développement spécifiques au développement mobile. La problématique de l’interaction sur dispositif mobile sera abordée sous deux facettes : technologiques et humaines.
Prérequis – Programmation orientée objets.
Acquis d’apprentissage – Maîtriser un ou plusieurs environnements de développement pour application mobile. – Maîtriser les techniques d’interactions mobiles. – Savoir rendre accessible une application mobile aux utilisateurs.
Compétences visées – Pouvoir choisir des applications adaptées aux dispositifs mobiles. – Être capable de proposer des applications mobiles utilisables.
4
24
24
–
Crédits
CM
TD
TP
Développement Web
Cet enseignement vise à présenter différentes facettes du développement web à travers des technologies récentes tout en s’intéressant aux utilisateurs visés. Il s’agit dans un premier temps de montrer les nouvelles technologies backend et permettant la communication directement liée au web d’aujourd’hui : création d’un serveur pour héberger des applications web, outils pour communiquer avec les services backend, garantir la persistance des données simplement et en synergie avec les nouveaux besoins de l’internet de nos jours (beaucoup de données avec accès rapide). Le déploiement d’application Web dans le cloud avec une plateforme récente (google APPEngine, amazon, cloudbeez, …) pourra être abordé. Dans un second temps, les aspects plus proches de l’utilisateur seront présentés. Côté technologique, il s’agira de présenter des frameworks récents pour la création d’application web. Côté usage, il s’agira de montrer comment développer un site web accessible et quelles sont les bonnes pratiques à adopter en terme d’ergonomie.
Prérequis – Connaissances de base sur l’ergonomie, développement orientée objets.
Acquis d’apprentissage – Connaître les outils utilisables pour développer aujourd’hui un site web dynamique. – Connaître les différents services qui interviennent pour une bonne gestion d’un site. – Savoir les critères pour rendre un site accessible.
Compétences visées – Pouvoir développer une application web répondant aux demandes actuelles des utilisateurs en terme de services proposés et d’accessibilité. – Pouvoir choisir les outils adaptés au développement d’une application web. – Pouvoir développer une application web performante.
4
24
24
–
Crédits
CM
TD
TP
Techniques d’interactions pour l’innovation
Cet enseignement a pour but de montrer comment développer des applications dont les IHM offrent de nouvelles possibilités aux utilisateurs. Certains périphériques sont encore peu exploités dans le domaine grand public ou le monde professionnel alors qu’ils offrent des modalités d’interaction innovantes. À titre d’exemple, les périphériques haptiques vont permettre d’offrir à l’utilisateur un retour autre que visuel ou sonore. L’innovation n’est pas forcément du côté des périphériques uniquement. Ainsi ce cours pourra également s’intéresser à des techniques d’interaction spécifiques utilisant par exemple le geste pour communiquer. Ce cours pourra aussi aborder d’autres types d’IHM (interactions 3D, réalité augmentée, interactions avec des objets connectés, etc.).
Prérequis – Programmation orientée objets.
Acquis d’apprentissage – Savoir développer des applications innovantes en terme de techniques d’interactions. – Savoir utiliser de nouveaux périphériques.
Compétences visées – Connaître les possibilités offertes par des périphériques spécifiques. – Connaître d’autres IHM que celles classiquement vues. – Connaître de nouvelles bibliothèques de programmation d’interfaces. – Être capable d’introduire de nouvelles IHM en fonction des besoins, des utilisateurs et du contexte.
4
24
24
–
Crédits
CM
TD
TP
Unités d’enseignement d’approfondissement
Ergonomie et facteurs humains pour l’accessibilité
L’accessibilité universelle s’adresse à toutes les personnes en situation de handicap (moteur, psychique, mental, sensoriel). Elle concerne l’accessibilité architecturale, communicationnelle, relationnelle, et les produits de consommation courante. Tous les secteurs qui composent la société doivent donc être pris en compte (loisirs, scolarisation, insertion professionnelle, etc.). Le principe d’accessibilité universelle doit être appliqué dès la conception d’un projet ou d’un service. Il vise à éliminer tous les obstacles rencontrés en adaptant l’environnement aux besoins et activités de tous. Ce cours portera plus spécifiquement sur l’accessibilité numérique, sur les moyens de concevoir des systèmes accessibles et de les évaluer. Ce cours aborde les définitions de l’accessibilité et comment ce concept est lié à celui d’utilisabilité. Les étudiants exploreront les différentes formes de « déficits » (visuels, cognitifs et moteur) auxquels le domaine de la conception de produits accessibles tente de trouver des solutions. Les étudiants découvriront comment la conception de technologies d’assistance (assistive technlogies) permet de faciliter la vie quotidienne des personnes ayant des besoins spécifiques et comment ces technologies favorisent l’inclusion. Différents domaines d’application seront abordés (ex., technologies numériques {Web, systèmes d’exploitation, documents électroniques, …}, consommation, design industriel, etc.).
Prérequis – Bases en conception et évaluation.
Acquis d’apprentissage – Connaissances et compréhension des déficits pouvant entraver l’utilisation de systèmes interactifs et des solutions pouvant être proposées. – Les étudiants pourront identifier les méthodes et approches pour l’accessibilité.
Compétences visées – À l’issue de cette formation, les étudiants doivent être capables d’identifier les différentes approches de l’accessibilité et les outils d’assistance existants.
2
12
12
–
Crédits
CM
TD
TP
Méthodes pour évaluer l’expérience utilisateur
L’évaluation centrée sur l’opérateur humain est une manière d’évaluer les systèmes et services interactifs, ayant pour but de rendre ces systèmes utilisables et utiles en appliquant les facteurs humains, l’ergonomie et les connaissances et techniques existantes en matière d’utilisabilité. Dans ce cours, les étudiants apprendront les principales méthodes d’évaluation ergonomiques que sont les méthodes d’inspection, les tests utilisateurs, les méthodes basées sur des modèles et les mesures de satisfaction. Chaque méthode sera décrite avec ses avantages, ses inconvénients et d’autres facteurs relatifs à sa sélection et à son utilisation en fonction des différentes étapes du cycle de vie du produit.
Prérequis Aucun.
Acquis d’apprentissage – Connaissances et compréhension des méthodes et approches de l’évaluation centrée utilisateur – Application des connaissances pour l’évaluation d’un système interactif, analyse critique. – Communication des résultats de l’évaluation centrée utilisateur. – Connaissances des ressources dans le domaine de l’évaluation centrée utilisateur.
Compétences visées – À l’issue de cette formation, les étudiants doivent être capable d’identifier les méthodes centrées utilisateurs pertinentes pour l’évaluation de systèmes et services interactifs et être capable de les mettre en œuvre.
2
12
12
–
Crédits
CM
TD
TP
Génie des systèmes Interactifs
Cet enseignement montre comment concevoir un système interactif en mettant en avant l’utilisateur dans les différentes phases de modélisation. Après un bref rappel sur la phase de capture des besoins en tenant compte des utilisateurs, les étudiants seront sensibilisés aux trois principaux modèles en IHM : modèles de tâches, modèles de dialogue et modèles d’architecture.
Prérequis – Programmation orientée objets, JAVA.
Acquis d’apprentissage – Savoir décrire de façon abstraite le comportement d’un utilisateur. – Savoir utiliser une notation de description de tâches. – Savoir architecturer/structurer le code d’une IHM.
Compétences visées – Savoir identifier des problèmes architecturaux classiques en IHM. – Savoir concevoir un système interactif en maîtrisant les phases de dialogues avec l’utilisateur à travers des modèles adaptés.
2
12
12
–
Crédits
CM
TD
TP
Communication parlée multimodale
Ce cours porte sur l’interaction parlée homme-machine. Cette interaction repose sur différentes modalités (voix, visage, gestes) qui portent des informations de nature linguistique (mots prononcés) et paralinguistique (état émotionnel du locuteur). Ce cours abordera différents volets de la communication parlée et leur extension à un contexte multimodal: acquisition de données, reconnaissance de la parole et de traits paralinguistiques, synthèse expressive de la parole. Les techniques d’apprentissage sousjacentes (modèles de Markov, réseaux de neurones profonds) seront approfondies. Les notions seront expérimentées sur des données réelles en TD.
Prérequis – Connaissances de base sur les probabilités.
Acquis d’apprentissage – Bases de traitement du signal audio. – Modélisation acoustique et linguistique de la parole. – Algorithmes de reconnaissance et de classification. – Algorithmes de synthèse. – Acquisition et exploitation de données (voix, visage, gestes). – Méthodes de reconnaissance et de synthèse multimodales.
Compétences visées – Analyser et traiter des données perceptives (image, parole, etc.) possiblement bruitées, interpréter un environnement visuel, extraire des informations contextuelles, enrichir la perception. – Préparer les données d’apprentissage, savoir en réduire la dimensionnalité, analyser la pertinence des caractéristiques, analyser les résultats d’apprentissage, évaluer la pertinence des différents modèles, combiner les modèles d’apprentissage.
2
12
12
–
Crédits
CM
TD
TP
Découverte de l’IHM dans les domaines d’application
Cette UE vise à montrer l’IHM dans des domaines particuliers. Elle pourra prendre aussi bien la forme de conférences données par des professionnels ou de cours plus classiques pour comprendre la problématique métiers en relation avec les IHMs. Des exemples de domaines sont : les jeux vidéos (les jeux sérieux), le domaine médical, la banque, les assurances, etc.
Prérequis Aucun.
Acquis d’apprentissage – Connaître des technologies ou des outils nécessaires pour intervenir dans certains domaines d’applications. – Connaître des pratiques de développement IHM spécifiques à certains domaines.
Compétences visées – Sensibiliser les étudiants à différents domaines d’application des IHM. – Être capable d’adapter les pratiques classiques de l’IHM à des domaines spécifiques. – Avoir quelques connaissances métiers pour réussir à proposer des solutions mieux adaptées.
2
12
12
–
Crédits
CM
TD
TP
Techniques de visualisation de données et analyse
Ce cours présente aux étudiants les possibilités de la visualisation d’information interactive dans la perception de l’information. Les étudiants découvriront les techniques et les outils utilisés dans la visualisation d’informations dans les différents domaines ainsi que leur mise en pratique dans l’analyse visuelle des données.
Prérequis Programmation impérative et orientée objets
Acquis d’apprentissage – Les bases de la visualisation d’informations (Perception, Cognition, Sémiologie graphique). – Connaissances de techniques de visualisation (techniques pour différentes structures de données, Projection, Représentation, Interaction) – Apprentissage d’outils de visualisation (mise en œuvre des techniques avec les outils et les langages existants). – Les bases de l’analyse visuelle (la visualisation dans le processus d’analyse et d’exploration des données).
Compétences visées – Être capable de choisir une technique de visualisation adaptée aux données et au contexte. – Savoir utiliser des techniques de visualisation de données. – Savoir analyser visuellement des données.
2
12
12
–
Crédits
CM
TD
TP
Unités d’enseignement transversales
Gestion de projet
Un premier objectif de ce module est de permettre aux étudiants de mettre en application de manière concrète un processus de développement. Cette mise en application sera réalisée dans le cadre de l’activité intégratrice proposée aux étudiants durant la formation. Le cours débutera par quelques rappels concernant la gestion de projet : la définition d’un projet, les principales phases permettant de concrétiser un projet. L’étudiant se familiarisera ensuite avec les notions de la gestion de projet, telles que par exemple l’état d’esprit, les valeurs, les rôles ou l’estimation, qu’il aura l’occasion d’expérimenter au travers d’une pratique appelée “serious game”. En s’appuyant sur des retours d’expérience, le module abordera également les principaux points d’attention à considérer lorsqu’une entreprise décide de réaliser un projet informatique. Cet enseignement a également vocation à faire découvrir aux étudiants les activités des industriels et des professionnels en lien avec les compétences développés dans le parcours-type. Cela pourra prendre aussi bien la forme de conférences données par des professionnels ou de cours plus classiques pour comprendre la problématique métiers en relation avec le parcours-type.
Prérequis – Connaissances générales en gestion de projet.
Acquis d’apprentissage – Comprendre les principes de la gestion de projet. – Savoir appliquer les pratiques de gestion de projet. – Savoir comment s’organiser dans une équipe. – Savoir comment obtenir des résultats démontrables régulièrement. – Comprendre l’importance de la coresponsabilité dans une équipe. – Comprendre l’importance des indicateurs de progression. – Comprendre l’importance de la notion d’amélioration continue. – Comprendre l’apport des compétences de gestion de projet par rapport aux compétences techniques.
Compétences visées – Gérer des contextes professionnels ou d’études complexes, imprévisibles et qui nécessitent des approches stratégiques nouvelles. – Prendre des responsabilités pour contribuer aux savoirs et aux pratiques professionnelles et/ou pour réviser la performance stratégique d’une équipe. – Conduire un projet (conception, pilotage, coordination d’équipe, mise en œuvre et gestion, évaluation, diffusion) pouvant mobiliser des compétences pluridisciplinaires dans un cadre collaboratif. – Analyser ses actions en situation professionnelle, s’autoévaluer pour améliorer sa pratique dans le cadre d’une démarche qualité. – Respecter les principes d’éthique, de déontologie et de responsabilité environnementale.
3
18
8
–
Crédits
CM
TD
TP
Intégration méthodologique IHM
Il s’agit d’un travail réalisé en groupe autour d’une problématique IHM. Les étudiants devront apporter une solution à un problème en passant par toutes les phases de conception d’un système interactif (de l’analyse des besoins aux tests utilisateurs). La progression du projet sera gérée à travers l’UE Gestion de projet.
Prérequis Les enseignements IHM.
Acquis d’apprentissage – Savoir développer des solutions technologiques. – Savoir participer à un projet et répondre à un cahier des charges. – Comprendre l’intérêt d’une conception centrée utilisateur. – Savoir dialoguer avec un client.
Compétences visées – Savoir faire des choix adaptés aux utilisateurs tout en apportant des solutions technologiques fiables. – Mener à bien un projet IHM en appliquant une approche centrée utilisateurs.
3
–
–
36
Crédits
CM
TD
TP
Anglais
Approfondissement de la langue de spécialité, vocabulaire technique et scientifique. Pratique des cinq compétences : compréhension de l’oral, expression orale en continu, expression orale en interaction, compréhension de l’écrit, expression écrite. Utilisation des documents authentiques et à caractère scientifique.
Prérequis Un niveau B1 en anglais est fortement souhaitable.
Acquis d’apprentissage – Acquérir des connaissances et des compétences en anglais général et de spécialité.
Compétences visées – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère. – Savoir utiliser le vocabulaire et la grammaire nécessaire à une bonne pratique de l’anglais dans leur spécialité.
2
–
24
–
Crédits
CM
TD
TP
Semestre 10
Stage
Le stage a une durée de 5 mois (20 semaines) minimum. Les sujets des stages de recherche sont proposés par les enseignants-chercheurs, ou chercheurs des laboratoires ou d’autres équipes de recherche partenaires du Master.
30
–
–
–
Crédits
CM
TD
TP
Notre société connaît actuellement une nouvelle révolution, liée cette fois à l’hyperconnectivité des usagers (l’Internet des objets), la dématérialisation des activités (y compris le terrorisme), ou encore l’uberisation des services. La préoccupation fondamentale au centre de cette révolution est la sécurité. Le parcours type « Sécurité de l’Information et des Systèmes (SIS) » s’inscrit dans ce contexte en proposant des formations développant des compétences à forte valeur ajoutée. La cybersécurité nécessite des compétences scientifiques et techniques variées et complémentaires, correspondant à des métiers différents. Le parcours-type SIS propose deux orientations « Sécurité Informatique, Réseaux et Architectures Virtuelles (SIRAV) » localisée sur le site de Nancy et « Sécurité des Systèmes d’Information (SSI) » sur le site de Metz.
Ces deux orientations partagent un socle commun non seulement de connaissances transversales (gestion de projet, anglais) mais également sur les aspects fondamentaux de la sécurité (Sécurité des systèmes d’information, sécurité des réseaux, théorie du contrôle d’accès, malware). Soit un total de 144h d’enseignements communs. Enfin, ces deux orientations complémentaires permettent au master Informatique de couvrir un large éventail de débouchés professionnels en sécurité, mais aussi de conduire à la recherche dans ce domaine.
Compétences scientifiques et techniques spécifiques au parcours SIS
Être capable de participer à la définition et la mise en place d’une politique de sécurité d’un système d’information
Être capable de participer à un audit de sécurité d’un système d’information
Être capable de participer à la définition et la mise en place d’une politique de gestion de la continuité des activités
Comprendre les enjeux stratégiques d’une politique de gestion des identités
Connaître les aspects techniques et légaux de la protection des données
Maîtriser les bases techniques de la détection, de l’analyse et de la prévention des incidents de sécurité informatique
Maîtriser les bases techniques et méthodologiques des tests de pénétration
Orientation « Sécurité Informatique, Réseaux et Architectures Virtuelles (SIRAV) »
L’orientation « Sécurité Informatique, Réseaux et Architectures Virtuelles (SIRAV) » localisée sur le site de Nancy est tournée vers les aspects technologiques de la sécurité (sécurité des réseaux, virtualisation, Internet des objets, sécurité des logiciels, cryptographie, etc.), en s’appuyant en particulier sur les équipes de recherche particulièrement en pointe dans ces domaines.
Semestre 9
Unités d’enseignement fondamentales
Sécurité des systèmes d’information
Le système d’information est devenu un organe central dans la structure d’une entreprise. Le public de la formation est essentiellement composé de bac+4 en informatique, avec avant tout une culture technique. Cette UE a pour objectif de bien situer la problématique de la sécurité des systèmes d’information dans son ensemble, en élargissant notamment la vision de la sécurité aux autres aspects fondamentaux tels que : – enjeux stratégique de la SSI – organisation de la SSI au niveau national, aspects réglementaires et légaux – organisation de la SSI dans l’entreprise, aspects méthodologiques – place et limites de la technologie dans la SSI
Prérequis – Niveau Master 1 en Informatique.
Acquis d’apprentissage – Comprendre les enjeux de la sécurité informatique – Identifier les points vulnérables et les ressources à protéger dans un système d’informations – Connaître les définitions de base de la sécurité informatique – Savoir ce qui est et n’est pas faisable en termes de sécurité avec les technologies actuelles – Avoir des références de solutions cryptographiques et technologiques de sécurité – Avoir des références d’organismes compétents sur le sujet – Connaître les principales réglementations et lois applicables
Compétences visées – Identifier les risques et les dysfonctionnements – Définir et faire évoluer la politique de sécurité en conformité aux normes de la famille ISO 27000 – Déployer cette politique de sécurité avec la définition du processus de mise en œuvre – Suivre le dispositif de sécurité et faire évoluer les mesures de sécurité en fonction des normes et des besoins de l’entreprise (nomadisme, télétravail, transactions sensibles, gestion des identités) – Etablir le plan de continuité d’activité (PCA) et les spécifications de plan de résilience des systèmes d’information
4
32
16
–
Crédits
CM
TD
TP
Système et supervision avancés
L’objectif de cette UE est d’aborder l’administration et la surveillance des réseaux. Après une première partie sur l’administration de systèmes Linux (installation, configuration des aspects liés au stockage et au réseau), une ouverture est faite sur les technologies de virtualisation (containeurs, hyperviseurs) et leur mise en œuvre.
La surveillance des réseaux est ensuite abordée sous deux angles : – un angle technique, présentant les enjeux de la supervision de réseaux, permettant de définir quelles solutions employer en fonction des réseaux, ou des services à superviser; le protocole SNMP, standard de ce domaine et largement répandu sera étudié et utilisé dans des outils dédiés à ces activités. – un angle sécuritaire, focalisé sur le monitoring pour la sécurité, qui comprend à la fois la détection en temps réel d’attaques mais aussi la prévention de celles-ci; les limitations des approches standards sont d’abord présentées, illustrant l’intérêt d’avoir des méthodes et outils dédiés, ces derniers servant aussi bien à collecter des données plus riches qu’à les analyser ensuite.
Prérequis – Architecture des réseaux (notamment la pile TCP/IP et Ethernet). – Utilisation d’un système Linux (enchaînement de commandes, scripts, etc.). – Connaissance des réseaux (IP, TCP, UDP, DNS, NTP, routage). – Connaissance en sécurité des réseaux (attaques, firewall).
Compétences visées – Conception d’une solution de supervision et mise en œuvre avec des outils. – Mise en œuvre d’un système Linux du point de vue d’un administrateur. – Fonctionnement et déploiement d’un Honeypot. – Télescope réseau. – Méthodes d’analyse et visualisation de données pour la sécurité. – Utilisation de réseaux type SDN pour le monitoring.
4
32
16
–
Crédits
CM
TD
TP
Planification, Apprentissage et Contrôle pour la robotique
Pour résoudre un problème complexe, un système robotisé évoluant dans un environnement constitué d’obstacles doit être capable d’agir et de raisonner à plusieurs niveaux : il doit pouvoir reconnaître les situations rencontrées et planifier une séquence de tâches, construire une trajectoire en tenant compte des obstacles et de ses contraintes de mouvement, et enfin contrôler ses mouvements avec précision pour prévenir des dérives et s’adapter aux nouveaux obstacles. Cette UE se concentre sur la chaîne de traitements permettant de contrôler un robot à partir d’une tâche définie à haut niveau. Elle aborde, séquentiellement, les différents niveaux allant du symbolique et abstrait au continu : – modélisation probabiliste pour la prise de décision dans l’incertain — comment représenter un problème de décision haut niveau et mettre à jour les connaissances du robot sur son environnement à partir d’informations partielles et bruitées ; – apprentissage par renforcement pour identifier les modèles du robot et de son environnement — comment apprendre un modèle probabiliste en agissant dans le monde pour résoudre une tâche ; – planification de trajectoire dans une carte connue — comment calculer une trajectoire optimale vers un but donné dans un environnement connu et réalisable par un robot en fonction de ses caractéristiques ; – suivi d’une trajectoire avec évitement d’obstacle — comment calculer les commandes à envoyer aux moteurs d’un robot mobile pour suivre la trajectoire planifiée tout en évitant des obstacles qui n’étaient pas présents dans la carte. À l’issue de cette UE, les étudiants seront capables de mettre en œuvre les différentes couches d’un système de prise de décision permettant de contrôler un robot pour résoudre un problème défini à haut-niveau.
Prérequis – Connaissances de base en mathématiques (probabilités, matrices). – Connaissances de base en algorithmique (tri, parcours de graphe).
Acquis d’apprentissage – Modélisation probabiliste de systèmes dynamiques (réseau bayésien dynamique, chaîne de Markov cachée). – Prise de décision dans l’incertain (processus décisionnel de Markov) et apprentissage par renforcement. – Notion de robot non holonome et d’espace de configuration – Planification de chemin à l’aide d’algorithmes déterministes (A*) et stochastiques (RRT, RRT*) – Contrôle réactif (Braitenberg, champ de force) et basé modèle (MPC, cinématique inverse) d’un système robotique
Compétences visées – Modélisation probabiliste de systèmes dynamiques (réseau bayésien dynamique, chaîne de Markov cachée). – Prise de décision dans l’incertain (processus décisionnel de Markov) et apprentissage par renforcement. – Notion de robot non holonome et d’espace de configuration – Planification de chemin à l’aide d’algorithmes déterministes (A*) et stochastiques (RRT, RRT*) – Contrôle réactif (Braitenberg, champ de force) et basé modèle (MPC, cinématique inverse) d’un système robotique
3
24
12
–
Crédits
CM
TD
TP
IoT et sécurité des CPS
La première partie du cours vise à introduire le domaine d’Internet des objets (IoT: Internet of Things) en mettant l’accent sur les principaux protocoles de communications sans fil et faible consommation énergétique qui le composent: IEEE802.15.4/6loWPAN/RPL, Bluetooth Low Energy, WiFi, LPWAN. Elle introduit aussi les systèmes d’exploitation dédiés (ContikiOS, RIOT OS, …). La seconde partie du cours se focalise sur la sécurité des systèmes IoT et réseaux industriels (SCADA). Nous détaillons leurs problématiques de sécurité, principalement les vulnérabilités et les attaques associées à ces réseaux. Ensuite, nous présentons les techniques d’analyse, de détection et les contre-mesures associées à ces attaques (analyse de traces d’attaques, capture et analyse de la communication radio des objets IoT par cartes SDR, …).
Prérequis – Connaissances en réseaux (protocoles d’Internet, routage, routage dans les réseaux sans fil). – Notion de systèmes d’exploitation et en particulier Linux..
Acquis d’apprentissage – Protocoles d’Internet des objets. – Développement de protocoles pour des applications d’Internet des objets, en développement embarqué. – Connaissances sur les problématiques de la sécurité (attaques, vulnérabilité et détection) des réseaux industriels et IoT.
Compétences visées – Déployer des applications des réseaux de capteurs et d’Internet des objets. – Développer des applications IoT sur les nœuds de capteurs. – Maîtriser les enjeux de la sécurité des systèmes cyber-physiques et de l’internet des objets.
2
24
12
–
Crédits
CM
TD
TP
Sécurité des applications web
La sécurité est actuellement un enjeu majeur dans le développement des applications Web. En effet, il ne se passe pas un mois sans que de nouvelles attaques soient divulguées, entraînant des vols d’identité, de données personnelles, ou des tentatives d’extorsion. Il s’agit d’une UE très pratique, dans laquelle nous nous intéresserons en priorité aux vulnérabilités spécifiques au Web et aux dégâts que peuvent entraîner les attaques Web. Nous étudierons les attaques sur les différentes versions du Web et nous verrons les approches modernes pour éviter les vulnérabilités.
Prérequis – Connaissances sur les bases de cryptographie (chiffrement, authentification, protocoles) – Connaissances minimales en développement Web
Acquis d’apprentissage – Connaissances sur les bases de cryptographie (chiffrement, authentification, protocoles) – Connaissances minimales en développement Web
Compétences visées – Gérer et surveiller le système d’information (connaissance des protocoles, detection de flux malveillants, journalisation, gestion des politiques de sécurité ) – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) – Concevoir et développer des systèmes logiciels sûrs et sécurisés – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données. – Bases de l’analyse de sécurité Web – Solutions de sécurité Web – Analyser les incidents de sécurité (réaction aux incidents, forensics, contrôle d’accès) – Partager et analyser les données coopératives des incidents de sécurité (Threat intelligence, émulation de l’adversaire)
2
16
8
–
Crédits
CM
TD
TP
Sécurité des réseaux
Des incidents de sécurité se produisent chaque jour dans des organisations, qu’elles soient petites ou grandes, privées ou publiques. Et ils se produisent aussi sur les équipements informatiques utilisés par les citoyens du monde entier. En cas d’incident, les victimes veulent savoir ce qui se passe exactement à leurs systèmes, leur réseau ou leurs informations, pour comprendre l’impact sur leur organisation et / ou sur leur vie. Les chercheurs en sécurité ont besoin d’analyser ces attaques afin de mieux comprendre les techniques, les tactiques et la motivation des attaquants / adversaires. L’objectif du cours est de fournir un socle de base des techniques utilisées pour cette analyse, en se focalisant en particulier sur ce qui concerne les équipements et les communications réseaux. Le cours comprend entre autres les parties suivantes : – Principe des attaques réseaux et profil des attaquants – Outils pour l’analyse des attaques réseaux – Balayage des réseaux et des services – Honeypots – Analyse forensic du trafic réseau
Prérequis – Niveau Master 1 en Informatique
Acquis d’apprentissage – Savoir mettre en œuvre une démarche d’analyse postmortem – Connaître les techniques d’analyse du trafic réseau – Maîtriser les outils de base de l’analyse forensic
Compétences visées – Mettre en œuvre une démarche d’analyse postmortem, les techniques d’analyse du trafic réseaux et les outils de l’analyse forensic. – Maîtriser tous les domaines qui relèvent de la sécurité réseau.
2
16
8
–
Crédits
CM
TD
TP
Contrôle d’accès
Après une sensibilisation aux risques et à la nécessité de mettre en place des mécanismes de sécurité à tous les niveaux, la notion de contrôle des accès aux données est introduite. Les principales méthodes de gestion d’accès sont étudiées (DAC, MAC, RBAC), ainsi que les principaux modèles pouvant être appliqués.
Prérequis – Niveau Master 1 en Informatique
Acquis d’apprentissage – Identifier les données sensibles. – Identifier les droits d’accès aux données. – Mettre en place un modèle de contrôle d’accès.
Compétences visées – Avoir conscience de la nécessité de protéger les accès aux données et savoir mettre en place le type de protection le plus approprié. – Maîtriser tous les aspects de la sécurisation d’un système d’information et notamment tout ce qui relève du contrôle d’accès.
2
16
8
–
Crédits
CM
TD
TP
Situation intégratrice
À travers une étude de cas concret, l’objectif de l’UE est de définir, mettre en œuvre et auditer une politique de sécurité. De nombreuses techniques et méthodes ont été vues pendant la formation. Il s’agit d’intégrer ces éléments à travers un travail concret encadré par un enseignant qui supervise l’organisation du travail, son exécution et sa restitution. Durant l’année 2025-2026, Diana Gratiela Berbecaru, Professeure assistante à Politecnico di Torino interviendra pour présenter notamment : IPSec, WPA2 et Kerberos ainsi que des notions générales de sécurité.
Prérequis – Niveau Master 1 en Informatique
Acquis d’apprentissage – Savoir mettre en œuvre les méthodes d’analyse de risque – Appliquer les techniques de sécurisation – Développer les compétences écrites et orales dans le domaine
Compétences visées – Gestion du SOC (Security Operation Center) qui centralise les alertes et les tableaux de bord des incidents de sécurité (détection de virus, de vulnérabilités, contrôle d’accès) – – Analyser les incidents de sécurité (réaction aux incidents, forensics, contrôle d’accès) – – Partager et analyser les données coopératives des incidents de sécurité (Threat intelligence, émulation de l’adversaire)
4
–
36
–
Crédits
CM
TD
TP
Gestion de projet
Un premier objectif de ce module est de permettre aux étudiants de mettre en application de manière concrète un processus de développement. Cette mise en application sera réalisée dans le cadre de l’activité intégratrice proposée aux étudiants durant la formation. Le cours débutera par quelques rappels concernant la gestion de projet : la définition d’un projet, les principales phases permettant de concrétiser un projet. L’étudiant se familiarisera ensuite avec les notions de la gestion de projet, telles que par exemple l’état d’esprit, les valeurs, les rôles ou l’estimation, qu’il aura l’occasion d’expérimenter au travers d’une pratique appelée “serious game”. En s’appuyant sur des retours d’expérience, le module abordera également les principaux points d’attention à considérer lorsqu’une entreprise décide de réaliser un projet informatique. Cet enseignement a également vocation à faire découvrir aux étudiants les activités des industriels et des professionnels en lien avec les compétences développés dans le parcours-type. Cela pourra prendre aussi bien la forme de conférences données par des professionnels ou de cours plus classiques pour comprendre la problématique métiers en relation avec le parcours-type.
Prérequis – Connaissances générales en gestion de projet.
Acquis d’apprentissage – Comprendre les principes de la gestion de projet. – Savoir appliquer les pratiques de gestion de projet. – Savoir comment s’organiser dans une équipe. – Savoir comment obtenir des résultats démontrables régulièrement. – Comprendre l’importance de la coresponsabilité dans une équipe. – Comprendre l’importance des indicateurs de progression. – Comprendre l’importance de la notion d’amélioration continue. – Comprendre l’apport des compétences de gestion de projet par rapport aux compétences techniques.
Compétences visées – Gérer des contextes professionnels ou d’études complexes, imprévisibles et qui nécessitent des approches stratégiques nouvelles. – Prendre des responsabilités pour contribuer aux savoirs et aux pratiques professionnelles et/ou pour réviser la performance stratégique d’une équipe. – Conduire un projet (conception, pilotage, coordination d’équipe, mise en œuvre et gestion, évaluation, diffusion) pouvant mobiliser des compétences pluridisciplinaires dans un cadre collaboratif. – Analyser ses actions en situation professionnelle, s’autoévaluer pour améliorer sa pratique dans le cadre d’une démarche qualité. – Respecter les principes d’éthique, de déontologie et de responsabilité environnementale.
2
12
12
–
Crédits
CM
TD
TP
Anglais
Approfondissement de la langue de spécialité, vocabulaire technique et scientifique. Pratique des cinq compétences : compréhension de l’oral, expression orale en continu, expression orale en interaction, compréhension de l’écrit, expression écrite. Utilisation des documents authentiques et à caractère scientifique.
Prérequis Un niveau B1 en anglais est fortement souhaitable.
Acquis d’apprentissage – Acquérir des connaissances et des compétences en anglais général et de spécialité.
Compétences visées – Communiquer à des fins de formation ou de transfert de connaissances, par oral et par écrit, en français et dans au moins une langue étrangère. – Savoir utiliser le vocabulaire et la grammaire nécessaire à une bonne pratique de l’anglais dans leur spécialité.
2
–
24
–
Crédits
CM
TD
TP
Unités d’enseignement d’approfondissement (3 au choix)
Sécurité des protocoles
Les protocoles cryptographiques sont des programmes visant à sécuriser les communications digitales sur des réseaux ouverts comme Internet. Les exemples de protocoles sont nombreux : protocoles de paiement par carte bancaire, établissement d’un canal sécurisé (par exemple TLS sous-jacent à HTTPS), protocoles de vote électronique, etc. D’apparence simple, ils sont notoirement difficiles à concevoir et les bonnes pratiques actuelles imposent de les vérifier via des analyses formelles rigoureuses. Ce cours présentera des méthodes de modélisation et d’analyse formelle pour des protocoles cryptographiques, basées sur des techniques de déduction automatique et de résolution de contraintes. Nous apprendrons aussi à utiliser un outil d’analyse dédié, tel que ProVerif. Cela pourra prendre la forme d’une mini-compétition entre élèves pour concevoir le protocole le plus robuste et trouver des failles et attaques dans les autres protocoles.
Prérequis Connaissances de base en logique.
Acquis d’apprentissage – Gérer et surveiller le système d’information (connaissance des protocoles, detection de flux malveillants, journalisation, gestion des politiques de sécurité) B1C1 – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) B1C5 – Fonctionnement de différents protocoles (TLS, protocoles de vote électroniques, etc.) – Exemples d’attaques sur ces protocoles et leur impact. – Fondations logiques : Algèbre de termes, théorie équationnelle, clauses de Horn et procédures de résolution. – Apprentissage et utilisation d’un langage formel pour la modélisation des protocoles via l’utilisation d’un outil de preuve dédié. – Concevoir et analyser des protocoles cryptographiques pour les prouver sûr ou trouver des attaques.
Compétences visées – Concevoir, modéliser et d’analyser des protocoles cryptographiques à l’aide d’outils dédiés tels que ProVerif. – Gérer et surveiller le système d’information (connaissance des protocoles, détection de flux malveillants, journalisation, gestion des politiques de sécurité) – Vérifier la sécurité du SI (confidentialité, authentification, intégrité, disponibilité, traçabilité et non répudiation) – Concevoir et développer des systèmes logiciels sûrs et sécurisés – Intégrer des méthodes et techniques formelles de modélisation, d’analyse, de vérification et de validation dans le processus de développement de logiciels critiques.
2
16
8
–
Crédits
CM
TD
TP
Malware
Dans ce cours, nous abordons la problématique des malwares, un souci d’ordre sociétal majeur, et en augmentation. Les infrastructures informatiques demandent maintenant des spécialistes en sécurité capable de prévenir des attaques, et d’analyser les dégâts causés par les malwares. Le cours comporte trois parties : – Construction de codes offusqués, offuscation d’appel de fonction, chiffrement, automodification – Analyse de code binaires offusqués par analyse statique, construction des graphes de contrôle de flot, recherche de boucles de déchiffrement, – Analyse de code binaire par analyse dynamique, utilisation du débuggueur, recherche de clés de déchiffrement. L’évaluation du cours s’appuie sur un contrôle continu et un projet.
Prérequis – Connaissances en langage C. – Connaissances en systèmes d’exploitation.
Acquis d’apprentissage – Connaissances en langage C. – Connaissances en systèmes d’exploitation.
Compétences visées – Maîtriser l’analyse de code binaire, la recherche de propriétés de programmes offusqués, l’analyse comportementale. – Maîtriser la sécurité logicielle et notamment les malwares. – Concevoir et développer des systèmes logiciels sûrs et sécurisés. – Maîtriser des technologies en évolution constante, les méthodes, les outils de conception et de développement de logiciels et de bases de données.
2
16
8
–
Crédits
CM
TD
TP
Protection des données personnelles
Ce cours répond à la question suivante : comment une organisation (par exemple, un hôpital) peut divulguer des données en public sans violer la confidentialité des informations personnelles ? À ce titre, le cours présente les différentes définitions de la vie privée, propose d’étudier les modèles utilisés pour la protéger et donne un aperçu de quelques applications (par exemple, les réseaux sociaux et les bases de données statistiques) sensibles aux risques sur la vie privée. Il présente également des problèmes de recherche encore ouverts dans le domaine de la protection de la vie privée.
Prérequis – Des connaissances de base en probabilités et statistiques. – Des connaissances en algorithmique.
Acquis d’apprentissage – Définitions de la vie privée – Métriques pour évaluer la divulgation de l’information – Modèles pour protéger la vie privée – Pseudonymisation et Anonymisation de données – Attaques par inférence
Compétences visées – Définitions de la vie privée – Métriques pour évaluer la divulgation de l’information – Modèles pour protéger la vie privée – Pseudonymisation et Anonymisation de données – Attaques par inférence
2
16
8
–
Crédits
CM
TD
TP
Réplication de données
Ce module abordera les points suivants : – Présentation des motivations et avantages liés à la réplication de données. – Analyse des modèles de cohérence des données (cohérences stricte, cohérence séquentielle, cohérence causale, cohérence FIFO, cohérence faible, etc.) – Étude des mécanismes de réplication pessimiste utilisés dans les bases de données et les systèmes répartis. Étude des mécanismes de réplication optimiste utilisés dans les systèmes collaboratifs. Plus particulièrement, dans ce cours nous présenterons les mécanismes de réplication utilisés dans les systèmes de gestion de versions (CVS, Subversion), les systèmes de gestion de version distribués (GIT), les synchroniseurs de fichiers et de données (Unison, Harmony) et d’autres systèmes phares de la littérature (Bayou, IceCube, etc.). Nous étudierons également le modèle des transformées opérationnelles utilisé dans des systèmes d’édition collaboratifs tels que GoogleDocs et le modèle de types de données répliquées commutatifs présent dans de nombreuses bases de données telles que celles utilisées par Basho (Riak datastore), Rovio (Angry Birds), TomTom, RiotGames et Bet365.
Prérequis – M1 d’un Master Informatique ou niveau équivalent.
Acquis d’apprentissage – Modèles de cohérence. – Mécanismes de réplication.
Compétences visées – Établir le plan de continuité d’activité (PCA) et les spécifications de plan de résilience des systèmes d’information – Savoir identifier les caractéristiques d’un mécanisme de réplication (optimiste, pessimiste) – Connaître les principaux modèles de cohérence de données – Savoir lire et analyser un article de recherche et le présenter – Savoir mettre en œuvre un mécanisme de synchronisation de données
2
16
8
–
Crédits
CM
TD
TP
Cloud computing
L’objectif général de cette UE est de permettre aux étudiants d’appréhender des infrastructures virtualisées (notamment cloud) en vue d’y déployer des services et applications de manière scalable et sécurisée. – Introduction au cloud (IaaS/PaaS/SaaS, principaux fournisseur de clouds publics et solutions de clouds privés, architecture générale et services typiques). – Gestion des données dans le cloud. – Outils de gestion de configuration (Puppet, Chef ou Ansible) pour le déploiement d’applications. – Outils de Continuous Integration / Continuous Deployment. – Containers pour le déploiement d’applications (y compris orchestration). – Passage à l’échelle & répartition de charge.
Prérequis – Notions d’administration système sous Linux.
Acquis d’apprentissage – Maîtrise des environnements virtualisés.
Compétences visées – Maîtriser tous les aspects de la sécurisation d’un système d’information et notamment tout ce qui relève du contrôle d’accès. – Mettre en œuvre des outils de supervision des systèmes et des réseaux et être capable de monitorer ces systèmes et ces réseaux. – Administrer un système et utiliser des solutions de cloud pour y déployer des services et applications.
2
16
8
–
Crédits
CM
TD
TP
Semestre 10
Stage
Le stage a une durée de 5 mois (20 semaines) minimum. Les sujets des stages de recherche sont proposés par les enseignants-chercheurs, ou chercheurs des laboratoires ou d’autres équipes de recherche partenaires du Master.
30
–
–
–
Crédits
CM
TD
TP
Orientation « Sécurité des Systèmes d’Information (SSI) »
L’orientation « Sécurité des Systèmes d’Information (SSI) » sur le site de Metz est tournée vers les aspects liés à la gouvernance de la sécurité dans les entreprises (audit de sécurité, politique de sécurité, résilience du système d’information, etc.). L’orientation SSI est très axée vers le monde professionnel et s’appuie en particulier sur un réseau d’intervenants issus des entreprises spécialisées de la grande région.
Semestre 9
Unités d’enseignement fondamentales
Unités d’enseignement
Crédits
CM
TD
TP
Sécurité des systèmes d’information
2
16
8
–
Politique de la sécurité d’un système d’information
2
16
8
–
Audit de la sécurité d’un système d’information
2
16
8
–
Identity Access Management
2
16
8
–
Résilience des systèmes d’information
2
16
8
–
Intégration méthodologique SSI
2
–
36
–
Gestion de projet
2
12
12
–
Recherche d’emploi et création d’entreprise
2
12
12
–
Isfates : enseignement interculturel
2
26
4
–
Anglais
2
24
Unités d’enseignement d’approfondissement (3 au choix)
Unités d’enseignement
Crédits
CM
TD
TP
Tests d’intrusion
2
16
8
–
Malware, retro-ingénierie
2
16
8
–
Sécurité des réseaux
2
16
8
–
Sécurité des données
2
16
8
–
Sécurité des systèmes
2
16
8
–
Contrôle d’accès
2
16
8
–
Semestre 10
Professionnalisation
2
12
12
–
Stage
30
–
–
–
Les stages ont une durée de 5 mois (20 semaines) minimum. Dans le cas des stages professionnels, la recherche de stage est laissée à l’initiative des étudiants, sachant qu’une liste des entreprises et administrations ayant déjà accueilli des stagiaires informatiques, ainsi que la liste des sujets traités, est gérée par l’ensemble des équipes pédagogiques. Elle est à la disposition des étudiants qui le souhaitent. Le sujet d’un stage doit impérativement être validé par les responsables du parcours.
Poursuite d’études
Si vous le souhaitez, vous avez la possibilité de poursuivre vos études avec un Doctorat.
Débouchés professionnels
La mention vise à former des professionnels et des chercheurs dans différents secteurs de l’informatique. Les débouchés concernent aussi bien les métiers d’ingénierie que l’enseignement et la recherche.
Parmi les métiers visés on peut citer : cadres de type ingénieur informaticien et chef de projet spécialisés dans le génie logiciel, les applications réparties, les applications mobiles, l’informatique décisionnelle, la sécurité informatique, les systèmes d’information, les systèmes autonomes intelligents; cadres en recherche et développement des centres de recherche privés ou publics.
Les entreprises visées sont des entreprises de services du numérique (anciennement SSII), des éditeurs de logiciel, des cabinets de conseil en informatique, des départements d’étude, de recherche ou développement des entreprises (aérospatial, finance, logistique, électronique,…) et des établissements publics, des instituts de recherche.
Une formation cohérente
Le Master Informatique de la FST de Nancy est reconnu au niveau régional et national.
Vous avez en outre accès aux derniers résultats de la recherche en matière d’informatique.
La première année du master vise, en plus des compétences transversales (communication, gestion et conduite de projet, recherche et innovation,…), des compétences scientifiques et techniques :
C1 : Concevoir des algorithmes et évaluer leur complexité.
C2 : Modéliser des problèmes complexes.
C3 : Proposer des solutions informatiques à des problèmes complexes.
C4 : Concevoir des systèmes logiciels complexes et interactifs.
C5 : Développer la logique métier et les interfaces utilisateurs des applications informatiques.
C6 : Mettre en service et maintenir les applications informatiques.
Selon le parcours choisi en deuxième année, vous développez d’autres compétences spécialisées : • Développer et mettre en service des applications logicielles de confiance • Concevoir et vérifier des logiciels sûrs et sécurisés • Mettre en place une approche centrée utilisateurs dans un projet informatique • Développer des applications interactives avec la mise en place de solutions matérielles et logicielles classiques, récentes ou innovantes • Définir et faire évoluer une politique de sécurité d’un système d’information • Mettre en place des techniques de détection, d’analyse et de prévention des incidents de sécurité informatique • Définir, choisir, paramétrer et mettre en œuvre des modèles d’apprentissage automatique • Concevoir des logiciels pour les systèmes robotiques intégrés • Aborder un problème décisionnel en maîtrisant les problématiques métiers et les outils algorithmiques • Construire et exploiter un Système d’Information (SI) à des fins d’analyse des données et d’aide à la décision
Compétences acquises
Compétences scientifiques et techniques • Ces compétences sont spécifiques à chaque parcours-type
Démarche méthodologique : Développer un système informatique complet • Analyser les besoins du client et de l’utilisateur, et constituer le cahier des charges • Modéliser les problèmes et concevoir des solutions originales et adaptées • Évaluer et caractériser les solutions en termes de faisabilité, d’efficacité, de qualité, … • Mettre en œuvre, valider, vérifier et déployer la solution retenue • Formuler des recommandations pour des évolutions fonctionnelles et assurer des améliorations techniques
Recherche et innovation: explorer une nouvelle problématique et développer des approches de modélisation et de résolution adaptées voire innovantes • Synthétiser l’état de connaissances relatif à une problématique • Analyser l’adéquation et les limites des solutions • Proposer des solutions adaptées et innovantes • Mettre en place des protocoles d’expérimentation et de validation • Valoriser l’apport théorique ou technique des solutions proposées
Gestion et conduite de projet: piloter un projet informatique • S’organiser, travailler et prendre des décisions en équipe • Élaborer un plan de réalisation sur une période limitée avec des objectifs prédéfinis • Réaliser le bilan d’une phase d’expérimentation • Être capable de choisir les actions d’amélioration adaptées au contexte d’un projet
Communication: communiquer efficacement avec les différents acteurs d’un projet informatique • Exposer un travail de manière claire et convaincante • Interagir avec les clients et les utilisateurs, et identifier leurs besoins • Adapter son niveau de langage à ses interlocuteurs • Élaborer et rédiger les documents et les supports techniques
Le Master Informatique s’adresse aux étudiants titulaires d’une Licence Informatique. Il est aussi possible de l’intégrer si vous êtes titulaire d’une autre Licence générale à dominante informatique ou si vous avez un diplôme niveau bac+3 en informatique ou comportant une part suffisante de formation en informatique. L’admission est faite sur dossier.
L’entrée en M2 est possible sur dossier si vous avez validé une première année de Master à dominante Informatique et pour des élèves–ingénieurs de certaines écoles d’ingénieurs qui ont validé des enseignements d’informatique de niveau Master 1.
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site.
Fonctionnel Toujours activé
L’accès ou le stockage technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
L’accès ou le stockage technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’internaute.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
L’accès ou le stockage technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.