Composante
ENSEIRB-MATMECA
Niveau d'étude visé
Bac + 5 - Master, DEA, DESS, diplôme d'ingénieur
ECTS
180 crédits
Durée
3 années
Langue(s) d'enseignement
Français
Présentation
Former des ingénieurs capables de maitriser les principaux domaines de l’informatique, dans ses aspects théoriques, fondamentaux et pratiques ; et de mettre en oeuvre ses solutions. La structuration de la formation permet à tous les ingénieurs d’acquérir un large spectre de compétences demandées par les entreprises (logiciel, algorithmique, intelligence artificielle, travail en équipe, etc). Les spécialisations proposées complètent cette formation par des compétences plus pointues (calcul intensif et sciences de données, robotique et apprentissage, intelligence artificielle, génie logiciel et cybersécurité).
"La formation en informatique nous apprend les bases de la programmation et des systèmes d'information en nous faisant découvrir tous les aspects qui entourent l'informatique, pour ensuite nous permettre de nous spécialiser dans un domaine précis. Au-delà de l'expertise technique, les professeurs et personnels administratifs œuvrent pour nous transmettre des valeurs humaines et sociales qui complètent notre formation d'ingénieur en nous sensibilisant aux différents enjeux sociétaux et environnementaux. J'ai eu la chance d'effectuer un stage dans une banque puis une mobilité à Montréal avant de me spécialiser en cybersécurité."
Marwan
Objectifs
Les deux premières années de formation sont organisées autour de thématiques d’enseignements générales à l’informatique. La 3ème année est dédiée à des options de spécialisation.
Trois stages, d’une durée cumulée de 12 mois, permettent l’immersion progressive dans l’entreprise en France ou à l’étranger.
Labels
La formation est accréditée par la Commission des Titres d’Ingénieur (CTI).
La formation a reçu le label européen EUR-ACE qui atteste de la qualité de nos programmes de formation, à la fois pour nos élèves-ingénieurs et pour les entreprises qui recrutent nos diplômés.
Ce label facilite notamment :
- La mobilité étudiante entre les établissements d’enseignement supérieur détenteurs du label.
- L’employabilité et la mobilité professionnelle de nos diplômés grâce à la reconnaissance de leur formation selon des standards européens communs exigeants.
Dimension internationale
Une mobilité internationale de minimum 17 semaines est obligatoire à l’ENSEIRB-MATMECA, en échange universitaire ou en stage. Plus d’informations.
Les + de la formation
- Pédagogie active et ludique.
- Projets innovants menés par groupes d’élèves, soumis par des entreprises ou par des académiques.
- Flexibilité du parcours, sur mesure dès la 1ère année grâce aux modules optionnels et un large choix de modules en 3ème année, possibilité de faire une partie de sa formation à l’étranger.
- Spécialisation par petits groupes d’élèves, avec de nombreux enseignants du monde industriel.
- Renforcement de l’anglais scientifique au travers de rapports et soutenances en anglais.
- Mobilité internationale de minimum 17 semaines.
Programme
Les deux premières années ont pour objectif l’acquisition de compétences de niveau ingénieur grâce aux enseignements généralistes et aux projets. La troisième année offre la possibilité d’approfondir ses connaissances et ses compétences grâce à la spécialisation choisie. Trois stages, d’une durée cumulée de 12 mois, permettent l’intégration progressive dans le milieu professionnel.
Plusieurs types de mobilité sont possibles, en France ou à l’étranger :
- Dans le cadre d’un ou plusieurs stages de la formation
- En 2ème ou 3ème année dans le cadre d’une mobilité académique dans l’un des établissements partenaires.
En France
Possibilité d’effectuer sa 3ème année dans une école ou université partenaire (Groupe INP, Réseau Polyméca).
A l’international
Une mobilité internationale de minimum 17 semaines est obligatoire à l’ENSEIRB-MATMECA, en échange universitaire ou en stage. Plus d’informations.
Sélectionnez un programme
Année 1 - Ingénieur Informatique
UE I5-A - Algorithmique et mathématiques 1
10 créditsInitiation à l'algorithmique
Coef. 2Structures arborescentes
Coef. 2Probabilités et statistiques
Coef. 2,5Logique et preuve
Coef. 2Analyse des données et Théorie de l'information (au choix)
Au choix : 1 parmi 2
Traitement de l'Information
Coef. 1,5Théorie de l'information
Coef. 1,5
UE I5-B - Programmation et environnement informatique 1
10 créditsEnvironnement de travail
Coef. 3Structure des ordinateurs
Coef. 3Programmation impérative 1
Coef. 4
UE I5-C - Projet de Programmation
5 créditsUE I5-D - Langues et culture de l'ingénieur
5 créditsLV1 Anglais
Coef. 1,5LV2
Coef. 1Activité Physique Sportive et Artistique
Coef. 1Développement durable et responsabilité sociétale : Partie 1/2
Coef. 0,5Intégrer l'entreprise
Coef. 1
UE I6-A - Algorithmique et mathématiques 2
10 créditsAutomates finis et applications
Coef. 2Algorithmique de graphes
Coef. 3Recherche Opérationnelle
Coef. 2Algorithmique numérique
Coef. 3
UE I6-B - Programmation et environnement informatique 2
10 créditsUE I6-C - Projets 2
5 créditsProjet de programmation impérative
Coef. 2,5Projet de programmation fonctionnelle
Coef. 2,5
UE I6-D - Langues et culture de l'ingénieur
5 créditsLV1 Anglais
Coef. 1,5LV2
Coef. 1Activité Physique Sportive et Artistique
Coef. 1Développement durable et responsabilité sociétale : Partie 2/2
Coef. 0,5Intégrer l'entreprise
Coef. 1
Année 2 - Ingénieur Informatique
UE I7-A - Programmation et système
10 créditsCompilation
Coef. 2,25Génie Logiciel
Coef. 1,5Programmation Orientée Objets
Coef. 2,25Programmation Système
Coef. 2,5Programmation C++
Coef. 1,5
UE I7-B - Internet et réseaux
9 créditsUn module (au choix)
Au choix : 1 parmi 5
Introduction à l'informatique quantique
Coef. 2,5Algorithmique parallèle
Coef. 2,5Algorithmique distribuée
Coef. 2,5Data Science
Coef. 2,5Programmation Web
Coef. 2,5
Systèmes de Gestion de Bases de Données
Coef. 2,5Architecture des réseaux TCP/IP
Coef. 2,5
UE I7-C - Conception logiciel
6 créditsProjet de compilation
Coef. 2Projet de SGBD
Coef. 2Projet de Programmation Orientée Objets
Coef. 2
UE I7-D - Langues et Culture de l'ingénieur
5 créditsLV1 Anglais
Coef. 2,50 créditsLV2
Coef. 1Engagement Etudiant facultatif (Niveau élevé)
Engagement Étudiant facultatif (Niveau très élevé)
Intégrer l'entreprise
Coef. 1,5
UE I8-A - Systèmes et applications
10 créditsCryptologie
Coef. 2,25Calculabilité et complexité
Coef. 2Intelligence artificielle
Coef. 2Systèmes d'exploitation
Coef. 2,25Applications TCP/IP
Coef. 1,5
I8-B : UE personnalisée (au choix)
Au choix : 1 parmi 4
UE I8-E - UE-B-1 : 1 module EX214 + 2 modules EX205 sans TOEIC
9 créditsI2-S8 Modules informatiques (au choix)
Au choix : 2 parmi 9
Théorie des jeux pour la modélisation informatique
Coef. 3Flot et Combinatoire
Coef. 3Génie logiciel avancé
Coef. 3Securite des systemes d'information
Coef. 3Systèmes de Types et Programmation
Coef. 3Makers
Coef. 3Interfaces sonores
Coef. 3Initiation à la recherche - Parcours PhD
Coef. 3Programmation multicoeur et GPU
Coef. 3
I2-S8 Modules informatiques (au choix)
Au choix : 1 parmi 4
UE I8-F - UE-B-2 : 1 module EX214 + 1 module EX205 + 2 modules EX206, sans TOEIC
9 créditsI2-S8 Modules informatiques (au choix)
Au choix : 2 parmi 9
Théorie des jeux pour la modélisation informatique
Coef. 3Flot et Combinatoire
Coef. 3Génie logiciel avancé
Coef. 3Securite des systemes d'information
Coef. 3Systèmes de Types et Programmation
Coef. 3Makers
Coef. 3Interfaces sonores
Coef. 3Initiation à la recherche - Parcours PhD
Coef. 3Programmation multicoeur et GPU
Coef. 3
Liste de modules (culture de l'ingénieur)
Au choix : 1 parmi 9
Management de projet digital et innovant
Coef. 0,5Intelligence Economique
Coef. 0,5Initiation à la finance de marché
Coef. 0,5Sciences techniques et sociétés
Coef. 0,5Parcours entrepreneur
Coef. 0,5Management humain et performant
Coef. 0,5Management & santé au travail
Coef. 0,5Module extérieur
Coef. 0,5Initiation à la recherche - parcours PhD
Coef. 0,5
I2-S8 Modules informatiques (au choix)
Au choix : 1 parmi 4
UE I8-G - UE-B-3 : 1 module EX214 + 2 modules de EX205 + LC206 (Rattrapage TOEIC)
9 créditsI2-S8 Modules informatiques (au choix)
Au choix : 2 parmi 9
Théorie des jeux pour la modélisation informatique
Coef. 3Flot et Combinatoire
Coef. 3Génie logiciel avancé
Coef. 3Securite des systemes d'information
Coef. 3Systèmes de Types et Programmation
Coef. 3Makers
Coef. 3Interfaces sonores
Coef. 3Initiation à la recherche - Parcours PhD
Coef. 3Programmation multicoeur et GPU
Coef. 3
I2-S8 Modules informatiques (au choix)
Au choix : 1 parmi 4
S8 TOEIC (Rattrapage obligatoire)
Coef. 1
UE I8-H - UE-B-4 : 1 module EX214 + 1 module EX205 + 1 module EX206 + LC206 (Rattrapage TOEIC)
9 créditsI2-S8 Modules informatiques (au choix)
Au choix : 2 parmi 9
Théorie des jeux pour la modélisation informatique
Coef. 3Flot et Combinatoire
Coef. 3Génie logiciel avancé
Coef. 3Securite des systemes d'information
Coef. 3Systèmes de Types et Programmation
Coef. 3Makers
Coef. 3Interfaces sonores
Coef. 3Initiation à la recherche - Parcours PhD
Coef. 3Programmation multicoeur et GPU
Coef. 3
Liste de modules (culture de l'ingénieur)
Au choix : 1 parmi 9
Management de projet digital et innovant
Coef. 0,5Intelligence Economique
Coef. 0,5Initiation à la finance de marché
Coef. 0,5Sciences techniques et sociétés
Coef. 0,5Parcours entrepreneur
Coef. 0,5Management humain et performant
Coef. 0,5Management & santé au travail
Coef. 0,5Module extérieur
Coef. 0,5Initiation à la recherche - parcours PhD
Coef. 0,5
I2-S8 Modules informatiques (au choix)
Au choix : 1 parmi 4
S8 TOEIC (Rattrapage obligatoire)
Coef. 1
UE I8-C - Projet de génie logiciel
6 créditsProjet de systèmes d'exploitation
Coef. 2Projet de Génie Logiciel - Développement
Coef. 2Projet de réseaux
Coef. 2
Langues et Culture de l'ingénieur
5 crédits
Année 3 - Ingénieur Informatique
Au choix : 1 parmi 8
Semestre 9 - Extérieur
30 créditsSemestre 9 - Algorithmes et méthodes formelles (AMF)
30 créditsUE I9AMF-A - Master informatique Université de Bordeaux (au choix)
Au choix : 1 parmi 2
UE I9AMF-A1 - Modèles et algorithmes
25 créditsPersonnalisation (au choix)
Au choix : 1 parmi 3
Jeux, synthèse et contrôle
Coef. 6Vérification de logiciels
Coef. 6Algorithmique appliquée
Coef. 6
Logique et langages
Coef. 6Théorie des graphes avancée
Coef. 3Algorithmique distribuée
Coef. 3Séminaire
Coef. 3Initiation à la recherche
Coef. 3
UE I9AMF-A2 - Vérification logicielle
25 créditsPersonnalisation 1 (au choix)
Au choix : 1 parmi 4
Théorie des graphes avancée
Coef. 3Algorithmique distribuée
Coef. 3Systèmes de types et programmation
Coef. 3Types, spécifications et preuves
Coef. 3
Personnalisation 2 (au choix)
Au choix : 1 parmi 2
Logique et langages
Coef. 6Algorithmique appliquée
Coef. 6
Jeux, synthèse et contrôle
Coef. 6Vérification de logiciels
Coef. 6Séminaire
Coef. 3Initiation à la recherche
Coef. 3
UE I9AMF-B - Conception formelle des logiciels
5 créditsConception formelle
Coef. 2,5Spécification et preuve formelle de programmes
Coef. 2,5
Semestre 9 - Calcul Intensif et les Sciences des Données
30 créditsArchitectures, langages et modèles de programmation
6 créditsAlgorithmique du calcul hautes performances, de la classification et de l'apprentissage
6 créditsEnvironnement d'exécution, d'extraction et de visualisation
6 créditsIntroduction à la visualisation scientifique
Coef. 2Supports pour le traitement de données
Coef. 2Parcours personnalisé (au choix)
Au choix : 1 parmi 2
Outils pour l'apprentissage
Coef. 2Programmation 3D
Coef. 2
Modules applicatifs
7 créditsTraitement des données in-situ
Coef. 2Fouille, extraction et visualisation
Coef. 2Projet Application HPC
Coef. 4
UE Langues et culture de l'ingénieur
7 crédits
Semestre 9 - Génie logiciel
30 créditsUE I9GL-A - Méthodologie
5 créditsTest du logiciel
Coef. 1,5Conduite de projet
Coef. 2Urbanisation et Architecture des Systèmes d'Information
Coef. 1,5
UE I9GL-B - Conception et Validation de logiciels
5 créditsSpécification et preuve formelle de programmes
Coef. 2,5Conception orientée objet
Coef. 2,5
UE I9GL-C - Ingénierie des données
5 créditsDevOps pour les données
Coef. 2,5Gestion et analyse de masse de données - Big Data
Coef. 2,5
UE I9GL-D - Architecture distribuée et mobile
5 créditsApplications concurrentes et distribuées
Coef. 2,5Développement d'applications mobiles
Coef. 2,5
UE I9GL-E - Personnalisation
5 créditsModule libre d'informatique
Coef. 2,5Méthodologie et outils logiciels
Coef. 2,5
UE Langues et culture de l'ingénieur
5 crédits
Semestre 9 - Intelligence Artificielle
30 créditsUE I9IA-A - Connaissance et Raisonnement
6 créditsAlgorithmes de Recherche
Coef. 2,5Représentation des Connaissances
Coef. 2,5Intelligence Artificielle pour les Jeux Vidéos
Coef. 1
UE I9IA-B - Science des Données et Apprentissage
6 créditsApprentissage automatique
Coef. 1,5Apprentissage profond
Coef. 2Apprentissage par renforcement
Coef. 1
UE I9IA-C -Applications de l'Intelligence Artificielle
6 créditsVision par ordinateur
Coef. 1,5Outils pour l'apprentissage
Coef. 2Ingénierie logicielle pour l'IA
Coef. 1Intelligence artificielle musicale
Coef. 1Analyse de vidéos
Coef. 1
UE I9IA-E - Parcours de Professionnalisation
7 créditsProjet Semestriel
Coef. 5Séminaires Professionnels
Coef. 1
UE Langues et culture de l'ingénieur
5 crédits
Semestre 9 - Robotique et apprentissage
30 créditsUE I9ROBOT-A - Modélisation et commande de systèmes robotiques
5 créditsUE I9ROBOT-B - IA et robotique
5 créditsInteractions humains robots
Coef. 1,5IA pour la robotique autonome
Coef. 1,5Planification
Coef. 1Outils d'imagerie pour la robotique
Coef. 2
UE I9ROBOT-C - Systèmes embarqués
5 créditsMécatronique
Coef. 2Projet systèmes embarqués
Coef. 3
UE I9ROBOT-D - Projet Robotique
5 créditsProjet robotique
Coef. 4Etat de l'art Projet Robotique
Coef. 1
UE I9ROBOT-E - Intégration professionnelle
5 créditsUn premier robot en Atelier Robotique
Coef. 2Journée dans les pas d'un dirigeant d'entreprise
Coef. 1Disséminations Robot Makers' Day
Coef. 1Techniques orales de communication scientifique
Coef. 1Workshop IA pour l'industrie
Coef. 3Séminaire R4
Coef. 1Workshop ROS pour l'industrie
Coef. 3Culture scientifique
Coef. 1Workshop Robots & Agro
Coef. 1
UE Langues et culture de l'ingénieur
5 crédits
Semestre 9 - cybeR-sécurité, Systèmes et Réseaux (RSR)
30 créditsUE I9RSR-A - Réseaux de communication
6 créditsUE I9RSR-B - Sécurité et Systèmes d'Information
6 créditsUE I9RSR-C - Sécurité et administration des réseaux
8 créditsUE I9RSR-D - Outils d'administration des réseaux
5 créditsVirtualisation de systèmes
Coef. 1Administration Microsoft et Cybersécurité en milieu industriel
Coef. 2Administration, Routage, QoS
Coef. 1OSINT et Cyber Threat Intelligence
Coef. 11 crédits
UE Langues et culture de l'ingénieur
5 crédits
Semestre 9 - Génie logiciel des réseaux et des télécommunications
30 créditsUE T9GLR-A - UE Technique GLRT
20 créditsConception d'objets connectés
Coef. 2,5Génie Logiciel
Coef. 2,5Architectures logiciels
Coef. 2Middleware pour l'Internet des objets
Coef. 1Les langages à script
Coef. 2,5Développement d'applications Web et mobiles
Coef. 3Cloud Computing system
Coef. 1,5Développement JavaCard
Coef. 1Sécurité
Coef. 1Téléphonie sur internet
Coef. 1Développement de services de téléphonies sur Internet
Coef. 2Introduction Cloud Computing
Coef. 0,5
UE T9GLR-B - Projet
5 créditsUE Langues et culture de l'ingénieur
5 crédits
Semestre 10 - Stage 2A et Projet de Fin d'Etudes
26 créditsRapport et soutenance du Projet de Fin d'Etudes
Coef. 1212 créditsRapport et soutenance du stage 2A
Coef. 66 créditsValidation du stage 2A
Coef. 22 créditsValidation du Projet de Fin d'Etudes
Coef. 66 crédits
Semestre 10 - Projet Professionnel
4 créditsStage Découverte
Coef. 1Soutenance de projet professionnel
Coef. 3
UE I5-A - Algorithmique et mathématiques 1
ECTS
10 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Comprendre les algorithmes et la complexité : (C1, N1), (C2, N1)
Comprendre les algorithmes sur les structures de données inductives : (C1, N1), (C2, N1)
Comprendre la notion de raisonnement formel : (C1, N1), (C2, N1)
Comprendre la notion de l'information : (C1, N1), (C2, N1)
Comprendre les probabilités et statistiques : (C1, N1), (C2, N1)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Mettre en place des algorithmes sur des structures de données simple : (C4, N1)
Evaluer la complexité d'un algorithme itératif et inductif : (C5, N1)
Choisir les structures de données et les algorithmes adaptés à un problème : (C4, N1)
Formaliser la description d'un algorithme : (C4, N1)
Formaliser la spécification d'un problème : (C4, N1)
Argumenter la terminaison et la correction d'un algorithme : (C5, N1), (C8, N1)
Comparer différentes méthodes de codage de l'information : (C5, N1)
Organiser et classifier les ensembles de données : (C8, N1)
Manipuler des données mettant en jeu les probabilités : (C5, N1), (C8, N1)
Initiation à l'algorithmique
Composante
ENSEIRB-MATMECA
Ce cours présente une initiation à la résolution de problèmes simples au moyen de l'algorithmique, en particulier les problèmes de tris. Les seuls objets manipulés sont de types simples (entiers, réels,etc) ou tableaux et matrice de ceux-ci. Quelques familles d'algorithmes sont introduites: diviser pour régner, dynamiques et gloutons. La comparaison d'algorithmes est abordée par l'introduction de la notion de complexité.
Introduction
Notions de problèmes et d'algorithmes
Algorithme Diviser pour Régner
Programmation Dynamique
Algorithmes gloutons
Problème du Tri
Structures arborescentes
Composante
ENSEIRB-MATMECA
Ce cours rappelle quelques structures mathématiques usuelles (ensemble, séquence et arbre), introduit la notion de type abstrait et fournit quelque méthode pour les implémenter.
Probabilités et statistiques
Composante
ENSEIRB-MATMECA
Dans la première partie, il s'agit d'étudier les notions de base du calcul des probabilités, qui seront utilisées dans d'autres enseignements à l' ENSEIRB : Recherche opérationnelle, Traitement du signal, Théorie de l'information, Analyse des données, Algorithmique probabiliste et surtout les Statistiques étudiées dans la deuxième partie de ce module.
Introduction: probabilité sur un espace fini
Variables aléatoires discrètes
Variables aléatoires à densité
Convergences et théorèmes limites
Logique et preuve
Composante
ENSEIRB-MATMECA
Le cours porte sur les techniques de preuve usuelles en informatique, et la logique comme cadre formel de raisonnement.
- Techniques de preuve
- Logique
- Bel ordre
- Induction
- Spécification et preuve de programmes
Analyse des données et Théorie de l'information (au choix)
Composante
ENSEIRB-MATMECA
Traitement de l'Information
Composante
ENSEIRB-MATMECA
Objectifs :
Acquisition des concepts et des outils de bases pour le traitement de données :
- Données quantitatives (numériques) : Analyse en Composantes Principales (ACP)
- Données qualitatives (catégories) : Analyse Factorielle des Correspondances (AFC)
- Introduction à l'apprentissage automatique: apprentissage non supervisé (clustering) et supervisé (classification, régression)
Compétences:
- Connaître les principe de base du traitement de données et de l'apprentissage automatique (Quiz)
- Savoir implémenter une méthode d'analyse de donnée simple (TP)
- Savoir analyser les résultats d'une méthode d'analyse appliquée à une base de données (Projet)
Théorie de l'information
Composante
ENSEIRB-MATMECA
Définitions et propriétés élémentaires de quantité d'information apportée par la réalisation d'un événementet l'entropie (au sens de Shannon) d'une v.a. (variable aléatoire) simple entropie conditionnelle d'une v.a., information mutuelle de deux v.a.
Théorie de codage, déchiffrabilité et ambiguïté, spontanéité de codes, Algorithme de Sardinas et Patterson, condition nécessaire et suffisante de Kraft-MCMillan pour l'existence d'un code déchiffrable avec les mots de longueurs données
Optimalité de codage (de v.a.), liens entre l'entropie d'une v.a. et la longueur moyenne des mots de code associé (théorèmes de Shannon), Algorithme de Huffman
Transmission d'information par les canaux bruités sans mémoire, quelques canaux importants, capacité d'un canal, calcul de capacité dans les cas simples, problème de décodage, schéma de décodage de borneuniforme d'erreur, théorème fondamental de Shannon sur la possibilité d'une transmission correcte avecprobabilité arbitrairement grande et de taux inférieur à la capacité (sans démonstration)
UE I5-B - Programmation et environnement informatique 1
ECTS
10 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE:
Comprendre l'architecture des ordinateurs et le lien avec la programmation: (C1, N1), (C2, N1), (C3, N1)
Comprendre le fonctionnement microélectronique d'un processeur: (C3, N1), (C6, N1)
Connaitre l'histoire et l'évolution de l'architecture des ordinateurs: (C1, N1), (C6, N1)
Comprendre comment les données sont représentées dans la machine: (C1, N1), (C3, N1)
Comprendre les mécanismes de langage de script shell: (C3, N1)
Comprendre les principaux éléments du langage C: (C1, N1), (C2, N1)
Connaitre les principes de la programmation assembleur: (C1, N1), (C2, N1)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Ecrire un rapport avec algorithmes, figures en LaTeX: (C3, N1)
Faire une présentation en LaTeX: (C8, N1)
Ecrire un script pour transformer des données: (C4, N1), (C3, N1), (C7, N1)
Tester et comparer différentes représentations des données dans la machine: (C5, N1), (C4, N1), (C3, N1)
Programmer en C: (C2, N1), (C4, N1)
Programmer en assembleur: (C2, N1), (C4, N1)
Environnement de travail
Composante
ENSEIRB-MATMECA
L'objectif est de maîtriser l'environnement de travail de la filière informatique de l'ENSEIRB-MATMECA: éditeur de texte, compilateur, composeur de documents. Ce cours aborde également la programmation shell permettant d'automatiser des tâches d'administration système.
UNIX/Bash
brève introduction aux systèmes d'exploitation
shell, aide (man), et commandes principales
langage interprété
système de fichiers: commande principales
Emacs
configuration
principales fonctions
Shell: variables et substitution
variables, substitution
entrées / sorties
redirection
Shell: programmation de scripts
alias, variables d'environnement
outils de manipulation de texte (grep, sort,...)
arguments de ligne de commande
structures conditionnelles et itératives
fonctions
Introduction à LaTeX
structure d'un document
commandes et environnements principaux
mise en forme des algorithmes et des figures
réalisation de présentations
Structure des ordinateurs
Composante
ENSEIRB-MATMECA
Ce cours aborde la structure des ordinateurs. Les connaissances sont les suivantes:
Introduction sur l'évolution de la structure des ordinateurs et sur l'impact de la connaissance de l'architecture pour un informaticien
La représentation des nombres dans les ordinateurs, entiers et flottants, et l'implication de ces codages.
Le processeur, décliné sur un exemple simplifié d'architecture Intel:
le chemin d'exécution des instructions, les unités fonctionnelles
le pipeline (modèle à 5 étages), impact sur les performances
la gestion des dépendances entre instructions, des branchements
les instructions SIMD
le principe du fonctionnement de l'out of order
La mémoire
technologie pour stocker des bits
fonctionnements des mémoires cache
Communication vers les périphériques, interruptions et exceptions.
Introduction aux architectures multicoeurs
Ce cours est complété par des sessions pratiques en TD, où les notions vues en cours sont mises en évidence par de la programmation assembleur et C. L'objectif à l'issue du module est de savoir coder en assembleur une boucle, une conditionnelle, un accès à un tableau, un appel de fonction (sur des cas simples). Savoir également mesurer les performances et mettre en evidence des phénomènes de pipeline, les effets des dépendances.
Programmation impérative 1
Composante
ENSEIRB-MATMECA
L'objectif de ce cours est d'apprendre les bases de la programmation impérative par l'étude de la syntaxe et la sémantique du langage C.
Introduction
Motivation
Histoire
et doléances ...
La trilogie : Type / Expression / Instruction
Expressions
Variables
Fonctions
Tableaux
Instructions
Structure conditionnelle
Structure répétitive
Les chaînes de caractères
Représentation des nombres
Les types entiers
printf
Taille des 'objets'
Logique
Quelques opérateurs utiles et dangereux
Les nombres flottants
Pointeurs (Références)
Pointeurs et tableaux
Arithmétique des pointeurs
Structures
Materiel supplémentaire
Fichiers d'en-têtes
Préprocesseur et compilation séparée
Gestion des erreurs
Gestion de fichiers
Tableaux multi-dimensionnels
UE I5-C - Projet de Programmation
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Comprendre les algorithmes et la complexité: (C1, N1)
Savoir écrire des algorithmes pour répondre à un problème donné: (C1, N1), (C2, N1)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Ecrire un programme pour résoudre un problème imposé: (C1, N1), (C2, N1)
Tester et évaluer un projet réalisé: (C5, N1)
Répartir les tâches d'un projet en équipe: (C7, N1)
Montrer en quoi la réalisation répond au problème posé en projet: (C8, N1)
Projet d'algorithmique et de programmation n°1
Composante
ENSEIRB-MATMECA
La scolarité de première année ENSEIRB, en filière Informatique, comprend plusieurs projets intégrés au sein de l'UE C des deux premiers semestres de la formation en Informatique. Chaque semestre, un travail de projet doit être réalisé dans les différents langages de programmation étudiés en cours. L'objectif de ces projets est double : d'une part, ils sont l'occasion de mettre en pratique (voire d'approfondir) les connaissances théoriques vues en cours d'autre part, ils constituent souvent un premier contact avec le travail en équipe. Ils sont normalement réalisés par groupes de 4 ou 5 élèves.
Connaissances travaillées au sein de cette UE :
C1 : N1 - Connaissance et compréhension d'un large champ de sciences fondamentales (algorithmique, automates, langages, graphes, logique ...) et capacité d'analyse et de synthèse associée
C2 : N1 - Capacité à utiliser les fondements et modèles pour concevoir, réaliser et valider les systèmes informatiques
C5 : N1 Capacité à tester, valider et prouver les systèmes informatiques afin d'assurer leur bon fonctionnement dans des conditions critiques
C7 : N1 - Capacité à analyser, organiser, répartir les tâches inhérentes à la réalisation d'un projet en équipe en réponse à une demande ou un besoin client parfois partiellement définis, à s'adapter à de nouvelles contraintes liées au projet
C8 : N1 - Capacité à présenter efficacement les solutions et à synthétiser et à démontrer la pertinence des résultats
UE I5-D - Langues et culture de l'ingénieur
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
LV1 Anglais
Composante
ENSEIRB-MATMECA
Savoir être autonome dans le travail (C13, N1 à N4)
Savoir comprendre et s'exprimer à l'oral et à l'écrit (C 10 / N1-N3)
Savoir s'exprimer avec aisance et précision (C 10 / N1-N3)
Savoir adapter un discours approprié à une situation donnée (C 10, C 12/N1-N3)
Appréhender/acquérir le discours scientifique en anglais (C 10, C 12 / N1-N3)
Mobiliser des ressources pour préparer sa mobilité internationale (C 10, C 12, C13 / N1-N3)
LV2
Composante
ENSEIRB-MATMECA
Le Cadre Européen Commun de Référence pour les langues sert de base pour les langues européennes. Les 6 niveaux (A1, A2, B1, B2, C1 et C2) et les compétences correspondantes peuvent être consultés : http://www.coe.int/T/DG4/Portfolio/documents/cadrecommun.pdf
Savoir être autonome dans le travail (C13, N1 à N3)
Savoir comprendre et s'exprimer à l'oral et à l'écrit (C10 / N1-N3)
Savoir s'exprimer avec aisance et précision (C10 / N1-N3)
Savoir adapter un discours approprié à une situation donnée (C10, C 12/N1-N3)
Activité Physique Sportive et Artistique
Composante
ENSEIRB-MATMECA
Appelés à exercer des responsabilités, les élèves doivent saisir l'intérêt d'un bon équilibre corporel et l'avantage, reconnu par les milieux professionnels, qu'ils retirent des expériences vécues dans les pratiques physiques, sportives et artistiques. Cet enseignement vise ainsi, trois finalités : - préserver un équilibre et une hygiène de vie, - contribuer au développement et à l'épanouissement de la personnalité, - renforcer la solidarité au sein de chaque groupe pour installer une véritable émulation dans ce type de préparation.
Afin de former un citoyen cultivé, lucide, autonome physiquement, socialement éduqué et sensible à sa santé Ainsi l'élève fait le CHOIX d'une OPTION afin de "Réaliser un projet personnel de formation"
Développement durable et responsabilité sociétale : Partie 1/2
Composante
ENSEIRB-MATMECA
Le développement durable peut se définir comme un mode de développement qui répond aux besoins du présent sans compromettre la capacité des générations futures à répondre à leurs besoins. Notre école a la responsabilité de former des ingénieurs innovants, acteurs du changement, autonomes et socialement responsables. Dans ce cadre, le module intitulé "Développement durable et responsabilité sociétale" a pour principal objectif d'intégrer les enjeux socio-écologiques dans notre formation d'ingénieur. Ce module doit permettre l'acquistion des connaissances et des compétences qui seront nécéssaires aux futurs ingénieurs pour accompagner les entreprises et les organisations à opérer leur transition énergétique et écologique.
Organisation du module :
Fresque du climat (3h) - Jeu d'intelligence collective - https://fresqueduclimat.org/projet/
Problématiques environnementales (1h20) - Déréglement climatique Effondrement de la biodiversité Finitude des ressources
énergie (2h40) - Qu'est ce que l'énergie ? Quelles sont ses différentes formes ? Conservation d'énergie.
Intervenant extérieur (1h20)
Intégrer l'entreprise
Composante
ENSEIRB-MATMECA
Ce module se compose de deux parties complémentaires :
- Communiquer et Manager (Niveau 1)
- Projet Professionnel (Niveau 1).
Partie 1 : COMMUNIQUER ET MANAGER - Niveau 1 (5,33 heures)
Niveau 1 Appréhender le rôle et la posture d'un manager Savoir : Connaitre le rôle, les principales activités et les compétences attendues d'un manager. Savoir-faire : Se positionner en tant que manager, résoudre un problème en équipe et animer des réunions
TD1 : LE ROLE DU MANAGER
Définition du management.
Management hiérarchique versus management transversal
Rôles et postures du manager
Compétences et soft skills du manager
Présentation de l'ensemble des TD des modules « Communiquer et Manager » : CE 137, CE 119 et CE 242
TD2 : MANAGER, C'EST DECIDER
Mise en situation avec une étude de cas
Définitions de l'émotion et de l'intelligence émotionnelle
Les 4 composantes de l'intelligence émotionnelle
Intelligence émotionnelle et management
Comment développer l'intelligence émotionnelle
TD 3 : RESOUDRE DES PROBLEMES EN GROUPE
Mise en situation avec une étude de cas
Outils et méthodes de résolution de problèmes en groupe : Objectiver, Analyser, Prioriser, Chercher des solutions et construire un plan d'action
Recenser et objectiver les causes : Le diagramme d'Ishikawa
Analyser les causes avec la méthode QQOQCP, analyser la gravité des risques et construire une matrice des risques
Prioriser : la loi de Pareto
Chercher des solutions : méthodes de brainstorming
Construire un plan d'action avec des objectifs SMART
TD 4 : ANIMER UNE REUNION
Mise en situation avec une étude de cas
Pourquoi tenir des réunions ?
Les différents types de réunion : les réunions d'information, les réunions préparatoires à la décision, les réunions de décision, les réunions de coordination, les réunions de recherche créative (brainstorming)
Le rôle de l'animateur pour chaque type de réunions
Animer une réunion, un plan d'action en 4 étapes :
Préparer la réunion
Accueillir les participants et lancer la réunion
Animer la réunion
Remettre le compte-rendu de la réunion à chaque participant
Partie 2 : PROJET PROFESSIONNEL - DEVENIR UN INGéNIEUR PROFESSIONNEL 2h40
- Témoignage d'ingénieurs (grande entreprise/PME) : questions/réponses autour du métier, des choix professionnels, de l'entreprise, fonctions exercées, secteurs d'activité, rémunération, qualités recherchées...
UE I6-A - Algorithmique et mathématiques 2
ECTS
10 crédits
Composante
ENSEIRB-MATMECA
Automates finis et applications
Composante
ENSEIRB-MATMECA
Les automates finis permettent de modéliser des programmes informatiques à mémoire finie. Ils permettent de résoudre des problèmes à un niveau d'abstraction élevé, sans s'encombrer des spécificités d'un langage donné, et en se concentrant sur les invariants à maintenir pour parvenir à une solution. L'étude de ce modèle s'inscrit dans le cadre général de la théorie des langages abordée ensuite dans les modules IF203 (compilation) et IF228 (calculabilité et complexité). L'enseignement aborde des notions théoriques (automates finis, langages réguliers, expressions régulières, équivalence de ces trois formalismes, non-déterminisme, automate minimal, lemme de l'étoile) ainsi que leur utilisation pour la résolution de problèmes concrets.
Algorithmique de graphes
Composante
ENSEIRB-MATMECA
Après une brève introduction des graphes, ce cours présente des problèmes sur les graphes admettant une solution algorithmique efficace. L'étude de ces solutions sera l'occasion d'exhiber des propriétés classiques en Théorie des Graphes.
Introduction
Exemples de problèmes
Définitions générales
Chemins et arbres
Problèmes de parcours
Une solution gloutonne pour l'arbre couvrant minimal
Parcours en largeur
Le problème du plus court chemin
Parcours en profondeur
Autres problèmes
Le problème du flot maximal
Le problème du couplage maximum
Recherche Opérationnelle
Composante
ENSEIRB-MATMECA
La programmation linéaire et et sa version avec des variables entières sont de puissants outils pour la modélisation et la résolution de problèmes d'optimisation combinatoire. Ce cours a pour objectif d'introduire la modélisation mathématique sous forme de programmes linéaires et de programmes linéaires en nombres entiers, ainsi que les méthodes algorithmiques utilisées pour résoudre ces modèles à l'aide de l'algorithme du simplex et des méthodes de branch-and-bound dédiées.
Algorithmique numérique
Composante
ENSEIRB-MATMECA
Le module d'Algorithmique Numérique décrit un ensemble de méthodes et d'algorithmes adaptés à la modélisation de problèmes numériques.
Introduction au calcul numérique : problèmes de représentation des nombres et d'approximaiotn, conditionnement
Méthodes de résolution de systèmes linéaires : Gauss Cholesky A=LDL' méthodes itératives : Jacobi Gauss-Seidel relaxation gradient
Méthode des moindres carrés : équation normale factorisations de matrices
Valeurs propres et vecteurs propres : réduction à la forme tridiagonale bissection de Givens méthode de la puissance itérée
Résolution d'équations non linéaires : méthodes itératives racines de polynômes cas de la dimension supérieure à 1
Méthodes numériques d'interpolation et d'intégration.
Equations différentielles : Problème de Cauchy méthode de Runge-Kutta différences finies éléments finis
UE I6-B - Programmation et environnement informatique 2
ECTS
10 crédits
Composante
ENSEIRB-MATMECA
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UEComprendre le calcul des expressions : (C1, N1), (C2, N1)Comprendre les algorithmes sur les structures de données inductives : (C1, N2), (C2, N2)Comprendre les modèles en couches des réseaux : OSI/ISO et TCP/IP : (C1, N1), (C2, N1)Comprendre le rôle et les servies offerts par chaque couches des modèles OSI/ISO et TCP/IP : (C1, N1), (C2, N1)Comprendre la problématique de l'accès au canal de communication : (C1, N1),(C2, N1)Comprendre le fonctionnement de l'Ethernet et de CSMA/CD : (C1, N1), (C2,N1)Comprendre la notion d'adressage dans TCP/IP : (C1, N1), (C2, N1)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Programmer au moyen d'expressions plutôt que d'instructions : (C4, N2)Spécifier des calculs récursivement plutôt qu'itérativement : (C4, N2)Formaliser la spécification d'un calcul générique : (C4, N2)Comparer différentes solutions selon le style et la complexité : (C5, N1)décrire les modèles OSI/ISO et TCP/IP ainsi que le rôle et les servies offertspar chaque couches : (C4, N1)pratiquer la configuration d'interfaces réseaux sur machines Linux et mettre enplace une topologie réseau simple sans routage (C4, N1)analyser des causes simples de non fonctionnement des communications dans unréseau (C3, N1), (C5, N1)comparer et choisir entre les différents éléments d'interconnexion d'un réseaux(Hub, Pont, Switch, Routeur, Passerelle applicative) (C4, N1)
Programmation fonctionnelle
Composante
ENSEIRB-MATMECA
Ce cours présente la programmation sous un aspect différent des cours du S5. Le style de programmation présenté au premier semestre est 'impératif', ce cours présente le style de programmation 'fonctionnel'. L'étude de ce style permet d'explorer une nouvelle famille de techniques de programmation, ainsi que de se poser la question de qualités logicielles permettant de distinguer ces différents styles. L'utilisation du langage de programmation Javascript permet de souligner ces différents contrastes.Plan du cours :
Présentation des styles de programmation / paradigmes. Comparaison du style impératif et du style fonctionnel. Introduction à la pureté, la modularité, et la 1ère classe. Petit historique des langages de programmation.
Présentation du langage Ecmascript (syntaxe, environnement node)Notion de portée et de fermeture.
Pureté et Modularité. Notion d'effet de bord, pureté, transparence référentielle. Programmation sans effets de bords. Utilisation de la récursivité et de la récursivité terminale.
Structures de données fonctionnelles.Listes chaînées, arbres. Notion de persistance. Opérateurs d'ordre supérieur sur ces structures de données.
Citoyenneté de 1ère classe. Fonctions d'ordre supérieur. Techniques : généralisation, spécialisation. Notions de généricité, curryfication.Exemples d'utilisation de fonctions dans les structures de données. Exemples d'interface de programmation fonctionnelle (pipeline, map-reduce, fluent interfaces)
Techniques de programmationProgrammation typée (polymorphisme), programmation "dirigée par les fonctions", contrôle de l'évaluationStratégies d'évaluation.
Modularité. Retour sur les notions : abstraction, encapsulation, interface, spécification, dépendance
Programmation impérative 2 et développement logiciel
Composante
ENSEIRB-MATMECA
L'objectif de ce cours est l'approfondissement des mecanismes de gestion mémoire, de la compilation et la prise en main des outils de développement logiciel pour l'écriture de projets maintenable, portables et robustes.
Atelier Algorithme et Programmation
Composante
ENSEIRB-MATMECA
Cet enseignement a pour but la pratique de l'algorithmique et de la programmation par la mise en oeuvre de structures de données et d'algorithmes étudiés au premier semestre. L'enseignement se focalise sur la construction de logiciels par abstractions successives. Nous étudions la puissance de telles abstractions pour la réalisation et la maintenance du code. Nous étudions différents porblèmes posés par l'abstraction, en particulier pour la complexité algorithmique. Toutes ces notions sont programmées en langage C, ce qui permet de discuter des avantages et inconvénients des différents langages de programmation.
Mise en œuvre d'un type ensemble
type abstrait de données
réalisé par un tableau avec butée
réalisé par un teableau trié
comparaison des mises en œuvre et de la complexité algorithmique
Mise en œuvre avec listes chaînées
réalisation du type ensemble avec une liste chaînée
retour sur la notion d'abstration
comparaison des complexités algorithmiques
Gestion de la mémoire et paramétrage
allocation dynamique de mémoire
paramétrage d'un traitement par une fonction
Structures de données génériques
abstraction des données
paramétrage d'une structure de données par des fonctions
Introduction aux réseaux
Composante
ENSEIRB-MATMECA
Cours d'introduction aux réseaux avec présentation des modèles OSI et TCP/IP.
Historique des réseaux
Les réseaux locaux informatiques (LAN)
Classification des réseaux
Les couches ISO et TCP/IP
Technologies pour les LAN
Notion de base sur l'Ethernet : adressage, commutation, type ethernet
Equipements d'interconnexions réseaux
Autres protocoles pour les LAN
Travaux pratiques
UE I6-C - Projets 2
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
La scolarité de première année ENSEIRB, en filière Informatique, comprend plusieurs projets intégrés au sein de l'UE C des deux premiers semestres de la formation en Informatique. Chaque semestre, un travail de projet doit être réalisé dans les différents langages de programmation étudiés en cours. L'objectif de ces projets est double : d'une part, ils sont l'occasion de mettre en pratique (voire d'approfondir) les connaissances théoriques vues en cours d'autre part, ils constituent souvent un premier contact avec le travail en équipe. Ils sont normalement réalisés par groupes de 4 ou 5 élèves.
Connaissances travaillées au sein de cette UE :
C1 : N1 - Connaissance et compréhension d'un large champ de sciences fondamentales (algorithmique, automates, langages, graphes, logique ...) et capacité d'analyse et de synthèse associée
C2 : N1 - Capacité à utiliser les fondements et modèles pour concevoir, réaliser et valider les systèmes informatiques
C5 : N1 Capacité à tester, valider et prouver les systèmes informatiques afin d'assurer leur bon fonctionnement dans des conditions critiques
C7 : N1 - Capacité à analyser, organiser, répartir les tâches inhérentes à la réalisation d'un projet en équipe en réponse à une demande ou un besoin client parfois partiellement définis, à s'adapter à de nouvelles contraintes liées au projet
C8 : N1 - Capacité à présenter efficacement les solutions et à synthétiser et à démontrer la pertinence des résultats
Projet de programmation impérative
Composante
ENSEIRB-MATMECA
Le projet de programmation impérative se situe dans la continuité des cours de programmation impérative (PG106 et PG116) et met en application les techniques de développement logiciel associées à la programmation impérative et plus généralement en langage C. Les techniques de programmation développées dans les projets portent selon les années sur l'allocation dynamique, lechargement dynamique de code, les tests, la manipulation d'interfaces et le développement modulaire.
Projet de programmation fonctionnelle
Composante
ENSEIRB-MATMECA
Le projet de programmation fonctionnelle se situe dans la continuité du cours de programmation fonctionnelle (PG104) et meten application les techniques de développement logiciel associées à la programmation fonctionnelle, principalement la manipulation des fonctions comme valeurs de 1ère classe et la promotion d'une programmation fonctionnelle pure (i.e avec peu d'effets de bords).
UE I6-D - Langues et culture de l'ingénieur
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
LV1 Anglais
Composante
ENSEIRB-MATMECA
Savoir être autonome dans le travail (C13, N1 à N4)
Savoir comprendre et s'exprimer à l'oral et à l'écrit (C 10 / N1-N3)
Savoir s'exprimer avec aisance et précision (C 10 / N1-N3)
Savoir adapter un discours approprié à une situation donnée (C 10, C 12/N1-N3)
Acquérir le discours scientifique en anglais (C 10, C 12 / N1-N3)
LV2
Composante
ENSEIRB-MATMECA
Le Cadre Européen Commun de Référence pour les langues sert de base pour les langues européennes. Les 6 niveaux (A1, A2, B1, B2, C1 et C2) et les compétences correspondantes peuvent être consultés : http://www.coe.int/T/DG4/Portfolio/documents/cadrecommun.pdf
Savoir être autonome dans le travail (C13, N1 à N3)
Savoir comprendre et s'exprimer à l'oral et à l'écrit (C10 / N1-N3)
Savoir s'exprimer avec aisance et précision (C10 / N1-N3)
Savoir adapter un discours approprié à une situation donnée (C10, C 12/N1-N3)
Activité Physique Sportive et Artistique
Composante
ENSEIRB-MATMECA
Appelés à exercer des responsabilités, les élèves doivent saisir l'intérêt d'un bon équilibre corporel et l'avantage, reconnu par les milieux professionnels, qu'ils retirent des expériences vécues dans les pratiques physiques, sportives et artistiques. Cet enseignement vise ainsi, trois finalités : - préserver un équilibre et une hygiène de vie, - contribuer au développement et à l'épanouissement de la personnalité, - renforcer la solidarité au sein de chaque groupe pour installer une véritable émulation dans ce type de préparation.
Afin de former un citoyen cultivé, lucide, autonome physiquement, socialement éduqué et sensible à sa santé Ainsi l'élève fait le CHOIX d'une OPTION afin de "Réaliser un projet personnel de formation"
Développement durable et responsabilité sociétale : Partie 2/2
Composante
ENSEIRB-MATMECA
Le développement durable peut se définir comme un mode de développement qui répond aux besoins du présent sans compromettre la capacité des générations futures à répondre à leurs besoins. Notre école a la responsabilité de former des ingénieurs innovants, acteurs du changement, autonomes et socialement responsables. Dans ce cadre, le module intitulé "Développement durable et responsabilité sociétale" a pour principal objectif d'intégrer les enjeux socio-écologiques dans notre formation d'ingénieur. Ce module doit permettre l'acquistion des connaissances et des compétences qui seront nécéssaires aux futurs ingénieurs pour accompagner les entreprises et les organisations à opérer leur transition énergétique et écologique.
Organisation du module traitant de l'Analyse du Cycle de Vie :1. Introduction à l'ACV (outil le plus abouti en matière d'évaluation globale et multicritère des impacts environnementaux et sociétaux) (2h) 2. Prise en main d'un outil d'ACV avec utilisation de bases de données sur des exemples (3h)3. Projet de mise en pratique d'une ACV sur un objet/outil du numérique (9h)
Intégrer l'entreprise
Composante
ENSEIRB-MATMECA
Ce module se compose de quatre parties complémentaires :
- Communiquer et Manager (Niveau 2)
- Projet Professionnel (Niveau 2)
- JOURNÉE INPULSE (Sensibilisation à l'Entrepreneuriat)
- Initiation au management de projet.
Partie 1 : COMMUNIQUER ET MANAGER - Niveau 2 (4 heures)
Niveau 2 : Écouter et communiquer : deux compétences de base du manager Savoir : Connaître les techniques de base en négociation, connaitre les différents types d'entretiens individuels Savoir Faire : Mener les différents types d'entretiens individuels, être à l'aise dans différentes situations de face à face.
TD1 - MENER DES ENTRETIENS- Les types d'entretiens individuels- Les étapes de l'entretien annuel d'évaluation- Les clés de la réussite- Deux éléments clés de l'entretien : distinguer les faits, les ressentis, les opinions et fixer des objectifs
TD2 - OUTILS DE COMMUNICATION MANAGERIALE- Qu'est-ce que la communication managériale ?- De quoi un message est-il composé ?- Les filtres et les mécanismes de communication- L'écoute active, la reformulation et le feed-back TD3 - MANAGER, C'EST NEGOCIER- Qu'est-ce que la négociation ?- Préparer sa stratégie de négociation pour être convaincant- Les grands principes du processus de négociation.- Les étapes de la négociation
Partie 2 : PROJET PROFESSIONNEL - Niveau 2 (4 heures)
être en capacité d'élaborer son projet professionnel puis de mener une recherche de stage ou d'emploi efficace
Module 1 : - Le projet professionnel : définition - Mieux se connaitre pour bâtir un projet professionnel à son image (Aptitudes, talents, personnalité)
Module 2 : - Préparer sa recherche de stage - Bâtir un dossier de candidature qui permette d'être reconnu et retenu dans sa recherche de stage ou d'emploi - Travail sur le CV et la lettre de motivation : construction et points de vigilance
Module 3 : - Le pitch de présentation - L'entretien de recrutement : le préparer pour ne pas le subir, processus, questions et argumentaire
Partie 3 : SIT'INNOV (8 heures)
Objectifs : Sensibilitation à l'entrepreneuriat sur une journée
1. Présentation de l'entrepreneuriat - La création d'entreprise en chiffre - Le processus de création d'entreprise - Qu'est ce qu'un modèle d'affaires2. Atelier de créativité En groupe les élèves recherchent une innovation à partir d'un théme imposé3. Construction d'un modèle d'affaires (Canvas - GRP) Le groupe contruit son modèle d'affaires à partir de l'innovation identifiée
Partie 4 : INITIATION AU MANAGEMENT DE PROJET (8 heures)
Objectifs de la partie :- Décider si une réalisation doit être pilotée en mode projet,- Identifier les acteurs d'un projet, leur rôle, utiliser le vocabulaire adéquat,- Définir un projet, le structurer,- Estimer les charges, planifier le projet, suivre l'avancement,- Analyser et maîtriser les risques,- Comprendre les grands principes des méthodes agiles et du framework Scrum.
Cours n°1 : Introduction au management de projet.
Définition de la notion de projet,
Introduction aux paramètres clef QCD,
Les dérives possibles d'un projet,
Pourquoi le management de projet ?
Cours n°2 : Définition de projet.
Les acteurs des projets,
L'analyse du besoin,
Les outils d'analyse fonctionnelle.
La bête à corne (Méthode APTE),
Le diagramme pieuvre (Méthode APTE),
L'analyse FAST,
L'analyse SADT.
Cours n°3 : Planification du projet.
Découper le projet en tâches : Le WBS,
Evaluer les tâches : Le RBS,
Planifier les tâches.
Cours n°4 : Suivi de projet.
Les outils de suivi
Suivi du planning,
Suivi du budget,
Suivi de la qualité et du contenu,
Prévention des risques,
Résolution des problèmes.
Cours n°5 : L'agilité expliquée simplement.
Comparaison entre les méthodes de gestion de projet traditionnelles et les méthodes agiles,
Vulgarisation et présentation du framework Scrum.
Cours n°6 : Les méthodes agiles dans le détail - Rôles et MVP.
Le produit minimum viable,
Définition des rôles,
Exercice : Diagramme de gantt - Construction d'une piscine.
UE I7-A - Programmation et système
ECTS
10 crédits
Composante
ENSEIRB-MATMECA
Compilation
Composante
ENSEIRB-MATMECA
Présentation des techniques et outils standards pour la compilation des langages de programmation et pour une mise en oeuvre dans le projet [[m:IF204]].
Plan
0. Objectif d'un compilateur, pourquoi étudier la compilation 1. Expressions régulières et langages réguliers, quelques rappels 2. Langages algébriques, rappels sur les grammaires 3. Analyseurs syntaxiques mise en oeuvre dans un outil (Yacc) 4. Analyse sémantique: grammaires attribuées, calculs d'attributs tels que les types et le code5. Génération de code: pour une machine à pile, pour une machine à registres. Principaux schémas de traduction, allocation de la mémoire 6. Problèmes d'optimisation: allocation de registre, optimisation de code, ... 7. Les dernières phases de compilation: assembleur, édition de lien, chargeur.
Compétences
C2. Niveau 2C3. Niveau 2C4. Niveau 2
Génie Logiciel
Composante
ENSEIRB-MATMECA
Le but de ce cours est de présenter les méthodes et les outils modernes pour le développement de logiciels. Le génie logiciel peut être caracterisé comme étant la mise en oeuvre de principes d'ingenierie afin d'obtenir, à prix raisonnable, des logiciels fiables et efficaces sur des vraies machines. Le génie logiciel concerne pas seulement les coûts de développement, mais aussi les coûts de maintenance et d'utilisation pendant toute la vie du logiciel. Nous regarderons aussi les problèmes spécifiques à des grands systèmes (plus de 1.000.000 lignes de codes) et engendrés par le travail en équipe, ce qui oblige des approches méthodologiques pour la conception, développement et évolution du logiciel.
Le cours se compose de trois parties, assurées par des enseignants différents:
Développement agile (A. Le Houedec)
Génie Logiciel (P. Galvao, M. Aune)
Spécifications logicielles (E. Girard Smith, F. Solliec)
Compétences
C3. Niveau 2C4. Niveau 3C5. Niveau 2C6. Niveau 2C7. Niveau 2C8. Niveau 2C9. Niveau 2
Programmation Orientée Objets
Composante
ENSEIRB-MATMECA
Initiation à la programmation orientée objets avec comme langage de support Java
Plan
I Encapsulation
1) L'encpasulation
2 Les objets 2.1 Instancaition
2.2 Envoi de messages
2.3 construite une encapsulation
3) Les classes
3.1 paquetage
3.2 Classe concrète
3.3 lien a-un entre classe
3.4 Varible et Méthode de classe
II Substitution d'objets
5 La subsitution d'objets ou plolymorphisme
5.1 Relation de type/sous-type (lien est-un)
5.2 le polymorphaisme.
6 Hiérarchie de classes
6.1 héritage
6.2 Héritage d'interfaces
6.3 Héritage entre classes
6.4 Redifinition de méthodes d'instances
6.5 Classes abastraite
6.6 Héritage multiple et choix des membres hérités
III Autres mécanismes
7 Le mécanisme des exceptions
8 Les types paramétrés
Compétences
C2. Niveau 2C3. Niveau 2C4. Niveau 1C8. Niveau 2
Programmation Système
Composante
ENSEIRB-MATMECA
Cet enseignement présente les concepts et les techniques permettant de programmer dans un environnement POSIX.
Plan
1. Concepts 2. Fichiers: principes et API posix 3. Processus et gestion mémoire: abstractions, gestion mémoire, gestion des processus 4. Signaux: surveillance de processus, synchronisation 5. Mémoire partagée et synchronisation: par fichiers, memoire partagée 6. Threads: definition et API 7. Concurrence: Identification des problemes, solutions logicielles, solutions matérielles, deadlocks 8. Introduction à la programmation réseau
Compétences
C2. Niveau 2C4. Niveau 2C5. Niveau 2
Programmation C++
Composante
ENSEIRB-MATMECA
Ce cours présente les bases de la programmation C++, il suppose une connaissance de la programmation objet (classes/instances/héritage). L'accent est mis sur les outils et techniques liés à la gestion de la mémoire.
UE I7-B - Internet et réseaux
ECTS
9 crédits
Composante
ENSEIRB-MATMECA
Introduction à l'informatique quantique
Composante
ENSEIRB-MATMECA
L'information quantique et le calcul quantique sont l'étude de tâches de traitement de l'information qui peuvent être accomplies en utilisant des systèmes quantiques et non pas classiques. Ainsi, un ordinateur quantique n'est pas simplement un ordinateur plus rapide sur lequel on va faire tourner par exemple Linux, mais un ordinateur qui permet une nouvelle manière de concevoir les algorithmes - les algorithmes quantiques. Si un ordinateur classique manipule des bits, qui valent 0 ou 1, l'ordinateur quantique manipule des bits quantiques ou qubits, des bits qui obéissent aux lois de la mécanique quantique.
Après une première partie du cours dédiée à l'introduction des principes de la mécanique quantique, à l'intrication et à la téléportation quantique, le cours se concentrera sur l'étude de plusieurs algorithmes quantiques : les algorithmes de Deutsch et de Simon et surtout l'algorithme de factorisation de Shor. Le dernier chapitre du cours sera dédié aux codes de corrections d'erreurs quantiques.
Algorithmique parallèle
Composante
ENSEIRB-MATMECA
Le parallélisme est omniprésent dans les ordinateurs d'aujourd'hui : au niveau des cœurs de calculs comme plus largement au niveau des interconnection entre les différentes ressources de calcul.
L'algorithmique parallèle permet de comprendre et de maitriser les concepts fondamentaux à mettre en œuvre pour l'utilisation de plateformes distribuées. Elle emprunte à l'algorithmique classique dans sa problématique (conception, analyse, étude de complexité), mais s'enrichit d'une nouvelle dimension avec l'exploitation simultanée de plusieurs ressources.
Dans ce cours vous verrez les bases du calcul parallèle (modèles PRAM, Ordonnancement), accompagnés d'exercices plutôt théoriques. Nous apprendrons à concevoir des algorithmes parallèles (communication, routage, équilibrage de charge). Nous verrons également le langage MPI permettant d'implémenter ces algorithmes sur des ressources parallèles.
Algorithmique distribuée
Composante
ENSEIRB-MATMECA
Introduire le monde du calcul réparti Présenter les différents modèles et contraintes du calcul distribué Présenter et analyser quelques algorithmiques classiques du domaine Concevoir des algorithmes s'exécutant sur des systèmes distribués.
Programmation Web
Composante
ENSEIRB-MATMECA
Après une présentation de l'architecture client/serveur, ce cours portera sur les langages informatiques fondamentaux permettant d'encoder les différents aspects d'une page web, et permettant à un navigateur d'afficher cette page côté client. Nous étudierons dans un premier temps le langage HTML, basé sur un mécanisme de balises, pour la structuration du contenu. Nous verrons ensuite le langage CSS, basé sur un systèmes de règles de mise en forme, pour l'apparance de la page. Enfin, nous étudierons le langage JavaScript permettant de gérer les aspects dynamiques et interactifs de la page, notamment à travers le concept de programmation asynchrone. Le cours se terminera par une introduction aux technologies côté serveur.
Systèmes de Gestion de Bases de Données
Composante
ENSEIRB-MATMECA
Le but de ce cours est de permettre aux étudiants d'acquérir une compétence dans le domaine des bases de données et celui de leur mise en oeuvre. Au-del à de la connaissance des caractéristiques techniques des systèmes de gestion de bases de données utilisés, le cours aborde les aspects méthodologiques visant à utiliser au mieux les fonctionnalités offertes par ces systèmes. Nous précisons les concepts fondamentaux de la mise en oeuvre des bases de données dans le contexte relationnel. Au niveau plus fin, le fonctionnement interne des SGBD sera étudié : organisation des SGBD, optimisation des requêtes, gestion des accés concurrents et mécanisme de reprise sur panne... De nombreux exercices proposés pendant les séances de travaux dirigés, permettent d'illustrer les concepts vus en cours. Une application pratique est réalisée par les étudiants en utilisant le SGBD ORACLE
Plan
Comparaison des concepts de système de gestion de base de données et de système de gestion multifichiers
Modélisation des bases de données : modèles conceptuels
Modèle Relationnel (algèbre relationnelle, formes normales, ...)
Langages de manipulation de données : SQL
Apprentissage du SGBD ORACLE
Organisation physique des SGBD relationnels
Implémentation des opérateurs relationnels
Optimisation des requêtes
Transaction et accés concurrents
Problèmes généraux de sécurité dans les SGBD
Mécanismes de reprise sur panne
Compétences
C2. Niveau 2C3. Niveau 2C4. Niveau 3C5. Niveau 2C7. Niveau 2C8. Niveau 3
Architecture des réseaux TCP/IP
Composante
ENSEIRB-MATMECA
Le but de cet enseignement est de fournir une base solide concernant les réseaux informatiques tant au niveau des caractéristiques physiques des transmissions qu'au niveau des protocoles employés. Lors de ce cours intégré, les aspects théoriques et pratiques concernant les différentes couches du modèle OSI (allant du matériel à la couche applicative) sont abordés. Des exercices et des manipulations sont prévues pour illustrer ces notions sur les protocoles classiques.
Plan
Interaction entre la famille de protocoles TCP/IP et les supports de transmission
La couche réseaux : IP, ICMP
La couche transport du modèle TCP/IP
TDs et TPs
Compétences
C2. Niveau 2C3. Niveau 2C4. Niveau 2
UE I7-C - Conception logiciel
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) : N1 : débutant N2 : intermédiaire N3 : confirmé N4 : expertCompétences acquises au sein de cette UE :
C1. Connaissance et compréhension d'un large champ de sciences fondamentales (algorithmique, automates, langages, graphes, logique ...) et capacité d'analyse et de synthèse associéeC2. Capacité à utiliser les fondements et modèles pour concevoir, réaliser et valider les systèmes informatiquesC3. Capacité à choisir et utiliser les outils et les méthodes adéquats dans le cadre du cycle de développement logiciels (langage de programmation, bibliothèques, IDE, Framework, middleware)C4. Capacité à spécifier les besoins et à concevoir l'architecture des applications dans divers domaines scientifiques et technologiques (big data, cloud, développement mobile, calcul parallèle, multimédia, robotique, sécurité des systèmes, vérification des systèmes critiques...) C5. Capacité à tester, valider et prouver les systèmes informatiques afin d'assurer leur bon fonctionnement dans des conditions critiquesC6. Capacité à appréhender, anticiper et intégrer les évolutions technologiques et méthodologiques d'un ensemble de domaines liés aux métiers d'ingénieur informatiqueC7. Capacité à analyser, organiser, répartir les tâches inhérentes à la réalisation d'un projet en équipe en réponse à une demande ou un besoin client parfois partiellement définis, à s'adapter à de nouvelles contraintes liées au projet C8. Capacité à présenter efficacement les solutions et à synthétiser et à démontrer la pertinence des résultatsNiveau acquis à la fin de la formation:C1:N2C2:N2C3:N2C4:N2C5:N2C6:N1C7:N2C8:N2
Projet de compilation
Composante
ENSEIRB-MATMECA
Mise en oeuvre dans un projet des concepts vus dans le module de compilation par la réalisation d'un compilateur
Plan
Realisation du front-end du compilateur (analyse lexicale, syntaxique) a l'aide des outils de type lex/yacc, premiere analyse semantique lors des seances de projet
Premier livrable sur les exemples de codes pouvant etre compilés par le compilateur
Realisation du compilateur complet, avec generation de code
Soutenance
Compétences
C3. Niveau 2C4. Niveau 2C7. Niveau 2C8. Niveau 2C12. Niveau 2
Projet de SGBD
Composante
ENSEIRB-MATMECA
Les séances de TP se deroulent sur le système Oracle. Ces séances permettent aux étudiants de mieux comprendre le cours et les Tds, et de tester les requêtes SQL. A la fin des TPs, un projet permet aux de simuler une application base de données, de la conception à la réalisation.
Plan
Présentation d'ORACLE
Présentation de MySQL
Architecture
SQL, SQLPLUS
Interface SQL-langage hôte
PL/SQL
Projet Oracle
Compétences
C2. Niveau 2C3. Niveau 2C4. Niveau 2C7. Niveau 2C8. Niveau 2C12. Niveau 2
Projet de Programmation Orientée Objets
Composante
ENSEIRB-MATMECA
Le projet de programmation orientée objet est une mise en application et un continuité du module PG202.
Il consiste au portage d'un code C en Java en appliquant les mécanismes objets.
L'objectif est de mettre en place une architecture de classe qui permet de prendre en compte les points
d'évolution désirés.Le développement se fat en parallèle avec tests unitaires et utilisation d'objets faussaires.
Les élèves sont réparties en équipe de 5 avec un compte-rendu régulier.
Plan
réalisation d'un première version fonctionnelle avec tests unitaires.
prise en compte du point de changement et étude des deux solutions.
remaniement du code suivant une des solutions et évaluation de la solution.
soutenance
Compétences
C3. Niveau 3C4. Niveau 2C7. Niveau 2
UE I7-D - Langues et Culture de l'ingénieur
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
LV1 Anglais
ECTS
0 crédits
Composante
ENSEIRB-MATMECA
Savoir être autonome dans le travail (C13, N1 à N4)
Savoir comprendre et s'exprimer à l'oral et à l'écrit (C 10 / N1-N3)
Savoir s'exprimer avec aisance et précision (C 10 / N1-N3)
Savoir adapter un discours approprié à une situation donnée (C 10, C 12/N1-N3)
Au choix, préparer le TOEIC (Test of English for International Communication) ou le IELTS (International English Language Testing System) dans le but d'atteindre au minimum un niveau B2 européen requis pour l'obtention du Diplôme d'Ingénieur ou le niveau requis (IELTS > 6.5) pour les projets d'échanges à l'international.
B2 = TOEIC 800 B2 = IELTS 6
LV2
Composante
ENSEIRB-MATMECA
Niveaux de compétence et activités correspondants aux niveaux A2-B2 du CECR dans la langue choisie en 1e année. Les groupes de niveau sont maintenus.
Savoir être autonome dans le travail (C13, N1 à N3)
Savoir comprendre et s'exprimer à l'oral et à l'écrit (C 10 / N1-N3)
Savoir s'exprimer avec aisance et précision (C 10 / N1-N3)
Savoir adapter un discours approprié à une situation donnée (C 10, C 12/N1-N3)
Etudier la culture et la civilisation à travers la langue.
Engagement Etudiant facultatif (Niveau élevé)
Composante
ENSEIRB-MATMECA
Reconnaissance de l'engagement étudiant dans la vie sociale, associative ou personnelle
Chaque élève-ingénieur peut faire une demande de validation des compétences, connaissances et aptitudes qu'il a acquises dans l'exercice des activités suivantes :
activité bénévole au sein d'une association,
activité de promotion de l'école ou de l'établissement,
implication au service de l'école ou de l'établissement,
activité professionnelle,
activité militaire dans la réserve opérationnelle,
engagement de sapeur-pompier volontaire,
service civique,
volontariat dans les armées,
participation aux conseils de l'établissement et des écoles, d'autres établissements d'enseignement supérieur ou des centres régionaux des œuvres universitaires et scolaires.
Un engagement étudiant est considéré de niveau élevé lorsqu'un élève-ingénieur a des fonctions/missions définies et reconnues dans l'exercice de ses activités.
Le module facultatif engagement étudiant donne lieu à une note sur 20 points entraînant un bonus maximum de 1 point/20 à la moyenne de l'UE (Langues et culture de l'ingénieur). La note obtenue à ce module ne peut pas diminuer la moyenne de l'UE (Langues et culture de l'ingénieur).
Engagement Étudiant facultatif (Niveau très élevé)
Composante
ENSEIRB-MATMECA
Reconnaissance de l'engagement étudiant dans la vie sociale, associative ou personnelle
Chaque élève-ingénieur peut faire une demande de validation des compétences, connaissances et aptitudes qu'il a acquises dans l'exercice des activités suivantes :
activité bénévole au sein d'une association,
activité de promotion de l'école ou de l'établissement,
implication au service de l'école ou de l'établissement,
activité professionnelle,
activité militaire dans la réserve opérationnelle,
engagement de sapeur-pompier volontaire,
service civique,
volontariat dans les armées,
participation aux conseils de l'établissement et des écoles, d'autres établissements d'enseignement supérieur ou des centres régionaux des œuvres universitaires et scolaires.
Un engagement étudiant est considéré de niveau très élevé lorsqu'un élève-ingénieur a des fonctions/missions comportant des responsabilités administratives, financières et/ou pénales dans l'exercice de ses activités. Un engagement très élevé doit également comprendre un aspect encadrement et animation.
Le module facultatif engagement étudiant donne lieu à une note sur 20 points entraînant un bonus maximum de 2 point/20 à la moyenne de l'UE (Langues et culture de l'ingénieur). La note obtenue à ce module ne peut pas diminuer la moyenne de l'UE (Langues et culture de l'ingénieur).
Intégrer l'entreprise
Composante
ENSEIRB-MATMECA
Ce module se compose de trois parties complémentaires :
- Communiquer et Manager (Niveau 3)
- Projet Professionnel (Niveau 3)
- Droit du travail.
Partie 1 : COMMUNIQUER ET MANAGER - Niveau 3 (2,67 heures)
Niveau 3 : Adapter son management selon les situations, développer son leadership et motiver les collaborateurs Savoir : Modèle du management situationnel, du leadership et les différentes théories de la motivation au travail Savoir Faire : Identifier son style de management, adapter son style de management à ses collaborateurs et développer sa capacité à motiver les collaborateurs.
TD1 : MANAGEMENT SITUATIONNEL
Présentation du modèle Paul Hersey et Kenneth Blanchard du « Management ou Leadership Situationnel ».
Management et leadership : définitions, différences et compétences spécifiques
Appropriation du modèle à l'aide d'exercices
TD2 : MANAGER, C'EST MOTIVER
Définitions de la motivation
Motivation et performance
Présentation de quelques modèles théoriques : McGregor (théorie X et Y), Herzberg (théorie des deux facteurs), Vroom (théorie Valence Instrumentalité Expectation), motivation intrinsèque et extrinsèque
Exercices de mises en pratique
Partie 2 : PROJET PROFESSIONNEL - Niveau 3 : (4 heures)
être en capacité de construire un projet professionnel cohérent et de le défendre en entretien de recrutement ou pour un stage
Module 1 : - Comment construire son projet professionnel ? - Identifier ses fondations personnelles : cadre de référence, valeurs et aversions, ressources personnelles ... - Mener une réflexion sur son entreprise « idéale » : taille, domaine d'activité, localisation, gouvernance, style de management, cadre de travail ...
- Identification du parcours professionnel à court terme ( à la sortie de l'école)
- Elaboration du plan d'action individuel associé
Module 2 :
- Identification du parcours professionnel à moyen terme (projection à 5 ans)
- Elaboration du plan d'action individuel associé
- Construction du pitch de présentation de son projet professionnel en vue d'entretiens de stages ou de recrutement
- Mise en situation
Partie 3 : DROIT DU TRAVAIL (13,33 heures)
L'objectif du cours de Droit du Travail est d'initier les élèves aux problématiques du Droit du Travail Français afin de les préparer à « affronter » le monde du Travail à leur sortie de l'Ecole en étant informés
Le Cours est composé de cinq parties :
Introduction générale au Droit et plus particulièrement au Droit du Travail avec, notamment, la hiérarchie des Sources de Droit, les différents lieux où se juge le Droit, le Chemin Législatif, le Document Unique, l'article L4121-1 du Code du Travail, etc...
Le Contrat de Travail
Les relations individuelles et collectives entre salarié et employeur, dans tout son déroulement en partant de la candidature, du CV, de l'entretien d'embauche jusqu' à la fin du contrat, et en précisant également les relations collectives du travail avec les Conseils Economiques et Sociaux et toute la représentation du personnel,
La réglementation du travail : durée du travail journalière, hebdomadaire, mensuelle, annuelle, la rémunération, les différents types de contrat, etc...
Les évolutions récentes du Droit du Travail suite à la Loi Travail de 2016 et aux Ordonnances Travail de 2017, sans oublier le télé-travail et les effets de la crise sanitaire
UE I8-A - Systèmes et applications
ECTS
10 crédits
Composante
ENSEIRB-MATMECA
Cryptologie
Composante
ENSEIRB-MATMECA
Après quelques rudiments en Théorie des Nombres et en Théorie de la Complexité, ce cours d'initiation présente une grande variété de protocoles et étudie la sécurité de certains d'entre eux.
Plan
Introduction aux protocoles - Introduction - Cryptosystèmes à clefs secrètes
Sécurité des protocoles - De la difficulté en Théorie de la Complexité - Systèmes à clefs publiques - Quelques problèmes arithmétiques faciles - Quelques problèmes arithmétiques difficiles
Exemples de protocoles - Protocole de mise en gage - Signature et authentification - Preuve à divulgation nulle - Paiement et vote électronique
Perspectives - Cryptologie quantique
Calculabilité et complexité
Composante
ENSEIRB-MATMECA
Ce module présente les notions principales de calculabilité et de complexité.
Plan
Notions de calculabilité
Définition formelle : mots, language, problème
Machine de Turing, MT Universelle
Existence de fonctions non calculables
Exemples de problèmes indécidables
Principe de réduction
Classes de complexité
Exemples de problèmes NP-complet
Intelligence artificielle
Composante
ENSEIRB-MATMECA
Le but de ce cours est de comprendre les opportunités et limites des approchesde résolution de problèmes basées sur l'un des grands domaines de l'IA (Recherche, Raisonnement, Apprentissage).
Systèmes d'exploitation
Composante
ENSEIRB-MATMECA
Les systèmes d'exploitation sont la couche logicielle la plus basse qui se place entre le matériel et toutes les applications. Ils sont donc un élément de choix pour l'étude de concepts fondamentaux comme l'exécution asynchrone ou la gestion de mémoire virtuelle avec les problèmes que cela pose et les nouvelles portes que cela ouvre. Le cours s'attache à dégager les points importants qui interviennent dans la conception de tels systèmes, en les illustrant chaque fois que cela est possible par des extraits de code source d'un noyau UNIX.
Plan
Introduction
Concepts généraux
Processus et exécution
Gestion mémoire
Concurrence et synchronisation
Gestion du temps
Système de fichiers
Entrées-sorties
Virtualisation
Applications TCP/IP
Composante
ENSEIRB-MATMECA
Mise en place du modèle TCP/IP avec illustration et utilisation d'applications TCP/IP
Plan
Applications TCP/IP
Mise en place des applications TCP/IP
Implémentation d'un exemple d'application TCP ou UDP : programmation socket simple en C ou Java par exemple
Exemples d'application TCP/IP
Présentation de quelques applications TCP/IP : le système DNS, le protocole SMTP et POP
telenet et netcat sur serveur
mise en place de nslookup et dig
les enregistrements DNS : A, AAAA, MX, SOA, DNS over HTTP (DoH)
Le routage
Le routage de l'information dans les réseaux
notion d'arbre collecteur
plus court chemin dans un graphe
routage par inondation
routage fondé sur les flux
routage à vecteur et distance ...
Exercice sur le calcul de la table de routage.
illustration de RIP, OSPF, BGP
I8-B : UE personnalisée (au choix)
Composante
ENSEIRB-MATMECA
UE I8-E - UE-B-1 : 1 module EX214 + 2 modules EX205 sans TOEIC
ECTS
9 crédits
Composante
ENSEIRB-MATMECA
I2-S8 Modules informatiques (au choix)
Composante
ENSEIRB-MATMECA
Théorie des jeux pour la modélisation informatique
Composante
ENSEIRB-MATMECA
Suite aux travaux de John Nash au début des années 1950, la théorie des jeux a été utilisée principalement comme un modèle mathématique pour les intéractions économiques et sociales. Cependant, depuis le début des années 1980, la théorie des jeux occupe une place de plus en plus importante en informatique, et en particulier pour la logique et la vérification automatique de programmes. L'objectif de ce cours est de présenter quelques modèles de jeux, ainsi que des applications de la théorie dans plusieurs domaines de l'informatique.Une première partie de ce cours porte sur des jeux infinis sur des graphes finis ou infinis. Cette théorie possède des applications pour la théorie des automates (automates d'arbre), et la vérification de programme (mu-calcul ou autres logiques).
La deuxième partie porte sur les jeux en forme stratégique et les équilibres de Nash.
Flot et Combinatoire
Composante
ENSEIRB-MATMECA
La sécurisation et le dimensionnement des réseaux (urbain, informatique, de télécommunication,...), l'optimisation du routage des flux (financiers, d'information, de personnels, de produits), les problèmes de logistique et de transport (routier, aérien et du rail) représentent de réels enjeux pour les industriels. Les problèmes d'optimisation sous-jacents se ramènent le plus souvent à des modèles combinatoires qui sont des briques essentielles pour appréhender les systèmes complexes.
Ce cours vise à compléter la formation aux approches algorithmiques spécifiques aux problématiques d'optimisation combinatoire dans les graphes. Le cours vise à expliquer comment utiliser les outils de la programmation mathématique (typiquement la programmation linéaire et en nombre entiers) pour guider les algorithmes combinatoires vers des solutions optimales ou quand cela s'avère trop complexe, de bonne solutions approchées. L'objectif est de maîtriser les modèles et techniques de base qui servent dans les stratégies de résolution d'une grande variété de problèmes complexes.
Génie logiciel avancé
Composante
ENSEIRB-MATMECA
Depuis quelques années, on assiste à l'émergence du DevOps dans le monde du développement logiciel. De plus en plus d'entreprises adoptent une approche DevOps afin d'apporter continuellement de la valeur aux utilisateurs de leurs logiciels. Cela implique un changement de culture, la mise en place de nouveaux outils et de nouvelles pratiques, et une façon différente de collaborer pour « faire du logiciel ». Ce module vise à sensibiliser les étudiants aux pratiques DevOps à travers la découverte notamment de l'intégration continue et du déploiement continu.
Securite des systemes d'information
Composante
ENSEIRB-MATMECA
La sécurité des systèmes d'informations est un enjeu essentiel de notre société où l'utilisation de systèmes électroniques de traitement des données connectés en réseaux s'est généralisée. Aussi bien les entreprises privées que les administration nationales se dotent maintenant de moyens importants pour veiller à la sécurité de leurs systèmes et limiter les risques d'attaques aux conséquences importantes sur des plans humains, financiers ainsi qu'en terme de protection des données.
L'objectif de ce module est donc de renforcer la connaissance des étudiants dans ce domaine en leur proposant une introduction approfondie à la cybersécurité. Pour atteindre cet objectif, le cours adopte une approche pratique en étudiant et en mettant en œuvre diverses cyberattaques parmi les plus courantes aujourd'hui, notamment celles identifiées dans le cadre du OWASP Top 10. Une mise en œuvre des bonnes pratiques existantes pour se prémunir contre ces attaques sera également proposée. En outre, le cours explorera les nouvelles tendances et orientations émergentes dans le domaine de la cybersécurité.
Plan
Le module s'organise en 13 séances de deux heures. Parmi ces 13 séances :
12 d'entre elles porteront sur un ensemble de mises en pratique organisées autour d'un projet global : la sécurisation d'un site Web. Parmi les points/types de menaces/solutions de sécurité qui pourront être abordés et mis en place par les étudiants au cours de ces séances on peut notamment citer :
Les attaques réseau (DNS Spoofing, Man-in-the-Middle)
Les failles de sécurité (Injections SQL)
L'ingénierie Sociale
La mise en oeuvre de nouvelles solutions telles que la Blockchain.
etc.
1 d'entre elles portera sur la présentation des élèves d'un nouveau sujet en lien avec la cybersécurité parmi un ensemble de sujets qui leurs seront proposés. L'idée sera de permettre à l'ensemble de se sensibiliser à de nouvelles problématiques
Systèmes de Types et Programmation
Composante
ENSEIRB-MATMECA
Programmer, c'est transcrire un problème algorithmique dans un langage particulier. Cette opération n'est pas univoque (plusieurs façons de faire) et potentiellement hasardeuse (plusieurs façons de se tromper). De quels outils un programmeur dispose t'il pour l'assister dans cette transcription ? Quelles formes de vérification automatique existent qui permettent de certifier des propriétés d'un programme ?
L'un des outils les plus généralisés et directement applicables utilisés par les programmeurs pour vérifier leur code, ce sont les systèmes de types. Ce cours va s'intéresser à :
définir et comprendre ce qu'est un système de type,
comprendre les algorithmes permettant de vérifier la correction des types,
étudier les formes classiques de polymorphisme, des manières de manipuler des types distincts de façon uniforme,
examiner des formes plus avancées de vérification, allant jusqu'aux preuves de programmes.
Ce cours examine les langages de programmation de manière transverse, et prend des exemples variés dans des langages tels qu'Haskell, OCaml, et Scala (entre autres) en plus des classiques que sont le C, C++ et Java. Il aborde le problème d'un point de vue formel, en se ramenant systématiquement au modèle fondamental du lambda-calcul simplement typé. L'idée essentielle reliant ces concepts est leur caractère applicable, permettant de programmer et de certifier, sans avoir à écrire directement des preuves.
Makers
Composante
ENSEIRB-MATMECA
L'objectif de ce module est de se familiariser avec les techniques de prototypage rapide disponible au FabLab à travers la réalisation d'un projet. L'élève est formé à l'impression 3D, la découpe laser, la modélisation 3D, la conception et la programmation de circuit embarqués (arduino, raspberry pi).
Interfaces sonores
Composante
ENSEIRB-MATMECA
Ce cours est une initation au son numérique et ses interfaces. Les compétences visées sont les suivantes :
- reconnaître les paramètres physiques et perceptifs des sons et interpréter leurs représentations
- maîtriser le principe de numérisation et les différents formats sonores numériques (DAC, échantillonage, quantification) et le fonctionnement des cartes sons.
- savoir utiliser les protocoles de communication et de synchronisation des sons numériques (MIDI, OSC, JACK)
- savoir manipuler les sons numériques par programme C (lecture, filtrage)
- connaître les principes de base de la synthèse sonore et savoir synthétiser des sons au moyen de langages de synthèse sonore
- connaître les principes de base des séquenceurs et savoir écrire des plug-ins
Initiation à la recherche - Parcours PhD
Composante
ENSEIRB-MATMECA
L'ENSEIRB-MATMECA propose un parcours « ingénieur-docteur » destiné aux élèves-ingénieurs qui souhaitent s'impliquer dans la recherche scientifique et ses applications afin de susciter des vocations RetD et de faciliter l'appréhension des études doctorales (poursuite en thèse de doctorat). L'objectif du parcours « ingénieur-docteur » est de promouvoir et de valoriser la recherche auprès des élèves ingénieur, de montrer l'importance de la recherche et le besoin de développement d'expertises scientifiques du haut niveau.
Le module "Initiation à la recherche" est un enseignement du parcours "ingénieur-docteur". Il vise à développer des compétences bibliographiques par la lecture d'un article scientifique (conférence, journal, chapitre de livre, etc) encadrée par un chercheur, la réalisation d'une synthèse bibliographique et une présentation orale de celle-ci.
Programmation multicoeur et GPU
Composante
ENSEIRB-MATMECA
Comment tirer partie de la puissance de calcul des ordinateurs contemporains ? Ce cours est une initiation aux techniques algorithmiques, logicielles et matérielles permettant de programmer des machines disposant de plusieurs coeurs et/ou d'accélérateurs tels que les cartes graphiques (GPU). Autrement dit, il s'agira de comprendre comment exploiter les capacités de traitement en paralléle offertes par le matériel.
Plan
intérêts et notions de base du parallélisme, granularité des calculs, d'équilibrage de charge
architecture générale des ordinateurs multicoeur et des cartes graphiques
techniques algorithmiques générales de parallélisation
langages et bibliothèques incontournables de la programmation des architectures multicoeur
impacts de l'architecture et de la compilation sur la programmation : vers la portabilité des performances
programmation des machines hétérogènes équipées de processeurs specialisés (e.g. GPU)
I2-S8 Modules informatiques (au choix)
Composante
ENSEIRB-MATMECA
Introduction aux traitements des images
Composante
ENSEIRB-MATMECA
Il s'agit d'une introduction aux différentes méthodes existantes pour traiter les images numériques (filtrage, segmentation, ...) Ce cours couvre les différentes thématiques suivantes :
Manipulation des images numériques
Modèle fréquentielle
Techniques d'interpolations
Notion de morphologie mathématique
Transformation de domaine
Tranformation couleur
Débruitage d'images
La mise en pratique et la programmation des notions se fera en C.
Analyse de l'Innovation & Intelligence Technologique
Composante
ENSEIRB-MATMECA
Que ce soit à l'échelle d'une entreprise, d'un groupe industriel ou d'un territoire géographique, l'innovation est aujourd'hui une problématique stratégique majeure.
Cependant, bien que les bénéfices de l'innovation soient en partie bien connus, la compréhension du phénomène d'innovation reste complexe. L'enjeu est de taille pour les acteurs innovants ou qui soutiennent l'innovation : bien comprendre les dynamiques d'innovation facilitent leur prise de décision en les aidant à mieux se positionner dans des environnements dynamiques, internationalisés et hautement compétitifs.
Face à ces enjeux, l'intelligence technologique peut être définie comme « Ensemble des activités coordonnées visant l'acquisition de connaissances solides sur l'environnement scientifique et technologique afin de soutenir le processus deprise de décision, en particulier sur les problématiques liées au management de la recherche et l'innovation ».
L'intelligence technologique s'apparente donc à la recherche et l'analyse d'informations stratégiques pour mieux comprendre les environnements innovants. C'est un ensemble de méthodes et d'outils originaux et à forte valeurajoutée qui permettent d'aborder un panel de questions variées, des plus larges aux plus précises. Exemples :
Quels sont les acteurs les plus actifs sur les technologies blockchain ? Quels sont les pays positionnés sur le développement de technologies pour le stockage d'hydrogène ? Quelles universités possèdent des compétences solides sur les technologies d'imagerie médicale ? Comment IBM aborde les technologies de deep learning ? Quelles entreprises travaillent sur mon domaine de compétence ?
Ce cours s'inscrit dans la volonté de sensibiliser aux enjeux de compréhension des environnements innovants.
Les étudiants pratiqueront l'intelligence technologique autour de cas appliqués de leur choix. Les 26 heures de cours s'articuleront en 3 parties et aboutiront à la réalisation d'un rapport collectif (groupe de trois ou quatreétudiants) qui présentera l'utilisation des méthodes en intelligence technologique acquises à travers une problématique choisie.
Les étudiants y manipuleront des bases de données structurées (base de données brevets principalement) et exploiteront les informations qui en sont issues grâce à des outils d'analyse dédiés.
L'innovation est aujourd'hui unanimement reconnue comme un facteur clés de succès du développement économique. La maîtrise de la technologie, toujours plus complexe, coûteuse, risquée, dans un monde en perpétuelle évolution est au coeur de la stratégie d'innovation des grands groupes industriels et pose la question du ressourcement. La démarche « d'Open Innovation » tente d'y répondre mais implique la mise en place de dispositifs de veille stratégique et d'intelligence économique/technologiques performants pour permettre l'identification précoce des partenaires clés et des signaux faibles annonciateurs de ruptures. L'analyse de ces informations multiples doit se faire dans un cadre sectoriel et non pas uniquement technologique pour alimenter une vision prospective de l'innovation dans son contexte à 10 ans. Ceci passe par une capacité à interroger, structurer et analyser des informations de très grandes masses renvoyant au concept de « Big Data ».
Ce cours et les travaux pratiques associés visent à appréhender :
les bases de données existantes dans le domaine de l'innovation (ORBIT et Scopus notamment)
les outils de veille et de traitement de l'information de type « Big Data » (informations brevets, publications scientifiques, réseaux sociaux... ) (Scoop it, Intellixir...).
Il doit permettre également de maitriser les outils de visualisation graphique adaptés à la visualisation de données de grandes masses (GEPHI et Sigma JS).
Environnement logiciel et bases de données : Les logiciels, outils de veille et bases de données ne nécessitent pas d'installation préalable, à l'exception du logiciel GEPHI (représentation cartographique des données).
Introduction à la robotique
Composante
ENSEIRB-MATMECA
Dans ce cours, les concepts de bases de la modélisation géométrique et cinématique des robots, ainsi que la planification de trajectoires sur des robots articulaires et mobiles seront présentés. L'objectif est de donner un aperçu des problématiques liées à la modélisation, au contrôle, mais aussi à la mise en pratique concrète sur du vrai matériel.
Programme:
Notions fondamentales de la robotique: mécatronique, modélisation, cinématique et dynamique, planification. Il s'agit de comprendre ce qui définit un robot, d'en produire un modèle géométrique et physique et d'aborder les techniques classiques de contrôle.
Modèle géométrique direct et inverse de robots articulaires
Modèle cinématique (robot mobile)
Génération de trajectoire dans l'espace opérationnel (interpolations)
Locomotion de robots à pattes
Utilisation de simulateur physique
Expérimentations sur des véritables robots
Evaluation
Pour l'évaluation des connaissances, il sera demander de remettre un projet (individuel) évalué à la fin du cours. Dans l'idéal (si les conditions sanitaires le permettent), le projet sera réalisé sur des robots hexapodes ou quadrupède. Dans le cas dégradé (enseignement à distance), le projet sera réalisé sous forme de simulation.
Apprentissage et Deep Learning
Composante
ENSEIRB-MATMECA
Apprendre à formaliser un problème d'apprentissage
Connaître les notions d'apprentissage suoervisés et non supervisés, de régression et de classification
Comprend les principales méthodes d'apprentissage (KMeans, NL-Bayes, GMM, Support Vector Machines, Deep Learning)
Connaitre leurs applications
Savoir les appliquer.
UE I8-F - UE-B-2 : 1 module EX214 + 1 module EX205 + 2 modules EX206, sans TOEIC
ECTS
9 crédits
Composante
ENSEIRB-MATMECA
I2-S8 Modules informatiques (au choix)
Composante
ENSEIRB-MATMECA
Théorie des jeux pour la modélisation informatique
Composante
ENSEIRB-MATMECA
Suite aux travaux de John Nash au début des années 1950, la théorie des jeux a été utilisée principalement comme un modèle mathématique pour les intéractions économiques et sociales. Cependant, depuis le début des années 1980, la théorie des jeux occupe une place de plus en plus importante en informatique, et en particulier pour la logique et la vérification automatique de programmes. L'objectif de ce cours est de présenter quelques modèles de jeux, ainsi que des applications de la théorie dans plusieurs domaines de l'informatique.Une première partie de ce cours porte sur des jeux infinis sur des graphes finis ou infinis. Cette théorie possède des applications pour la théorie des automates (automates d'arbre), et la vérification de programme (mu-calcul ou autres logiques).
La deuxième partie porte sur les jeux en forme stratégique et les équilibres de Nash.
Flot et Combinatoire
Composante
ENSEIRB-MATMECA
La sécurisation et le dimensionnement des réseaux (urbain, informatique, de télécommunication,...), l'optimisation du routage des flux (financiers, d'information, de personnels, de produits), les problèmes de logistique et de transport (routier, aérien et du rail) représentent de réels enjeux pour les industriels. Les problèmes d'optimisation sous-jacents se ramènent le plus souvent à des modèles combinatoires qui sont des briques essentielles pour appréhender les systèmes complexes.
Ce cours vise à compléter la formation aux approches algorithmiques spécifiques aux problématiques d'optimisation combinatoire dans les graphes. Le cours vise à expliquer comment utiliser les outils de la programmation mathématique (typiquement la programmation linéaire et en nombre entiers) pour guider les algorithmes combinatoires vers des solutions optimales ou quand cela s'avère trop complexe, de bonne solutions approchées. L'objectif est de maîtriser les modèles et techniques de base qui servent dans les stratégies de résolution d'une grande variété de problèmes complexes.
Génie logiciel avancé
Composante
ENSEIRB-MATMECA
Depuis quelques années, on assiste à l'émergence du DevOps dans le monde du développement logiciel. De plus en plus d'entreprises adoptent une approche DevOps afin d'apporter continuellement de la valeur aux utilisateurs de leurs logiciels. Cela implique un changement de culture, la mise en place de nouveaux outils et de nouvelles pratiques, et une façon différente de collaborer pour « faire du logiciel ». Ce module vise à sensibiliser les étudiants aux pratiques DevOps à travers la découverte notamment de l'intégration continue et du déploiement continu.
Securite des systemes d'information
Composante
ENSEIRB-MATMECA
La sécurité des systèmes d'informations est un enjeu essentiel de notre société où l'utilisation de systèmes électroniques de traitement des données connectés en réseaux s'est généralisée. Aussi bien les entreprises privées que les administration nationales se dotent maintenant de moyens importants pour veiller à la sécurité de leurs systèmes et limiter les risques d'attaques aux conséquences importantes sur des plans humains, financiers ainsi qu'en terme de protection des données.
L'objectif de ce module est donc de renforcer la connaissance des étudiants dans ce domaine en leur proposant une introduction approfondie à la cybersécurité. Pour atteindre cet objectif, le cours adopte une approche pratique en étudiant et en mettant en œuvre diverses cyberattaques parmi les plus courantes aujourd'hui, notamment celles identifiées dans le cadre du OWASP Top 10. Une mise en œuvre des bonnes pratiques existantes pour se prémunir contre ces attaques sera également proposée. En outre, le cours explorera les nouvelles tendances et orientations émergentes dans le domaine de la cybersécurité.
Plan
Le module s'organise en 13 séances de deux heures. Parmi ces 13 séances :
12 d'entre elles porteront sur un ensemble de mises en pratique organisées autour d'un projet global : la sécurisation d'un site Web. Parmi les points/types de menaces/solutions de sécurité qui pourront être abordés et mis en place par les étudiants au cours de ces séances on peut notamment citer :
Les attaques réseau (DNS Spoofing, Man-in-the-Middle)
Les failles de sécurité (Injections SQL)
L'ingénierie Sociale
La mise en oeuvre de nouvelles solutions telles que la Blockchain.
etc.
1 d'entre elles portera sur la présentation des élèves d'un nouveau sujet en lien avec la cybersécurité parmi un ensemble de sujets qui leurs seront proposés. L'idée sera de permettre à l'ensemble de se sensibiliser à de nouvelles problématiques
Systèmes de Types et Programmation
Composante
ENSEIRB-MATMECA
Programmer, c'est transcrire un problème algorithmique dans un langage particulier. Cette opération n'est pas univoque (plusieurs façons de faire) et potentiellement hasardeuse (plusieurs façons de se tromper). De quels outils un programmeur dispose t'il pour l'assister dans cette transcription ? Quelles formes de vérification automatique existent qui permettent de certifier des propriétés d'un programme ?
L'un des outils les plus généralisés et directement applicables utilisés par les programmeurs pour vérifier leur code, ce sont les systèmes de types. Ce cours va s'intéresser à :
définir et comprendre ce qu'est un système de type,
comprendre les algorithmes permettant de vérifier la correction des types,
étudier les formes classiques de polymorphisme, des manières de manipuler des types distincts de façon uniforme,
examiner des formes plus avancées de vérification, allant jusqu'aux preuves de programmes.
Ce cours examine les langages de programmation de manière transverse, et prend des exemples variés dans des langages tels qu'Haskell, OCaml, et Scala (entre autres) en plus des classiques que sont le C, C++ et Java. Il aborde le problème d'un point de vue formel, en se ramenant systématiquement au modèle fondamental du lambda-calcul simplement typé. L'idée essentielle reliant ces concepts est leur caractère applicable, permettant de programmer et de certifier, sans avoir à écrire directement des preuves.
Makers
Composante
ENSEIRB-MATMECA
L'objectif de ce module est de se familiariser avec les techniques de prototypage rapide disponible au FabLab à travers la réalisation d'un projet. L'élève est formé à l'impression 3D, la découpe laser, la modélisation 3D, la conception et la programmation de circuit embarqués (arduino, raspberry pi).
Interfaces sonores
Composante
ENSEIRB-MATMECA
Ce cours est une initation au son numérique et ses interfaces. Les compétences visées sont les suivantes :
- reconnaître les paramètres physiques et perceptifs des sons et interpréter leurs représentations
- maîtriser le principe de numérisation et les différents formats sonores numériques (DAC, échantillonage, quantification) et le fonctionnement des cartes sons.
- savoir utiliser les protocoles de communication et de synchronisation des sons numériques (MIDI, OSC, JACK)
- savoir manipuler les sons numériques par programme C (lecture, filtrage)
- connaître les principes de base de la synthèse sonore et savoir synthétiser des sons au moyen de langages de synthèse sonore
- connaître les principes de base des séquenceurs et savoir écrire des plug-ins
Initiation à la recherche - Parcours PhD
Composante
ENSEIRB-MATMECA
L'ENSEIRB-MATMECA propose un parcours « ingénieur-docteur » destiné aux élèves-ingénieurs qui souhaitent s'impliquer dans la recherche scientifique et ses applications afin de susciter des vocations RetD et de faciliter l'appréhension des études doctorales (poursuite en thèse de doctorat). L'objectif du parcours « ingénieur-docteur » est de promouvoir et de valoriser la recherche auprès des élèves ingénieur, de montrer l'importance de la recherche et le besoin de développement d'expertises scientifiques du haut niveau.
Le module "Initiation à la recherche" est un enseignement du parcours "ingénieur-docteur". Il vise à développer des compétences bibliographiques par la lecture d'un article scientifique (conférence, journal, chapitre de livre, etc) encadrée par un chercheur, la réalisation d'une synthèse bibliographique et une présentation orale de celle-ci.
Programmation multicoeur et GPU
Composante
ENSEIRB-MATMECA
Comment tirer partie de la puissance de calcul des ordinateurs contemporains ? Ce cours est une initiation aux techniques algorithmiques, logicielles et matérielles permettant de programmer des machines disposant de plusieurs coeurs et/ou d'accélérateurs tels que les cartes graphiques (GPU). Autrement dit, il s'agira de comprendre comment exploiter les capacités de traitement en paralléle offertes par le matériel.
Plan
intérêts et notions de base du parallélisme, granularité des calculs, d'équilibrage de charge
architecture générale des ordinateurs multicoeur et des cartes graphiques
techniques algorithmiques générales de parallélisation
langages et bibliothèques incontournables de la programmation des architectures multicoeur
impacts de l'architecture et de la compilation sur la programmation : vers la portabilité des performances
programmation des machines hétérogènes équipées de processeurs specialisés (e.g. GPU)
Liste de modules (culture de l'ingénieur)
Composante
ENSEIRB-MATMECA
Management de projet digital et innovant
Composante
ENSEIRB-MATMECA
Connaissance des bases du pilotage du projet digital et/ou innovant
Intelligence Economique
Composante
ENSEIRB-MATMECA
Initiation à la finance de marché
Composante
ENSEIRB-MATMECA
Sciences techniques et sociétés
Composante
ENSEIRB-MATMECA
Parcours entrepreneur
Composante
ENSEIRB-MATMECA
Management humain et performant
Composante
ENSEIRB-MATMECA
Management & santé au travail
Composante
ENSEIRB-MATMECA
Initiation à la recherche - parcours PhD
Composante
ENSEIRB-MATMECA
Lire un article de recherche, réaliser une étude bibliographique en lien avec l'article, rédiger une note de synthèse, et la présenter à l'oral.
I2-S8 Modules informatiques (au choix)
Composante
ENSEIRB-MATMECA
Introduction aux traitements des images
Composante
ENSEIRB-MATMECA
Il s'agit d'une introduction aux différentes méthodes existantes pour traiter les images numériques (filtrage, segmentation, ...) Ce cours couvre les différentes thématiques suivantes :
Manipulation des images numériques
Modèle fréquentielle
Techniques d'interpolations
Notion de morphologie mathématique
Transformation de domaine
Tranformation couleur
Débruitage d'images
La mise en pratique et la programmation des notions se fera en C.
Analyse de l'Innovation & Intelligence Technologique
Composante
ENSEIRB-MATMECA
Que ce soit à l'échelle d'une entreprise, d'un groupe industriel ou d'un territoire géographique, l'innovation est aujourd'hui une problématique stratégique majeure.
Cependant, bien que les bénéfices de l'innovation soient en partie bien connus, la compréhension du phénomène d'innovation reste complexe. L'enjeu est de taille pour les acteurs innovants ou qui soutiennent l'innovation : bien comprendre les dynamiques d'innovation facilitent leur prise de décision en les aidant à mieux se positionner dans des environnements dynamiques, internationalisés et hautement compétitifs.
Face à ces enjeux, l'intelligence technologique peut être définie comme « Ensemble des activités coordonnées visant l'acquisition de connaissances solides sur l'environnement scientifique et technologique afin de soutenir le processus deprise de décision, en particulier sur les problématiques liées au management de la recherche et l'innovation ».
L'intelligence technologique s'apparente donc à la recherche et l'analyse d'informations stratégiques pour mieux comprendre les environnements innovants. C'est un ensemble de méthodes et d'outils originaux et à forte valeurajoutée qui permettent d'aborder un panel de questions variées, des plus larges aux plus précises. Exemples :
Quels sont les acteurs les plus actifs sur les technologies blockchain ? Quels sont les pays positionnés sur le développement de technologies pour le stockage d'hydrogène ? Quelles universités possèdent des compétences solides sur les technologies d'imagerie médicale ? Comment IBM aborde les technologies de deep learning ? Quelles entreprises travaillent sur mon domaine de compétence ?
Ce cours s'inscrit dans la volonté de sensibiliser aux enjeux de compréhension des environnements innovants.
Les étudiants pratiqueront l'intelligence technologique autour de cas appliqués de leur choix. Les 26 heures de cours s'articuleront en 3 parties et aboutiront à la réalisation d'un rapport collectif (groupe de trois ou quatreétudiants) qui présentera l'utilisation des méthodes en intelligence technologique acquises à travers une problématique choisie.
Les étudiants y manipuleront des bases de données structurées (base de données brevets principalement) et exploiteront les informations qui en sont issues grâce à des outils d'analyse dédiés.
L'innovation est aujourd'hui unanimement reconnue comme un facteur clés de succès du développement économique. La maîtrise de la technologie, toujours plus complexe, coûteuse, risquée, dans un monde en perpétuelle évolution est au coeur de la stratégie d'innovation des grands groupes industriels et pose la question du ressourcement. La démarche « d'Open Innovation » tente d'y répondre mais implique la mise en place de dispositifs de veille stratégique et d'intelligence économique/technologiques performants pour permettre l'identification précoce des partenaires clés et des signaux faibles annonciateurs de ruptures. L'analyse de ces informations multiples doit se faire dans un cadre sectoriel et non pas uniquement technologique pour alimenter une vision prospective de l'innovation dans son contexte à 10 ans. Ceci passe par une capacité à interroger, structurer et analyser des informations de très grandes masses renvoyant au concept de « Big Data ».
Ce cours et les travaux pratiques associés visent à appréhender :
les bases de données existantes dans le domaine de l'innovation (ORBIT et Scopus notamment)
les outils de veille et de traitement de l'information de type « Big Data » (informations brevets, publications scientifiques, réseaux sociaux... ) (Scoop it, Intellixir...).
Il doit permettre également de maitriser les outils de visualisation graphique adaptés à la visualisation de données de grandes masses (GEPHI et Sigma JS).
Environnement logiciel et bases de données : Les logiciels, outils de veille et bases de données ne nécessitent pas d'installation préalable, à l'exception du logiciel GEPHI (représentation cartographique des données).
Introduction à la robotique
Composante
ENSEIRB-MATMECA
Dans ce cours, les concepts de bases de la modélisation géométrique et cinématique des robots, ainsi que la planification de trajectoires sur des robots articulaires et mobiles seront présentés. L'objectif est de donner un aperçu des problématiques liées à la modélisation, au contrôle, mais aussi à la mise en pratique concrète sur du vrai matériel.
Programme:
Notions fondamentales de la robotique: mécatronique, modélisation, cinématique et dynamique, planification. Il s'agit de comprendre ce qui définit un robot, d'en produire un modèle géométrique et physique et d'aborder les techniques classiques de contrôle.
Modèle géométrique direct et inverse de robots articulaires
Modèle cinématique (robot mobile)
Génération de trajectoire dans l'espace opérationnel (interpolations)
Locomotion de robots à pattes
Utilisation de simulateur physique
Expérimentations sur des véritables robots
Evaluation
Pour l'évaluation des connaissances, il sera demander de remettre un projet (individuel) évalué à la fin du cours. Dans l'idéal (si les conditions sanitaires le permettent), le projet sera réalisé sur des robots hexapodes ou quadrupède. Dans le cas dégradé (enseignement à distance), le projet sera réalisé sous forme de simulation.
Apprentissage et Deep Learning
Composante
ENSEIRB-MATMECA
Apprendre à formaliser un problème d'apprentissage
Connaître les notions d'apprentissage suoervisés et non supervisés, de régression et de classification
Comprend les principales méthodes d'apprentissage (KMeans, NL-Bayes, GMM, Support Vector Machines, Deep Learning)
Connaitre leurs applications
Savoir les appliquer.
UE I8-G - UE-B-3 : 1 module EX214 + 2 modules de EX205 + LC206 (Rattrapage TOEIC)
ECTS
9 crédits
Composante
ENSEIRB-MATMECA
I2-S8 Modules informatiques (au choix)
Composante
ENSEIRB-MATMECA
Théorie des jeux pour la modélisation informatique
Composante
ENSEIRB-MATMECA
Suite aux travaux de John Nash au début des années 1950, la théorie des jeux a été utilisée principalement comme un modèle mathématique pour les intéractions économiques et sociales. Cependant, depuis le début des années 1980, la théorie des jeux occupe une place de plus en plus importante en informatique, et en particulier pour la logique et la vérification automatique de programmes. L'objectif de ce cours est de présenter quelques modèles de jeux, ainsi que des applications de la théorie dans plusieurs domaines de l'informatique.Une première partie de ce cours porte sur des jeux infinis sur des graphes finis ou infinis. Cette théorie possède des applications pour la théorie des automates (automates d'arbre), et la vérification de programme (mu-calcul ou autres logiques).
La deuxième partie porte sur les jeux en forme stratégique et les équilibres de Nash.
Flot et Combinatoire
Composante
ENSEIRB-MATMECA
La sécurisation et le dimensionnement des réseaux (urbain, informatique, de télécommunication,...), l'optimisation du routage des flux (financiers, d'information, de personnels, de produits), les problèmes de logistique et de transport (routier, aérien et du rail) représentent de réels enjeux pour les industriels. Les problèmes d'optimisation sous-jacents se ramènent le plus souvent à des modèles combinatoires qui sont des briques essentielles pour appréhender les systèmes complexes.
Ce cours vise à compléter la formation aux approches algorithmiques spécifiques aux problématiques d'optimisation combinatoire dans les graphes. Le cours vise à expliquer comment utiliser les outils de la programmation mathématique (typiquement la programmation linéaire et en nombre entiers) pour guider les algorithmes combinatoires vers des solutions optimales ou quand cela s'avère trop complexe, de bonne solutions approchées. L'objectif est de maîtriser les modèles et techniques de base qui servent dans les stratégies de résolution d'une grande variété de problèmes complexes.
Génie logiciel avancé
Composante
ENSEIRB-MATMECA
Depuis quelques années, on assiste à l'émergence du DevOps dans le monde du développement logiciel. De plus en plus d'entreprises adoptent une approche DevOps afin d'apporter continuellement de la valeur aux utilisateurs de leurs logiciels. Cela implique un changement de culture, la mise en place de nouveaux outils et de nouvelles pratiques, et une façon différente de collaborer pour « faire du logiciel ». Ce module vise à sensibiliser les étudiants aux pratiques DevOps à travers la découverte notamment de l'intégration continue et du déploiement continu.
Securite des systemes d'information
Composante
ENSEIRB-MATMECA
La sécurité des systèmes d'informations est un enjeu essentiel de notre société où l'utilisation de systèmes électroniques de traitement des données connectés en réseaux s'est généralisée. Aussi bien les entreprises privées que les administration nationales se dotent maintenant de moyens importants pour veiller à la sécurité de leurs systèmes et limiter les risques d'attaques aux conséquences importantes sur des plans humains, financiers ainsi qu'en terme de protection des données.
L'objectif de ce module est donc de renforcer la connaissance des étudiants dans ce domaine en leur proposant une introduction approfondie à la cybersécurité. Pour atteindre cet objectif, le cours adopte une approche pratique en étudiant et en mettant en œuvre diverses cyberattaques parmi les plus courantes aujourd'hui, notamment celles identifiées dans le cadre du OWASP Top 10. Une mise en œuvre des bonnes pratiques existantes pour se prémunir contre ces attaques sera également proposée. En outre, le cours explorera les nouvelles tendances et orientations émergentes dans le domaine de la cybersécurité.
Plan
Le module s'organise en 13 séances de deux heures. Parmi ces 13 séances :
12 d'entre elles porteront sur un ensemble de mises en pratique organisées autour d'un projet global : la sécurisation d'un site Web. Parmi les points/types de menaces/solutions de sécurité qui pourront être abordés et mis en place par les étudiants au cours de ces séances on peut notamment citer :
Les attaques réseau (DNS Spoofing, Man-in-the-Middle)
Les failles de sécurité (Injections SQL)
L'ingénierie Sociale
La mise en oeuvre de nouvelles solutions telles que la Blockchain.
etc.
1 d'entre elles portera sur la présentation des élèves d'un nouveau sujet en lien avec la cybersécurité parmi un ensemble de sujets qui leurs seront proposés. L'idée sera de permettre à l'ensemble de se sensibiliser à de nouvelles problématiques
Systèmes de Types et Programmation
Composante
ENSEIRB-MATMECA
Programmer, c'est transcrire un problème algorithmique dans un langage particulier. Cette opération n'est pas univoque (plusieurs façons de faire) et potentiellement hasardeuse (plusieurs façons de se tromper). De quels outils un programmeur dispose t'il pour l'assister dans cette transcription ? Quelles formes de vérification automatique existent qui permettent de certifier des propriétés d'un programme ?
L'un des outils les plus généralisés et directement applicables utilisés par les programmeurs pour vérifier leur code, ce sont les systèmes de types. Ce cours va s'intéresser à :
définir et comprendre ce qu'est un système de type,
comprendre les algorithmes permettant de vérifier la correction des types,
étudier les formes classiques de polymorphisme, des manières de manipuler des types distincts de façon uniforme,
examiner des formes plus avancées de vérification, allant jusqu'aux preuves de programmes.
Ce cours examine les langages de programmation de manière transverse, et prend des exemples variés dans des langages tels qu'Haskell, OCaml, et Scala (entre autres) en plus des classiques que sont le C, C++ et Java. Il aborde le problème d'un point de vue formel, en se ramenant systématiquement au modèle fondamental du lambda-calcul simplement typé. L'idée essentielle reliant ces concepts est leur caractère applicable, permettant de programmer et de certifier, sans avoir à écrire directement des preuves.
Makers
Composante
ENSEIRB-MATMECA
L'objectif de ce module est de se familiariser avec les techniques de prototypage rapide disponible au FabLab à travers la réalisation d'un projet. L'élève est formé à l'impression 3D, la découpe laser, la modélisation 3D, la conception et la programmation de circuit embarqués (arduino, raspberry pi).
Interfaces sonores
Composante
ENSEIRB-MATMECA
Ce cours est une initation au son numérique et ses interfaces. Les compétences visées sont les suivantes :
- reconnaître les paramètres physiques et perceptifs des sons et interpréter leurs représentations
- maîtriser le principe de numérisation et les différents formats sonores numériques (DAC, échantillonage, quantification) et le fonctionnement des cartes sons.
- savoir utiliser les protocoles de communication et de synchronisation des sons numériques (MIDI, OSC, JACK)
- savoir manipuler les sons numériques par programme C (lecture, filtrage)
- connaître les principes de base de la synthèse sonore et savoir synthétiser des sons au moyen de langages de synthèse sonore
- connaître les principes de base des séquenceurs et savoir écrire des plug-ins
Initiation à la recherche - Parcours PhD
Composante
ENSEIRB-MATMECA
L'ENSEIRB-MATMECA propose un parcours « ingénieur-docteur » destiné aux élèves-ingénieurs qui souhaitent s'impliquer dans la recherche scientifique et ses applications afin de susciter des vocations RetD et de faciliter l'appréhension des études doctorales (poursuite en thèse de doctorat). L'objectif du parcours « ingénieur-docteur » est de promouvoir et de valoriser la recherche auprès des élèves ingénieur, de montrer l'importance de la recherche et le besoin de développement d'expertises scientifiques du haut niveau.
Le module "Initiation à la recherche" est un enseignement du parcours "ingénieur-docteur". Il vise à développer des compétences bibliographiques par la lecture d'un article scientifique (conférence, journal, chapitre de livre, etc) encadrée par un chercheur, la réalisation d'une synthèse bibliographique et une présentation orale de celle-ci.
Programmation multicoeur et GPU
Composante
ENSEIRB-MATMECA
Comment tirer partie de la puissance de calcul des ordinateurs contemporains ? Ce cours est une initiation aux techniques algorithmiques, logicielles et matérielles permettant de programmer des machines disposant de plusieurs coeurs et/ou d'accélérateurs tels que les cartes graphiques (GPU). Autrement dit, il s'agira de comprendre comment exploiter les capacités de traitement en paralléle offertes par le matériel.
Plan
intérêts et notions de base du parallélisme, granularité des calculs, d'équilibrage de charge
architecture générale des ordinateurs multicoeur et des cartes graphiques
techniques algorithmiques générales de parallélisation
langages et bibliothèques incontournables de la programmation des architectures multicoeur
impacts de l'architecture et de la compilation sur la programmation : vers la portabilité des performances
programmation des machines hétérogènes équipées de processeurs specialisés (e.g. GPU)
I2-S8 Modules informatiques (au choix)
Composante
ENSEIRB-MATMECA
Introduction aux traitements des images
Composante
ENSEIRB-MATMECA
Il s'agit d'une introduction aux différentes méthodes existantes pour traiter les images numériques (filtrage, segmentation, ...) Ce cours couvre les différentes thématiques suivantes :
Manipulation des images numériques
Modèle fréquentielle
Techniques d'interpolations
Notion de morphologie mathématique
Transformation de domaine
Tranformation couleur
Débruitage d'images
La mise en pratique et la programmation des notions se fera en C.
Analyse de l'Innovation & Intelligence Technologique
Composante
ENSEIRB-MATMECA
Que ce soit à l'échelle d'une entreprise, d'un groupe industriel ou d'un territoire géographique, l'innovation est aujourd'hui une problématique stratégique majeure.
Cependant, bien que les bénéfices de l'innovation soient en partie bien connus, la compréhension du phénomène d'innovation reste complexe. L'enjeu est de taille pour les acteurs innovants ou qui soutiennent l'innovation : bien comprendre les dynamiques d'innovation facilitent leur prise de décision en les aidant à mieux se positionner dans des environnements dynamiques, internationalisés et hautement compétitifs.
Face à ces enjeux, l'intelligence technologique peut être définie comme « Ensemble des activités coordonnées visant l'acquisition de connaissances solides sur l'environnement scientifique et technologique afin de soutenir le processus deprise de décision, en particulier sur les problématiques liées au management de la recherche et l'innovation ».
L'intelligence technologique s'apparente donc à la recherche et l'analyse d'informations stratégiques pour mieux comprendre les environnements innovants. C'est un ensemble de méthodes et d'outils originaux et à forte valeurajoutée qui permettent d'aborder un panel de questions variées, des plus larges aux plus précises. Exemples :
Quels sont les acteurs les plus actifs sur les technologies blockchain ? Quels sont les pays positionnés sur le développement de technologies pour le stockage d'hydrogène ? Quelles universités possèdent des compétences solides sur les technologies d'imagerie médicale ? Comment IBM aborde les technologies de deep learning ? Quelles entreprises travaillent sur mon domaine de compétence ?
Ce cours s'inscrit dans la volonté de sensibiliser aux enjeux de compréhension des environnements innovants.
Les étudiants pratiqueront l'intelligence technologique autour de cas appliqués de leur choix. Les 26 heures de cours s'articuleront en 3 parties et aboutiront à la réalisation d'un rapport collectif (groupe de trois ou quatreétudiants) qui présentera l'utilisation des méthodes en intelligence technologique acquises à travers une problématique choisie.
Les étudiants y manipuleront des bases de données structurées (base de données brevets principalement) et exploiteront les informations qui en sont issues grâce à des outils d'analyse dédiés.
L'innovation est aujourd'hui unanimement reconnue comme un facteur clés de succès du développement économique. La maîtrise de la technologie, toujours plus complexe, coûteuse, risquée, dans un monde en perpétuelle évolution est au coeur de la stratégie d'innovation des grands groupes industriels et pose la question du ressourcement. La démarche « d'Open Innovation » tente d'y répondre mais implique la mise en place de dispositifs de veille stratégique et d'intelligence économique/technologiques performants pour permettre l'identification précoce des partenaires clés et des signaux faibles annonciateurs de ruptures. L'analyse de ces informations multiples doit se faire dans un cadre sectoriel et non pas uniquement technologique pour alimenter une vision prospective de l'innovation dans son contexte à 10 ans. Ceci passe par une capacité à interroger, structurer et analyser des informations de très grandes masses renvoyant au concept de « Big Data ».
Ce cours et les travaux pratiques associés visent à appréhender :
les bases de données existantes dans le domaine de l'innovation (ORBIT et Scopus notamment)
les outils de veille et de traitement de l'information de type « Big Data » (informations brevets, publications scientifiques, réseaux sociaux... ) (Scoop it, Intellixir...).
Il doit permettre également de maitriser les outils de visualisation graphique adaptés à la visualisation de données de grandes masses (GEPHI et Sigma JS).
Environnement logiciel et bases de données : Les logiciels, outils de veille et bases de données ne nécessitent pas d'installation préalable, à l'exception du logiciel GEPHI (représentation cartographique des données).
Introduction à la robotique
Composante
ENSEIRB-MATMECA
Dans ce cours, les concepts de bases de la modélisation géométrique et cinématique des robots, ainsi que la planification de trajectoires sur des robots articulaires et mobiles seront présentés. L'objectif est de donner un aperçu des problématiques liées à la modélisation, au contrôle, mais aussi à la mise en pratique concrète sur du vrai matériel.
Programme:
Notions fondamentales de la robotique: mécatronique, modélisation, cinématique et dynamique, planification. Il s'agit de comprendre ce qui définit un robot, d'en produire un modèle géométrique et physique et d'aborder les techniques classiques de contrôle.
Modèle géométrique direct et inverse de robots articulaires
Modèle cinématique (robot mobile)
Génération de trajectoire dans l'espace opérationnel (interpolations)
Locomotion de robots à pattes
Utilisation de simulateur physique
Expérimentations sur des véritables robots
Evaluation
Pour l'évaluation des connaissances, il sera demander de remettre un projet (individuel) évalué à la fin du cours. Dans l'idéal (si les conditions sanitaires le permettent), le projet sera réalisé sur des robots hexapodes ou quadrupède. Dans le cas dégradé (enseignement à distance), le projet sera réalisé sous forme de simulation.
Apprentissage et Deep Learning
Composante
ENSEIRB-MATMECA
Apprendre à formaliser un problème d'apprentissage
Connaître les notions d'apprentissage suoervisés et non supervisés, de régression et de classification
Comprend les principales méthodes d'apprentissage (KMeans, NL-Bayes, GMM, Support Vector Machines, Deep Learning)
Connaitre leurs applications
Savoir les appliquer.
S8 TOEIC (Rattrapage obligatoire)
Composante
ENSEIRB-MATMECA
UE I8-H - UE-B-4 : 1 module EX214 + 1 module EX205 + 1 module EX206 + LC206 (Rattrapage TOEIC)
ECTS
9 crédits
Composante
ENSEIRB-MATMECA
I2-S8 Modules informatiques (au choix)
Composante
ENSEIRB-MATMECA
Théorie des jeux pour la modélisation informatique
Composante
ENSEIRB-MATMECA
Suite aux travaux de John Nash au début des années 1950, la théorie des jeux a été utilisée principalement comme un modèle mathématique pour les intéractions économiques et sociales. Cependant, depuis le début des années 1980, la théorie des jeux occupe une place de plus en plus importante en informatique, et en particulier pour la logique et la vérification automatique de programmes. L'objectif de ce cours est de présenter quelques modèles de jeux, ainsi que des applications de la théorie dans plusieurs domaines de l'informatique.Une première partie de ce cours porte sur des jeux infinis sur des graphes finis ou infinis. Cette théorie possède des applications pour la théorie des automates (automates d'arbre), et la vérification de programme (mu-calcul ou autres logiques).
La deuxième partie porte sur les jeux en forme stratégique et les équilibres de Nash.
Flot et Combinatoire
Composante
ENSEIRB-MATMECA
La sécurisation et le dimensionnement des réseaux (urbain, informatique, de télécommunication,...), l'optimisation du routage des flux (financiers, d'information, de personnels, de produits), les problèmes de logistique et de transport (routier, aérien et du rail) représentent de réels enjeux pour les industriels. Les problèmes d'optimisation sous-jacents se ramènent le plus souvent à des modèles combinatoires qui sont des briques essentielles pour appréhender les systèmes complexes.
Ce cours vise à compléter la formation aux approches algorithmiques spécifiques aux problématiques d'optimisation combinatoire dans les graphes. Le cours vise à expliquer comment utiliser les outils de la programmation mathématique (typiquement la programmation linéaire et en nombre entiers) pour guider les algorithmes combinatoires vers des solutions optimales ou quand cela s'avère trop complexe, de bonne solutions approchées. L'objectif est de maîtriser les modèles et techniques de base qui servent dans les stratégies de résolution d'une grande variété de problèmes complexes.
Génie logiciel avancé
Composante
ENSEIRB-MATMECA
Depuis quelques années, on assiste à l'émergence du DevOps dans le monde du développement logiciel. De plus en plus d'entreprises adoptent une approche DevOps afin d'apporter continuellement de la valeur aux utilisateurs de leurs logiciels. Cela implique un changement de culture, la mise en place de nouveaux outils et de nouvelles pratiques, et une façon différente de collaborer pour « faire du logiciel ». Ce module vise à sensibiliser les étudiants aux pratiques DevOps à travers la découverte notamment de l'intégration continue et du déploiement continu.
Securite des systemes d'information
Composante
ENSEIRB-MATMECA
La sécurité des systèmes d'informations est un enjeu essentiel de notre société où l'utilisation de systèmes électroniques de traitement des données connectés en réseaux s'est généralisée. Aussi bien les entreprises privées que les administration nationales se dotent maintenant de moyens importants pour veiller à la sécurité de leurs systèmes et limiter les risques d'attaques aux conséquences importantes sur des plans humains, financiers ainsi qu'en terme de protection des données.
L'objectif de ce module est donc de renforcer la connaissance des étudiants dans ce domaine en leur proposant une introduction approfondie à la cybersécurité. Pour atteindre cet objectif, le cours adopte une approche pratique en étudiant et en mettant en œuvre diverses cyberattaques parmi les plus courantes aujourd'hui, notamment celles identifiées dans le cadre du OWASP Top 10. Une mise en œuvre des bonnes pratiques existantes pour se prémunir contre ces attaques sera également proposée. En outre, le cours explorera les nouvelles tendances et orientations émergentes dans le domaine de la cybersécurité.
Plan
Le module s'organise en 13 séances de deux heures. Parmi ces 13 séances :
12 d'entre elles porteront sur un ensemble de mises en pratique organisées autour d'un projet global : la sécurisation d'un site Web. Parmi les points/types de menaces/solutions de sécurité qui pourront être abordés et mis en place par les étudiants au cours de ces séances on peut notamment citer :
Les attaques réseau (DNS Spoofing, Man-in-the-Middle)
Les failles de sécurité (Injections SQL)
L'ingénierie Sociale
La mise en oeuvre de nouvelles solutions telles que la Blockchain.
etc.
1 d'entre elles portera sur la présentation des élèves d'un nouveau sujet en lien avec la cybersécurité parmi un ensemble de sujets qui leurs seront proposés. L'idée sera de permettre à l'ensemble de se sensibiliser à de nouvelles problématiques
Systèmes de Types et Programmation
Composante
ENSEIRB-MATMECA
Programmer, c'est transcrire un problème algorithmique dans un langage particulier. Cette opération n'est pas univoque (plusieurs façons de faire) et potentiellement hasardeuse (plusieurs façons de se tromper). De quels outils un programmeur dispose t'il pour l'assister dans cette transcription ? Quelles formes de vérification automatique existent qui permettent de certifier des propriétés d'un programme ?
L'un des outils les plus généralisés et directement applicables utilisés par les programmeurs pour vérifier leur code, ce sont les systèmes de types. Ce cours va s'intéresser à :
définir et comprendre ce qu'est un système de type,
comprendre les algorithmes permettant de vérifier la correction des types,
étudier les formes classiques de polymorphisme, des manières de manipuler des types distincts de façon uniforme,
examiner des formes plus avancées de vérification, allant jusqu'aux preuves de programmes.
Ce cours examine les langages de programmation de manière transverse, et prend des exemples variés dans des langages tels qu'Haskell, OCaml, et Scala (entre autres) en plus des classiques que sont le C, C++ et Java. Il aborde le problème d'un point de vue formel, en se ramenant systématiquement au modèle fondamental du lambda-calcul simplement typé. L'idée essentielle reliant ces concepts est leur caractère applicable, permettant de programmer et de certifier, sans avoir à écrire directement des preuves.
Makers
Composante
ENSEIRB-MATMECA
L'objectif de ce module est de se familiariser avec les techniques de prototypage rapide disponible au FabLab à travers la réalisation d'un projet. L'élève est formé à l'impression 3D, la découpe laser, la modélisation 3D, la conception et la programmation de circuit embarqués (arduino, raspberry pi).
Interfaces sonores
Composante
ENSEIRB-MATMECA
Ce cours est une initation au son numérique et ses interfaces. Les compétences visées sont les suivantes :
- reconnaître les paramètres physiques et perceptifs des sons et interpréter leurs représentations
- maîtriser le principe de numérisation et les différents formats sonores numériques (DAC, échantillonage, quantification) et le fonctionnement des cartes sons.
- savoir utiliser les protocoles de communication et de synchronisation des sons numériques (MIDI, OSC, JACK)
- savoir manipuler les sons numériques par programme C (lecture, filtrage)
- connaître les principes de base de la synthèse sonore et savoir synthétiser des sons au moyen de langages de synthèse sonore
- connaître les principes de base des séquenceurs et savoir écrire des plug-ins
Initiation à la recherche - Parcours PhD
Composante
ENSEIRB-MATMECA
L'ENSEIRB-MATMECA propose un parcours « ingénieur-docteur » destiné aux élèves-ingénieurs qui souhaitent s'impliquer dans la recherche scientifique et ses applications afin de susciter des vocations RetD et de faciliter l'appréhension des études doctorales (poursuite en thèse de doctorat). L'objectif du parcours « ingénieur-docteur » est de promouvoir et de valoriser la recherche auprès des élèves ingénieur, de montrer l'importance de la recherche et le besoin de développement d'expertises scientifiques du haut niveau.
Le module "Initiation à la recherche" est un enseignement du parcours "ingénieur-docteur". Il vise à développer des compétences bibliographiques par la lecture d'un article scientifique (conférence, journal, chapitre de livre, etc) encadrée par un chercheur, la réalisation d'une synthèse bibliographique et une présentation orale de celle-ci.
Programmation multicoeur et GPU
Composante
ENSEIRB-MATMECA
Comment tirer partie de la puissance de calcul des ordinateurs contemporains ? Ce cours est une initiation aux techniques algorithmiques, logicielles et matérielles permettant de programmer des machines disposant de plusieurs coeurs et/ou d'accélérateurs tels que les cartes graphiques (GPU). Autrement dit, il s'agira de comprendre comment exploiter les capacités de traitement en paralléle offertes par le matériel.
Plan
intérêts et notions de base du parallélisme, granularité des calculs, d'équilibrage de charge
architecture générale des ordinateurs multicoeur et des cartes graphiques
techniques algorithmiques générales de parallélisation
langages et bibliothèques incontournables de la programmation des architectures multicoeur
impacts de l'architecture et de la compilation sur la programmation : vers la portabilité des performances
programmation des machines hétérogènes équipées de processeurs specialisés (e.g. GPU)
Liste de modules (culture de l'ingénieur)
Composante
ENSEIRB-MATMECA
Management de projet digital et innovant
Composante
ENSEIRB-MATMECA
Connaissance des bases du pilotage du projet digital et/ou innovant
Intelligence Economique
Composante
ENSEIRB-MATMECA
Initiation à la finance de marché
Composante
ENSEIRB-MATMECA
Sciences techniques et sociétés
Composante
ENSEIRB-MATMECA
Parcours entrepreneur
Composante
ENSEIRB-MATMECA
Management humain et performant
Composante
ENSEIRB-MATMECA
Management & santé au travail
Composante
ENSEIRB-MATMECA
Initiation à la recherche - parcours PhD
Composante
ENSEIRB-MATMECA
Lire un article de recherche, réaliser une étude bibliographique en lien avec l'article, rédiger une note de synthèse, et la présenter à l'oral.
I2-S8 Modules informatiques (au choix)
Composante
ENSEIRB-MATMECA
Introduction aux traitements des images
Composante
ENSEIRB-MATMECA
Il s'agit d'une introduction aux différentes méthodes existantes pour traiter les images numériques (filtrage, segmentation, ...) Ce cours couvre les différentes thématiques suivantes :
Manipulation des images numériques
Modèle fréquentielle
Techniques d'interpolations
Notion de morphologie mathématique
Transformation de domaine
Tranformation couleur
Débruitage d'images
La mise en pratique et la programmation des notions se fera en C.
Analyse de l'Innovation & Intelligence Technologique
Composante
ENSEIRB-MATMECA
Que ce soit à l'échelle d'une entreprise, d'un groupe industriel ou d'un territoire géographique, l'innovation est aujourd'hui une problématique stratégique majeure.
Cependant, bien que les bénéfices de l'innovation soient en partie bien connus, la compréhension du phénomène d'innovation reste complexe. L'enjeu est de taille pour les acteurs innovants ou qui soutiennent l'innovation : bien comprendre les dynamiques d'innovation facilitent leur prise de décision en les aidant à mieux se positionner dans des environnements dynamiques, internationalisés et hautement compétitifs.
Face à ces enjeux, l'intelligence technologique peut être définie comme « Ensemble des activités coordonnées visant l'acquisition de connaissances solides sur l'environnement scientifique et technologique afin de soutenir le processus deprise de décision, en particulier sur les problématiques liées au management de la recherche et l'innovation ».
L'intelligence technologique s'apparente donc à la recherche et l'analyse d'informations stratégiques pour mieux comprendre les environnements innovants. C'est un ensemble de méthodes et d'outils originaux et à forte valeurajoutée qui permettent d'aborder un panel de questions variées, des plus larges aux plus précises. Exemples :
Quels sont les acteurs les plus actifs sur les technologies blockchain ? Quels sont les pays positionnés sur le développement de technologies pour le stockage d'hydrogène ? Quelles universités possèdent des compétences solides sur les technologies d'imagerie médicale ? Comment IBM aborde les technologies de deep learning ? Quelles entreprises travaillent sur mon domaine de compétence ?
Ce cours s'inscrit dans la volonté de sensibiliser aux enjeux de compréhension des environnements innovants.
Les étudiants pratiqueront l'intelligence technologique autour de cas appliqués de leur choix. Les 26 heures de cours s'articuleront en 3 parties et aboutiront à la réalisation d'un rapport collectif (groupe de trois ou quatreétudiants) qui présentera l'utilisation des méthodes en intelligence technologique acquises à travers une problématique choisie.
Les étudiants y manipuleront des bases de données structurées (base de données brevets principalement) et exploiteront les informations qui en sont issues grâce à des outils d'analyse dédiés.
L'innovation est aujourd'hui unanimement reconnue comme un facteur clés de succès du développement économique. La maîtrise de la technologie, toujours plus complexe, coûteuse, risquée, dans un monde en perpétuelle évolution est au coeur de la stratégie d'innovation des grands groupes industriels et pose la question du ressourcement. La démarche « d'Open Innovation » tente d'y répondre mais implique la mise en place de dispositifs de veille stratégique et d'intelligence économique/technologiques performants pour permettre l'identification précoce des partenaires clés et des signaux faibles annonciateurs de ruptures. L'analyse de ces informations multiples doit se faire dans un cadre sectoriel et non pas uniquement technologique pour alimenter une vision prospective de l'innovation dans son contexte à 10 ans. Ceci passe par une capacité à interroger, structurer et analyser des informations de très grandes masses renvoyant au concept de « Big Data ».
Ce cours et les travaux pratiques associés visent à appréhender :
les bases de données existantes dans le domaine de l'innovation (ORBIT et Scopus notamment)
les outils de veille et de traitement de l'information de type « Big Data » (informations brevets, publications scientifiques, réseaux sociaux... ) (Scoop it, Intellixir...).
Il doit permettre également de maitriser les outils de visualisation graphique adaptés à la visualisation de données de grandes masses (GEPHI et Sigma JS).
Environnement logiciel et bases de données : Les logiciels, outils de veille et bases de données ne nécessitent pas d'installation préalable, à l'exception du logiciel GEPHI (représentation cartographique des données).
Introduction à la robotique
Composante
ENSEIRB-MATMECA
Dans ce cours, les concepts de bases de la modélisation géométrique et cinématique des robots, ainsi que la planification de trajectoires sur des robots articulaires et mobiles seront présentés. L'objectif est de donner un aperçu des problématiques liées à la modélisation, au contrôle, mais aussi à la mise en pratique concrète sur du vrai matériel.
Programme:
Notions fondamentales de la robotique: mécatronique, modélisation, cinématique et dynamique, planification. Il s'agit de comprendre ce qui définit un robot, d'en produire un modèle géométrique et physique et d'aborder les techniques classiques de contrôle.
Modèle géométrique direct et inverse de robots articulaires
Modèle cinématique (robot mobile)
Génération de trajectoire dans l'espace opérationnel (interpolations)
Locomotion de robots à pattes
Utilisation de simulateur physique
Expérimentations sur des véritables robots
Evaluation
Pour l'évaluation des connaissances, il sera demander de remettre un projet (individuel) évalué à la fin du cours. Dans l'idéal (si les conditions sanitaires le permettent), le projet sera réalisé sur des robots hexapodes ou quadrupède. Dans le cas dégradé (enseignement à distance), le projet sera réalisé sous forme de simulation.
Apprentissage et Deep Learning
Composante
ENSEIRB-MATMECA
Apprendre à formaliser un problème d'apprentissage
Connaître les notions d'apprentissage suoervisés et non supervisés, de régression et de classification
Comprend les principales méthodes d'apprentissage (KMeans, NL-Bayes, GMM, Support Vector Machines, Deep Learning)
Connaitre leurs applications
Savoir les appliquer.
S8 TOEIC (Rattrapage obligatoire)
Composante
ENSEIRB-MATMECA
UE I8-C - Projet de génie logiciel
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) : N1 : débutant N2 : intermédiaire N3 : confirmé N4 : expertCompétences acquises au sein de cette UE :
C1. Connaissance et compréhension d'un large champ de sciences fondamentales (algorithmique, automates, langages, graphes, logique ...) et capacité d'analyse et de synthèse associéeC2. Capacité à utiliser les fondements et modèles pour concevoir, réaliser et valider les systèmes informatiquesC3. Capacité à choisir et utiliser les outils et les méthodes adéquats dans le cadre du cycle de développement logiciels (langage de programmation, bibliothèques, IDE, Framework, middleware)C4. Capacité à spécifier les besoins et à concevoir l'architecture des applications dans divers domaines scientifiques et technologiques (big data, cloud, développement mobile, calcul parallèle, multimédia, robotique, sécurité des systèmes, vérification des systèmes critiques...) C5. Capacité à tester, valider et prouver les systèmes informatiques afin d'assurer leur bon fonctionnement dans des conditions critiquesC6. Capacité à appréhender, anticiper et intégrer les évolutions technologiques et méthodologiques d'un ensemble de domaines liés aux métiers d'ingénieur informatiqueC7. Capacité à analyser, organiser, répartir les tâches inhérentes à la réalisation d'un projet en équipe en réponse à une demande ou un besoin client parfois partiellement définis, à s'adapter à de nouvelles contraintes liées au projet C8. Capacité à présenter efficacement les solutions et à synthétiser et à démontrer la pertinence des résultatsNiveau acquis à la fin de la formation:C1:N2C2:N2C3:N2C4:N2C5:N2C6:N1C7:N2C8:N2
Projet de systèmes d'exploitation
Composante
ENSEIRB-MATMECA
Ce projet vise à construire une bibliothèque de threads en espace utilisateur. On va fournir une interface de programmation plus ou moins proche des pthreads,mais en les exécutant sur un seul thread noyau. Les intérêts sont d'étudier les coûts d'ordonnancement, de comparer des politiques d'ordonnancement facilement configurables, et d'expérimenter avec les changements de contexte.
Plan
implémentation des fonctionnalités de base avec quelques tests unitaires
évaluation de la complexité de l'implémentation
mise en place de tests de performance
mplémentation de fonctionnalités additionnelles
optimisation des performances
rapport technique et soutenance
Projet de Génie Logiciel - Développement
Composante
ENSEIRB-MATMECA
Ce module est le principal projet de génie logiciel de deuxième année. Il consiste à développer par équipes un logiciel qui répond aux attentes d'un client conformément aux besoins et aux exigences exprimés dans le document de spécifications. Le logiciel produit et ses manuels, un rapport et une soutenance orale constituent la base de notation de ce module.
Ce module permet d'initier les élèves ingénieurs aux domaines suivants :
programmation avancée et répartition du travail dans des groupes de programmation
intégration logicielle
respect des délais
interaction avec un client et un responsable pédagogique qui joue le rôle de chef de service
Projet de réseaux
Composante
ENSEIRB-MATMECA
Ce projet de programmation réseau consiste à écrire des programmes qui communiquent entre eux et à programmer à travers un réseau informatique. L'objectif principal est d'élaborer une application réseau complexe en utilisant le langage C (fonctions POSIX) et le langage JAVA et en utilisant le traitement multitâches (Thread ). Les communications synchrones et asynchrones seront évaluées. La programmation en réseau soulève de nombreux problèmes qui n'apparaissent pas dans le cas d'applications non communicantes. Des bibliothèques faciles à utiliser peuvent être intégrées pour masquer la complexité du réseau.
Un sujet unique de developpement d'application Réseaux permet aux étudiants de conduire un travail d'analyse, de conception et de réalisation d'une application réseau. L'objectif est triple: une pratique de la programmation réseau, un approfondissement des connaissances et un travail de spécification d'une application non triviale.
Une part importante du travail consiste à définir une solution, à la décrire et à la justifier (c'est un travail d'analyse qui consiste en une première expérience de spécification d'un logiciel système et réseau). L'autre partie consiste à réaliser la solution, la tester et faire une démonstration.
Plan
Le sujet disponible une semaine avant le début de la première séance de cours
Exemples de sujet :
Application d'échange de Fichiers en Pair à Pair (FileShare)
Simulation d'un aquarium de poissons
Organisation
Les élèves doivent s'organiser en équipes de 4-5 élèves.
La programmation se fera obligatoirement en C et un langage orienté objet (C++, Java, C#).
Un rapport intermédiaire d'avancement est à remettre à la fin de la 5ème séance.
La 10ème séance est réservée aux soutenances du projet. Le rapport final doit être rendu avant la soutenance.
Les fichiers sources doivent être fournis dans une archive à la fin de la 9ème séance
Langues et Culture de l'ingénieur
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
LV1 Anglais
Composante
ENSEIRB-MATMECA
Objectifs :
- Savoir être autonome dans son travail
- Comprendre et exploiter des documents variés d'ordre culturel anglophone
- Savoir appréhender le multiculturel
- Savoir participer activement à une conversation, défendre ses opinions
- Savoir écrire un texte clair et détaillé, et/ou lié à une opinion donnée
LV2
Composante
ENSEIRB-MATMECA
Niveaux de compétence et activités correspondants aux niveaux A2-B2 du CECR dans la langue choisie en 1e année et suivie en S7. Les groupes de niveau sont maintenus.
Savoir comprendre et s'exprimer à l'oral et à l'écrit (C 10 / N1-N3)
Savoir s'exprimer avec aisance et précision (C 10 / N1-N3)
Savoir adapter un discours approprié à une situation donnée (C 10, C 12/N1-N3)
Etudier la culture et la civilisation à travers la langue.
Atteindre au moins le niveau A2 -B1 du cadre européen des langues (C 10 /N1-N3)
Intégrer l'entreprise
Composante
ENSEIRB-MATMECA
Pilotage Dynamique des projets
Objectifs
- Apprendre à sélectionner les projets les plus rentables - Calcul de coût complets et partiel avec seuil de rentabilité sur projet - Contrôle de gestion sur développement des projetsCOURS 1 : LE SYSTèME D'ORGANISATION COMPTABLE1. les obligations fiscales et comptable de l'entreprise MC : fiscalité des entreprises, principes comptables, documents de synthèse2. Synoptique du système d'organisation comptable3. Nature des engagements comptables En comptabilité : MC charges, produits, emplois, ressources4. plan des comptes MC : le plan comptable générale5. Les documents de synthèse (Bilan et compte de résultat)COURS 2 : FAIRE LE CHOIX DE VALIDER LE DEMARRAGE D'UN PROJET1. Projet et gestion de projet MC : projet, gestion de projet, cycle en V, méthode agile... (voir cours de 1A)2. Les critères économiques de décision2.1 Le concept d'actualisation 2.1.1. Présentation 2.1.2 Taux proportionnel - taux équivalent 2.1.3 Cas d'une somme de flux financiers constants MC : actualisation, taux, valeur acquise, valeur actuelle2.2 Les cash-flows prévisionnels d'un projet MC : Capacité d'autofinancement, cash-flows2.3 La valeur actuelle nette des cash-flows du projet MC : VAN, coût moyen pondéré du projet2.4 Autres critères de choix d'investissement MC : TIR, Indice de profitabilité, délai de récupération.2.5 Choix d'investissement en avenir incertain (présentation / outils) MC : Laplace, maximax, minimax, maximinCOURS 3 : LA RENTABILITé D'EXPLOITATION DES PROJETS1. Définition et maîtrise des coûts2. Une typologie des coûts : Coût variable versus coût fixe3. Coût et décision de gestion 3.1 La méthode du coût variable 3.2 Le modèle coût - volume - profit (calcul du seuil de rentabilité)COURS 4 : PRISE DE DéCISION ET CONTRôLE1. La prise de décision2. Le pilotage économique des projets 2.1 Le processus de contrôle 2.2 Le pilotage par la méthode de la valeur acquise
Engagement Etudiant facultatif (Niveau élevé)
Composante
ENSEIRB-MATMECA
Reconnaissance de l'engagement étudiant dans la vie sociale, associative ou personnelle
Chaque élève-ingénieur peut faire une demande de validation des compétences, connaissances et aptitudes qu'il a acquises dans l'exercice des activités suivantes :
activité bénévole au sein d'une association,
activité de promotion de l'école ou de l'établissement,
implication au service de l'école ou de l'établissement,
activité professionnelle,
activité militaire dans la réserve opérationnelle,
engagement de sapeur-pompier volontaire,
service civique,
volontariat dans les armées,
participation aux conseils de l'établissement et des écoles, d'autres établissements d'enseignement supérieur ou des centres régionaux des œuvres universitaires et scolaires.
Un engagement étudiant est considéré de niveau élevé lorsqu'un élève-ingénieur a des fonctions/missions définies et reconnues dans l'exercice de ses activités.
Le module facultatif engagement étudiant donne lieu à une note sur 20 points entraînant un bonus maximum de 1 point/20 à la moyenne de l'UE (Langues et culture de l'ingénieur). La note obtenue à ce module ne peut pas diminuer la moyenne de l'UE (Langues et culture de l'ingénieur).
Engagement Étudiant facultatif (Niveau très élevé)
Composante
ENSEIRB-MATMECA
Reconnaissance de l'engagement étudiant dans la vie sociale, associative ou personnelle
Chaque élève-ingénieur peut faire une demande de validation des compétences, connaissances et aptitudes qu'il a acquises dans l'exercice des activités suivantes :
activité bénévole au sein d'une association,
activité de promotion de l'école ou de l'établissement,
implication au service de l'école ou de l'établissement,
activité professionnelle,
activité militaire dans la réserve opérationnelle,
engagement de sapeur-pompier volontaire,
service civique,
volontariat dans les armées,
participation aux conseils de l'établissement et des écoles, d'autres établissements d'enseignement supérieur ou des centres régionaux des œuvres universitaires et scolaires.
Un engagement étudiant est considéré de niveau très élevé lorsqu'un élève-ingénieur a des fonctions/missions comportant des responsabilités administratives, financières et/ou pénales dans l'exercice de ses activités. Un engagement très élevé doit également comprendre un aspect encadrement et animation.
Le module facultatif engagement étudiant donne lieu à une note sur 20 points entraînant un bonus maximum de 2 point/20 à la moyenne de l'UE (Langues et culture de l'ingénieur). La note obtenue à ce module ne peut pas diminuer la moyenne de l'UE (Langues et culture de l'ingénieur).
Semestre 9 - Extérieur
ECTS
30 crédits
Composante
ENSEIRB-MATMECA
Semestre 9 - Algorithmes et méthodes formelles (AMF)
ECTS
30 crédits
Composante
ENSEIRB-MATMECA
UE I9AMF-A - Master informatique Université de Bordeaux (au choix)
Composante
ENSEIRB-MATMECA
UE I9AMF-A1 - Modèles et algorithmes
ECTS
25 crédits
Composante
ENSEIRB-MATMECA
Majeure en algorithmique avancée, mineure en vérification logicielle
Personnalisation (au choix)
Composante
ENSEIRB-MATMECA
Jeux, synthèse et contrôle
Composante
ENSEIRB-MATMECA
Partie 1:
Introduction à la théorie des jeux pour la vérification et la synthèse. La synthèse de systèmes ouverts ou de contrôleurs part du principe d'un système réactif, qui doit intéragir avec son environnement. Les deux entités - système et environnement - sont vues en tant que 2 joueurs antagonistes. On abordera différents types de jeux : jeux à deux joueurs sur des arènes finies, jeux pour la synthèse de contrôleurs, et jeux distribués.
Partie 2:
Bases théoriques de l'apprentissage par renforcement, un framework de l'intelligence artificielle permettant à des agents d'acquérir des connaissances et de prendre des décisions en interagissant avec leur environnement. Nous explorerons en détail les concepts fondamentaux tels que le problème des bandits manchots, les processus de décision markoviens, les compromis entre exploration et exploitation, le Q-learning, etc. ainsi que des techniques avancées telles que l'approximation de fonction et le Deep Q-learning. À la fin de ce cours, vous aurez entre autres acquis les compétences nécessaires pour comprendre AlphaGo, première IA à surpasser l'humain au jeu de go.
Vérification de logiciels
Composante
ENSEIRB-MATMECA
Ce cours a pour but principal d’introduire des techniques classiques de vérification et de les implémenter dans un vérificateur de programmes (simples). L’outil réalisé au cours du semestre est capable de détecter des violation d’assertions sur des programmes dans un sous-langage du C (uniquement des entiers et pas de pointeurs) sans que l’utilisateur ait à fournir d’autres information que le programme.
Partie 1:
Cadre général du vérificateur (notamment le langage vérifié et sa sémantique), visant à familiariser avec le langage utilisé (Ocaml) et le SMT-solveur utilisé (Z3), et présentation de la technique du Bounded Model Checking à travers deux algorithmes pour le réaliser.
Partie 2:
Introduction à l'interprétation abstraite, qui consiste à regarder des abstractions de l’ensemble des exécutions d’un programme dans un domaine mathématique bien ordonné plus simple. Durant cette partie, plusieurs domaines abstraits simples sont implémentés.
Partie 3:
Présentation de la technique du raffinement d’abstraction guidé par contre-exemple (CEGAR) et quelques bases sur les réseaux de Petri.
Algorithmique appliquée
Composante
ENSEIRB-MATMECA
L'objectif de cet enseignement est de balayer quelques techniques/approches algorithmiques pour résoudre des problèmes de toutes sortes. Analyser ces techniques pour comprendre pourquoi elles marchent, identifier leurs points forts et leurs faiblesses. Car en algorithmique tout est question de compromis: tel algorithme sera efficace pour telles données ou structures de données. Programmer ces approches et les tester sur un problème en grandeur réelle. Le projet représente 75% de la note finale, 25% pour le test écrit.
Logique et langages
Composante
ENSEIRB-MATMECA
Ce cours introduit la logique des modèles finis, tels que les mots, les arbres et les graphes fini, ainsi que des logiques temporelles utilisées en vérification. Nous présenterons également les logiques de description qui servent à représenter de manière formelle des connaissances d’un domaine particulier (e.g. médecine) pour améliorer l’interrogation et le partage d'informations. On s’intéressera au pouvoir d’expression des logiques considérées, ainsi que des problèmes algorithmiques variés (validation de formule sur un modèle, satisfiabilité de formule, inférence logique, etc).
Nous aborderons également l’apprentissage d'automates et de formules LTL à partir d’exemples dans des contextes passifs et actifs. Nous discuterons des algorithmes associés à ces problèmes (bornes supérieures) ainsi que des questions de complexité (bornes inférieures). Si le temps le permet, nous mettrons également en lumière un lien étroit entre la théorie des automates et la complexité des circuits algébriques, et montrerons comment les résultats de l'une peuvent être appliqués à l'autre.
Théorie des graphes avancée
Composante
ENSEIRB-MATMECA
La théorie des graphes est un modèle très général qui permet de représenter des problèmatiques très variées, que ce soit dans les réseaux (de toute nature) mais aussi pour des structures hierarchisées comme les bases de données. La culture générale des problématiques de graphe que nous proposons dans ce cours ainsi que la connaissance des outils efficaces pour ces problématiques sont des atouts pour reconnaître et traiter les problèmes qu'elles modélisent.
Cet enseignement présente des notions avancées de théorie des graphes et familiarise l’étudiant avec certaines techniques de preuve classiques, liées notamment à la coloration de graphes. Quelques problèmes et conjectures classiques sont abordés.
Algorithmique distribuée
Composante
ENSEIRB-MATMECA
Objectifs : introduire l’algorithmique distribuée; présenter les différents modèles et contraintes du calcul distribué ; présenter et analyser quelques algorithmiques classiques du domaine ; concevoir des algorithmes s'exécutant sur des systèmes distribués
Séminaire
Composante
ENSEIRB-MATMECA
Le but de ce cours est de familiariser les étudiants avec les séminaires de recherche, à la fois en tant que spectateur et en temps que présentateur. Les élèves y seront encouragés à assister au séminaires des équipes de recherche du LaBRI et à discuter de leur expérience. Ils devront également préparer deux présentation, une première sur un problème ouvert, puis une seconde sur un article de recherche, qu’il retravailleront en fonction des retours. Ils devront également écouter leurs camarades faire leurs présentation et leur faire des critiques constructives, et poser des questions.
Initiation à la recherche
Composante
ENSEIRB-MATMECA
Objectifs : Lire un article scientifique.
Identifier les ressources connexes à la problématique scientifique ciblée par l'article (réaliser une étude bibliographique).
Rédiger un résumé des contributions apportées par l'article.
Présenter une synthèse de l'article.
UE I9AMF-A2 - Vérification logicielle
ECTS
25 crédits
Composante
ENSEIRB-MATMECA
Majeure en vérification logicielle, mineure en algorithmique avancée.
Personnalisation 1 (au choix)
Composante
ENSEIRB-MATMECA
Théorie des graphes avancée
Composante
ENSEIRB-MATMECA
La théorie des graphes est un modèle très général qui permet de représenter des problèmatiques très variées, que ce soit dans les réseaux (de toute nature) mais aussi pour des structures hierarchisées comme les bases de données. La culture générale des problématiques de graphe que nous proposons dans ce cours ainsi que la connaissance des outils efficaces pour ces problématiques sont des atouts pour reconnaître et traiter les problèmes qu'elles modélisent.
Cet enseignement présente des notions avancées de théorie des graphes et familiarise l’étudiant avec certaines techniques de preuve classiques, liées notamment à la coloration de graphes. Quelques problèmes et conjectures classiques sont abordés.
Algorithmique distribuée
Composante
ENSEIRB-MATMECA
Objectifs : introduire l’algorithmique distribuée; présenter les différents modèles et contraintes du calcul distribué ; présenter et analyser quelques algorithmiques classiques du domaine ; concevoir des algorithmes s'exécutant sur des systèmes distribués
Systèmes de types et programmation
Composante
ENSEIRB-MATMECA
Comprendre et mettre en oeuvre l'intérêt et les principes de la démarche de recherche fondamentale et/ou appliquée
Savoir se remettre en question, faire preuve d'esprit critique
Construire et développer une argumentation.
Connaître et mettre en application les principaux modèles mathématiques intervenant dans les différentes disciplines connexes du domaine Sciences et Technologies mais aussi des autres domaines
Maîtriser les bases de la logique et organiser un raisonnement mathématique.
être capable de traduire un problème simple en langage mathématique.
Connaître les principaux paradigmes de programmation et sélectionner un langage adapté à une situation donnée
Identifier les limites de l'informatique en termes de calculabilité et de complexité
Modéliser une situation concrète en un énoncé formel au moyen d'outils (e.g., automates, langages, grammaires, graphes)
Comprendre une preuve de correction d'algorithme (e.g., variants/invariants, induction, convergence)
Types, spécifications et preuves
Composante
ENSEIRB-MATMECA
Comprendre et mettre en oeuvre l'intérêt et les principes de la démarche de recherche fondamentale et/ou appliquée
Savoir se remettre en question, faire preuve d'esprit critique
Construire et développer une argumentation.
Connaître et mettre en application les principaux modèles mathématiques intervenant dans les différentes disciplines connexes du domaine Sciences et Technologies mais aussi des autres domaines
Maîtriser les bases de la logique et organiser un raisonnement mathématique.
Construire et rédiger une démonstration mathématique synthétique et rigoureuse.
être capable de traduire un problème simple en langage mathématique.
Connaître les principaux paradigmes de programmation et sélectionner un langage adapté à une situation donnée
Modéliser une situation concrète en un énoncé formel au moyen d'outils (e.g., automates, langages, grammaires, graphes)
Comprendre une preuve de correction d'algorithme (e.g., variants/invariants, induction, convergence)
Ecrire une preuve de correction d'algorithme
Personnalisation 2 (au choix)
Composante
ENSEIRB-MATMECA
Logique et langages
Composante
ENSEIRB-MATMECA
Ce cours introduit la logique des modèles finis, tels que les mots, les arbres et les graphes fini, ainsi que des logiques temporelles utilisées en vérification. Nous présenterons également les logiques de description qui servent à représenter de manière formelle des connaissances d’un domaine particulier (e.g. médecine) pour améliorer l’interrogation et le partage d'informations. On s’intéressera au pouvoir d’expression des logiques considérées, ainsi que des problèmes algorithmiques variés (validation de formule sur un modèle, satisfiabilité de formule, inférence logique, etc).
Nous aborderons également l’apprentissage d'automates et de formules LTL à partir d’exemples dans des contextes passifs et actifs. Nous discuterons des algorithmes associés à ces problèmes (bornes supérieures) ainsi que des questions de complexité (bornes inférieures). Si le temps le permet, nous mettrons également en lumière un lien étroit entre la théorie des automates et la complexité des circuits algébriques, et montrerons comment les résultats de l'une peuvent être appliqués à l'autre.
Algorithmique appliquée
Composante
ENSEIRB-MATMECA
L'objectif de cet enseignement est de balayer quelques techniques/approches algorithmiques pour résoudre des problèmes de toutes sortes. Analyser ces techniques pour comprendre pourquoi elles marchent, identifier leurs points forts et leurs faiblesses. Car en algorithmique tout est question de compromis: tel algorithme sera efficace pour telles données ou structures de données. Programmer ces approches et les tester sur un problème en grandeur réelle. Le projet représente 75% de la note finale, 25% pour le test écrit.
Jeux, synthèse et contrôle
Composante
ENSEIRB-MATMECA
Partie 1:
Introduction à la théorie des jeux pour la vérification et la synthèse. La synthèse de systèmes ouverts ou de contrôleurs part du principe d'un système réactif, qui doit intéragir avec son environnement. Les deux entités - système et environnement - sont vues en tant que 2 joueurs antagonistes. On abordera différents types de jeux : jeux à deux joueurs sur des arènes finies, jeux pour la synthèse de contrôleurs, et jeux distribués.
Partie 2:
Bases théoriques de l'apprentissage par renforcement, un framework de l'intelligence artificielle permettant à des agents d'acquérir des connaissances et de prendre des décisions en interagissant avec leur environnement. Nous explorerons en détail les concepts fondamentaux tels que le problème des bandits manchots, les processus de décision markoviens, les compromis entre exploration et exploitation, le Q-learning, etc. ainsi que des techniques avancées telles que l'approximation de fonction et le Deep Q-learning. À la fin de ce cours, vous aurez entre autres acquis les compétences nécessaires pour comprendre AlphaGo, première IA à surpasser l'humain au jeu de go.
Vérification de logiciels
Composante
ENSEIRB-MATMECA
Ce cours a pour but principal d’introduire des techniques classiques de vérification et de les implémenter dans un vérificateur de programmes (simples). L’outil réalisé au cours du semestre est capable de détecter des violation d’assertions sur des programmes dans un sous-langage du C (uniquement des entiers et pas de pointeurs) sans que l’utilisateur ait à fournir d’autres information que le programme.
Partie 1:
Cadre général du vérificateur (notamment le langage vérifié et sa sémantique), visant à familiariser avec le langage utilisé (Ocaml) et le SMT-solveur utilisé (Z3), et présentation de la technique du Bounded Model Checking à travers deux algorithmes pour le réaliser.
Partie 2:
Introduction à l'interprétation abstraite, qui consiste à regarder des abstractions de l’ensemble des exécutions d’un programme dans un domaine mathématique bien ordonné plus simple. Durant cette partie, plusieurs domaines abstraits simples sont implémentés.
Partie 3:
Présentation de la technique du raffinement d’abstraction guidé par contre-exemple (CEGAR) et quelques bases sur les réseaux de Petri.
Séminaire
Composante
ENSEIRB-MATMECA
Le but de ce cours est de familiariser les étudiants avec les séminaires de recherche, à la fois en tant que spectateur et en temps que présentateur. Les élèves y seront encouragés à assister au séminaires des équipes de recherche du LaBRI et à discuter de leur expérience. Ils devront également préparer deux présentation, une première sur un problème ouvert, puis une seconde sur un article de recherche, qu’il retravailleront en fonction des retours. Ils devront également écouter leurs camarades faire leurs présentation et leur faire des critiques constructives, et poser des questions.
Initiation à la recherche
Composante
ENSEIRB-MATMECA
Objectifs : Lire un article scientifique.
Identifier les ressources connexes à la problématique scientifique ciblée par l'article (réaliser une étude bibliographique).
Rédiger un résumé des contributions apportées par l'article.
Présenter une synthèse de l'article.
UE I9AMF-B - Conception formelle des logiciels
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
Conception formelle
Composante
ENSEIRB-MATMECA
Ce cours a pour but d'apprendre à utiliser la modélisation formelle comme outil de détection de bugs et de preuve de systèmes ou programmes informatiques.
Spécification et preuve formelle de programmes
Composante
ENSEIRB-MATMECA
Maîtriser les concepts fondamentaux de la spécification et de la preuve formelle de programme.
Acquérir des compétences pratiques dans ce domaine.
Semestre 9 - Calcul Intensif et les Sciences des Données
ECTS
30 crédits
Composante
ENSEIRB-MATMECA
Architectures, langages et modèles de programmation
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Langages du parallélisme
Composante
ENSEIRB-MATMECA
Ce cours présente les différents langages de parallélisme utilisés aujourd'hui pour paralléliser les applications de simulation.
Le cours sera découpé en trois parties. Les deux premières parties présenteront le modèle Message Passing Interface et OpenMP. La troisième partie étudiera la programmation hybride MPI+X.
Multicoeurs et accélérateurs de calcul
Composante
ENSEIRB-MATMECA
Le cours est décomposé en 2 parties. L'une sur le fonctionnement des multicoeurs généralistes, l'autre sur le fonctionnement des accélérateurs graphiques.
L'objectif de ce cours sera d'une part de présenter ces architectures, et d'autre part d'apprendre à les programmer efficacement à l'aide :
- de flags de compilation
- d'extensions du compilateur (SIMD, fonction intrinsèques),
- d'annotations de code (OpenACC),
- de langages specifiques (CUDA),
- de bibliothèques optimisées (CUBLAS),
- d'outils d'analyse de performances,
- de support d'exécution à base de tâches (StarPU) pour articuler les multicoeurs généralistes et les accélérateurs graphiques.
La description du fonctionnement de ces architectures sera mise en oeuvre par le biais de microbenchmarks, pour bien comprendre le lien entre le code écrit, le code généré par les compilateurs et leurs performances.
Des TPs seront consacrés à l'écriture, au debug, et à l'optimisation de code accéléré sur GPU et sur multicoeurs, ainsi qu'a l'analyse des performances.
Outils et environnements pour le HPC
Composante
ENSEIRB-MATMECA
Apprentissage des outils du HPC, utilisation des clusters de calculs, job schedulers (slurm)
Outils d'analyse des programmes HPC (Intel Vtune, Nvidia nvprof, ...)
Algorithmique du calcul hautes performances, de la classification et de l'apprentissage
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Algorithmique du parallélisme, ordonnancement, structures de données, équilibrage de charges
Composante
ENSEIRB-MATMECA
La démocratisation des machines parallèles a rendu critique la bonne gestion des moyens de calculs. Processeurs, mémoire, bande passante, énergie... Le but de ce cours est de discuter les moyens algorithmiques d'attribution des ressources pour les différentes applications s'exécutant sur ces plateformes.
Parmi les sujets discutés, nous présenterons la manière d'analyser et résoudre algorithmiquement ce type de problèmes. Nous parlerons d'ordonnancement de ressources avec et sans contraintes. Nous parlerons d'hétérogénéité et de hiérarchie mémoire et d'équilibrage de charges.
Analyse de données.
Composante
ENSEIRB-MATMECA
Dans ce cours nous aborderons différentes techniques d'apprentissage statistique. Plus précisément nous nous intéresserons à l'apprentissage non supervisé avec les méthodes d'analyse en composantes principales et de partitionnement et à l'apprentissage supervisé avec les méthodes de régression et de classification. Ces méthodes seront mises en oeuvre lors de 2 séances de TP avec le langage de programmation R. Ensuite, des mini projets vous seront proposés.
Algorithmique numérique
Composante
ENSEIRB-MATMECA
L'objectif du cours est de parcourir les méthodes de résolution de problèmes d'algèbre linéaire dense dans un contexte de calcul haute performance. On s'intéressera particulièrement à la (re)formulation de ces algorithmes dans un contexte parallèle permettant une mise en relation avec les cours d'ordonnancement et d'équilibrage de charges, mais également dans le contexte de modèles de programmation avancés.
Systèmes linéaires
Factorisations triangulaires (Cholesky, LU, ...)
Résolution de systèmes triangulaires
Utilisation de bases orthogonales (QR)
Décomposition en valeurs singulières/propres
Introduction aux tenseurs
Environnement d'exécution, d'extraction et de visualisation
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Introduction à la visualisation scientifique
Composante
ENSEIRB-MATMECA
La visualisation scientifique située à l'interface entre l'informatique scientifique et les mathématiques appliquées est désormais un outil de communication, de compréhension et d'analyse de résultats rendu incontournable pour l'analyse de grands volume de données.
L'objectif de ce cours est de présenter les enjeux, les principes et des solutions logicielles de visualisation scientifique. Différentes notions seront abordées comme les formats des données, les pipelines de visualisation, les algorithmes d'extraction d'information ou encore l’analyse topologique.
Les TD s'intéressent à la compréhension et à l'utilisation de bibliothèques de visualisation ainsi qu’au développement d'un outil permettant de créer ses propres logiciels de visualisation 3D. Des données issues de simulations numériques 3D seront utilisées dans les TD telles que la modélisation de l'impact d'un asteroid dans l'océan ou encore la génération de turbulence dans un fluide en mouvement. Les technologies utilisées seront notamment Python, VTK, Paraview.
Supports pour le traitement de données
Composante
ENSEIRB-MATMECA
L'objectif de ce cours est d'apprendre aux étudiants les concepts de base nécessaires pour traiter des larges quantités de données de façon distribuée.
Pour cela, les points suivants seront discutés :
1. Introduction au big data
2. Le framework Hadoop et le système de fichiers distribué HDFS
3. Le paradigme MapReduce
4. La création d'applications avec Spark
5. Introduction aux bases de données NoSQL
Parcours personnalisé (au choix)
Composante
ENSEIRB-MATMECA
Outils pour l'apprentissage
Composante
ENSEIRB-MATMECA
Ce cours aborde les défis posés par les réseaux neuronaux modernes, qui nécessitent une mémoire et une puissance de calcul importantes, rendant difficile leur déploiement sur des dispositifs mobiles et périphériques. De plus, l'échelle et la complexité croissantes des réseaux neuronaux rendent l'entraînement très exigeant en ressources, créant souvent des goulets d'étranglement qui ralentissent les progrès des applications d'IA. Le cours est divisé en deux parties principales : l'amélioration de l'efficacité de l'inférence et l'optimisation du processus d'entraînement.
Dans la première partie, les étudiants se concentreront sur l'amélioration de l'efficacité de l'inférence en évaluant l'efficacité des réseaux neuronaux et en appliquant diverses techniques de compression, telles que le pruning, la factorisation tensorielle et la quantization, afin de créer des modèles plus petits et plus rapides sans perte de précision. La deuxième partie du cours est consacrée à l'optimisation du processus d'entraînement, en abordant les défis liés à la mise à l'échelle et à la complexité de l'entraînement des modèles d'IA modernes. Les étudiants exploreront des techniques telles que les méthodes d'économie de mémoire, y compris la re-materialization (activation checkpointing) et le offloading, ainsi que différents types de parallélisme—data, tensor, model, et pipeline parallelism—qui sont essentiels pour un entraînement efficace.
Le profilage des réseaux neuronaux pour identifier les goulets d'étranglement est souligné tout au long du cours, aidant les étudiants à comprendre et à résoudre les problèmes de performance tant pour l'inférence que pour l'entraînement. À la fin du cours, les étudiants auront acquis les compétences nécessaires pour optimiser la performance des réseaux neuronaux et réussir le déploiement et l'entraînement de modèles d'IA avancés dans des scénarios réels.
Programmation 3D
Composante
ENSEIRB-MATMECA
Le but de cette UE est de s'initier à l'informatique graphique à travers du cours intégrés et des travaux pratiques. L'initiation porte sur le rendu dit offline avec l'implémentation d'un mini logiciel de lancer de rayon (ray-tracing) ainsi que sur le rendu temps réel à l'aide de GPU via l'API OpenGL.
Modules applicatifs
ECTS
7 crédits
Composante
ENSEIRB-MATMECA
Traitement des données in-situ
Composante
ENSEIRB-MATMECA
L'objectif principal de cette formation est de comprendre le fonctionnement des modèles de visualisation in-situ et de prendre en main un ensemble d'outils permettant leur mise en œuvre. Le cours prend la forme d'une série de TP, clôturé par un mini-projet (application des apprentissages du TP). Nous utiliserons en particulier le logiciel Paraview et la bibliothèque Catalyst. Le mini-projet consistera en la mise en œuvre d'une instrumentation in situ sur un système gravitationnel corpusculaire (un système stellaire en l’occurrence). Si le temps le permet, nous essaierons également d'instrumenter un code de simulation de tokamak (évolution du plasma au sein d'un réacteur à fusion nucléaire).
Fouille, extraction et visualisation
Composante
ENSEIRB-MATMECA
Le but de ce cours est double et s'articulera autour de deux projets.
Le premier projet a pour but de présenter et de mettre en oeuvre quelques techniques d'extraction d'information issues de données textuelles.
Nous verrons dans un premier temps comment des algorithmes éprouvés tels que le modèle Bag-of-Word et le TF-IDF permettent d'extraire des données pertinentes de documents.
Nous aborderons ensuite les méthodes d'embedding vectoriels, en étudiant le modèle Word2Vec, qui permet d'extraire des données contextuelles.
Enfin nous verrons comment exploiter ces informations pour identifier des textes sémantiquement proches ou encore les catégoriser au moyen d'algorithmes de clustering.
Le second projet s'intérressera à un problème similaire, mais dans le cadre de données visuels.
Les cours seront accompagnés de TDs/TPs permettant la mise en oeuvre effective des algorithmes présentés ci-dessus.
Deux projets, l'un sur les données textuelles et l'autre sur les données visuelles, adossés à des données réelles, permettront aux élèves de mettre en application les algorithmes vu en cours, tout en mettant en oeuvre leurs compétences en calcul distribué pour traiter la volumétrie du jeu de données en un temps raisonnable.
Projet Application HPC
Composante
ENSEIRB-MATMECA
L'objectif consiste à étudier les différents niveaux de parallélisation d'une application HPC: vectorisation, multi-thread, mémoire distribuée au sein d'une seule et même application. L'application choisie consiste en l'implémentation de noyaux d'algèbre linéaire eux-même fréquemement au coeur des application de simulation et d'apprentissage à grande échelle.