Précédent Remonter Suivant

Contenu des enseignements de maîtrise

Architectures avancées

AA
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
Bibliographie Enseignant : Jean-Luc Dekeyser

Anglais

--
2h/semaine
2h TD
13 semaines
26 heures
2 Crédits
Anglais technique

Enseignant : Odette Gardiner

Algorithmes, complexité, calculabilité

ACC
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
Ce cours d'algorithmique « avancée » est la suite « logique » du cours d'algorithmique (AL) de licence, en mettant l'accent sur les méthodes.

Le but de l'algorithmique peut être résumé par: Trouver un « bon » algorithme pour un problème donné. Cela nécessite souvent pas mal de connaissances --- la plupart du temps, un algorithme connu peut être adapté au problème et il vaut mieux éviter de réinventer la roue ---, du savoir-faire et soulève pas mal de questions ! On essaiera donc d'acquérir un peu (plus) de ces connaissances et de ce savoir-faire et de répondre en partie à quelques-unes de ces questions : Enseignant : Sophie Tison

Bioinformatique

BI
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
L'objectif de ce cours est de montrer comment l'informatique permet l'analyse à grande échelle de données biologiques, comme des séquences d'ADN. L'enseignement commence avec des rappels approfondis de biologie, pour entrer dans le vif du sujet. Il se poursuit par la présentation des techniques bioinformatiques couramment utilisées, avec des aspects informatiques fondamentaux. Il est assuré en tandem par un biologiste et un informaticien.
Introduction à la biologie moléculaire
Les données de la bioinformatique
Outils informatiques d'analyse de séquences
Les TP sont l'occasion d'appliquer les techniques d'analyse de séquences á des exemples biologiques "en conditions réelles" : comment localiser un gène par des techniques de bioinformatique, comment déterminer sa fonction...

Enseignants : Hélène Touzet et Patrice Chagnaud

Concepts avancés des langages de programmation

CALP
4h/semaine
2h C/TD, 2h TP
13 semaines
50 heures
6 Crédits

Ce cours se propose de présenter plusieurs concepts originaux apparaissant dans des langages de programmation modernes s'écartant des langages les plus répandus. La présentation de chaque concept s'appuiera sur un langage particulier. Ces concepts n'ont pas forcément de liens entre eux et ne sont pas tous disponibles dans tous les langages abordés. Nous verrons comment ces concepts sont particulièrement bien adaptés à certaines classes d'applications et comment ils facilitent leur écriture.

Le cours est divisé en trois parties correspondant chacune à un concept, un langage associé et une classe d'applications.
Typage statique fort et inférence de type
Évaluation paresseuse
Paradigme synchrone
Enseignant : Pierre Boulet

Construction d'applications réparties

CAR
4h/semaine
1h30 C, 1h30 TD, 2h TP
13 semaines
50 heures
6 Crédits

Aujourd'hui, les applications informatiques sont de plus en plus réparties de par la nature des tâches qu'elles réalisent. L'objectif pédagogique de ce cours est donc de faire appréhender aux étudiants cette nouvelle dimension dans la réalisation de logiciels. Cependant comme le domaine de l'informatique distribuée est très vaste, ce cours met principalement l'accent sur les styles d'architecture que l'on rencontre dans les technologies Internet les plus récentes : le World Wide Web, les objets distribués à la norme CORBA et les environnements à base de composants.

Dans une première partie, ce cours présente les différentes architectures sous-jacentes aux technologies du WWW et l'environnement de programmation Java (le langage, le support d'exécution et les bibliothèques). Les principales bibliothèques pour les applications Internet sont ensuite présentées : Applet, AWT, Net et RMI. La seconde partie du cours aborde des plates-formes plus évoluées basées sur le modèle objet ou sur les modèles à base de composants. La première plate-forme que nous étudierons concerne une plate-forme ouverte d'intégration d'applications distribuées, hétérogènes et multi-fournisseurs basée sur la norme CORBA du consortium OMG. Les deux autres plates-formes abordées sont des plates-formes industrielles à base de composants proposées par Sun et Microsoft, respectivement les EJB et .Net.

Les étudiants acquièrent en TD et en TP une connaissance pratique de la réalisation d'applications Internet utilisant les technologies du WWW, Java et de CORBA.

Enseignant : Laurence Duchien

Intelligence artificielle

IA
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
La première partie du cours a pour objectif de présenter les différents domaines de l'intelligence artificielle : reconnaissance des formes, traduction automatique, représentation des connaissances, raisonnement non classique, programmation des jeux, résolution de problèmes, heuristiques. L'accent sera mis sur les algorithmes classiques de l'IA : algorithme A* et minimax.

La seconde partie est consacrée aux systèmes experts. Après une description de la structure générale d'un système expert et une présentation des diverses catégories de systèmes experts, le cours détaille un générateur particulier et les modes de programmation que ce type de logiciel demande.

La troisième partie traite de l'apprentissage et de l'extraction de connaissances à partir de données. Après une présentation de la problématique et de ses applications à l'aide à la décision, les méthodes sont présentées. Deux d'entre elles sont détaillées : les algorithmes d'apprentissage symboliques utilisant les arbres de décision et les réseaux de neurones.

Enseignant : Francesco Decomité

Informatique mobile & Informatique temps réel

IM/ITR
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
Une première partie de l'option traite de la mobilité alors que la seconde est relative aux aspects temps réel.

Les objectifs de la première partie du cours sont d'initier les étudiants aux contraintes de l'informatique mobile aussi bien au niveau de la connexion réseau qu'au niveau applicatif. Ainsi seront étudiés dans cette partie les réseaux mobiles avec infrastructures (type GSM ou WiFi) ainsi que les réseaux sans fils peer-to-peer (type bluetooth).

Les systèmes informatiques temps réel sont utilisés pour assurer une gestion efficace des événements en provenance de l'environnement. Le temps consommé par les traitements internes doit être le plus court possible mais aussi garanti ; une réponse tardive est une réponse fausse ! Cette propriété induit une révision des mécanismes fondamentaux des systèmes d'exploitation (gestion des processus, prise en compte des interruptions, partage de ressources et exclusion mutuelle, synchronisation, entrées/sorties, gestion du temps...). En particulier il y a lieu de focaliser sur les propriétés des algorithmes d'ordonnancement.

Enseignants : David Simplot et Philippe Marquet

Principes et algorithmes cryptographiques

PAC
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
La première partie du cours traite essentiellement des algorithmes classiques reposant sur les principes de substitution et de transposition (Jules César, Vigenère...), puis sur la présentation de l'unique procédé de chiffrement inconditionnellement sûr : le masque jetable. Ce dernier nécessite la génération d'une suite aléatoire, mais dans la pratique nous devons nous contenter de suites pseudo-aléatoires; nous nous intéressons alors aux critères que doit vérifier un tel générateur pour que le système résiste aux attaques.

Nous avons besoin de manipuler certains objets mathématiques, comme les corps finis. Nous nous intéressons donc à ces structures, en soulignant les aspects algorithmiques de leur construction. Ces corps sont ensuite utilisés dans la présentation de schémas de chiffrement reposant sur les codes correcteurs d'erreurs.

Enfin, nous abordons la cryptographie à clef publique, dont la sécurité repose sur la résolution de problèmes mathématiques complexes (factorisation de grands entiers, calcul du logarithme discret). Une séance sera également dédiée aux preuves dites « zero knowledge », qui permettent de prouver que l'on connaît bien un secret sans pour autant révéler quoi que ce soit à son sujet ; de tels procédés reposent également sur des problèmes mathématiques, et permettent d'élaborer des protocoles d'authentification.

Enseignants : Caroline Fontaine et Éric Wegrzynowski

Programmation logique

PL
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
Calcul propositionnel. Calcul des prédicats du premier ordre. Décidabilité et indécidabilité en logique. Unification des termes et des atomes. Méthodes de démonstration automatique en calcul propositionnel et en calcul des prédicats. Résolution de Robinson. Principe de fonctionnement de Prolog comme démonstrateur de théorèmes. Introduction à la programmation en Prolog.

Enseignant : Jean-Paul Delahaye

Programmation parallèle

PP
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
Le cours est une introduction à la programmation parallèle orientée vers la manipulation des outils actuels. Nous traitons des Enseignant : Philippe Marquet

Projet de développement

PJ1
3h30/semaine
1h30 C, 2h TP
13 semaines
50 heures
6 Crédits
Les étudiants ont le choix entre trois projets : Coordinateur : Philippe Marquet

Modélisation des systèmes complexes

MSC
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
L'analyse de performances, le dimensionnement des réseaux, l'étude de la fiabilité et de la maintenabilité des systèmes complexes (vols spatiaux, centrales nucléaires etc.) repose en grande partie sur la théorie des probabilités, en particulier des chaînes de Markov.

Les notions qui seront introduites servent dans d'autres disciplines comme la bioinformatique, la théorie de l'information, des jeux, etc.

Enseignant : Michel Petitot

Synthèse d'images

SI
4h/semaine
1h30 C, 1h30 TD, 1h TP
13 semaines
50 heures
6 Crédits
L'objet de cet enseignement est de faire découvrir aux étudiants les notions élémentaires permettant de construire et afficher des images artificielles. Il peut se diviser en deux parties: les méthodes pour définir et stocker des objets et les algorithmes d'affichage. Enseignant : Fabrice Aubert

Systèmes d'exploitation

SE
4h/semaine
1h30 C, 1h30 TD, 2h TP
13 semaines
50 heures
6 Crédits
Les systèmes d'exploitation ont pour rôle premier de prendre à leur charge la gestion du matériel informatique pour en fournir une représentation simplifiée et aisément exploitable par les programmeurs d'applications. L'objet de ce cours et d'apporter à l'étudiant une compréhension effective des fondements matériels de l'informatique contemporaine.

Il s'agit premièrement de comprendre les mécanismes matériels des systèmes informatiques que nous utilisons tous les jours. Seront notamment étudiés, dans ce cadre, la programmation des DMA, des mécanismes d'interruptions et de virtualisation de la mémoire.

La compréhension des mécanismes matériels nous permet de comprendre le rôle des algorithmes qui les gèrent. Seront par exemple définis dans ce cadre, la gestion des contextes d'exécution d'un programme, ou les algorithmes de placement des données sur les secteurs et les pistes d'un disque dur.

Enfin le cours expose les principales abstractions du matériel que les systèmes d'exploitation proposent aux programmeurs et aux utilisateurs pour simplifier l'usage du matériel informatique. Systèmes de fichiers, gestion des threads, des processus, virtualisation et allocation de la mémoire... Il s'agit ici autant de faire comprendre à l'étudiant l'usage qui peut être fait des abstractions fournies par le système, que la manière dont elles sont mises en oeuvre au-dessus des mécanismes de gestion du matériel.

Enseignant : Gilles Grimaud


Précédent Remonter Suivant