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