ECTS
9 crédits
Composante
ENSEIRB-MATMECA
Code interne
EI8G
Liste des enseignements
I2-S8 Modules informatiques (au choix)
I2-S8 Modules informatiques (au choix)
S8 TOEIC (Rattrapage obligatoire)
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