Master Informatique

Diplôme de Master Informatique

Parcours Ingénierie Systèmes et Logiciels en alternance

Cette page liste les compétences du parcours Ingénierie Systèmes et Logiciels en alternance 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
 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
Théorie des graphes et combinatoire (EAD)
 ECTShCMhTDhTP
Description

Cette UE a pour objectif la mise en relation des techniques avancées d'algorithmique et de la combinatoire. Du point de vue algorithmique, après avoir découvert l'algorithmique de contrôle en début de cursus informatique, puis l'algorithmique sur les données et les structures complexes (listes, files, piles, tas, arbres), et enfin l'algorithmique objet, cette UE porte sur l'algorithmique liée plus particulièrement aux graphes.

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

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

Mémoire période 1 en entreprise
 ECTShCMhTDhTP
Description

Mémoire et soutenance correspondant à la première période en entreprise (de janvier à juin)

Informatique responsable (EAD)
 ECTShCMhTDhTP
Informatique graphique (EAD)
 ECTShCMhTDhTP
Description

Le but de l'UE d'informatique graphique est de démontrer les bases de ce domaine et le fonctionnement des bibliothèques graphiques. Une scène est composée d'un ensemble d'objets et de lumières. Nous devons donc modéliser les objets puis le placer dans la scène avec les éclairages correspondants. Ceci étant réalisé, la scène doit être projetée sur l'écran de façon rapide.

Méthodes et outils pour l'IA (EAD)
 ECTShCMhTDhTP
Description

L'intelligence artificielle est une expression souvent employée en littérature ou au cinéma pour désigner des entités informatiques capables de penser. Même si la finalité pourrait se résumer à cela, le terme regroupe l'ensemble des moyens pour y parvenir. Dans ce cours, nous présentons un certain nombre de modélisations de l'information et de méthodes de résolution utilisées en intelligence artificielle.

Synchonisation et communication (EAD)
 ECTShCMhTDhTP
Description

Le but de cette UE est d'acquérir des compétences dans la maîtrise du développement d'applications et de services en réseau, principalement du point de vue des problématiques de communication. Nous abordons donc les différents aspects liés à la communication entre programmes et leur mise en œuvre sur différents supports de communication.

Master 2e année - Semestre 9 (alternants)

Ingénierie Logicielle (tronc commun)
 ECTS
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
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
Configuration du logiciel (EAD)
 ECTShCMhTDhTP
Description

Dans le cadre général d'architectures logicielles, le cours présente d'abord le processus d'ingénierie de la ligne de produits logiciels standard, permettant des configurations variées. Dans ce contexte, la variabilité logicielle peut être spécifiée en utilisant des formules de la logique booléenne sur les briques de base, leurs caractéristiques et leurs dépendances (feature models). L'évolution de configurations et leur comportement dynamique peut être exprimé par un formalisme avec des annotations permettant la gestion de variabilité. Ces différents aspects sont illustrés sur des exemples de (dynamic) software product lines, services et applications dans le cloud, etc.

Cyber-sécurité (EAD)
 ECTShCMhTDhTP
Description

Cette UE vise l'acquisition de connaissances sur les questions de vulnérabilité des applications Web, d'analyse de risque de sécurité et de techniques de test de sécurité.

UEs au choix (2 parmi 3)
 ECTS
Ingénierie des exigences (EAD)
 ECTShCMhTDhTP
Description

Cette UE couvre les concepts et les pratiques de l'ingénierie des exigences, que ce soit dans un cycle de développement par phase (type cycle en V) ou dans un cycle de développement itératif et incrémental (type agile). L'ingénierie des exigences concerne l'expression de besoins dans le cadre d'un projet logiciel, avec des phases de collecte, d'analyse, de spécification et de validation & vérification de ces exigences.

Spécification et preuve de programme (EAD)
 ECTShCMhTDhTP
Description

Cet enseignement présente différents contextes d'application d'une approche logique en informatique. On y apprend notamment à formaliser des énoncés dans diverses logiques formelles (propositionnelle, du premier ordre, de Hoare, de typage, etc), à concevoir, construire et présenter rigoureusement des raisonnements dans ces logiques, puis à utiliser des logiciels d'aide à la mécanisation de ces démonstrations, comme Cubicle, Why3 ou Coq.

Machine Learning (EAD)
 ECTShCMhTDhTP
Description

Ce module présentera le paradigme de l'apprentissage machine, ses fondements, la manière dont une architecture doit être conçue pour répondre à un problème posé spécifique. Comment structurer les données, comment s'appuyer sur une architecture existante et la personnaliser, comment analyser un apprentissage et quels outils mettre en place pour analyser et optimiser ses performances seront autant de questions abordées dans ce module. Plusieurs exercices pratiques seront proposés dans ce sens.

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

Management des hommes (EAD)
 ECTShCMhTDhTP
Description

Ce cours fournit les outils de base relatifs à ce domaine de la gestion en matière de recrutement, d'appréciation du personnel, de formation, de rémunération. Il s'agit également d'ouvrir des pistes de réflexion utiles à l'action.

UEs au choix (2 parmi 3)
 ECTS
Systèmes et algorithmes distribués (EAD)
 ECTShCMhTDhTP
Description

Le but de cette UE est d'acquérir des compétences dans la maîtrise du développement d'applications et de services en réseau, principalement du point de vue des problématiques de communication et de synchronisation. Nous abordons donc les différents aspects liés à la communication entre programmes, leur mise en œuvre sur différents supports de communication, et à la synchronisation entre processus distribués.

Vérification à base d'automates (EAD)
 ECTShCMhTDhTP
Description

L'objectif de cette UE est d'approfondir la notion d'automate, particulièrement dans le cadre de la modélisation et de la vérification des systèmes. En effet, pour des raisons d'expressivité et d'algorithmique, de nombreuses approches formelles de la modélisation et de l'analyse des systèmes s'appuient sur des graphes finis enrichis, en marquant les états et les transitions. On obtient alors différents modèles d'automates finis étendus, pour lesquels il est nécessaire de maintenir un équilibre entre expressivité et complexité algorithmique des différents problèmes. En parallèle, il convient d'utiliser des logiques compatibles afin de décrire les propriétés voulues.

Test non fonctionnel (EAD)
 ECTShCMhTDhTP
Description

Cette UE a pour objectif de présenter plusieurs aspects, techniques ou méthodes innovantes, de test non fonctionnel. Elle présente différentes problématiques non strictement fonctionnelles, incluant le test de lignes de produit, les techniques de planification des tests d'intégration, la production de test avec un objectif non fonctionnel, comme le cas du contrôle d'accès et des politiques de sécurité, le test de performance et le stress testing.

Mémoire période 2 en entreprise
 ECTShCMhTDhTP
Description

Mémoire et soutenance correspondant à la seconde période en entreprise (de novembre à juin)