Master Informatique

Diplôme de Master Informatique

Parcours Ingénierie Systèmes et Logiciels

Cette page liste les compétences du parcours Ingénierie Systèmes et Logiciels du diplôme de Master Informatique et donne la description détaillée de son programme pédagogique des différents semestres qui le composent.

Autres parcours proposés :

Compétences

Analyser et modéliser un système
Graphes (en anglais) Fondements pour l'info. - calculabilité Infographie Modèles et spécifications Spécification et preuve de programme Test avancé Systèmes cyber-physiques Prog. avancée
Niveau 2
Développer une stratégie de résolution à l'aide de structure de données et d'algorithmes de traitements des graphes
Apporter des solutions efficaces à des problèmes combinatoires
Etablir la complexité et la classe associée pour un programme
Modéliser et animer des objets en 2D et 3D
Maîtriser les techniques de l'informatique graphique permettant d'avoir un rendu élaboré
Niveau 3
Analyser et modéliser un système et automatiser sa vérification
Concevoir et mettre en oeuvre un projet à partir d'une modélisation formelle
Définir et mettre une politique globale de tests
Concevoir des systèmes cyber-physiques
Mettre en oeuvre des paradigmes de programmation fonctionnelle
Réaliser un système
Compilation Projet - Dév. agile de VM Dév. mobile Systèmes comm. et synchro. Théorie de l'IA Prog. d'Applis Multi-tiers Synchronisation distribuée Systèmes distribués Calcul Haute Performance IA distribuée
Niveau 2
Comprendre et utiliser les principes d'interprétation d'un langage
Maîtriser la conception et la réalisation d'une application communicante pour plate-forme mobile
Maitriser et gérer la concurrence dans les applications centralisées
Développer des applications communicantes
Niveau 3
Maîtriser le rôle des données pour l'IA
Identifier et utiliser une méthode d'IA pour résoudre un problème
Maitriser la conception et la réalisation d'applications multi-tiers
Développer des applications communicantes distribuées
Maitriser et gérer la concurrence dans les applications
Concevoir des algorithmes sur architectures parallèles et distribuées
Concevoir et implanter des algorithmes d’intelligence artificielle distribuée
Administrer des systèmes informatiques communicants complexes
  • en mettant en place les éléments de sécurité et de sureté de fonctionnement du système
    UEs : Réseaux
  • en choisissant le type de réseaux et moyens de communications adéquat
    UEs : Réseaux
  • mettant en place les moyens d'identifier et d'anticiper les évolutions fonctionnelles et techniques
    UEs : Réseaux
  • en identifiant les besoins et les risques, administrer le système
    UEs : Réseaux
Réseaux
Niveau 2
Structurer et configurer un réseau
Comprendre l'acheminement et la représentation de l'information dans un réseau
Gérer un projet en groupe et communiquer
Génie Logiciel Compilation Projet - Dév. agile de VM Anglais Tests fonctionnels Projet Test Fonctionnel d'Applis Multi-tiers
Niveau 2
Appliquer les méthodes de génie logiciel pour le pilotage de projets
Utiliser une chaine outillée de production logiciels et en assurer la qualité
Mettre en oeuvre les principes d'interprétation d'un langage
Communiquer en langue anglaise dans le cadre professionnel
Niveau 3
Mettre en œuvre des tests fonctionnels pour la qualité du logiciel
Concevoir, développer et valider une application multi tiers
Identifier et connaître son milieu professionnel
Projet Personnel et Professionnel Info. responsable Atelier projet professionel et conférences Projet semestriel Stage
Niveau 2
Se situer et ajuster son positionnement dans les différentes perspectives d'insertion professionnelle
Gérer en autonomie son projet personnel et professionnel
Construire une vision critique de l'impact du numérique sur l'environnement
Connaître son environnement professionnel
Niveau 3
Mener un projet informatique complexe à plusieurs
S’initier à une démarche scientifique

Programme pédagogique

Master 1ère année - Semestre 7 (tous parcours)

Fondements pour l'informatique - calculabilité
 ECTShCMhTDhTP
Description

Ce cours est une introduction à la calculabilité où sera étudié les principales classes de complexité de problèmes, avec un focus particulier sur les problèmes NP-complets. L'approche se fera en lien avec la théorie des langages en utilisant des machines de Turing et des modèles plus classique d'algorithmique.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Identifier un problème NP-complet
  • Aborder sa résolution par utilisation de SAT solver
  • Aborder sa résolution en utilisant un solveur linéaire

Mots-clés : Décidabilité, classes de complexité, problèmes NP-complets, solveurs

Compétence associée : Analyser et modéliser un système

  • en identifiant les données, structurer et organiser celles-ci

Apprentissages critiques

  • Etablir la complexité et la classe associée pour un programme
Compilation & Génie Logiciel
Compilation
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Définir les différents niveaux de langage
  • Réaliser la sémantique interprétative d'un langage
  • Citer les paradigmes existants dans les langages de programmation
  • Réaliser et prouver la validité des règles de compilations pour passer d'un langage à un autre
  • Identifier les problèmes d'optimisation suivant l'architecture cibles

Mots-clés : compilateur, gramaires, préservation sémantique, sémantique interprétative

Compétence associée : Réaliser un système

  • en identifiant et en choisissant le langage/paradigme de programmation approprié

Apprentissages critiques

  • Comprendre et utiliser les principes d'interprétation d'un langage
Génie Logiciel
 ECTShCMhTDhTP
Description

Ce module traite du processus de développement du logiciel et de la qualité du logiciel. Le module commence par présenter la notion qualité du logiciel (norme ISO 25010), puis nous abordons les cycles de vie du logiciel (en V et Agile). La méthode de développement SCRUM est ensuite détaillée, avec mise en pratique des outils de développement en Agile (gestion des projets en Agile, Intégration continue, suivi de la qualité du développement). Pour finir, nous verrons les fondements des tests logiciels, sur la base du syllabus ISTQB 4.0 incluant les aspects pratiques de différentes techniques de test logiciel et de leur automatisation.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Créer un ensemble d'exigences pour un développement logiciel
  • Définir et savoir mettre en place une stratégie de test
  • Déployer l'approche de développement Agile (SCRUM) sur un projet
  • Utiliser une chaine outillée de production logiciels et de mesure de qualité

Mots-clés : Génie logiciel, méthodes agiles, SCRUM, travail en équipe

Compétence associée : Gérer un projet en groupe et communiquer

  • en planifiant les étapes du projet
  • en mettant en place une organisation et en environnement technique
  • en réalisant un suivi basé sur des éléments factuels types métriques

Apprentissages critiques

  • Appliquer les méthodes de génie logiciel pour le pilotage de projets
  • Utiliser une chaine outillée de production logiciels et en assurer la qualité
Projet - Développement agile de VM
 ECTShCMhTDhTP
Description

Ce projet vise à mettre en oeuvre les concepts vu dans les modules de Génie Logiciel et de Compilation. Il permet à travers le travail effectué par groupe de plusieurs étudiants de réaliser un environnement complet de développement et d'exécution des langages servant d'illustration dans le cours de Compilation. La réalisation se fait suivant les principes de l'agilité et les outils professionnels de développement logiciel (gestionnaire de tickets, de version, intégration continue et de livraison continue).

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Réaliser et prouver la validité des règles de compilations pour passer d'un langage à un autre
  • Réaliser la sémantique interprétative d'un langage
  • Créer un ensemble d'exigences pour un développement logiciel
  • Définir et savoir mettre en place une stratégie de test
  • Déployer l'approche de développement Agile (SCRUM) sur un projet
  • Utiliser une chaine outillée de production logiciels et de mesure de qualité
  • Rédiger des documents (techniques) clairs et concis et les présenter

Mots-clés : Génie logiciel, compilateur, méthodes agiles, travail en équipe

Compétence associée : Réaliser un système

  • en identifiant et en choisissant le langage/paradigme de programmation approprié

Apprentissages critiques

  • Comprendre et utiliser les principes d'interprétation d'un langage
Réseaux
 ECTShCMhTDhTP
Description

Les étudiants qui suivent ce cours ont déjà reçu une formation de base en réseaux. Cette formation permet d'aborder des notions pratiques et largement utilisées dans les réseaux : VLAN, NAT, Réseaux sans fils, Proxy, IPv6, Internet des objets. Le cours permet d'aborder aussi l'ingénierie des réseaux, à savoir la conception et l'analyse d'un réseau de A à Z. Cela permet donc d'avoir une connaissance solide sur le fonctionnement des réseaux. Nous utilisons le modèle OSI pour aider à la compréhension des protocoles. Les travaux dirigés permettent de mettre en oeuvre la théorie du cours et les travaux pratiques se font sur des équipements réseaux réels mais aussi sur des émulateurs.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Identifier et configurer les éléments actifs d'un réseau (routeur, commutateur...)
  • Construire un plan IP
  • Comprendre le fonctionnement et le cheminement des informations dans les réseaux suivant les protocoles
  • Vérifier la validité d'un réseau

Mots-clés : NAT, proxy, VLAN, routage, protocoles

Compétence associée : Administrer des systèmes informatiques communicants complexes

  • en mettant en place les éléments de sécurité et de sureté de fonctionnement du système
  • en choisissant le type de réseaux et moyens de communications adéquat
  • mettant en place les moyens d'identifier et d'anticiper les évolutions fonctionnelles et techniques
  • en identifiant les besoins et les risques, administrer le système

Apprentissages critiques

  • Structurer et configurer un réseau
  • Comprendre l'acheminement et la représentation de l'information dans un réseau
Développement mobile
 ECTShCMhTDhTP
Description

Ce module a pour objectif de donner les connaissances et les techniques pour être capable de développer une application mobile. La plateforme Android (Développement en Java avec Android Studio) est ciblée avec la mise à disposition de tablettes. Les solutions multi-plateformes (iOS, Android, etc.) et natives seront présentées, notamment les applications web progressives (PWA).

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Maîtriser la conception et la réalisation d'une application communicante pour plate-forme mobile
  • Concevoir ou réutiliser une architecture MVC (Modèle Vue Contrôleur) ou ses variantes

Mots-clés : Android, Web mobile, framework

Compétence associée : Réaliser un système

  • en lien avec des architectures spécifiques

Apprentissages critiques

  • Maîtriser la conception et la réalisation d'une application communicante pour plate-forme mobile
Graphes (en anglais)
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Développer une stratégie de résolution à l'aide de structure de données et d'algorithmes de traitements des graphes
  • Identifier les problèmes assimilables à des problèmes de graphe
  • Comparer les solutions (à l'aide de calcul de complexité)
  • Rédiger des algorithmes à un niveau d’abstraction logico-mathématique

Mots-clés : Algorithm design, types of graphs, data structures, graph algorithms

Compétence associée : Analyser et modéliser un système

  • en identifiant les données, structurer et organiser celles-ci
  • en identifiant les processus et en établissant l'architecture répondant à ceux-ci
  • en définissant les paradigmes adaptés à la gestion du problème

Apprentissages critiques

  • Développer une stratégie de résolution à l'aide de structure de données et d'algorithmes de traitements des graphes
  • Apporter des solutions efficaces à des problèmes combinatoires

Master 1ère année - Semestre 8 (non-alternants)

Théorie de l'IA
 ECTShCMhTDhTP
Description

Ce cours est dédié à la thématique de l'intelligence artificielle (IA) telle qu'utilisée actuellement par les grandes entreprises et les laboratoires de recherche. Après un aperçu de l'historique et des origines de l'IA, les méthodes modernes d'apprentissage machine (machine learning) et d'apprentissage profond (deep learning) sont expliquées, les principaux algorithmes qui en constituent le fondement sont détaillés.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Maîtriser le processus de gestion des données pour l'IA
  • Comprendre les usages des différentes approches de classification et régression
  • Analyser les résultats obtenus et le niveau de confiance dans ceux-ci
  • Résoudre des problèmes de classification et de régression
  • Savoir faire une veille des évolutions et usages des approches du cours

Mots-clés : machine learning, deep learning, Tensorflow, Pytorch, Keras

Compétence associée : Réaliser un système

  • en utilisant une approche à base d'IA pour représenter ou traiter le problème

Apprentissages critiques

  • Maîtriser le rôle des données pour l'IA
  • Identifier et utiliser une méthode d'IA pour résoudre un problème
Initiation à la recherche
 ECTShCMhTDhTP
Description

Ce module s'attache à résoudre les interrogations suivantes : Quelle est la nature de la recherche ? Quels sont les fondements communs, indépendamment du domaine spécifique en informatique ? Comment mettre en œuvre une démarche de recherche ? Quels sont les moyens et ressources nécessaires, que ce soit la littérature grise ou les jeux de données ? Quelles sont les considérations éthiques à prendre en compte ? Les étudiants auront l'opportunité de mettre en pratique les concepts abordés dans ce questionnement, notamment l'analyse d'articles, la restitution de résultats, et la réalisation d'expérimentations reproductibles. Ils travailleront sur une thématique préalablement choisie en début d'année au sein du laboratoire FEMTO-ST, qui soutient ces enseignements.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Savoir lire et analyser un article scientifique
  • Identifier un ensemble de ressources bibliographiques en lien avec un sujet de recherche
  • Comprendre les mécanismes et les principes de la recherche scientifique
Projet Personnel et Professionnel
 ECTShCMhTDhTP
Description

Le module prépare les étudiants au marché du travail avec des activités telles que le bilan de compétences, la recherche de stages, la préparation de CV et de lettres de motivation, ainsi que des simulations d'entretiens. L'objectif est de faciliter leur transition vers la carrière professionnelle.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Maîtriser la recherche d'emploi et l'entretien d'embauche
  • Veiller, se situer dans les différentes perspectives d'insertion professionnelle
  • Communiquer de manière appropriée en milieu professionnel
  • Gérer en autonomie son projet personnel et professionnel

Compétence associée : Identifier et connaître son milieu professionnel

  • en identifiant des contextes professionnels variés ou complexes, se situer
  • en tenant compte des métiers savoir s'évaluer

Apprentissages critiques

  • Se situer et ajuster son positionnement dans les différentes perspectives d'insertion professionnelle
  • Gérer en autonomie son projet personnel et professionnel
Option au choix (1 UE parmi 3)
Infographie
 ECTShCMhTDhTP
Description

L'objectif de ce cours en informatique graphique est de permettre aux étudiants de comprendre et maîtriser les modèles et les algorithmes dans ce domaine. Ils apprendront à développer et à utiliser les outils logiciels nécessaires à la création d'applications de rendu 3D d'un grand réalisme visuel.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Modéliser géométriquement un affichage 3D
  • Savoir placer des matériaux et des textures
  • Concevoir un modèle d'éclairage
  • Maîtriser les techniques de l'informatique graphique permettant de développer des modèles de rendu élaboré
  • Animer une scène 3D

Mots-clés : modélisation 3D, OpenGL, algorithmes de rendu, calcul d'illumination

Compétence associée : Analyser et modéliser un système

  • en identifiant les données, structurer et organiser celles-ci
  • en définissant les paradigmes adaptés à la gestion du problème
  • en choisissant une modélisation assurant la sécurité/sûreté/efficacité du système et des données

Apprentissages critiques

  • Modéliser et animer des objets en 2D et 3D
  • Maîtriser les techniques de l'informatique graphique permettant d'avoir un rendu élaboré
Programmation avancée
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Analyser les similitudes et différences de mises en oeuvre de différents langages de programmation
  • Acquérir une vision synthétique de la programmation
  • S'initiatier à des techniques utilisées en programmation en logique et avec contraintes

Compétence associée : Analyser et modéliser un système

  • en définissant les paradigmes adaptés à la gestion du problème

Apprentissages critiques

  • Mettre en oeuvre des paradigmes de programmation fonctionnelle
Projet d'initiation à la recherche
 ECTShCMhTDhTP
Description

Cette UE vise à concrétiser le travail de recherche des étudiant·e·s au sein d'une équipe du département DISC de FEMTO-ST. Les étudiant·e·s sélectionnent un sujet de recherche parmi les propositions des équipes, et il·elle·s travaillent sur ce sujet avec un encadrement assuré par un·e enseignant·e-chercheur·se. Ce travail s'étend sur tout un semestre, impliquant une journée de travail par semaine. Un travail régulier et progressif est exigé. Cela inclut la rédaction de documents intermédiaires, la publication de codes sur un git, la rédaction d'un rapport final. L'évaluation repose sur une soutenance orale des travaux, l'examen du rapport final et l'avis de l'encadrant concernant le travail accompli.

Systèmes communicants et synchronisés
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Maîtriser la programmation des applications en réseau, pour les systèmes client(s)/serveur(s)
  • Maîtriser le processus de conception et de développement d'un protocole de communication
  • Maîtriser le développement des application concurrentes
  • Réaliser les différents types de synchronisation compétitive et coopérative

Compétence associée : Réaliser un système

  • en lien avec des architectures spécifiques
  • en implémentant le système pour en garantir la synchronisation et les interactions

Apprentissages critiques

  • Maitriser et gérer la concurrence dans les applications centralisées
  • Développer des applications communicantes
Spécification et preuve de programme
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Connaître les différents paradigmes de langages de spécification pour l'annotation de programmes
  • Utiliser les langages de spécification pour annoter et prouver des petits programmes
  • Positionner les activités de preuves et de test de programme
  • Savoir intégrer la démarche dans le développement de programmes (C et Java)

Mots-clés : vérification déductive, logique de hoare, spécification par contrats, outils de preuve

Compétence associée : Analyser et modéliser un système

  • en choisissant une modélisation assurant la sécurité/sûreté/efficacité du système et des données

Apprentissages critiques

  • Concevoir et mettre en oeuvre un projet à partir d'une modélisation formelle

Master 2e année - Semestre 9 (tous parcours)

Ingénierie Logicielle (tronc commun)
Programmation d'Applications Multi-tiers
 ECTShCMhTDhTP
Description

Ce cours présente les techniques et outils pour architecturer des applications multi-tiers, c'est-à-dire des applications constituées de multiples sous applications communicantes : (i) basées sur de multiples technologies (Spring, Angular, IOT) ; (ii) organisées et réparties sur des plateformes distribuées et hétérogènes (Serveur, terminaux mobiles, etc.)

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Initiation à la programmation d'applications multi-tiers, aux techniques et outils permettant d'assurer l'interopérabilité entre applications web, mobiles et conventionnelles
  • Développer une application multi-plate-forme, multi-terminal répondant à un besoin commercial

Compétence associée : Réaliser un système

  • en implémentant le système pour en garantir la sécurité/sûreté/efficacité de fonctionnement
  • en utilisant une approche à base d'IA pour représenter ou traiter le problème

Apprentissages critiques

  • Maitriser la conception et la réalisation d'applications multi-tiers
Tests fonctionnels
 ECTShCMhTDhTP
Description

Ce module permet de comprendre les enjeux de la mise en oeuvre d'une démarche de validation basée sur les tests fonctionnels. Il présente les différentes méthodes permettant d'établir les pas de tests, sélectionner les données et établir l'oracle du test.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Gérer les exigences
  • Définir et mettre en oeuvre des tests fonctionnels
  • Gérer un référentiel de tests et des anomalies
  • Exécuter des tests

Compétence associée : Gérer un projet en groupe et communiquer

  • en garantissant le bon fonctionnement

Apprentissages critiques

  • Mettre en œuvre des tests fonctionnels pour la qualité du logiciel
Projet Test Fonctionnel d'Applications Multi-tiers
 ECTShCMhTDhTP
Description

Ce module propose un projet permettant de mettre en oeuvre la réalisation d'une application multi-tiers et sa validation. Il permet à travers la mise en place d'un groupe d'étudiants de réaliser l'ensemble des étables : explicitation des exigences, réalisation des tests d'acceptation, des tests unitaires, des tests fonctionnels et bien sûr la réalisation applicative.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • En équipe, de concevoir et développer une application distribuée conséquente reposant sur les technologies du marché
  • Rédiger un cahier des charges et une documentation technique

Compétence associée : Gérer un projet en groupe et communiquer

  • en planifiant les étapes du projet
  • en mettant en place une organisation et en environnement technique
  • en communiquant (en langue anglaise) à l’oral et à l'écrit et en élaborant des documents techniques et/ou réglementaires dans cette langue

Apprentissages critiques

  • Concevoir, développer et valider une application multi tiers
UEs au choix (2 groupes parmi 4)
UE thématiques équipe DEODIS - Groupe 1
Calcul Haute Performance
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Comprendre le fonctionnement des systèmes parallèles et distribués pour une programmation efficace/ connaître et être capable d’identifier les architectures matérielles pour le calcul parallèle
  • Choisir de manière adéquate le modèle de programmation pour exploiter les machines parallèles contemporaines et des systèmes distribués et parallèles
  • Concevoir des algorithmes performants sur architectures parallèles et distribuées
  • Evaluer des applications parallèles et distribuées

Compétence associée : Réaliser un système

  • en lien avec des architectures spécifiques
  • en implémentant le système pour en garantir la synchronisation et les interactions

Apprentissages critiques

  • Concevoir des algorithmes sur architectures parallèles et distribuées
IA distribuée
 ECTShCMhTDhTP
Description

Découverte de différents outils du paradigme de l'IA et de l'IA Distribuée.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Installer des environnements de développement de ML
  • Manipuler des jeux de données
  • Employer des algorithmes de résolution de problèmes de classification
  • Rechercher ou analyser des problèmes spécifiques

Compétence associée : Réaliser un système

  • en utilisant une approche à base d'IA pour représenter ou traiter le problème
  • en implémentant le système pour en garantir la synchronisation et les interactions

Apprentissages critiques

  • Concevoir et implanter des algorithmes d’intelligence artificielle distribuée
UE thématiques équipe DEODIS - Groupe 2
Systèmes distribués
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • concevoir et de développer des solutions distribuées
  • communicantes sur des plateformes hétérogènes composées de plusieurs ordinateurs distants
  • interroger un serveur LDAP pour obtenir des informations spécifiques
  • mettre en place un système de stockage distribué répondant à un besoin particulier
  • créer et gérer des conteneurs offrant des services que l'on recherche

Compétence associée : Réaliser un système

  • en implémentant le système pour en garantir la synchronisation et les interactions

Apprentissages critiques

  • Maitriser et gérer la concurrence dans les applications
Synchronisation distribuée
 ECTShCMhTDhTP
Description

Les systèmes distribués sont les systèmes de demain mais leur maîtrise demande une expertise spécifique. En effet les problèmes inhérents à ces systèmes sont très différents des problèmes classiques de l'informatique centralisée. Le cours aborde le contrôle de la synchronisation au sein des systèmes distribués comme une introduction aux problématiques algorithmiques induites par la distribution des processus au sein d'un réseau.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Mettre en oeuvre la synchronisation distribuée nécessaire dans un développement logiciel sur une plate-forme distribuée permettant l'échange de messages
  • Identifier les principaux algorithmes de synchronisation et leur domaine d'application
  • Adapter un algorithme à un cas d'application spécifique
  • Concevoir un algorithme distribué pour résoudre un problème spécifique
  • Montrer/démontrer les propriétés du contrôle d'un algorithme en s'appuyant sur les caractéristiques du système distribué visé
  • Synchroniser des applications/processus/threads distribués sur un réseau

Compétence associée : Réaliser un système

  • en lien avec des architectures spécifiques
  • en implémentant le système pour en garantir la synchronisation et les interactions

Apprentissages critiques

  • Développer des applications communicantes distribuées
UE thématiques équipe VESONTIO - Groupe 1
Modèles et spécifications
 ECTShCMhTDhTP
Description

Le cours est dédié à des problématiques générales de vérification et de validation à base de modèles (spécification, vérification par model-checking ou vérification/validation avec des relations). Dans ce cadre, le cours présente la partie conception de modèles vérifiés ou validés automatiquement, pour notamment conserver des propriétés lors d'un développement ou pour engendrer des tests.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Modéliser des systèmes, y compris des systèmes distribués, par des modèles centralisés et/ou distribués
  • Exprimer leurs propriétés en Logique Temporelle Linéaire, ou en termes de relations entre spécifications /implémentations
  • Automatiser la vérification de propriétés des modèles

Compétence associée : Analyser et modéliser un système

  • en appréhendant les besoins réaliser et formaliser le cahier des charges

Apprentissages critiques

  • Analyser et modéliser un système et automatiser sa vérification
Test avancé
 ECTShCMhTDhTP
Description

Le Model-Based Testing (MBT) est une approche innovante du test qui utilise la modélisation (par exemple des processus métier) pour analyser, concevoir et implémenter les cas de test et tracer les liens entre les exigences et les tests. Ce cours apporte des connaissances et des compétences sur cette approche de test, permettant d'être plus efficace dans la création et la maintenance des tests fonctionnels pour les applications logicielles. Il s'agit en particulier de faciliter la création et la maintenance des scripts de test automatisés (pour les applications Web ou Client-lourd). Pour compléter, le module abordera l'utilisation d'artefacts annexes, comme les propriétés temporelles ou les langages de contrats, pour guider la génération des tests et/ou renforcer l'établissement du verdict de test.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Savoir gérer les exigences
  • Définir et mettre en oeuvre des tests fonctionnels
  • Gérer un référentiel de tests et des anomalies
  • Exécuter de tests

Compétence associée : Analyser et modéliser un système

  • en appréhendant les besoins réaliser et formaliser le cahier des charges
  • en choisissant une modélisation assurant la sécurité/sûreté/efficacité du système et des données

Apprentissages critiques

  • Définir et mettre une politique globale de tests
UE thématiques équipe VESONTIO - Groupe 2
Systèmes cyber-physiques
 ECTShCMhTDhTP
Description

Dans le cadre général de Systèmes Cyber-Physiques (SCP), le cours présente d'abord le cycle MAPE-K pour leur développement, avec les différentes étapes pour monitorer, analyser, planifier et exécuter les actions par le système (MAPE), en y intégrant les connaissances (K). Dans ce contexte, des exigences spécifiques aux SCP sont étudiées, et des méthodes pour leur spécification et validation sont présentées. Le module introduit également les problèmes de compatibilité, d'interopérabilité et d'adaptation dynamique des SCP, ainsi que des approches pour les garantir. Ces différents aspects sont illustrés sur des exemples de SCP (convoyeur à jets d'air, système énergétique hybride embarqué dans un véhicule, etc).

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Maîtriser le cycle MAPE-K de développement des CPS
  • Savoir spécifier des contraintes sur des configurations des CPS et les résoudre efficacement
  • Maîtriser une approche d'adaptation dynamique des CPS au moins

Compétence associée : Analyser et modéliser un système

  • en identifiant les processus et en établissant l'architecture répondant à ceux-ci

Apprentissages critiques

  • Concevoir des systèmes cyber-physiques
Systèmes critiques
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Développer un application cliente (terminal) en Java et l'applet JavaCard associée
  • Écrire du code de manière défensive
  • Modéliser et vérifier des systèmes temporisés ou réactifs
Informatique responsable
 ECTShCMhTDhTP
Description

L'objectif du module est d'étudier l'articulation du secteur de l'informatique et des technologies du numérique vis-à-vis des différentes crises environnementales et sociétales que connaît le monde actuel. Par l'étude de différentes techniques sous l'angle éthique, le module explore différents outils, leurs impacts, ainsi que des approches pour y remédier. Le module s'inscrit dans une logique actuelle face aux enjeux contemporains, mais aussi de prospection et d'anticipation afin de former les étudiants aux problématiques naissantes et les solutions qui commencent à se dessiner.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • introduire aux impacts éthiques (environnementaux, sociétaux et sanitaires) dans le secteur de l'informatique
  • former aux outils de mesures et de réduction des impacts environnementaux
  • construire une vision critique éclairée sur les discours officiels et médiatiques sur le numérique
  • préparer aux métiers du domaine dans un futur où les contraintes de disponibilité sont devenues fortes
  • comprendre des problématiques complexes de durabilité dans le numérique

Compétence associée : Identifier et connaître son milieu professionnel

  • en appréhendant des problématiques complexes de durabilité dans le numérique

Apprentissages critiques

  • Construire une vision critique de l'impact du numérique sur l'environnement
Optimisation
 ECTShCMhTDhTP
Description

Le module a pour but d'introduire à quelques techniques permettant de concevoir des algorithmes d'approximation pour des problèmes d'optimisation. On s'intéressera également aux techniques de preuve que l'on peut déployer pour analyser ces algorithmes. Dans un second temps, on abordera le contexte de l'ordonnancement sur systèmes distribués en appliquant certains de ces résultats et en s'intéressant aux spécificités de ces systèmes.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Concevoir et analyser des algorithmes d'approximation pour des problèmes d'optimisation combinatoire
  • Mettre en place des approches algorithmiques pour l'ordonnancement dans le contexte des systèmes parallèles
Anglais
 ECTShCMhTDhTP
Description

Ce module aborde le langage et la communication avancés associés à la lecture et à la rédaction de textes et de documents scientifiques, techniques et d'ingénierie, ainsi qu'à la présentation d'exposés oraux. L'accent sera mis sur les sujets relatifs à l'informatique, y compris le vocabulaire approprié pour les logiciels, le matériel, les systèmes, l'intelligence artificielle, etc. Les principaux sujets abordés sont les suivants : rédaction scientifique et technique, astuces pour une lecture efficace de documents techniques en anglais, compétences en matière de présentation orale, anglais professionnel, vocabulaire et terminologie informatiques spécialisés, préparation à un test de maîtrise de la langue anglaise (par exemple TOEIC)

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Communiquer à l'écrit et à l'oral dans un environnement professionnel (réalisation de poster, présentation orale, discussion de travail)
  • Connaitre le format des épreuves certificatives, les situations présentées, le vocabulaire utilisé
  • Mettre en oeuvre un programme d'entraînement régulier

Compétence associée : Gérer un projet en groupe et communiquer

  • en communiquant (en langue anglaise) à l’oral et à l'écrit et en élaborant des documents techniques et/ou réglementaires dans cette langue

Apprentissages critiques

  • Communiquer en langue anglaise dans le cadre professionnel

Master 2e année - Semestre 10 (non-alternants)

Personnaliser son parcours professionnel
Atelier projet professionel et conférences
 ECTShCMhTDhTP
Description

Les conférences sont réalisées par des professionnels de l'informatique lors de 6 sessions d'une demi-journée, qui sont complétées par deux ateliers d'une demi-journée également. Les conférences ont pour vocation soit de présenter un domaine technologique de l'informatique d'intérêt pour les étudiants du Master, soit de témoigner d'un parcours professionnel, de rôles et d'activités permettant aux étudiants d'appréhender de façon plus précise les différentes carrières et métier de l'informatique. Les ateliers visent à projeter l'étudiant dans le contexte professionnel, tel que décrit par les conférenciers, afin de dresser un bilan de leurs propres motivations et compétences, et de s'exercer aux techniques de communication pour les valoriser dans le cadre d'une recherche de stage ou d'emploi.

Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Appréhender différents contextes de l'Informatique et d'intérêt pour les étudiants, tels que la mise en œuvre de politique de sécurité Informatique, les pratiques du test logiciel, ou les pratiques de l'agilité
  • Appréhender les parcours de carrière autour des métiers d'ingénieur de développement logiciel, d'ingénieur test de logiciel et de chef de projet
  • Collecter et organiser les preuves de ses motivations et compétences afin de mieux valoriser son profil et rendre sa communication plus performante dans le cadre d'une recherche de stage ou d'emploi

Compétence associée : Identifier et connaître son milieu professionnel

  • en identifiant des contextes professionnels variés ou complexes, se situer

Apprentissages critiques

  • Connaître son environnement professionnel
Projet semestriel
 ECTShCMhTDhTP
Objectifs pédagogiques

A l'issue du module, l'étudiant(e) sera capable de :

  • Décrire une solution technique à un problème concret.

Compétence associée : Identifier et connaître son milieu professionnel

  • en mobilisant les savoirs informatiques pouvoir répondre aux besoins du client

Apprentissages critiques

  • Mener un projet informatique complexe à plusieurs
Stage
 ECTShCMhTDhTP
Description

Stage en entreprise (finalité professionnelle) ou en laboratoire (finalité recherche)

Compétence associée : Identifier et connaître son milieu professionnel

  • en maintenant une veille sur les évolutions technologiques et scientifiques

Apprentissages critiques

  • S’initier à une démarche scientifique