Td corrigé Génie logiciel I pdf

Génie logiciel I

... routage qu'on peut trouver dans le monde Internet actuellement (OSPF, RIP, et BGP). ... Responsables : Gérard Chollet et Dijana Petrovska (20 h Cours-TD).




part of the document



mation
1.3.3 Manipulation de sommes doubles.
2 Relations de récurrente
2.1 Rappels et généralités
2.1.1 Exemples de relations de récurrence
2.1.2 Classification
2.2 Equations de récurrence linéaires
2.2.1 Récurrences linéaires homogènes à coefficients constants
2.2.2 Récurrences linéaires générales à coefficients constants
2.2.3 Récurrences linéaires à coefficients variables
2.3 Equations de récurrence non linéaires
2.3.1 Récurrences de partition et changements de variable
2.3.2 Transformation du domaine
3 Séries génératrices et applications
3.1 Séries génératrices
3.1.1 L'anneau des séries formelles
3.1.2 Développement en série au voisinage de l'origine
3.1.3 Fonctions génératrices ordinaires et exponentielles
3.2 Développement en série des fractions rationnelles
3.2.1 Décomposition en éléments simples
3.2.2 Développement au voisinage de l'origine
3.2.3 Cas de racines multiples
3.3 Applications aux équations de récurrence
3.3.1 Récurrences linéaires homogènes à coefficients constants
3.3.2 Récurrences linéaires générales à coefficients constants
3.3.3 Récurrences linéaires à coefficients variables
3.3.4 Récurrences complètes
3.4 Analyse en moyenne d'algorithmes
3.4.1 Généralités
3.4.2 Utilisation des séries génératrices
4 Comportements asymptotiques
4.1 Fonctions dominées, négligeables, équivalentes
4.2 Critères de comportement asymptotique
4.2.1 Conditions suffisantes
4.2.2 Echelle de comparaison et développement asymptotique
4.3 Approximations asymptotiques
4.3.1 Encadrements de sommes partielles
4.4 Asymptotique des séries génératrices
4.4.1 Approximations asymptotiques des récurrences linéaires
4.4.2 Calcul direct du terme asymptotique dominant
4.4.3 Méthode générale pour les fractions rationnelles
4.4.4 Bornes du rayon de convergence
4.4.5 Méthode générale d'analyse asymptotique des coefficients
4.5 Formule d'Euler-Maclaurin
4.5.1 Formule sommatoire d'Euler-Maclaurin et applications
4.5.2 Développement asymptotique des nombres harmoniques
4.5.3 Développement asymptotique complet de la factorielle
4.6 Approximations asymptotiques
4.6.1 Développement asymptotique des nombres de Catalan
4.6.2 Développements asymptotiques bivariés
4.7 Deux méthodes asymptotiques
4.7.1 Le reboutement ou Bootstrapping
4.7.2 Méthode de Laplace : borner les queues, approcher et étendre


Algo II.1 (Algorithmique des structures linéaires)
Responsable : Jacqueline Vauzeilles

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX




Algo II.2 (Algorithmique des arbres)
Responsable : Christophe Fouqueré

Objectif : éléments algorithmiques sur les structures d'arbres

Contenu : Spécifications, algorithmes, dénombrements, analyses de complexité sur les structures d'arbres binaires, arbres n-aires, et les variantes adaptées à la recherche de données (arbres binaires de recherche, arbres équilibrés, B-arbres).
Tri externe.


Système d'exploitation
Responsable : Jacqueline Castaing

Objectif : Le cours prolonge et complète la formation dispensée en L2. Il aborde les aspects pratiques de la programmation système UNIX dans sa version libre LINUX.

Contenu :
Après un rappel sur les différents modes existants (mono-tache mono-processeur, multi-tâches mono-processeur, multi-tâches multiprocesseurs), ce cours détaille le mécanisme de la programmation parallèle. Les notions de tubes ("pipe"), et de mémoires partagées, sont introduites dans le contexte de la communication des processus. Leur synchronisation est étudiée avec la présentation des sémaphores. La notion de processus légers ou "threads" est alors introduite pour montrer comment réduire le temps de commutation des contextes, lorsque le système d'ordonnancement choisit de mettre en attente un processus, pour rendre actif un autre plus prioritaire. La gestion des fichiers est analysée au plus bas niveau du système (celui du noyau). La gestion de la mémoire (pagination, mémoire virtuelle), est également abordée dans l'environnement de la programmation multi-tâches. La communication par messages (systèmes distribués) dans le mode Client/ Serveur à travers les sockets permet alors à l'étudiant de comprendre le fondement de l'Internet.


Architecture des machines
Responsable : Christophe Tollu

Objectif :
Le but du cours est de donner aux étudiants les outils d'architecture matérielle nécessaire à l'évaluation de la performance des applications logicielles. Par surcroît, les étudiants acquièrent des compétences en programmation assemblage.

Contenu :
1. Généralités : interface matériel-logiciel, organisation en niveaux.
2. Représentation des données en machine.
3. Description d'un jeu d'instructions RISC : MIPS.
4. Cycle d'exécution (compilateur, assembleur, chargement en mémoire).
5. Circuits logiques combinatoires et séquentiels.
6. Construction d'un CPU (chemin de données et contrôle)
8. Optimisation par "pipelining".
9. Hiérarchie de la mémoire (caches et mémoire virtuelle)
10.Bus et entrées/sorties. Mécanismes d'interruption


Programmation impérative (C sous Unix)
Responsable : Lucas Letocart

Objectif : L'objectif de ce cours est de permettre aux étudiants de se remettre à niveau en programmation C sous Unix. Ce cours permet une introduction au développement de projets en langage C sous Unix.

Contenu : Unix: Introduction à Unix, commandes, système de fichiers, processus, interpréteurs de commandes. Langage C: opérateurs, boucles, variables, fonctions, bibliothèques, pointeurs, tableaux, chaînes de caractères, structures, directives du préprocesseur, inclusion de fichiers, compilation, déclaration et définition des objets.




Programmation fonctionnelle
Responsable : Jacqueline Vauzeilles

Objectif : Ce cours de programmation fonctionnelle s'appuiera sur le langage Caml

Contenu : Généralités sur les ensembles - Produit d'ensembles - Somme directe d'ensembles - Fonctions et fonctionnelles - Isomorphismes.
Introduction à Caml - Déclarations - Identificateurs - Environnements.
Modules.
Fonctions simples - Fonctions récursives.
Types simples - Types polymorphes.
Types récursifs.
AspCrédits impératifs de Caml.


Programmation objet
Responsable : Marc Champesme

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : Classes, objets, instances, méthodes, envoi de message (principes généraux) éléments syntaxiques du langage de programmation choisi,
programmation par contrat (invariant de classe, pré-conditions, post-conditions) héritage simple

Extension souhaitée (éléments supplémentaires abordés actuellement en Licence/ILOG):
principe général de l'héritage multiple: pseudo-héritage multiple (en JAVA/SMALLTALK), vrai héritage multiple (en Eiffel/C++)
Exceptions
architecture logicielle (exemple de l'architecture Model View Controller)


Programmation logique
Responsable : Christian Codognet

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX



Sémantique des langages de programmation
Responsable : Christophe Tollu

Objectif : Le but du cours est double : (i) présenter les idées fondamentales qui fondent les approches opérationnelle et dénotationnelle en sémantique formelle des langages de programmation et (ii) montrer, à l'aide d'exemples d'application précis, comment ces approches peuvent être utilisées pour valider des prototypes, analyser l'implémentation de fonctionnalités plus sophistiquées et vérifier certaines propriétés des programmes.
Chaque type de sémantique formelle sera illustré sur un langage-test, appelé WHILE (une version très simplifiée de PASCAL) et certaines de ses extensions et variantes : construction par blocs, procédures (récursives ou non) avec liaison statique ou dynamique des variables et des procédures, non déterminisme, etc.

Contenu :
Description et spécification rapides du langage WHILE.
Sémantique opérationnelle structurelle et sémantique naturelle du
Langage WHILE et de ses extensions.
Application : preuve de la correction d'un compilateur pour WHILE.
Equivalence entre sémantiques naturelle et structurelle.
Sémantique dénotationnelle du langage WHILE et de ses extensions.
Application : analyse statique des programmes (ex : dépendance
entrées-sorties).


Génie logiciel I
Responsable : Christine Choppy

Objectif : 1. Niveau de base de pratique de spécification précise
2. Qualité logicielle : pratique systématique et planifiée du test.

Contenu : Techniques de spécification algébrique de base appliquée à la spécification formelle des structures de données de base de l'informatique (booléens, entiers, listes, piles, arbres binaires, graphes). Le langage utilisé est CASL (langage commun établi). Les structures de données choisies feront partie de celles étudiées dans le cours d'algorithmique qui a lieu en parallèle.
Qualité logicielle : techniques de test de logiciel, les différentes approches de test (fonctionnelle, structurelle), et les différents critères utilisés pour sélectionner un jeu de test, plan de test. Principes d'aide à la génération de pilotes de test.


Génie logiciel II
Responsable : Christine Choppy

Objectif : Techniques d'analyse, de conceptualisation et de structuration de systèmes informatiques

Contenu : Description des systèmes informatiques structurée par buts à l'aide des cas d'utilisation
Application du 1. à la description de systèmes en langage UML. Etude d'UML.
Structuration des problèmes à l'aide des schémas de problème (« problem frames »).
Illustration de ces techniques sur des études de cas de grande taille.


Logique pour l'informatique
Responsable : Jacqueline Vauzeilles

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu :
Le calcul propositionnel : morphologie, sémantique ; notion de système formel ; déduction naturelle ; système de Hilbert ; équivalence des systèmes ; énoncé des théorèmes de correction et de complétude.
Le calcul des prédicats : morphologie, sémantique (structures, modèles,...) ; déduction naturelle ; système de Hilbert ; équivalence des systèmes ; énoncé des théorèmes de correction et de complétude.
Résolution : mise sous forme prénexe ; mise sous forme de Skolem ; unification - résolution.


Communication Homme-Machine
Responsables : Amanda Bouffier et Jean-Baptiste Labrune

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX





Infographie
Responsable : François Malgouyres

Objectif : Le but de ce cours est d'apprendre les bases de l'infographie. Les objectifs pédagogiques sont la maîtrise de l'algorithmique liée à l'infographie et la pratique d'un langage orienté objet (JAVA).

Contenu : Les primitives de l'infographie 2D : le tracé de droite par l'algorithme naïf et l'algorithme de Foley, le tracé de courbes, le remplissage et le fenêtrage de polygone. Les rudiments de l'infographie 3D avec une introduction au maillage de surfaces, les manipulations de base d'un maillage (rotation, translation), la projection et le tracé de maillages, la détection des faces cachées (algorithme du z-buffer) et, s'il reste du temps, des notions d'éclairage et de plaquage de textures.


Bases de données I
Responsable : Kazem Lellahi

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : Concepts de bases, fonctionnalités des SGBD, architecture générale ; modèle relationnel, langages de requêtes algébriques et logiques ; évaluation de requêtes, méthodes d'optimisation, méthodes d'accès et de déplacement, contraintes d'intégrité, dépendances fonctionnelles, dépendances multivaluées ; conception de schéma, décomposition sans perte d'information, de dépendance ; normalisation ; concurrence : transaction, ordonnancement, sérialisabilité, verrouillage
Etude de SQL, Oracle



DEUXIEME ANNEE


Algo III.1 (Algorithmique des graphes)
Responsable : Gérard Plateau

Objectif : L'objectif de ce cours est de présenter l'algorithmique de graphe. Les problèmes classiques de la théorie des graphes seront présentes ainsi que les principaux algorithmes de résolution dédiés.

Contenu : Glossaire et définitions de base de la théorie des graphes, exploration de graphes et applications, problèmes de meilleurs chemins, arbre couvrant de poids minimal d'un graphe simple, flots maximaux dans les réseaux.



Algo III.2 (Algorithmique randomisée)
Responsable : Christophe Tollu

Objectif : La randomisation et l'approximation sont deux des principales méthodes pour aborder des problèmes qu'on ne sait pas traiter de manière à la fois déterministe, exacte et efficace. Le but du cours est d'illustrer, à travers des exemples empruntés à d'autres cours de la formation, l'impact de l'aléatoire et de l'approximation sur la conception et l'analyse des algorithmes.

Contenu : Algorithmes randomisés : 1) Principes, classification et techniques (Algorithmes
Las Vegas et Monte-Carlo, Principe du minmax de Yao, inégalités de queues, la méthode probabiliste en combinatoire, outils probabilistes pour l'analyse d'algorithmes, classes de complexité probabiliste. 2) Echantillonnage aléatoire, générateurs (pseudo-)aléatoires, et applications aux structures de données, à la programmation linéaire, à la génération de clés en cryptographie, etc.

Algorithmes approximants : Cette partie est moins développée que la précédente. Elle illustre divers schémas d'approximation sur des problèmes classiques d'optimisation combinatoire ou de recherche de motifs. On donne aussi quelques outils pour apprécier la complexité d'approcher les solutions d'un problème donné (classes de complexité).


Analyse numérique
Responsable : Francis Lavainne

Objectif : Le but de ce cours est de sensibiliser les étudiants aux divers problèmes liés à la création et à l'utilisation d'algorithmes et de programmes en Analyse Numérique.

Contenu : Diverses méthodes classiques sont exposées ( théorie et algorithme ), et donnent lieu à une programmation sous MATLAB.

Généralités sur les algorithmes numériques (efficacité, erreurs, convergence)
Résolution de systèmes linéaires
Méthodes directes (Gauss avec stratégies de pivot, Choleski)
Méthodes itératives (Jacobi, Gauss-Seidel, Relaxation)
Conditionnement des matrices
Stockage des grandes matrices
Recherche de valeurs propres
Méthode de la puissance
Méthode QR
Intégration numérique (Trapèzes, Simpson, Newton, Romberg)



Optimisation combinatoire I
Responsable : Gérard Plateau

Objectif : Ce cours a pour but de présenter les principes généraux de la programmation linéaire continue.

Contenu : Convexité, théorèmes généraux, algorithme primal du simplexe, algorithme dual du simplexe, dualité, post-optimisation (analyse de sensibilité et paramétrisation).



Optimisation combinatoire II
Responsable : Gérard Plateau

Objectif : Ce cours s'intéresse aux méthodes de résolution de problèmes d'optimisation combinatoire en nombres entiers.

Contenu : Résolution approchée (heuristiques, metaheuristiques), relaxations (continues, lagrangiennes, agrégées), algorithmes de réduction, résolution exacte (recherche arborescente, programmation dynamique, approche polyédrale).


Probabilités et statistiques
Responsable : François Malgouyres

Objectif : Initiation aux probabilités et au vocabulaire des statistiques descriptives.

Contenu : Probabilités discrètes (calcul des probabilités, relation de Bayes, indépendance, variables aléatoires,...). Probabilités continues (variables aléatoires continues, distributions usuelles, distributions liées de couples aléatoires,...).
Vocabulaire de statistiques descriptives. Introduction à la statistique inférentielle. Estimation : estimation sans biais ; maximum de vraisemblance ; cas de l'estimation des paramètres d'une loi normale ; théorèmes asymptotiques. Tests et décision statistique : principe minmax, principe bayesien ; notion de test, exemples ; hypothèse nulle, hypothèse alternative, erreurs de premier et deuxième type, niveau, puissance ; test d'hypothèses simples, lemme de Neyman-Pearson ; cas gaussien ; théorèmes asymptotiques.


Réseaux I
Responsable : Gladys Diaz

Objectif : L'objectif général du cours est de donner les bases nécessaires à la compréhension du fonctionnement des réseaux.
Le cours donne les notions de base : support de transmission, codages, protocole, service... et en se basant sur le modèle OSI il présente couche par couche les différentes fonctionnalités d'un réseau.

Contenu : Le cours est actuellement reparti en 9 séances de 2 heures, ce qui fait un total de 18h de cours.
Le contenu de chaque séance est décrit comme suit :

Séance 1 : Introduction aux réseaux
Définitions de base, topologies, types de réseaux
Hiérarchie protocolaires, Modèle en couches : OSI et TCP/IP
Normalisation

Séance 2 : Couche physique (1/2)
Eléments de transmission, supports de transmission (guidés et non guidés), câblage, modes de transmission
Interconnexion réseaux

Séance 3 : Couche physique (2/2)
Transmission de données
Codages, modulations, perturbations

Séance 4 :Couche Liaison (1/2)
Introduction à la couche Liaison de données, services de la couche liaison (découpage en trames, détection et correction des erreurs de transmission)
Généralités sur les mécanismes protocolaires de la couche Liaison de données

Séance 5 :Couche Liaison (2/2)
Protocoles de la couche liaison (SLIP, PPP, HDLC)

Séance 6 : Les LANS et les WANs
LAN :
Définition de LAN, Méthodes d’accès (problématique, classification, accès statique, accès dynamique déterministe, accès dynamique aléatoire)
Hiérarchies LAN/OSI, Normalisation IEEE, Le Réseau Ethernet
Protocole ARP
WAN :
Fonctions d'un réseau : adressage, Routage, contrôle de congestion
La commutation
Le réseau X25

Séance 7 : Couche Réseau
Introduction à la couche réseau, Adressage IP, fragmentation, Protocole IP, ICMP

Séance 8 : Couche Transport
Introduction à la couche transport, Protocole TCP, UDP

Séance 9 : Couche Application
Introduction à la couche application
Remote Procedure Call
Modèle client-serveur
Quelques services réseau (courrier électronique, file transfer protocol, telnet, world wide web,...)


Algorithmique parallèle et distribuée
Responsable : Christian Lavault

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu :
1. Machines parallèles -- Algorithmique parallèle
- Retour rapide sur la Machine de Turing et la RAM. Définitions : DTM, NDTM et RAM. Problème de taille $n$.
- Complexité en temps et en espace mémoire d'une TM et d'une RAM Théorèmes de simulation et réductibilité polynomiale.
- Les classes de complexité P et NP.
1.1 Introduction aux modèles de machines parallèles
- La Thèse du parallélisme. Calcul parallèle et invariance.
- La PRAM et ses variantes : EREW, CREW, ERCW et CRCW ; les divers types d'accès-mémoire en écriture-lecture concurrente/exclusive.
- Les modèles de réseaux d'interconnexion pour PRAM : file linéaire, grille, grille torique, arbre, cube, hypercube, star, etc. Machines SISD, MISD, SIMD, MIMD.
- Les circuits combinatoires : simulation par une PRAM (Théorèmes de Brent).
- Mesures de performance (première approche) : accélération et efficacité.

1.2 Mesures de performances d'un algorithme parallèle
- La surface, la complexité en temps et le travail d'un algorithme parallèle sur des données de taille n.
- Algorithmes efficaces et algorithmes optimaux. Notion d'optimalité des algorithmes parallèles. Exemples (PRAM EREW ou CRCW) :
- Tri optimal par partition de n éléments : simulation d'un circuit booléen de profondeur logarithmique par une PRAM EREW à n processeurs,
- Produit de deux matrices} (grille, cube).
- Les classes de complexité NC, P-complet. La hiérarchie NC.
- Les algorithmes parallèles probabilistes et les classes RNC et ZNC}.
1.3 Exemples et applications
- La technique du saut de pointeur : classement et calcul de préfixe sur une liste sur une liste, circuit eulérien (EREW-CRCW).
- Algorithmes CRCW contre algorithmes EREW-CREW (accès simultanés vs. concurrents).
Exemples :
- Calcul du maximum} d'une liste (CRCW vs EREW-CREW).
- (CREW vs. EREW) recherche des racines d'une forêt d'arbres binaires}.
- Simulation d'un algorithme CRCW par un algorithme EREW. (utilisation du tri par partition sur une PRAM EREW).
- Algorithmes probabilistes (sélection, tri, etc.) sur réseaux en arbre, grille, etc.

2. Introduction à l'algorithmique répartie
2,1 Système distribué S et algorithmique répartie
- Le modèle de système distribué S, point à point, statique et fiable.
- Processus et système/réseau de communication de S}, asynchrone à transmission de messages. Réseaux centralisés, avec identités, anonymes.
- Propriétés du système de communication} de S. Synchronisation totale et synchronisation partielle : réseaux asynchrones à délais bornés} (ADB).
- Notion d'algorithme distribué comme système de transitions}. Trois classes d'événements atomiques : interne, envoi et réception de message.
- Mesures de complexité des algorithmes répartis : complexité en communication (en messages), en temps, en espace mémoire.
Complexité au pire et en moyenne.

2.2 Applications aux algorithmes d'élection
- Deux algorithme d'élection sur des anneaux avec identités.
L'algorithme optimal de Chang-Roberts : principe et analyse de complexité.
L'algorithme optimal de Franklin : principe et analyse de complexité.
- Comment élire un vainqueur ? Schéma algorithmique général de l'élection dans un système distribue anonyme en anneau~:
Modélisation et analyse de complexité d'un algorithme probabiliste.
- Principe de l'élection dans des réseaux anonymes quelconques.

2.3 Application au routage dans les réseaux
- Arbres de recouvrement et élection.
- Algorithmes de plus courts chemins (en profondeur/largeur).
- Exemple du routage par intervalles.


Administration système
Responsable : Thierry Hamon

Objectif : Acquérir les connaissances théoriques et pratiques pour administrer des machines dans un réseau informatique.

Contenu : Ce cours apporte aux participants les connaissances et compétences nécessaires pour effectuer les tâches essentielles d'administration de système dans l'environnement d'exploitation Unix, comme installer des logiciels, gérer des systèmes de fichiers, effectuer des procédures d'amorçage de système, effectuer l'administration de la sécurité et des utilisateurs, gérer les procédés système et imprimantes du réseau et effectuer les sauvegardes et reprises du système.


Bases de données II
Responsable : Faouzi Boufares

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : Bases de données avancées : modèles à objet (O2 et panorama), bases de données réparties, administration de SGBD (Oracle, O2).


C++
Responsable : Fabrice Mourlin

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Génie logiciel III (avancé)
Responsable : Christine Choppy

Objectif : Technique systématique de structuration et de description précise de tout système complexe.

Contenu : Méthodologie de structuration et de description précise de systèmes simples ou complexes, et des structures de données sous-jacentes. Recherche systématique dans chacun des cas des éléments caractéristiques, des sous-parties, puis des propriétés type à examiner. La description est effectuée à l'aide de diagrammes et de texte proche du langage naturel. Deux approches sont étudiées, une approche orientée propriétés, utilisée dans les premières étapes de développement, et une approche constructive, plus proche de l'implémentation. Cette méthode est indépendante de tout langage spécifique, mais peut-être utilisée/appliquée pour des descriptions en UML/OCL, ou en spécification formelle. Des études de cas de grande ou très grande taille sont utilisées comme support.


Ingénierie des connaissances
Responsables : Brigitte Biebow et Sylvie Szulman

Objectif : Donner aux étudiants les bases de modélisation nécessaires pour développer des projets en ingénierie des connaissances. L'accent sera mis sur la construction d'ontologies.

Contenu : Introduction à l'ingénierie des connaissances et ses applications, acquisition des connaissances, modèles formels (logiques de description) et informels (grille-répertoire), définition des ontologies et de ce à quoi elles servent, méthodes et outils de construction d'ontologies et en particulier à partir de textes, Web sémantique et ontologies, mémoire d'entreprise et ontologies.


Interface graphique
Responsable : Catherine Recanati

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX




TROISIEME ANNEE



Cryptographie et sécurité informatique
Responsable : Nabil El Khadi

Objectif : Acquérir les connaissances théoriques et pratiques de la cryptographie contemporaine.

Contenu : Cette option sera une initiation aux concepts fondamentaux et aux méthodes de la cryptographie contemporaine. On y présentera les principes de la cryptographie à clef publique, ses avantages par rapport à la cryptographie « classique » (qui oblige à garder secrètes les clefs de chiffrement et de déchiffrement), puis on étudiera en détail quelques cryptosystèmes (parmi lesquels le très célèbre RSA) et protocoles (d'échange de clefs, d'authentification, de chiffrement). On s'efforcera aussi de faire le lien avec les aspects pratiques de la sécurité informatique.



Réseaux II (Gestion des réseaux)
Responsables : Nadjib Achir et Khaled Boussetta

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : Ce module se focalise essentiellement sur le modèle TCP/IP. Il se divise en trois parties englobant respectivement la couche réseau (IP), la couche transport (TCP/UDP), et la couche application.

Dans la première partie, consacrée à la couche réseau, nous abordons en détail les fonctionnalités de la couche réseau en termes d'adressage, d'organisation et de découpage des réseaux, ainsi que de routage. Pour cette dernière, nous analysons les deux grandes familles de protocoles de routage : le routage avec vecteurs de distances et le routage avec états de liaisons. Par la suite, nous procéderons à une présentation détaillée des protocoles de routage qu'on peut trouver dans le monde Internet actuellement (OSPF, RIP, et BGP).

Par la suite, nous étudierons dans la deuxième partie du cours les fonctionnalités assurées par la couche transport. La couche transport est une couche essentielle dans le fonctionnement des réseaux puisqu'elle permet une transmission fiable de l'information en s'appuyant sur une couche réseau non fiable (IP). Nous nous intéressons dans un premier temps au fonctionnement du protocole UDP, puis TCP. Pour TCP, nous étudierons les fonctionnalités ainsi que les différents mécanismes utilisés par ce dernier afin de garantir la fiabilité des communications (ouverture et fermeture de connexion, contrôle de flux, contrôle de congestion).

Finalement, dans la troisième partie du cours nous abordons le fonctionnement des principales applications utilisées aujourd'hui dans le réseau Internet (SMTP, POP, HTTP, FTP, RLOGIN, SSH).


Théorie des langages et compilation
Responsable : Gérard Duchamp

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX



Traitement du signal
Responsable : Caroline Kulcsar

Objectif : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contenu : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX



Traitement informatique des données
Responsable : Younès Bennani

Objectif: L'objectif de ce cours est de permettre aux étudiants de découvrir et de se familiariser avec les outils informatiques de base de l'analyse et de l'exploration des données. Il fournit une connaissance des grands principes mis en oeuvre dans la conception ou l'utilisation d'une chaîne de traitement de l'information. Le cours sera illustre constamment via l'utilisation de l'environnement MATLAB qui constitue une plate-forme interactive de calcul numérique et de visualisation graphique.

Contenu : Partie I. La reconnaissance des formes (RdF) est une science de l'ingénieur qui a pour but de percevoir et de reconnaître automatiquement des formes présentes dans des signaux et des images. Cette partie du cours traite de manière globale et synthétique plusieurs aspects de la RdF:

Partie II: Réseaux de neurones artificiels. Cette deuxième partie est centrée sur les aspects algorithmiques des modèles connexionnistes et à un degré moindre sur des aspects théoriques. Elle présente l'apport des techniques connexionnistes à l'exploration de données. Elle est structurée autour des axes suivants : Apprentissage à partir de données, Minimisation du risque empirique (ERM), Consistance de l'approche ERM, Dimension VC, Minimisation du risque structurel (SRM), Eléments de base (le neurone, architectures, paramètres), Quelques modèles connexionnistes (Perceptrons multicouches, Réseaux à fonctions radiales, Learning Vector quantization, Les cartes topologiques de Kohonen), Critères et algorithmes d'apprentissage, Problèmes génériques (classement, régression, classification).


Option CHMDE (Communication Homme-Machine et Documents Electroniques)
Responsable: Adeline Nazarenko

Cette option a pour objectif de former les étudiants à la problématique de la gestion des documents informatisés dans l'entreprise et à leur rôle comme support de la communication homme-machine: création de documents hypermédias, veille technologique, gestion de mémoire d'entreprise, gestion de la documentation, circulation des documents, accès à l'information sous ses différentes formes. L'information étant encore largement textuelle, l'accent est mis sur les techniques et méthodes de manipulation de l'écrit. Une part importante est néanmoins consacrée aux problèmes du multimédia (texte, oral, image) et des hypermédias adaptatifs qui deviennent de plus en plus importants pour la gestion de l'information et la communication homme-machine.

Cette option s'organise en 2 thèmes:

Le theme1 est une formation aux techniques de base de la communication sous ses différentes formes visuelle, orale et écrite;
Le theme2, plus applique, montre comment ces différentes techniques sont mises en oeuvre dans des applications documentaires conçues comme parties intégrantes d'une communication homme-machine.


Thème 1: Techniques de base de la Communication Homme-Machine

Traitement de données vocales
Responsables : Gérard Chollet et Dijana Petrovska (20 h Cours-TD)
Reconnaissance et analyse de la parole et outils de dictée automatique; synthèse de la parole, prosodie.

Traitement de données visuelles
Responsable : François Malgouyres (10 h Cours, 10 h TD)

Acquisition et restitution de données visuelles, méthodes de base du traitement de données visuelles statiques, reconnaissance d'objets, indexation et recherche par le contenu.

Traitement Automatique des Langues
Responsables : Adeline Nazarenko et Daniel Kayser (24 h Cours-TD)

Objectif : initier les étudiants à la problématique et aux méthodes du traitement automatique des langues : complexité des données manipulées (volume et hétérogénéité) et diversité des approches possibles (numériques vs. symboliques, analyses de surface vs. profonde)

Contenu : Présentation des applications du TAL ; introduction à la statistique textuelle ; méthodes d'analyse morphologique (segmentation en mots, lemmatisation, racinisation) ; formalismes grammaticaux et méthodes d'analyses syntaxiques (étiquetage, analyse, désambiguïsation) ; formalismes et analyse sémantiques ; notions de pragmatique.


Theme2: Conception d'applications documentaires

Gestion électronique de documents
Responsable : Touria Aït El Mekki (5h Cours, 10h TP)

Formats de documents électroniques. Systèmes d'édition de documents électroniques.
Initiation à XML (balisage, DTD, feuille de style, parser, DocBook et TopicMaps).

Techniques de manipulation des documents textuels
Responsable : Thierry Hamon (12 h Cours, 12 h TP)

Outils de manipulation de texte (Perl). Logiciels d'analyse de données textuelles et de traitement automatique des langues.

Gestion de l'information spécialisée
Responsables : Adeline Nazarenko et conférenciers extérieurs

Recherche documentaire; différentes techniques d'indexation adaptées au texte, au son et à l'image; diversité des modes de recherche (requête libre, via un thesaurus, mots-clefs, plein texte); filtrage, extraction et diffusion de l'information; construction et exploitation d'une mémoire d'entreprise

Hypermédias adaptatifs
Responsable : J-H Réty (7 h Cours, 7 h TD, 7 h TP)

Interaction et communication médiatisées. Manipulation informatique de documents : problèmes liés aux supports papier/écran, notion de document numérique, rôle des médias, typologies des documents, etc.
Contrôle des connaissances: devoir



Option ADO (Aide à la décision et optimisation)
Responsables : Gérard Plateau et Anass Nagih


Aide à la décision
Responsables : Lucas Létocart et Laurent Alfandari

Objectif : Le but de ce cours est de faire découvrir différentes manières de modéliser et de résoudre certains problèmes d'optimisation et d'aide à la décision.

Contenu : Modélisation en recherche opérationnelle: gestion de production et planification, problèmes de localisation, ordonnancement.
Optimisation multicritère: modélisation des préférences, construction de familles de critères, programmation multiobjectif, optimisation combinatoire multicritère et méthodes d'aide multicritère à la décision.



Optimisation 
Responsables : Sophie Toulouse et Anass Nagih

Objectif :

Contenu :
1) Optimisation quadratique en nombres entiers : techniques de linéarisation ; applications.
2) Programmation semi-définie positive
3) Garantie de performances.

Le degré de difficulté des problèmes d'optimisation combinatoire fait qu'on ne peut toujours se permettre de les résoudre à l'optimum ; quitte alors à fournir des solutions seulement approchées, les algorithmes à garantie de performance se donnent la double exigence d'une efficacité en temps (les algorithmes sont rapides) et en performance : on sait situer la solution fournie par rapport à la meilleure et (éventuellement) à la pire solution. Nous donnerons des exemples de tels algorithmes autour du problème du voyageur de commerce, notamment en utilisant des approches heuristiques classiques de recherche locale et de réparation. Nous verrons également comment le seul choix de la modélisation permet de déduire un algorithme à garantie de performance (application à divers problèmes classiques d'optimisation).


Programmation par contraintes
Responsable : Christian Codognet

Satisfaction de contraintes, rappels de programmation logique, programmation logique avec contraintes (domaines de contraintes, langages de programmation, sémantique, applications et implémentation), programmation logique concurrente avec contraintes


Résolution de problèmes de grande taille
Responsables : Agnès Plateau et Anass Nagih

Problèmes de grande taille : génération de colonnes.
Métaheuristiques : heuristiques gloutonnes et duales ; recherche locale et méthodes de montée (voisinages, fonctions d'évaluation) ; métaheuristiques monosolution (tabou) ; métaheuristiques multisolutions (génétique, recomposition de chemins).

PAGE 19