Composante
ENSEIRB-MATMECA
Code interne
EI8EX205
Liste des enseignements
Au choix : 2 parmi 9
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)