Maîtrise de Mathématiques et Informatique
Programmes
09/03/02
1. Programmes des UE d'informatique
UE 1 : Programmation 2
Approfondissements
o traitements statique et dynamique de l'héritage et du sous-typage
o algorithme de résolution de la surcharge
o notion d'interface et programmation modulaire
o correction des programmes: objets et invariants
Programmation concurrente et distribuée
o notions de processus et de processus légers
o communications entre processus
o principe des interactions client/serveur
o objets distribués
o applets
Interfaces et programmation par événements
o boîtes à outils graphiques : gestion de fenêtres, de vues et de contrôles
o notion d'événement, boucle de gestion d'événements
o outils de conception d'interfaces
UE 2 : Calculabilité et complexité
Le modèle des machines RAM : description d'une machine à la Von Neumann
Le modèle des machines de Turing : fonctions T-calculables, machine de Turing
universelle, existence de fonctions qui ne sont pas T-calculables
Les fonctions primitives récursives, récursives et récursives partielles
Thèse de Church : équivalence des modèles présentés comme argument en faveur de
la thèse de Church
Problèmes indécidables : langages récursifs et récursivement énumérables, problèmes
indécidables, réduction algorithmique d'un problème à un autre, exemples
Complexité abstraite : complexité en temps et en espace, classes de complexité,
classes P et NP, réduction polynomiale, problèmes NP-complets
UE 5 ou 6 : Programmation fonctionnelle et logique
Objectif : Donner une approche conceptuelle de la programmation à travers deux grands
paradigmes : la programmation fonctionnelle (langages LISP et ML) et la programmation
logique (langage PROLOG).
1. Présentation des diverses approches pour la programmation.
2. Programmation fonctionnelle :
o introduction à la programmation fonctionnelle non tye et typée : langages
LISP (SCHEME) et ML(CAML) ;
o principales caractéristiques de ces langages ;
o syntaxe et structures de données ;
o fonctionnalité ;
o les affectations - les entrées/sorties;
o évaluation des programmes - liaisons statique et dynamique des variables -
gestion d'environnement ;
o sémantique opérationnelle pour ce type de langage : interprétation et
compilation - machines à environnement.
3. Programmation logique :
o introduction à la programmation logique : langage PROLOG ;
o principales caractéristiques de ce type de programmation ;
o syntaxe et structures de données - opérateur de coupure ;
o sémantique des programmes PROLOG ;
o le problème de la négation en PROLOG : l'hypothèse du monde clos et la
négation par échec ;
o utilisation de la méthode de résolution dans l'implantation machine de ce type
de langage.
Bibliographie
Chazarain : Programmer avec SCHEME. De la pratique à la théorie, Thomson International,
1996.
Hoogger : Programmer en logique, Masson, 1987. Weis and Leroy : Le langage CAML,
Interéditions, 1993.
UE 5 ou 6 : Algorithmique avancée
Objectif : Maîtriser la conception d'algorithmes complexes dans des domaines d'application
classiques. Chaque année, 2 ou 3 thèmes sont traités parmi :
1. Compression : - les concepts de base (modèles, entropie, performances...) ; - codage
de Hufman statique et dynamique ; codage à la Ziv-Lempel ; codage arithmétique.
2. Codage : - canal de transmission ; - codage par fenêtre coulissante, par bloc ; - codage
par convolution ; - illustration avec le codage du Minitel.
3. Cryptographie : - généralités : terminologie, les différentes attaques, les objectifs de la
cryptographie, clé publique, clé privée ; - cryptographie élémentaire : codage par
substitution par transposition ; - cryptographie à clé privée : DES ; - cryptographie à
clé publique : RSA ; - cryptographie basée sur le problème du sac à dos.
4. Diagrammes de décisions binaires - fonctions booléennes, expressions booléennes,
formes normales ; - arbre de décision binaire ; diagrammes de décision binaire ; -
opérations sur les BDD ; - applications.
5. Géométrie algorithmique : - localisation d'un point dans le plan ; - algorithmes pour
l'enveloppe convexe ; - diagrammes de Voronoi
UE 5 ou 6 : Algorithmique parallèle et distribuée
Objectif : Comprendre les possibilités et les limites du calcul parallèle ou distribué. Etre
capable de concevoir de tels algorithmes.
1. Algorithmes parallèles : - analyse des algorithmes classiques : calcul des sommes
préfixes, list ranking, algorithmes de fusion de liste, calcul des composantes connexes
; - les différentes notions d'optimalité ; - les possibilités et les limites du traitement
parallèle.
2. Algorithmes distribués : - modèles synchrone et asynchrone, propriétés des
communications ; - algorithmes de base : élection, recherche en profondeur, plus court
chemin, arbre de recouvrement minimal ; temps logiques ; photographies et détection
de propriétés stables (compléments des algorithmes traités dans le tronc commun) ; -
aspect tolérance aux pannes : classification des défaillances, présentation des
problèmes d'accord, algorithmes ou résultats d'impossibilité ; - réalisation de
communications fiables, fifo, causal, atomique... (avec ou sans défaillances).
Bibliographie
Jaja : An introduction to parallel algorithms, Addison Wesley.
N. Lynch : Distributed Algorithms, Morgan Kaufmann, 96.
UE 5 ou 6 : Infographie
Objectif : Présentation des principes et des méthodes à la base de l'Infographie. Une large
place est faite à la géométrie algorithmique et aux développements récents liés à la synthèse
d'images. Pour réaliser leurs projets, les étudiants ont accès à des systèmes graphiques de la
dernière génération (Evans et Sutherland, SUN, ...)
1. Introduction au système graphique : - architecture ; - logiciel graphique standard.
2. Traitement d'image : - transformée rapide de Fourier ; - échantillonnage ; - analyse
d'images (amélioration, compression, ...).
3. Mathématiques pour la synthèse d'image : - transformation ; - projections.
4. Courbes et surfaces (B-Spline, Bezier).
5. Elimination des lignes et surfaces cachées.
6. Géométrie fractale et applications.
7. Le tracé de rayon.
8. Textures.
Bibliographie
B. Péroche : La synthèse d'image, 1988,
Hermes. D.F. Rogers : Procedural Elements for Computer Graphics, 1985, International
Student Edition.
J.D. Foley, A. Van dam, S.K. Feiner, J.F. Hugues : Computer Graphics, 1990, Addison
Wesley.
UE 5 ou 6 : Intelligence artificielle
Objectif : Connaître les problèmes qui relèvent de l'IA et les méthodes permettant de les
traiter.
1. Programmation logique, étude du langage PROLOG.
2. Représentation et résolution de problèmes, graphes d'états, recherches heuristiques,
algorithme Ao*.
3. Systèmes experts, représentation et élaboration de connaissances, moteurs d'inférence,
explications, métaconnaissances, traitement de l'incertitude ; maintenance de
cohérence. Satisfaction de contraintes (Constraint Satisfaction Problem).
4. Agent intelligent.
Bibliographie Bratko : Programmation en PROLOG pour l'Intelligence artificielle,
Interéditions, 1988.
UE 5 ou 6 : Structures algébriques de l'informatique
Monoïdes et demi-anneaux : demi-groupes et monoïdes, fermeture transitive et son
calcul, sous-monoïdes, morphismes de monoïdes, parties rationnelles et
reconnaissables d'un monoïde
Le monoïde libre : équations sur les mots, combinatoire des mots
Théorème de Kleene : automates finis, déterminisation, minimisation, algorithmes de
passage d'expressions rationnelles à des automates finis et inverse
Arbres et algèbres libres : arbres représentés, F-algèbre, filtrage et unification
Systèmes d'équations : théorème du point fixe, systèmes d'équations dans les mots et
dans les arbres
Systèmes de réécriture : confluence, systèmes de réécriture dans les mots et dans les
arbres
UE 5 ou 6 : Théorie de la Programmation
Outils formels
o termes formels, substitution, filtrage, unification.
o relation de réduction : notions de confluence et de terminaison
o systèmes de réécriture du premier ordre
o lambda-calcul : étude de la réduction, étude du typage
Programmation fonctionnelle
o présentation du langage Objective Caml et programmation des principaux
algorithmes sur les termes
Description formelle d'un langage de programmation
o syntaxe concrète et syntaxe abstraite
o portée des identificateurs et notion d'environnement
o règles de typage statique
o règles d'évaluation
Approches de la vérification de programmes
o programmation impérative et invariants, logique de Hoare
o logique d'ordre supérieure et spécification de programmes fonctionnels
Mise en Oeuvre
o réalisation d'un vérificateur de types puis d'un synthétiseur de types
o réalisation d'un évaluateur
UE 5 ou 6 : Utilisation des automates en algorithmique
Chaque année, 2 ou 3 thèmes sont traités parmi :
1. Modélisation de processus infinitaires : - mots infinis ; - automates de Büchi, de
Muller ; automates alternants ; - langages déterministes.
2. Logique sur les mots : - logique du premier ordre et du second ordre, logique
temporelle ; - liens avec les langages rationnels et sans étoile ; - algorithmes pour
tester la satisfaisabililté d'une formule ; - application à la vérification de systèmes
informatiques.
3. Reconnaissance de motif (string-matching) Les méthodes de base étant supposées
connues depuis la Licence, l'idée est d'introduire des méthodes plus avancées : - une
méthode approchée : les différentes méthodes de reconnaissance avec erreurs d'un
motif ; - reconnaissance d'une occurrence d'un motif dans un ensemble : l'algorithme
de Aho-Corasick.
4. Dictionnaire Le problème posé est celui de la définition d'une structure de données
efficace implémentant un index "long" (exemple : un dictionnaire, une encyclopédie,
une brochure technique...) : - arbre des suffixes : Algorithmes de Creight et de Wiener
; - graphe acrylique des suffixes ; - automates des suffixes : version classique et
version " condensée " (les transitions sont définies par des mots, non par des lettres).
5. Application aux problèmes du génome : - recherche de répétitions dans un texte ; -
statistique sur les fréquences d'apparition des facteurs ; - comparaison de mots
(problème d'alignements de séquences génomiques par programmation dynamique).
6. Systèmes de numération : - arithmétique dans des bases non classiques de numération
(Avezienis, Fibonacci,....) ; - problème d'ambiguité et de recherche de représentant
canonique ; - complexité des opérations arithmétiques dans ces bases.
2. Programmes des UE de mathématiques
UE 4 : Algèbre : Anneaux et corps (maîtrise, premier semestre)
Anneaux
o Anneaux euclidiens ; exemples. Anneaux principaux.
o Élément irréductible. Factorisation dans Z[X], critère d'irréductibilité.
o L'anneau K[X]/(P)
Corps
o Caractéristique
o Élément algébrique. Extension algébrique, degré d'une extension finie.
o Corps de rupture d'un polynôme irréductible, corps des racines d'un polynôme.
o Corps finis. Factorisation de polynômes à coefficients dans Fq, algorithme de
Berlekamp.
UE 7 ou 8 : Codes et cryptographie (maîtrise, deuxième semestre)
Codes correcteurs
o Espace de Hamming, distance de Hamming.
o Théorème de Shannon. Bornes usuelles (Gilbert, Hamming, Plotkin,
Singleton).
o Codes t-correcteurs, codes parfaits, codes MDS.
o Codes linéaires. Codes cycliques.
o Codes usuels: codes de Hamming, de Golay, de Reed-Muller, de Reed-
Solomon, codes BCH.
o Le codage CIRC des CD.
o Très éventuellement: réseaux associés aux codes binaires; automorphismes de
codes, cas des codes de Hamming, du code de Golay G23. Rapport avec les
géométries finies; t-designs.
Cryptographie
o Rappels sur le code RSA, sur DES.
o Signature sécurisée.
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !