Syllabus du CMI Informatique de l`Université de Montpellier 2015
Transcription
Syllabus du CMI Informatique de l`Université de Montpellier 2015
Syllabus du CMI Informatique de l’Université de Montpellier∗ 2015-2020 A.E. Baert ∗ Les contenus, intitulés, responsables des modules des spécialité du Master Informatique sont donnés à titre indicatif ; la formation est en attente de l’accréditation de l’Université de Montpellier pour le LMD4 (courant 2015) 1 1 Licence CMI Informatique S1 Introduction à l’algorithmique Du binaire au web Calculus Algèbre et Analyse 1 Physique générale Introduction aux métiers de l’ingénierie S2 De la combinatoire aux graphes Architecture des ordinateurs Programmation impérative Modèles de calcul Algèbre et Analyse 2 Anglais Projet personnel de l’étudiant Communication écrite et orale 1 Projet Informatique 5 ECTS 5 ECTS 5 ECTS 10 ECTS 5 ECTS 5 ECTS 2.5 ECTS 5 ECTS 5 ECTS 7,5 ECTS 2,5 ECTS 2,5 ECTS 2,5 ECTS 2,5 ECTS Table 1: Offre L1 1.1 Semestre 1 1. Introduction à l’algorithmique et à la programmation (Janssen) Nous nous intéressons dans cet enseignement à la résolution de problèmes à l’aide d’ordinateur. Pour résoudre un problème on procède en deux étapes : Définition de l’algorithme : description du calcul permettant la résolution du problème ; le calcul, qui correspond à un enchaînement d’actions à exécuter, est écrit dans un langage universel indépendant des ordinateurs : le langage d’algorithme. Nous introduirons deux formes d’expression d’un algorithme : récursive et impérative (séquentielle). Ecriture du programme : on traduit l’algorithme dans un langage de programmation en tenant compte des spécificités du langage choisi (syntaxe, opérations disponibles, ...) ; le programme obtenu peut être exécuté sur un ordinateur. Le langage de programmation choisi est C++. Ò Types des données simples (nombres, booléens), opérations sur les données, expressions Définition d’un algorithme, partie spécifications (données, résultat), corps de l’algorithme Algorithmes récursifs sur les nombres Introduction du langage C++, les types, syntaxe des expressions, des fonctions Définition des listes et algorithmes récursifs sur les listes - écriture en C++ Le style impératif, variables, environnement Les instructions : l’affectation, la séquence, les conditionnelles, les itérations - écriture en C++ Algorithmes impératifs sur les nombres 2 Type de données tableaux - écriture en C++ Algorithmes sur les tableaux 2. Du binaire au web (Bouziane, Daudé) Objectifs : s’approprier des notions de base de l’informatique et comprendre leur utilité, se familiariser avec leur fonctionnement. Avoir aussi une vision introductive sur des thèmes enseignés les années suivantes, les liens entre ces thèmes et leur importance. Contenu : Trois thèmes seront abordés : représentation de l’information, système et réseau, Web, selon une approche résolument orientée vers la pratique (codage de l’information, compression, traitement d’images ou du son, introduction à Unix, recherches sur internet, échange d’information dans une application réseau, création d’un CV à travers la création d’une page Web, etc.) 3. Calculus (Boudet) Cette option de 50h dont 25h spécifiques à la discipline informatique, se présente sous forme de cours/TD intégrés. Elle a pour but de familiariser les étudiants avec le maniement des expressions mathématiques élémentaires utiles dans toute discipline scientifique. Le programme passe en revue les règles de base (calcul, trigonométrie, arithmétique), les équations et systèmes d’équations, les notions d’ensembles et de relations, quelques éléments de statistiques mais aussi la notion de preuve et de raisonnement. * Règles de calcul élémentaires * algèbre de boole, table de vérité, intro logique, expressivité * récurrence/induction, raisonnements divers, suites (arithmétique, géométrique, résolution, ...) * arithmétique (base, pgcd, divisibilité, bezout, codage, ...) congruence * trigonométrie (complexe ?) * vecteur (allégé)/espace vectoriel * equation et système d’équations * dérivation/intégration * ensemble, relation, fonction, application : introduction de notions mais pas de modélisation * éléments de statistiques, incertitudes, combinatoires 4. Analyse et Algèbre 1 (10 ECTS) : Fondements : logique et raisonnement, ensembles, applications. Algèbre Linéaire 1 : espace Rn , systèmes linéaires, familles libres et liées, bases et dimensions, applications linéaires, matrices, théorème du rang. Analyse 1 : fonctions usuelles, calcul de limites, calcul de dérivées, calcul de primitives, continuité et théorème des valeurs intermédiaires, applications. 5. Physique : Le cours de Physique générale a pour objectif de vous donner quelques bases pour appréhender les problèmes de physique. Une première partie permettra de vous familiariser avec les notions de mesures, d’ordre de grandeur, d’incertitudes. La seconde partie traitera les notions de base permettant d’aborder la dynamique newtonienne en toute sérénité au prochain semestre. La dynamique newtonienne est la théorie qui fonde la physique classique et décrit les mouvements des corps soumis à des forces, en particulier la force d’inertie. Une force se comprend par ses effets qui résultent de l’interaction des deux systèmes : la terre et le soleil, l’électron et le noyau, le proton et le neutron. 3 Cette seconde partie est elle-même composée de quatre grandes parties. La première concernera la statique des forces. Il est, en effet, indispensable d’être capable de traiter le cas statique avant de s’intéresser au cas dynamique. Cela permet en général de mieux appréhender les problèmes de dynamique (ne pas oublier de force, les forces à l’origine du mouvement, ?). Le second point permettra de remémorer les notions de cinématique et notamment les grandeurs vectorielles telles que la vitesse et l’accélération. Les changements de référentiel en translation seront abordés. Le troisième point traitera de la dynamique newtonienne. Les équations de bases seront établies et appliquées à des cas simples (chute libre, force centrale). Enfin, le dernier point abordé concernera la notion d’énergie mécanique. Il s’agit d’un outil très puissant permettant souvent de résoudre plus simplement les problèmes de Physique. 6. Introduction aux métiers de l’ingénierie spécifique CMI Cette UE est organisée dans l’esprit de la pédagogie APP autour de plusieurs activités. L’UE est structurée autour d’activités réalisées en groupe de 5 étudiants, ces groupes sont volontairement composés d’étudiants de plusieurs spécialité de CMI. • kick-off (1 séance) - constitution des groupes - apprentissage du travail en équipe. • réflexion autour du métier d’ingénieur " dessine moi un ingénieur" (1 séance) - définition du métier (fonction) de l’ingénieur - la place de l’ingénieur dans la société, les différentes voie pour accéder à ce métier. • rencontre avec un ingénieur (1 séance) - confrontation de l’image de l’ingénieur construite par le groupe avec la réalité dans un débat-rencontre avec des ingénieurs. • jouer à l’ingénieur" fabrique moi une fusée" (2 séances) - au travers d’une activité ludique l’apprentissage du métier d’ingénieur. • interview d’un chercheur (3 séances) - le but de cette dernière activité est de sensibiliser les étudiants à l’importance de la recherche - chaque groupe rencontre un chercheur de l’un des laboratoires partenaires des CMI pour une interview sur ses activités, le rendu de ce travail (production d’un clip vidéo) est évalué par l’ensemble de la promotion lors de la dernière séance. 1.2 Semestre 2 1. De la combinatoire aux graphes (Bérard) La première partie de ce module commence par de rapides rappels des mathématiques de base nécessaires à l’informatique fondamentale et vus lors de modules du premier semestre : ensembles, relations, applications, preuves par récurrence et induction. Nous approfondirons ensuite la notion de cardinalité des ensembles et les relations binaires (relations d’ordre et d’équivalence). Nous verrons les grands principes de dénombrement (arrangement, permutation, principe des tiroirs, ...). Nous traiterons des ensembles définis par induction et des preuves par induction structurelle associées. La deuxième partie introduit la notion de graphe (version orientée et non orientée) et les définitions de base associées : degrés, connexité, cheminement, arbres. Nous énoncerons plusieurs propriétés de graphes. Nous nous servirons des graphes comme supports aux principes vus lors de la première partie, notamment en s’attachant à la démonstration de propriétés sur les graphes. 4 2. Programmation impérative (Giorgi, Joab) Ce module s’intéresse aux fondements des langages impératifs et de la mise en pratique de ces langages de programmation. En particulier, les points suivants sont abordés: - le typage statique des données - la gestion mémoire (variable, pointeurs, adresses) - la définition et l’appel de fonction (passage des paramètres) - la manipulation explicite de la mémoire (tableau, allocation dynamique) - la définition et l’utilisation de structure de données composites (struct) - les entrées-sorties 3. Modèles de calcul (Durand) Nous présentons ici différents modèles liés au calcul. Nous étudierons le fonctionnement de ces modèles, les façons de communiquer avec eux. Enfin, nous aborderons la notion de simulation entre ces modèles afin de comprendre leur puissance relative. La diversité des modèles abordés est importante pour que l’étudiant comprenne l’intérêt général de la simulation. Nous aborderons les automates finis et leurs variantes, les automates à ruban ou compteurs, les machines de Turing et les machines à registre, les systèmes de réécriture et les automates cellulaires. 4. Algèbre et Analyse 2 (7,5 ECTS) : Algèbre Linéaire 2 : changement de base, calcul de petits déterminants, diagonalisation en petite dimension, calcul matriciel, produit scalaire usuel sur Rn , matrices orthogonales, produit vectoriel. Analyse 2 : théorème de Rolle, théorème des accroissements finis, formule de Taylor-Young, équivalents et développements limités. 5. Architecture des ordinateurs : Le cours a pour objectif la compréhension générale de l’organisation matérielle et l’architecture d’un ordinateur afin d’acquérir les connaissances de base utiles à la compréhension des autres disciplines de l’informatique. L’accent est notamment mis sur les principes de représentation des données et des instructions et sur le fonctionnement de la mémoire et de l’unité centrale de traitement. 6. PPE CMI-2,5 ECTS Bardet Les objectifs du Projet Personnalisé de l’Etudiant (L1/S2) sont les suivant : • rendre l’étudiant acteur de son orientation en travaillant sur un projet professionnel en adéquation avec son cursus et en mettant en place son Portefeuille d’Expériences et de Compétences (PEC). • initier l’étudiant à la démarche projet (respect d’un calendrier, étapes de travail à date fixée) • transmettre à l’étudiant une méthode de recherche et d’aide à la décision. Les étudiants suivent une série des cours sur les thématiques suivantes : • Aide à l’orientation et à l’insertion professionnelle : (Présentation des débouchés professionnels par filière, Portefeuille d’Expériences et de Compétences , Bilan personnel / Lettre de motivation / CV , Préparation d’un entretien avec un professionnel) • Recherche documentaire (Recherche documentaire à la BU / Utilisation du COMPASS) • Gestion de projet (Gestion d’un planning avec validation d’étapes de travail, Rédaction d’un rapport de synthèse) 5 Le PPE s’appuie fortement sur l’outil PEC qui est un outil d’aide à l’orientation, au retour en formation et à l’insertion. Le PEC est un outil de valorisation du parcours de formation et du parcours professionnel. Il permet à l’étudiant de faire son bilan, de construire ses projets pour mieux communiquer. Au cours du semestre, les étudiants choisissent un métier en adéquation avec leur parcours, réalisent une recherche documentaire, réalisent un entretien avec un professionnel et restituent leur démarche dans un dossier écrit, personnel. Le suivi du travail de chaque étudiant est réalisé par un enseignant référent, plusieurs étapes de travail doivent être validées au cours du semestre. 7. Anglais CMI- 2,5 ECTS spécifique CMI Les objectifs sont tout d’abord de permettre l’apprentissage des compétences clés inhérentes au CECR en anglais scientifique (lire / écouter/ prendre part à une conversation, s’exprimer oralement en continu, écrire) mais aussi de favoriser la rédaction et tenue d?un portfolio de compétences en langues calqué sur le modèle du conseil de léEurope Les cours viseront à une maîtrise écrite et orale de léanglais de spécialité via divers supports : articles, publications, reportages audio et vidéos, présentation de mini-exposés et posters, grammaire, etc. Les modules feront l’objet d’évaluations régulières dans les 5 compétences qui seront autant d?indicateurs de la progression individuelle des étudiants. 8. Communication écrite et orale 1-2,5 ECTS spécifique CMI Le module se compose de trois grandes parties : • Culture Générale et Expression écrite -Apprendre à structurer un lettre, Apprendre à faire une synthèse écrite, structuration d’un rapport sur un sujet de culture générale : Cinéma, littérature, Musique, etc.. • Culture Générale et Expression oraleă:-Apprendre à présenter un sujet de culture générale : Cinéma, littérature, Musique, etc..Téléphone, débat, synthèse, • Mise en place du CV (structuration, importance,) Enseignement repose de plus sur la mise en place du Carnet de suivi de l’étudiantă L’utilisation du Réseau Voltaire dédié à l?acquisition des bases en expression française permettra une évaluation du niveau en Langue Francaise. 9. Projet Informatique CMI-2,5 ECTS spécifique CMI Ce module s’appuie sur les 2 modules d’informatique du S1 et S2. Il a pour but de développer en C /C ++ des petits jeux en utilisant la librairie SDL. Les objectifs pédagogiques sont les suivant: • mise en pratique des notions de programmation C/C ++ vu au premier semestre, • intégration d’une bibliothèque externe comme la SDL pour développer un projet • travail en groupe et autonomie de gestion de projet. Ce module est ouvert au CMI Informatique et EEA. 6 S3 Algorithmes et structure de données linéaires Systèmes d’exploitation Systèmes d’information et bases de Données 1 Programmation impérative avancée Statistique descriptive et probabilités Langue vivante Introduction à l’économie Communication écrite et orale 2 S4 Algorithmique et complexité Programmation applicative Logique 1 Modélisation et programmation par objet 1 Projet informatique Langue vivante Outils informatiques Recherche Bibliographique Monde de l’entreprise-Gestion de projet 5 ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 2,5 ECTS 5 ECTS 2,5ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 2,5 ECTS 2,5 ECTS 2,5ECTS 2,5ECTS Table 2: Offre L2 1.3 Semestre 3 1. Algorithmes et structure de données linéaires (Janssen) Objectifs : - savoir écrire des algorithmes de base sur les structures de données linéaires : tableaux, listes chaînées, piles, files - savoir justifier un algorithme : énoncer des arguments attestant son arrêt et sa justesse. - savoir analyser un algorithme en termes de complexité temporel. Connaître les grandes classes de complexité - savoir appliquer quelques principes de base pour obtenir des algorithmes efficaces : tri, dichotomie, diviser pour régner - connaître les définitions élémentaires sur les arbres binaires et savoir écrire des algorithmes très simples opérant sur les arbres. Rappels sur le langage algoritmique : passage des paramètres (donnée, résultat, donnée/résultat), recherche séquentielle dans un tableau, recherche par dichotomie Analyse d’algorithmes : preuve à base d’invariant, évaluation de la complexité en temps dans le pire des cas, ordre de grandeur asymptotique, principales classes asymptotiques de fonctions. Structure de Données élémentaires : Piles, Files, listes chaînées, files de priorité, arbres binaires, représentation d’ensembles. Algorithmes élémentaires : algorithmes de tris, parcours d’arbre. 7 2. Programmation impérative avancée (Giorgi, Mancheron) Ce module s’intéresse aux fondements et aux techniques avancées des langages impératifs. En particulier, les points suivants sont abordés: - un rappel des concepts de base sur la gestion mémoire (variable, pointeurs, adresses) et les fonctions (paramètres, renvoie) - notions avancées de données structurés en relation avec le concept d’objet (notion de classe) - utilisation des classes dans les structures de données algorithmique (liste, file, ...) - manipulation de la surcharge des opérateurs et des entrées-sorties 3. Systèmes d’exploitation (Meynard, Pompidor) Cette UE vise à donner aux étudiants de deuxième année dans une licence scientifique la possibilité de comprendre et d’utiliser un système d’exploitation tel que Linux . La première partie de l’UE utilise le langage de programmation C qui est le langage natif d’Unix afin de comprendre et de manipuler les principes fondamentaux de l’encodage des données et de la gestion des fichiers et des entrées-sorties. La seconde partie utilise le langage de script Python qui est interopérable sous tous les principaux systèmes d’exploitation et qui est un langage beaucoup plus évolué que C. Programme : description des systèmes de fichiers et de processus, enseignement des principales commandes système (notamment pour la gestion des systèmes de fichiers et de processus), explication des architectures client-serveur illustrées sur l’architecture réseau des salles de TP du département informatique, introduction au scripting système (notamment pour le reporting des connexions utilisateurs et des processus). 4. Systèmes d’information et bases de données 1 (Kaci) L’objectif de cette UE est d’acquérir les compétences pour concevoir un système d’informations de la collecte des informations à l’implantation d’une base de données ainsi que les requêtes vis-à-vis de la base. Contenu de l’UE : Introduction aux bases de données Modèle relationnel de données Modèle entité-association Langage de manipulation des données Graphe des flux Modèle conceptuel de traitement Modèle organisationnel de traitement 5. Statistique descriptive et probabilités L’objectif du cours est de présenter les notions fondamentales et les techniques usuelles de la statistique inférentielle en les situant dans un contexte d’utilisation pratique. L’accent est mis sur le raisonnement statistique et le cours est axé sur la compréhension et la mise en oeuvre correcte des méthodes usuelles d’inférence. Les notions présentées sont illustrées au travers de nombreux exemples.Après un bref rappel de probabilités, le cours présente les méthodes classiques d’estimation et focalise sur la notion de test statistique. Les approches paramétriques et non paramétriques sont présentées. 8 6. Anglais (2,5 ECTS) : Savoir communiquer efficacement en entreprise et sur le marché du travail. Rédiger un CV et une lettre / un e-mail de motivation. Passer un entretien d’embauche 7. Introduction à l’économie, à la gestion et au management -2,5 ECTS- spécifique CMI Introduction au monde de l’entreprise : Introduction à l’analyse économique : problématiques économiques, historiques et contemporaines.(17h). Introduction à La gestion de Projet (17h) Introduction au Management (17h) 8. Communication écrite et orale 2 -2,5 ECTS-spécifique CMI Expression écrite : Savoir rédiger un mail, lettre, synthèse, structuration d’un rapport sur un thème technologique qui sera donné par un enseignant de la licence : ex mécanique, électronique, optique ou connaissance générale scientifique et d’ingénierie. Expression orale : Savoir parler, savoir écouter, Conversation Téléphonique, Débat sur un sujet scientifique, Visio- Conférence synthèse. Organisation/structuration du travail: Diagramme de Gant, Mise en place du CV (structuration, importance), Suivi sur le Carnet étudiant. 9 1.4 Semestre 4 1. Programmation applicative (Chateau, Dony) La programmation applicative repose sur un modèle de calcul, issu du lambda-calcul de Church, qui représente l’exécution d’un programme comme une suite d’applications de fonctions à des arguments, donc comme un simple calcul algébrique (calcul utilisant des nombres et des symboles). Proche de la programmation fonctionnelle, elle fournit un cadre remarquablement simple pour étudier la programmation et ses structures en général. Elle fournit en particulier un contexte particulièrement approprié pour étudier les fonctions et les structures de données récursives (listes, arbres, etc) omniprésentes dans les applications informatiques (par exemple une page HTML décrivant une page web a une structure d’arbre). Elle se prête également fort bien à la programmation symbolique (manipulation de données non strictement numériques) utilisée en gestion et en IA. Elle permet enfin de présenter simplement l’ interprétation des textes et des programmes (affichage d’une page HTML ou interprétation d’une instruction d’un langage de programmation) comme exemples de fonctions récursives. Les objectifs du module sont : • de poursuivre l’acquisition à un niveau intermédiaire des concepts essentiels de la programmation : fonction, identificateurs, portée, durée de vie, bloc, environnement, fonction d’ordre supérieur. • de renforcer les compétences essentielles de l’informaticien sur : abstraction de données, composition de calculs, récursivité, transformation des récursivités, gestion automatique de la mémoire, "garbage collection", typage dynamique, interprétation, ... (sur nombres, chaînes , listes, arbres) • d’ouvrir à la compréhension d’un paradigme de programmation, d’une famille de langages et de ses extensions vers les objets le web (de Lisp, Smalltalk, Clos, à Ruby, Python, Javascript, etc). 2. Algorithmique et complexité (Dicky) • 1 Arborescences Mathématique : définitions inductives (arborescence, hauteur, branche), propriétés mathématiques simples (nombre d’arcs, nombre de feuilles d’un arbre binaire ...), Extensions (étiquetage des sommets et des arcs), Codage d’une arborescence quelconque par une arborescence binaire (uniquement mathématique, pas algo). Algorithmique : Implémentations (binaire et général), Traversées (spécifications puis implémentations), Calcul des distances dans un arbre pondéré (pour préparer Dijkstra). Utilisations : ABR, Tas. • 2 Complexité Définition des classes de complexité et techniques de calcul de complexité d’algorithmes (itératifs et récursifs). Exemples d’utilisation sur les algorithmes de tri. Etude de la complexité des algorithmes étudiés 3. Logique 1 (Leclere) La première partie vise à donner les bases de formalisation du raisonnement logique. L’objectif est de comprendre la sémantique des connecteurs et la notion de raisonnement correct. Elle constitue la moitié de l’UE. La deuxième partie s’intéresse à l’aspect algorithmique du raisonnement (comment mettre en œuvre une méthode de raisonnement automatique cohérente, 10 complète et efficace). La troisième partie a pour objectif de montrer les limites d’expressivité de la logique des propositions et d’introduire la logique des prédicats. On s’attache essentiellement à faire comprendre la sémantique des quantificateurs. Partie 1 : 25h - Introduction et Rappels (1h Cours + 1h30 TD) - Syntaxe de la logique des propositions (1h00 Cours + 3h TD + 2h TP) - Sémantique de la logique des propositions (3h30 Cours + 3h TD + 6h TP) : Interprétation et modèle, table de vérité, Satisfiabilité, Validité, Equivalence logique, Conséquence logique, théorème de substitution, théorème sur l’équivalence des différents problèmes - Modélisation en logique des propositions (quelques minutes Cours + 4h TD) Partie 2 : 20h - Les clauses et formes normales (2h30 Cours + 3h TD + 4h30 TP) : Propriétés des clauses et formes clausales, mise sous forme clausale. Cette partie fait l’objet de démonstration de propriétés. - Méthodes de preuve (4h Cours + 3h30 TD + 2h30 TP) : La résolution : méthode, correction et complétude, un mot des stratégies, les tableaux sémantiques (méthode, correction et complétude), la procédure de Davis et Putnam (à titre culturel en cours, non abordé en TD/TP) Partie 3 : 6h - Introduction à la logique des prédicats sans symbole de fonctions (3h Cours + 3h TD) : Syntaxe, Sémantique, Méthode des tableaux, Modélisation. 4. Modélisation et programmation par objet 1 (Huchard,Nebut) Le module présente la conception par objets avec un premier support de programmation par objets pour concrétiser les aspects. Les langages supports sont UML et Java. En UML l’architecture générale est présentée (aperçu sur tous les types de modèles) et deux types de diagrammes sont étudiés en profondeur : les diagrammes de cas d’utilisation et les diagrammes de classes et d’instances. Au travers de ces diagrammes seront vues les notions d’acteurs, de cas d’utiilisation, de scénario, de classes, d’instances, d’attributs, d’opérations, d’associations, d’interfaces et de spécialisation. Leur mise en oeuvre en parallèle en Java permettra de les rendre concrets pour les étudiants. 5. Projet semestriel en Informatique (Rétoré)) Analyse, conception et développement en groupe, d’un projet informatique dans un langage de programmation. Le projet donnera lieu à la rédaction d’un rapport ainsi qu’à une soutenance publique. Les qualités d’organisation, de communication seront également prises en compte dans l’évaluation du projet. 6. Anglais CMI spécifique CMI Les objectifs sont : • permettre l’apprentissage des compétences clés inhérentes au CECR en anglais scientifique (lire / écouter/ prendre part à une conversation, s’exprimer oralement en continu, écrire) • favoriser la rédaction et tenue d’un portfolio de compétences en langues calqué sur le modèle du conseil de l’Europe . Les cours viseront à une maîtrise écrite et orale de l’anglais de spécialité via divers supports : articles, publications, reportages audio et vidéos, présentation de mini-exposés et posters, 11 grammaire, etc. Les modules feront l’objet d’évaluations régulières dans les 5 compétences qui seront autant d’indicateurs de la progression individuelle des étudiants. 7. Découverte du monde professionnel- Gestion de projet Apprentissage de la recherche du stage, préparation au stage , apprentissage de l’insertion professionnelle. Connaissance de l’entreprise et du monde du travail. Organisation/structuration d’une entreprise (aborder les différents types de structures) Préparation d’un rapport écrit décrivant l’activité de l’étudiant au sein de l’entreprise avec un bilan d’expériences et de compétences acquises (présentation de l’entreprise, du service dans lequel il était, son rôle et son travail, etc..) 8. Recherche Bibliographique-2,5 ECTS- spécifique CMI • Apprendre à faire un état de l’art scientifique (méthodologie, ressources documentaires, savoir lire une publication scientifique, un brevet, savoir faire une synthèse écrite, présenter à l’oral, etc?) 10h • Afin d’appliquer la première partie, un sujet de recherche bibliographique est proposé à l’étudiant par l’encadrant de stage de L2. Préparation d’une synthèse écrite d’articles scientifiques proposés par l’encadrant du stage en laboratoire de L2. Un rapport sera demandé et il y aura un oral de restitution du travail effectué. (Projet intégré : 15h). 12 S5 Algorithmique de graphes Langages formels Réseaux Concepts et programmation système Modélisation et programmation par objet 2 Techniques de communication et conduite de projets Anglais Anglais : culture anglo-saxonne de l’entreprise Connaissances de l’entreprise : notions de comptabilité S6 Projet annuel CMI Logique 2 Objets avancés Systèmes d’information et bases de données 2 Architecture et programmation du web Connaissance du monde de la recherche, innovation et transfert Anglais : Culture anglo-saxonne de l’entreprise une UE au choix parmi Interprétation et compilation Programmation linéaire Algorithmique du texte 5 ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 2,5 ECTS 2,5 ECTS 2,5 ECTS 2,5ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 2,5 ECTS 2,5 ECTS 5 ECTS 5 ECTS 5 ECTS Table 3: Offre L3 – parcours interne 1.5 Semestre 5 1. Algorithmique de graphes (Bessy) Bases: graphe, connexité, calcul des composantes connexes. Arbres couvrants: définition, propriétés, arbres couvrants de poids minimum. Parcours: parcours en largeur, arbre des plus courts chemins, parcours en profondeur. Graphes orientés: définitions, graphe acyclique, tri-topologique, graphe fortement connexe. Plus courts chemins: plus courts chemins pour toutes pairs de sommets. 2. Langages formels (Legrand) Tout ensemble d’objets informatiques peut se modéliser comme un ensemble de mots, c’est-àdire un langage formel. à partir de ce constat, l’étude des langages formels peut s’appliquer à de très nombreux domaines. Cet enseignement se focalisera sur les concepts généraux comme les grammaires, les automates et expressions régulières. Les problèmes traités seront axés sur la compréhension des notions abordées, plus que sur les applications effectives. Par exemple, on étudiera comment reconnaître si un mot appartient à un langage ou comment montrer 13 S5 Algorithmique de graphes Langages formels Réseaux Système Fondements de l’algorithmique Logique des propositions Anglais : culture anglo-saxonne de l’entreprise Connaissances de l’entreprise S6 Projet CMI annuel Logique 2 Objets avancés Systèmes d’information et bases de données Architecture et programmation du web Connaissance du monde de la recherche, innovation et transfert Anglais : Culture anglo-saxonne de l’entreprise une UE au choix parmi Interprétation et compilation Programmation linéaire Algorithme du texte 5 ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 2,5 ECTS 2,5ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 5 ECTS 2,5 ECTS 2,5 ECTS 5 ECTS 5 ECTS 5 ECTS Table 4: Offre L3 – parcours extérieur que deux langages sont identiques. Mots clés : Langage formel, Grammaire, Automate, Expression régulière, langage rationnel, langage algébrique Compétences et objectifs Le but de cet enseignement est : - Maîtriser les concepts de langage formel, grammaire, automates et expressions régulières. - Acquérir l’aptitude à manipuler des outils formels et établir des preuves. - Savoir faire des raisonnements par récurrence. - Savoir mettre en oeuvre les concepts étudiés afin de faire des preuves d’algorithmes Contenu du cours : Mots et langages : Concaténation. Fermeture de Kleene. Sous mots. Ordre sur les mots. Grammaires non contextuelle : Productions. Chaînes de dérivation. Lemme fondamental. Preuve sur les grammaires. Arbre de dérivation. Grammaire ambiguàń. Langage de Dyck et de Lukasiewicz. Automates : Définition et représentation. Fonction de transition itérée étendue. Chemin et trace. Preuve sur les automates. Indéterminisme, Îţ-transitions. Minimisation. Théorème de Kleene. Lemme de la Pompe. Expressions rationnelles : Langage associé. équivalence entre automate et expression rationnelle. Variation des états d’entrée/sortie. 3. Réseaux (Baert) Introduction : architectures et protocoles - Ethernet - Internet : caractéristiques, nommage, adressage, protocoles sous-jacents, mise en oeuvre d’applications 14 - Composants matériels et logiciels ; architecture en couches, protocoles. Modèle Client-Serveur Configuration de réseaux et sous-réseaux. Protocoles d’adressage, d’erreurs et de contrôles. Grandes Applications : serveurs de noms, système de fichiers distribué. 4. Concepts et programmation système (Meynard) Analyse et programmation en C d’un système d’exploitation Unix : - Besoin et rôles d’un système mono-processeur ; - Composantes du système d’exploitation ; - Gestion des entrées-sorties ; - Vie des processus ; - Gestion des fichiers: représentation, manipulation ; - Communications et synchronisations entre processus: formes simples et évoluées ; - Gestion de la mémoire : mémoire virtuelle. Compétences à acquérir : L’objectif visé est la compréhension du fonctionnement d’un système d’exploitation et l’apprentissage de la programmation d’applications C utilisant les ressources de ce système. 5. Modélisation et programmation par objet 2 (Huchard, Nebut) Le module développe la programmation par objets, avec pour cadre le langage Java. les concepts de classes, d’instance et de spécialisation sont revus plus en détails (deux premiers cours de révision et de remise à niveau pour des étudiants extérieurs pour assurer la maîtrise de la liaison dynamique et de la liaison statique). Puis les aspects avancés de la programmation par objets dans un langage typé statiquement sont étudiés : généricité et les relations entre la spécialisation, la généricité et le sous-typage ; la programmation par contrats avec des interfaces, des assertions et des exceptions ; Eléments de méta-programmation avec la notion et la pratique de l’introspection ; introduction à la programmation événementielle et graphique et ses relations avec la programmation par objets ; compréhension des mécanismes de sérialisation dans le cadre d’un langage à objets. On complètera le cours de CPO par la définition des diagrammes dynamiques en UML et leur relation avec le code Java et une initiation aux diagrammes de composants et de déploiement. 6. Techniques de communication et conduite de projets (Meynard) Cette UE est destinée à améliorer la communication écrite et orale des étudiants. Cet objectif sera atteint par l’étude de différentes techniques de gestion de projet informatique. Compétences à acquérir : Les objectifs de cette UE sont : habituer les étudiants à la prise de parole en public; améliorer les capacités de rédaction de rapports, cahier des charges, ... compréhension de techniques de gestion de projets; 7. Fondements de l’algorithmique (ex Analyse d’algorithmes) (Dicky) • 1 Arborescences Mathématique : définitions inductives (arborescence, hauteur, branche), propriétés mathématiques simples (nombre d’arcs, nombre de feuilles d’un arbre binaire ...), Extensions (étiquetage des sommets et des arcs), Codage d’une arborescence quelconque par une arborescence binaire (uniquement mathématique, pas algo). Algorith15 mique : Implémentations (binaire et général), Traversées (spécifications puis implémentations), Calcul des distances dans un arbre pondéré (pour préparer Dijkstra). Utilisations : ABR, Tas. • 2 Complexité Définition des classes de complexité et techniques de calcul de complexité d’algorithmes (itératifs et récursifs). Exemples d’utilisation sur les algorithmes de tri. Etude de la complexité des algorithmes étudiés 8. Logique des propositions (Kaci) L’objectif de cette UE est d’étudier la formalisation du raisonnement déductif . La première partie vise à donner les bases de formalisation du raisonnement logique. L’objectif est de comprendre la sémantique des connecteurs et la notion de raisonnement correct. Elle constitue la moitié de l’UE. La deuxième partie s’intéresse à l’aspect algorithmique du raisonnement (comment mettre en œuvre une méthode de raisonnement automatique cohérente, complète et efficace). La troisième partie a pour objectif de montrer les limites d’expressivité de la logique des propositions et d’introduire la logique des prédicats. On s’attache essentiellement à faire comprendre la sémantique des quantificateurs. 9. Connaissance de l’entreprise -Comptabilité spécifique CMI Sensibiliser les étudiants aux concepts de comptabilité et de gestion financière, afin de les former à la compréhension des documents de base tels que le compte de résultats et le bilan, de les former de façon simple mais complète aux calculs des coûts de revient.Synthétiser tous ces enseignements lors d’un jeu d’entreprise. Validation de l’expérience professionnelle sur le PEC. 10. Anglais spécifique CMI spécifique CMI 1.6 Semestre 6 1. Projet Annuel CMI Orsal-Sorli Analyser un projet industriel ou de recherche et mettre en ?uvre les solutions techniques pour le réaliser. Prendre conscience des besoins techniques du milieu industriel ou du laboratoire. Rendre l’étudiant autonome (organisation du travail) vis-à-vis d’objectifs tout en sachant travailler en équipe. Savoir utiliser une documentation technique et la bibliographie Mettre en pratique les enseignements de gestion de projet Finaliser la présentation du rapport écrit et la présentation orale. L?étudiant est encadré par son tuteur au sein du laboratoire et/ou de l?entreprise. Il travaille au moins deux demi journées par semaine sur le site et il est suivi par les responsables du CMI qui organisent deux soutenance orales : 1- fin janvier pour l?avancée bibliographique et technique du projet 2- fin avril pour la soutenance du projet d?étude et les perspectives futures du travail. Le Jury est constitué au minimum de trois responsables de spécialité différentes dont le responsable de l?étudiant. Ils apportent une évaluation plus objective sur le travail et les avancées technologiques du projet. Les tuteurs de stage en entreprise ou en laboratoire font partie du jury. 2. Logique 2 (Dicky) La logique des prédicats du premier ordre introduit les notions de variable, de quantificateur 16 sur des variables, de prédicat -ou relation- et de fonction. C’est la logique de référence dans des domaines variés de l’informatique (représentation de connaissances, bases de données, démonstration automatique, preuve de programme, ...) Cette UE est une introduction à la logique du premier ordre. Il suppose acquises les notions de base de la logique propositionnelle Le contenu : - Syntaxe de la logique du premier ordre (variables et quantificateurs, symboles fonctionnels) - Sémantique (interprétation, modèle, conséquence sémantique) - Modélisation de problèmes (avec accent sur l’utilisation des quantificateurs) - Méthodes de preuve (par exemple, méthode de résolution et/ou méthode des tableaux) - Fondements théoriques : présentation du théorème de Herbrand en lien avec la complétude des méthodes de preuve étudiées, ouverture sur quelques théorèmes fondamentaux de logique, notion de décidabilité des problèmes Les objectifs : - Acquérir les notions de base en logique du premier ordre. - Etre capable de modéliser un problème en logique du premier ordre - Etre capable de vérifier la validité d’un raisonnement formalisé en logique du premier ordre (soit directement à partir de la sémantique des formules, soit par une méthode de preuve). 3. Objets avancés (Dony,Huchard) Ce module complète la formation des étudiants dans le domaine des objets avec trois objectifs : maîtrise, multilinguisme, multi-cultures. Il s’agit d’un module de spécialisation, modulable, orienté vers la maîtrise complète de la programmation par objets (au-delà du cadre spécifique de Java qui a été étudié dans les deux précédents modules), i.e. vers l’enseignement de ses acceptions les plus innovantes et/ou difficiles. Il traite chaque année plusieurs langages et leurs spécificités : C++ (modèle différent de généricité (templates, templates variadiques), conversions de types, héritage multiple, encapsulation, lamdas-expressions), Scala (mixte typage statique et programmation fonctionnelle), Clos (les fonctions génériques, les auto-inits)), Smalltalk (le tout objet et l’envoi de message généralisé, les fermetures lexicales, la programmation du niveau méta sans voir les méta-classes), Javascript (les classes versus les prototypes), Eiffel (héritage multiple, contrats). 4. Systèmes d’information et bases de données 2 (Mougenot,Poncelet) Cet enseignement, poursuit l’enseignement initial (UE SI BD niveau 1). Il s’agit de présenter la théorie du modèle relationnel - schéma relationnel, relation - contraintes statiques et dynamiques - dépendances fonctionnelles, clé primaire - algèbre relationnelle - langage SQL et notions de surcouche procédurale (définitions de déclencheurs) - modèles cocneptuels (à partir de la notation objet UML) -théorie de la normalisation (formes normales, couverture) Les aspects essentiels en termes de gestion physique des donn??es (techniques d’indexation) et de concurrence d’accès (transaction) sont également abordés. Les aspects pratiques sont enseignés au travers d’une série de TP et s’appuient en grande partie sur Le SGBD Oracle. D’autres systèmes de gestion de bases de données, à l’exemple de MySQL et de Postgresql peuvent également être à l’étude. Objectifs : Maitriser la conception et la mise en oeuvre de bases de données. Les compétences ciblées sont des compétences de gestionnaire de données 5. Architecture et programmation du web (Meynard,Pompidor) 17 Description du contenu de l’enseignement Cet enseignement est destiné à des étudiants ayant une connaissance du langage HTML et de la navigation sur le web. Les notions essentielles des architectures Web (sites statiques et dynamiques, aspects présentation + structuration, sécurité et aspects éthiques de la toile) seront abordés avec notamment les points suivants : Langage HTML5 validation, DTD Langage côté serveur PHP5 (GET, POST, sessions, cookies, identification, ...) Liaison avec une base de données (MySQL) Object Relationnal Mapping avec Propel frameworks Langage côté client : Javascript Manipulation du DOM Importation via AJAX de fichiers XML (et JSON) framework JQUERY. 6. Interprétation et compilation (Meynard) L’informatique étant la science du traitement de l’information, il est nécessaire de coder ces traitements et cette information selon certaines règles de syntaxe. Tout informaticien se doit donc de comprendre la manière de spécifier ces langages mais aussi de les reconnaître afin de les interpréter ou de les traduire . Mêlant des outils théoriques (grammaire, automate) et pratiques (programmation récursive, utilisation d’outils tels que flex et bison), cette unité d’enseignement est destinée à tous ceux qui souhaitent comprendre et concevoir les interprêteurs et compilateurs. Compétences à acquérir : L’objectif de cette UE est de sensibiliser les étudiants aux techniques d’analyse syntaxique et sémantique des langages générés par des grammaires. L’analyse lexicale, l’analyse syntaxique descendante puis ascendante, l’analyse sémantique sont étudiés au travers d’un langage de programmation très simple : le langage C. 7. Programmation linéaire (Montassier) Ce cours est centré sur la programmation linéaire et quelques unes de ses applications classiques: allocation de ressource, ordonnancement, réseaux de transport, flots, etc. La programmation linéaire est un outils fondamental de la recherche opérationnelle. Suivant cette optique, ce cours peut être vu comme une suite ou un complément du cours d’algorithmes de graphes du S5. Les (très) grandes lignes du cours sont: l’algorithme du simplexe en deux phases, interprétation géométrique, le théorème de dualité, introduction de la notion de certificat d’optimalité, interprétation concrète du programme dual, applications à des problèmes de graphes. 8. Algorithmique du texte (Bérard,Chateau) Cette UE balaie un éventail de technique de manipulation des mots dans un texte, sous l’angle algorithmique. Après une première partie définissant les principales notions et propriétés d’algorithmique du texte, nous aborderons des algorithmes d’alignement de séquences, de recherche de motifs et d’assemblage de génomes. L’idée est de comprendre les algorithmes qui se cachent derrière les traitements de texte, avec pour domaines d’application possibles la linguistique, la biologie, la bioinformatique. Les algorithmes vus en cours sont implémentés 18 lors des TPs et un projet en groupe permet aux étudiants d’approfondir un des algorithmes classiques. 9. Connaissance de l’entreprise R et D : Création/Innovation/Propriété Intellectuelle -2,5 ECTS Spécifique CMI • Création Entreprise: les différents types de structures, les démarches (juridique, scientifique), business plan, les incubateurs/ accompagnements, place de la R&D, ... • Innovation : laboratoires de recherche/ .. • Propriété Intellectuelle : Généralités, démarches pour déposer un brevet . Validation de l’expérience professionnelle sur le PEC. 19 2 Master CMI Informatique AIGLE Objectifs et débouchés de la formation Cette formation vise àă former des cadres en informatique dans le domaine du développement logiciel ce qui cible principalement les métiers suivants’ă: • Architecte logiciel • Chef de projet logiciel • Architecte des systèmes d’informations Par ailleurs, la formation, adossée au LIRMM (Laboratoire d’Informatique, de Micro-électronique et de Robotique de Montpellier), permet également une poursuite d’étude en doctorat dans l’optique de devenir enseignant-chercheur ou chercheur, dans l’enseignement supérieur et la recherche, ou dans la R&D d’entreprise. Structure envisagée : Semestre 1 • Anglais. Equipe pédagogique : le SCEL (contact : Anne Heaps). • 3 UEs obligatoires coeur de parcours: – Bases de données avancées. Equipe pédagogique : Anne-Muriel Chifolleau. – Compilation et interprétation. Equipe pédagogique : Roland Ducournau, Mathieu Lafourcade. – Ingénierie Logicielle. Equipe pédagogique : Christophe Dony et Clémentine Nebut. • 2 UEs parmi : – Technologies du web : présentation de données. Equipe pédagogique : Pierre Pompidor. – Réseau. Equipe pédagogique : Hinde Bouziane. – ou 1 UE d’ouverture parmi la liste d’UEs suivante : ∗ ∗ ∗ ∗ ∗ Algorithmique du texte Complexité/Algorithmique Intelligence Artificielle Interaction Homme Machine Programmation Orientée Agents Semestre 2 • Projet annuel CMI -10 ECTS• 3 parmi 4 : – Architectures n-tiers. Equipe pédagogique : Clémentine Nebut, Djamel Seriai. – Conduite de projets. Equipe pédagogique : Eric Bourreau, Clémentine Nebut. 20 – Développement logiciel pour mobiles. Equipe pédagogique : Abdelhak-Djamel Seriai. – Spécifications formelles, vérification, validation. Equipe pédagogique : Clémentine Nebut, Marianne Huchard, intervenants extérieurs. • 2 UE d’ouverture parmi une liste d’UEs parmi la liste d’UEs suivante : – – – – – – – – – 2.1 une UE coeur AIGLE Administration de bases de données Algorithmique d’exploration et de mouvement Algorithmique distribuée Extraction de Connaissances dans les Données Graphes et structures Ingénierie des connaissances Technologies de la langue Web sémantique et social Semestre 3 • 5 parmi 8 : – Composants et réutilisation. Equipe pédagogique : Christophe Dony, Chouki Tibermacine. – Développement logiciel pour l’embarqué. Equipe pédagogique : Abdelhak-Djamel Seriai. – E-applications. Equipe pédagogique : Anna-Sophie Fiston. – Evolution et restructuration. Equipe pédagogique : Djamel Seriai, Marianne Huchard, Chouki Tibermacine. – Ingénierie des modèles. Equipe pédagogique : Clémentine Nebut, Marianne Huchard. – Métaprogrammation et réflexivité. Equipe pédagogique : Roland Ducournau, Christophe Dony. – Modélisations formelles pour le génie logiciel. Equipe pédagogique : Marianne Huchard, Thomas Lambolais, Clémentine Nebut. – Spécification et implémentation des langages àă objets et àă composants. Equipe pédagogique : Christophe Dony, Roland Ducournau, Djamel Seriai, Chouki Tibermacine. • 1 UE d’ouverture parmi une liste d’UEs parmi la liste d’UEs suivante : – – – – – – – – une UE coeur AIGLE Epistémologie Extraction de Connaissances Avancées Gestion des connaissances pour l’aide àă la décision Jeux sérieux Nouvelles approches pour la persistance des données Partage de données àă grande échelle Son et Musique 21 2.2 Semestre 4 • Vie d entreprise (Transversale) • Projet Annuel CMI (Transversale) • Stage Pro ou Recherche (Transversale) 2.3 2.3.1 Contenu des UEs proposées par AIGLE Semestre 1 Compilation et interprétation. Cette UE étudie de façon pratique les divers procédés qui peuvent être appliqués àă un programme informatique pour le rendre exécutable sur une machine. Seront particulièrement étudiés : la compilation (transformation d’un langage de haut-niveau dans un langage de bas niveau), l’interprétation (exécution dynamique d’un programme) et les machines virtuelles. Les étudiants réaliseront en TP et projet la construction progressive d’un compilateur ou interprète complet du langage Scheme ou Lisp. Ingénierie Logicielle. Ce module étudie d’une part les schémas de réutilisation par spécialisation, par composition et par fonctions d’ordre supérieur en programmation par objet. Sont abordées également les notions de framework, et de schéma de conception (étude des principaux schémas). Ce module aborde d’autre part la conception complète d’un logiciel, des spécifications (avec plusieurs vues) au test, en passant par la cristallisation de l’architecture par applications de patrons de conception. Ce module introduit de plus les contrats en programmation. Bases de données avancées-Commun DECOL L’objectif du module est d’aborder les différents modèles existant en BD, autre que le modèle relationnel (déjà vu en Licence), notamment les modèles objet, objet-relationnel et multidimensionnel, ainsi que les notions de base des BD distribuées. Programme: - Extensions du modèle relationnel: Modèle objet et Modèle relationnel-objet (conception relationnel-objet, types d’objets, tables d’objets, vues objets, requêtes de création et de manipulation) - Entrepôts de données et bases de données multidimensionnelles : architectures des entrepôts de données, modèles conceptuels, logiques et physiques des données, construction des cubes de données, OLAP. - Bases de données distribuées : principes des BD réparties, intégration de schémas (local-as-view, global-as-view), fragmentation et allocation de données (horizontale, verticale et hybride). Prérequis : Modèle relationnel (niv. L) Fourni les bases pour : ECD, Nouvelle approche pour la persistance des données. Technologies du web : présentation de données . Ce module aborde le tiers présentation sous différents angles : • XML (schémas...) et transformations XSL (pré-requis du module Web sémantique et social) ; • fonctionnalités/librairies avancées de HTML5 (stockage de données sur le client, web sockets ...) ; 22 • médiatisation de données avec HTML5 (2D et 3D) (en aval d’importat. de fichiers XML/JSON). (cette dernière partie se fera en coordination avec l’enseignement dispensé en IHM). 2.3.2 Semestre 2 Architectures n-tiers. Les applications actuelles deviennent de plus en plus complexes, et intégrent souvent plusieurs parties communicantes. Les architectures n-tiers ont pour but de gérer ce type d’application (communication et échange de données entre les systèmes, persistance et partage des données, ...). Ce module donne les principes des architectures n-tiers, et différentes technologies sous-jacentes, en Java et en .NET : • objets distribués et intergiciels àă objets (RMI, .NET remoting, Corba) • services web (SOAP, WSDL) Conduite de projets. Ce module aborde différents enjeux et techniques de gestion de projet. Ce module aborde également la vision qualité appliquée au monde logiciel et insiste sur la diversité de la fonction de tests, et sur la gestion des exigences. Une introduction de CMMI est donnée. Les méthodes agiles sont présentées. Développement logiciel pour mobile. L’objectif de ce cours est de présenter les bases permettant de comprendre et de maitriser le développement logiciel sur des plateformes mobiles (téléphone, tablette, etc.) de manière générale, et ceux liés aux systèmes Android en particulier. Parmi les aspects abordés : Les propriétés et catégories des systèmes embarqués, principes et architectures des OS mobiles, les grands principes des langages de programmation pour mobile, l’architecture et les principaux composants des applications mobiles, les modèles de structuration des interfaces utilisateurs sur mobiles, la gestion des événements, la gestion des ressources embarquées, la gestion des processus et du multi-tàćches, la gestion de la connectivité, la gestion des capteurs, la gestion de la persistances des données sur mobile, etc. En plus du cours magistral et des travaux pratiques, et dans la cadre d’un mini-projet par équipe, il est demandé aux étudiants de développer une application mobile permettant de répondre àă un besoin réel. Spécifications formelles, vérification, validation. L’objectif de ce module est de fournir des bases théoriques pour le génie logiciel : spécifications formelles, techniques de vérification, fondements du test de logiciels. 2.3.3 Semestre 3 e-applications Ce module aborde les aspects liés au e-commerce et e-business. Sont abordés notamment : • Architecture d’un site marchand • Paiement électronique • Conception d’un site vendeur • Marketing électronique • Intelligence économique et veille 23 • Conception d’applications vocales • Intégration de contenu (mashup) Composants et réutilisation Compétences : Comprendre et mettre en ÅŞuvre les principes de réutilisation et d’assemblage de composants. Connaissances : • Frameworks , Schémas de Conception, Aspects • Composants assemblables (Java Beans) • Composants Distribués EJB (Architecture J2EE) ’ĂŞ Grid Services • Intégration rapide de Composants. Développement Logiciel pour l’embarqué. Ce cours constitue une suite du cours "Développement Logiciel pour Mobile" (du Master 1). C’est un cours pro/recherche divisé en deux parties. La première partie présente quelques problématiques recherche liées au développement de logiciels sur mobiles telles que les systèmes sensibles au contexte et le besoin de l’adaptation dynamique, la programmation multi-plateformes pour mobiles et les solutions proposées telles que la programmation àă base de scripts, IDM/DSL, ligne de produits, etc. La seconde partie est constituée d’un projet. Evolution et restructuration. Cette UE aborde les aspects techniques et gestionnaires essentiels de la maintenance et de l’évolution des logiciels. Une vue d’ensemble sera présentée des principes, des techniques, des outils et des meilleures pratiques pour l’évolution de logiciel. A titre d’exemples seront abordés les systèmes patrimoniaux et leur migration, la rétro-ingénierie et la compréhension des programmes, la réingénierie des logiciels, l’évolution transformationnelle, la refactorisation et la restructuration, la propagation des changements et l’analyse des impacts, etc. Ingénierie des modèles. L’Ingénierie dirigée par les Modèles (IDM) est une approche de développement logiciel qui consiste àă mettre les modèles et leurs métamodèles au centre du processus. Dans ce module, nous montrons les enjeux liés àă l’Ingénierie des modèles (capitalisation du métier, indépendance vis àă vis des technologies, définition de transformations de modèles). Nous positionnons l’IDM par rapport àă l’initiative MDA (Model Driven Architecture) de l’OMG. Ces concepts sont mis en oeuvre au travers de l’étude du métamodèle UML, de l’utilisation du langage de contraintes OCL pour la spécification de métamodèles, et de l’implémentation de transformations de modèles avec des langages spécifiques. Les compétences acquises lors de ce modules sont : • maàőtrise des différents niveaux de modélisation et métamodélisation, • capacité àă comprendre un métamodèle existant et en concevoir un nouveau, • capacité àă développer des transformations de modèles. Métaprogrammation et réflexivité. Le module donne les bases de la méta-modélisation objet qui est àă la base d’UML et de l’Ingénierie Dirigée par les Modèles. Application aux classes et propriétés pour l’analyse de l’héritage multiple. Introduction aux méta-classes et àă la méta-programmation dans différent contextes : Smalltalk, CLOS, Python, Java (OpenJava, Javassist), C++ (OpenC++), Scala. 24 Modélisations formelles pour le génie logiciel. Une partie de ce module s’intéresse aux spécifications des systèmes réactifs. Les systèmes logiciels ou àă composante logicielle intègrent des aspects comportementaux. Ce sont souvent des systèmes réactifs (en interaction constante avec leur environnement, àă une vitesse imposée par l’environnement) et parallèles. Ils doivent accepter certaines opérations dans certaines circonstances (vivacité), mais, pour des raisons de sûreté, en refuser àă d’autres moments. Ce module s’intéresse àă la modélisation de tels systèmes, en phases de spécification puis de conception. Il s’intéresse également àă la vérification des modèles obtenus. La seconde partie de ce module variera en fonction des intervenants extérieurs et abordera des thèmes comme la vérification de l’assemblage de composants, l’usage de l’Analyse Formelle de Concepts en génie logiciel, etc (àă définir plus précisément). Spécification et implémentation des langages àă objets et àă composants Ce module se compose de deux parties, l’une concerne les objets, et l’autre les composants.La partie Objets de ce module a pour objet de dresser un panorama des techniques utilisées pour implémenter les langages àă objets en typage statique, ainsi que d’étudier certains mécanismes spécifiques — comme l’héritage multiple et les modules — pour en faire des spécifications correctes et en examiner l’implémentation. Le module s’intéresse autant àă des langages classiques (C++, JAVA, EIFFEL) qu’àă des langages de laboratoires comme SCALA développé àă l’EPFL ou PRM développé au LIRMM. 2.3.4 Semestre 4 • Projet annuel CMI (5 ECTS), • Stage de recherche (25 ECTS) et • vie professionnelle (5 ECTS). 25 3 Master CMI Informatique DECOL Objectifs et débouchés de la formation Formation Professionnelle et Recherche orientée "Donnée, Information, Connaissance" : de la gestion (organisation, stockage, accès) de données (textuelles, semi-structurées, structurées) en grande quantité à l’aide à la décision. Nous visons des données et modèles de données symboliques (pas numériques). On souhaite de plus prendre en compte la problématique de la distribution (environnements distribués). Mots clés : Semantics, Big Data, Web Métiers professionnel visé : - aspects transactionnels : - architecte de BD - architecte de SI - aspects décisionnel : - Data Scientist - Data Engineer - cf. aussi le spécialiste des données, l’architecte des médias sociaux, l’architecte cloud (http://www.lemondeinformatique.fr/actualites/lire-les-6-metiersinformatiques-les-plus-en-vue-1ere-partie-47249.html) Adossement Recherche (et poursuite en thèse) : - LIRMM : Graphik, Tatoo, Texte, Zenith ESPACE-DEV (IRD) : SIC (Système d Information et de connaissances) - IATE (INRA) : Ingénierie des connaissances - TETIS (IRSTEA) : SISO (Système d’information spatialisée : modélisation, extraction et diffusion des données et connaissances) Structure envisagée : • Semestre 1 : – 5 UE obligatoires : ∗ ∗ ∗ ∗ ∗ Bases de données avancée (éventuellement en pp SIBD du S1 IPS) Intelligence Artificielle Technologies du web : présentation des données (AIGLE) Anglais (Transversale) Ingénierie Logicielle (AIGLE) – 1 UE complémentaire à choisir parmi (si compatibilité d edt) : ∗ ∗ ∗ ∗ ∗ Réseau et Communication (AIGLE) IHM (IMAGINA) Complexité/Algorithmique (MIT) Méthodes et algorithmes probabilistes (MIT) Programmation Orientée Agents (IMAGINA) • Semestre 2: – Projet Annuel CMI – 4 UE à choisir parmi 5 : ∗ ∗ ∗ ∗ ∗ Administration bases de données Web sémantique et social Ingénierie des connaissances Extraction de Connaissances dans les Données Technologies de la langue – Projet annuel CMI 26 – 1 UE Informatique à choisir parmi (si compatibilité edt): ∗ ∗ ∗ ∗ ∗ ∗ 5ème UE coeur DECOL Archi n-tiers (AIGLE) Logiciel Nomade 1 (AIGLE) Conduite de projets (AIGLE) Bases de données spatiales (Géomatique) Programmation 3D (IMAGINA) • Semestre 3 : – 4 UE à choisir parmi 6 : ∗ ∗ ∗ ∗ ∗ ∗ Nouvelles approches pour la persistance des données (prérequis BDA) Partage de données à grande échelle (prérequis BDA) Théorie des bases de connaissances (prérequis Ingénierie des connaissances) Gestion des connaissances pour l’aide à la décision (prérequis IA) Extraction de Connaissances Avancées (prérequis ECD) Intelligence Artificielle pour le Langage Naturel – 2 UE à choisir parmi (si compatibilité edt): ∗ ∗ ∗ ∗ ∗ ∗ 2 autres UE coeur DECOL Epistémologie (Transversale) Technologies avancées du Web : RIA (AIGLE) Composant et Réutilisation (AIGLE) Logiciel Nomade 2 (AIGLE) Son et Musique (IMAGINA) • Semestre 4 : – Vie d entreprise (Transversale) – Projet Annuel CMI (Transversale) – Stage Pro ou Recherche (Transversale) 3.1 Offre d ’UE DECOL 3.1.1 Semestre 1 BDA : Bases de Données Avancées, A.M. Chifolleau L’objectif du module est d’aborder les différents modèles existant en BD, autre que le modèle relationnel (déjà vu en Licence), notamment les modèles objet, objet-relationnel et multidimensionnel, ainsi que les notions de base des BD distribuées. Programme: - Extensions du modèle relationnel: Modèle objet et Modèle relationnel-objet (conception relationnel-objet, types d’objets, tables d’objets, vues objets, requêtes de création et de manipulation) - Entrepôts de données et bases de données multidimensionnelles : architectures des entrepôts de données, modèles conceptuels, logiques et physiques des données, construction des cubes de données, OLAP. - Bases de données distribuées : principes des BD réparties, intégration de schémas (local-as-view, global-as-view), 27 fragmentation et allocation de données (horizontale, verticale et hybride). Prérequis : Modèle relationnel (niv. L) Fourni les bases pour : ECD, Nouvelle approche pour la persistance des données. IA : Intelligence Artificielle, M.L. Mugnier Ce module introduit des notions fondamentales d’intelligence artificielle, qui serviront de socle pour l’acquisition de techniques plus poussées dans des modules spécialisés (en représentation de connaissances, ingénierie des connaissances, théorie des bases de données/connaissances, algorithmique de l’intelligence artificielle, etc.). Sont en particulier traités les sujets suivants : - notion d’espace de recherche, parcours d’un espace de recherche, algorithme de backtrack, application de cet algorithme à différents problèmes : calcul des solutions d’un réseau de contraintes, test de la satisfiabilité d’une formule propositionnelle (problème SAT), calcul des solutions à une requête conjonctive dans une base de faits, application d’une règle du premier ordre, ... - systèmes à base de règles : règles en logique des propositions et en logique du premier ordre, mécanismes de chaînage avant et chaînage arrière, quelques techniques d’optimisation de ces mécanismes, modélisation de connaissances avec des règles. Ces différents aspects sont mis en pratique en séances de TP. Prérequis : bases de la logique des propositions et de la logique du premier ordre) 3.1.2 Semestre 2 Administration bases de données - I. Mougenot Le module est centré sur l’apprentissage du métier d’administrateur de base de données. L’importance est donnée à la performance des accès et à la sécurité des données dans des environnements transactionnels concurents. Les SGBD relationnels sont abordés en priorité. Différentes notions seront enseignées : - sécurité : déclencheurs (programmation évènementielle) et surcouche procédurale (PL/SQL Oracle), quelques pratiques malveillantes : sql injection, rootkit - optimisation : organisation physique des fichiers, index et mécanismes facilitateurs d’accès, optimisation des requêtes : plan de requête, optimiseur de coût - mécanismes transactionnels : propriétés d’une transaction, mécanismes de verrouillage et de journalisation - supervision, contrôle : vues du méta-schéma : statiques et dynamiques, définition de fonctions de contrôle et de supervision à partir des métadonnées - gestion des espaces de stockage, archivage Exercices pratiques SE Linux, Windows et SGBD Oracle, Postgres, Mysql Prérequis : Modèle relationnel (niv. L) Web sémantique, K. Todorov Ce module vise à présenter les bases de la vision du Web Sémantique en extension du Web classique ainsi que les technologies qui permettent la mise en uvre de cette vision. En premier temps, le rôle de la sémantique pour une compréhension et utilisation plus intelligentes des ressources Web sera introduit. Les concepts clés abordés seront ceux de la structuration de données, d’ontologies et de leurs applications avec un accent sur les langages qui permettent de spécifier et représenter la connaissance (RDFS, OWL), ainsi que des éditeurs d’ontologies (e.g., Protégé). Par la suite, des techniques pour la mise en correspondance (alignement) d’ontologies hétérogènes seront présentées abordant les notions d’hétérogénéité et d’interopérabilité sémantiques. Sur ces bases, le cours présentera la notion du Web de Données : l’ensemble de pratiques et principes pour la publication et l’interconnexion de données, ainsi que l interrogation de ces données. Les technologies sous-jacentes 28 (RDF, SPARQL) seront introduites. Prérequis : Galaxie XML, IA Fourni les bases pour : nouvelle approches pour la persistance des données Ingénierie des connaissances, ML. Mugnier et M. Leclère Ontologie, FCA, Logique description, Annotation sémantique, Graphes conceptuel Prérequis : IA Extraction de Connaissances dans les Données, P. Poncelet et K. Todorov Ce module vise à présenter les concepts, algorithmes et outils pour l’Extraction de Connaissances dans les Données (ECD). Fouille de Données et Fouille de Textes : Méthodes de fouille de données : Naïve Bayes, K plus proches voisins, K moyennes, arbres de décision, règles d’association, motifs séquentiels. Différentes étapes d’un processus de fouille de textes : étiquetage grammatical, extraction de la terminologie, classification conceptuelle. Classification, recherche d’information, extraction d’information et Langage Naturel Analyse sémantique Sémantique lexicale Approche par vecteurs conceptuels Approches statistiques Requêtes et calcul de vecteurs (Salton, LSA) Gestion des contraintes liées au langage naturel (polysémie, anaphores, etc.) Application des diffrentes approches d’extraction de connaissances dans le cadre des challenges nationaux et internationaux Une partie du module sera destinée à manipuler des outils et algorithmes d’ECD à travers de séances de travaux pratiques. Prérequis : BDA Fourni les bases pour : ECA Technologies de la langue, M. Lafourcade Le langage naturel est sans conteste le vecteur de communication le plus puissant et le plus sophistiqué dont nous disposons. Lorsqu’il est véhiculé par un support numérique, son exploitation requiert la mise en uvre de stratégies spécifiques, tant du point de vue de la représentation des connaissances, que d’un point de vue algorithmique. Ce module concerne l’étude de ces stratégies, dites de Traitement Automatique du Langage Naturel (TAL, ou TALN). Le but ultime du TAL, qui est à l’origine même de l’Intelligence Artificielle, est l’émulation des compétences et performances langagières humaines, à savoir la compréhension et la génération de langage naturel, que ce soit à l’écrit ou à l’oral. L’objet de ce module est donc de présenter un panel, le plus représentatif possible, des technologies mises en uvre de nos jours en la matière. Le cours s’organise autour des grands chapitres suivants : - buts et objectifs du TAL ; introduction à la notion de langage - compréhension du langage naturel (morphologie, syntaxe, sémantique) - génération de texte (planification de texte, réalisation syntaxique) - ingénierie linguistique, outils et applications (architecture, robustesse, traduction automatique, résumé de texte, interfaces en langage naturel) - ressources linguistiques et gestion de masses de données linguistiques (Big Data, crowdsourcing, jeux sérieux). 3.1.3 Semestre 3 Nouvelles approches pour la persistance des données, I. Mougenot Les enseignements du module aborderont différents principes actuels et technologies associées permettant la gestion et le traitement de gros volumes de données possiblement complexes et/ou distribuées. Les SGBDs relationnels proposent des mécanismes notamment transactionnels et de journalisation qui garantissent la fiabilité et la sécurité des données mais qui pénalisent leurs performances dans des contextes dans lesquels la demande est plutôt sur l’accès quasi instantané à de gros volumes de données. Dans ce sens, les systèmes NOSQL apportent de nouvelles façons 29 d’envisager la persistance des données. Un des apports porte en particulier sur le partitionnement des données. De même, le modèle relationnel est un modèle très contraignant qui oblige à définir un schéma à priori qu’il est difficile ensuite de faire évoluer. L’idée est donc également d’introduire de la flexibilité dans les modèles en s’appuyant sur des modèles orientés agrégats de données et graphe. Les mécanismes de construction de modèles à posteriori que l’on peut retrouver notamment dans les systèmes de gestion de triplets seront étudiés. Les approches New SQL qui ne remettent pas en cause le choix du relationnel et du SQL en arguant de leur efficacité seront également explorées. L’idée ici est de s’affranchir autant que possible des effets des mécanismes de verrouillage qui alourdissent la gestion des données dans des environnements multi-utilisateurs. - SGBDs NO (Not Only) SQL offrant des alternatives aux SGBDR : système clé/valeur, à accès par colonne ex. HBase, document ex. MongoDb ou graphe ex. Neo4J - SGBDs NewSQL : ex. VoltDb - TripleStore : ex. SDB, TDB et Sparql EndPoint : ex. Parliament Prérequis : BDA, Web sémantique et social, TALN1. Gestion de données distribuées à grande échelle, E. Pacitti, P. Valduriez L’objectif de ce module est de comprendre les principes et les fondements des systèmes de gestion de données distribués et parallèles à grande échelle, notamment pour le big data. . Big data: définition, applications scientifiques, web 2.0, etc., problèmes. . Gestion de données parallèles: partitionnement des données, traitement de requêtes parallèles, équilibrage de charge, réplication et failover. . Gestion de données P2P: réseaux non structurés, réseaux structurés, réseaux hybrides, requêtes, réplication, recommandation. . Recherche d’informations distribuées par contenu . Gestion de données GRID: middlewares, l’architecture OGSA, le service de gestion de données OGSA DAI, workflows scientifiques . Gestion de données dans le cloud: gestion de fichiers distribuées (HDFS), le framework MapReduce, les systèmes NoSQL parallèles. . Recherche d’informations parallèle par contenu: Hachage sensible à la localité, Construction de graphes de similarité avec MapReduce. TP: P2P, GRID, requêtes parallèles / Mapreduce, recherche d’informations /MapReduce. Théorie des bases de connaissances, ML Mugnier et JF Baget Ce module est consacré aux formalismes permettant de représenter une base de connaissances et d’effectuer des raisonnements sur ces connaissances, en se focalisant sur le problème d’interrogation de la base. Il s’intéresse aux aspects théoriques essentiellement. Il n’aborde pas les problèmes de modélisation, c’est-à-dire le passage d’un problème concret à une formalisation de ce problème. Le principal problème étudié est l interrogation de bases de connaissances en présence d ontologie (OBDA) : Présentation du problème (adéquation/complétude, OWA/CWA ) complexité/expressivité de différents fragments de FOL (Datalog, DL ) Etude de l extension de ces fragments à diverses sémantiques pour l interrogation en présence d incohérences (ASP ) Prérequis : Bonnes bases en logique des prédicats ou IA. Gestion des connaissances pour l’aide à la décision, S. Kaci L objectif de cette UE est d acquérir des compétences pour la prise de décision en présence d informations contradictoires et/ou avec priorités. La prise de décision repose souvent sur des informations imparfaites. L imperfection peut être due à la présence d incohérences et/ou d incertitude/priorité associée aux informations. Le problème de décision se décline alors en (1) un problème de gestion des incohérences où seuls les mondes préférés sont calculés ou (2) un problème d ordonnancement où les mondes sont ordonnés selon leur degré de plausibilité/satisfaction. Ce problème a été largement étudié en intelligence artificielle. Dans la première partie de cette UE, nous présentons et com- 30 parons plusieurs méthodes de gestion des incohérences. Dans la deuxième partie, nous présentons et comparons plusieurs formalismes (logiques non-classiques, graphes) qui permettent d ordonner (de manière complète ou partielle) l ensemble des mondes. Dans la troisième partie de cette UE, nous approfondissons le problème de gestion des incohérences en étudiant la révision des croyances et la fusion d informations. L incohérence dans la révision des croyances est due à la considération d une nouvelle croyance qui contredit, souvent, les anciennes croyances. Il s agit donc de déterminer un ensemble minimal d anciennes croyances à supprimer pour rétablir la cohérence. Dans le cas de la fusion d informations, l incohérence peut être due à la multiplicité des sources fournissant les informations. Il s agit alors de définir des opérateurs d agrégation pour construire un point de vue global de l ensemble des sources. Nous présentons plusieurs méthodes de gestion des incohérences et de fusion d informations. Dans la dernière partie de cette UE, nous présentons des applications des méthodes théoriques vues précédemment. Prérequis : logique propositionnelle (niv. Licence). Extraction de Connaissances Avancées : M. Teisseire et J. Azé L’extraction de connaissances est un processus complexe qui permet à partir d’un grand ensemble de données d’extraire des connaissances qui s’avèrent utiles pour le décideur. L’objectif de ce cours est de dresser un panorama des nouvelles approches de fouilles de données qui s’intéressent également à la complexité des données. En effet, aujourd’hui de nouvelles données sont disponibles et possèdent une complexité inhérente (données semi structurées, multi-dimensionnelles, disponibles à différents niveaux de granularité, incomplètes, disponibles de manière continue, de plus en plus volumineuses,réparties..) et il est indispensable de proposer de nouvelles approches adaptées. Ces dernières seront présentées lors du cours. En outre, l’extraction de connaissances est un élément indispensable pour faire de l’aide à la décision. Dans ce module, nous nous focaliserons sur les différences entre les systèmes transactionnels et les systèmes décisionnels, et nous présenterons les méthodes associées à ces derniers pour mettre en valeur les connaissances cachées utiles à la décision. Les différentes présentations seront illustrées sur des jeux de données réelles et notamment sur des données médicales et environnementales. Prérequis : ECD. Intelligence Artificielle pour le langage naturel, J.P. Prost Le langage naturel est sans conteste le vecteur de communication le plus puissant et le plus sophistiqué dont nous disposons. Lorsqu’il est véhiculé par un support numérique, son exploitation requiert la mise en uvre de stratégies spécifiques, tant du point de vue de la représentation des connaissances, que d’un point de vue algorithmique. Ce module concerne l’étude de ces stratégies, dites de Traitement Automatique du Langage Naturel (TAL, ou TALN). Le but ultime du TAL, qui est à l’origine même de l’Intelligence Artificielle, est l’émulation des compétences et performances langagières humaines, à savoir la compréhension et la génération de langage naturel, que ce soit à l’écrit ou à l’oral. L’objet de ce module est donc d’introduire certaines des thématiques de recherche actuelles pour le TAL. Il s’intéresse notamment à des questions relatives au raisonnement, à l’apprentissage, à la gestion de la complexité algorithmique à l’aide de méta-heuristiques, etc. Il aborde également des sujets d’actualité, tels que recherche d’information textuelle, analyse de sentiments et d’opinions, etc. Le cours s’organise autour des grands chapitres suivants : - buts et objectifs de la recherche en TAL - méthodologies et évaluation en linguistique computationnelle - analyse de texte et systèmes multi-agents - acquisition et inférence dans les grands réseaux lexico-sémantiques 31 3.1.4 Semestre 4 • Projet annuel CMI (5 ECTS), • Stage de recherche (25 ECTS) et • vie professionnelle (5 ECTS). 32 4 Master CMI Informatique Géomatique Objectifs et débouchés de la formation Le master " Géomatique ż a pour objectif de former des étudiants à la maîtrise des méthodes et outils (notamment numériques: SIG, CAO, DAO, Webmapping, MNT, Télédétection, Analyse spatiale, etc.) nécessaires à l’élaboration d’un projet territorial qui mobilise les acteurs de l’aménagement et du développement, tant dans le cadre des collectivités territoriales et des politiques publiques que dans le secteur privé (grands groupes à activité territorialisée, bureaux d’études). Les systèmes d’information (S.I.) et l’information géographique (I.G.), par leur capacité à représenter et modéliser le territoire, à intégrer et permettre d’analyser des données de diverses disciplines, prennent une place de plus en plus importante au sein des projets de territoire et servent les acteurs dans le cadre de leur réflexion et de leur action au sein de ces territoires et ce à différents niveaux géographiques. La formation est structurée selon trois axes : - Sens et interprétation de l’information géographique, compréhension des structures et dynamiques spatiales, des demandes des acteurs de l’aménagement, des enjeux territoriaux de l’action publique ; - Conception, mise en oeuvre et exploitation des systèmes d’information mobilisant l’information géographique ; - Applications : usages de l’information géographique dans différents domaines de la gestion et de la gouvernance des territoires. 4.1 Offre d ’UE Géométrique 4.1.1 Semestre 1 Architectures Systèmes et Réseaux- Pompidor Découverte du système d’exploitation Linux (notamment des principales commandes systèmes). Initiation au scripting système via le langage Python : - reporting de commandes (utilisation d’expressions régulières et de structures de données à plusieurs dimensions) - exploration de systèmes de fichiers Développement en projet d’un SIG " artisanal ż à partir de données formatées en XML et médiatisée grâce au langage SVG (Scalable vector graphics) via une interface web Systèmes d ’information et Bases de données Mougenot Introduction aux Systèmes d’Information et aux méthodologies de conception (Merise / Objet) - Introduction aux bases de données : historique et définition ; - Modèles des données : Modèle entité association, Modèle relationnel, Passage du modèle entité-association au modèle relationnel, contraintes d’intégrité, normalisation ; - Modèles des traitements : Opérations algébriques et requêtes en algèbre relationnel, Langage SQL : LDD et LMD, Notion de contrôle de concurrence et de transaction ; - Les TP seront effectués sur le SGBD Oracle. Sémiologie graphique, Cartographie, Théories sur les données géographiquesBord Cet enseignement se partagera en 4 temps parmi les choix à faire pour comprendre et donner à comprendre l’espace des Hommes: la réflexion en amont (connaissances, étude des concepts, problématisation, choix du fond de carte et des données), la construction au centre (analyse de l’information géographique, choix dans la panoplie des cartes, sémiologie graphique) et l’interprétation/communication en aval (relation texte/image, oral/écrit). Sera mis en place également un apprentissage de logiciels de DAO/CAO. Apprendre à " faire ż une carte en tenant compte des moments et choix pertinents pour une réalisation " utile ż. Cet apprentissage combinera les aspects techniques, scientifiques et 33 artistiques. De l ’aménagement à la gestion des territoires : problématiques et méthodes Bord Le cours se propose d’analyser et d’approfondir les relations entre données/information, territoires et acteurs. Il abordera plusieurs questionnements. Qu’est-ce qu’un concept, une problématique? Les concepts fondamentaux de la mention seront étudiés (aménagement/gestion, territoires) ainsi que celui d’information géographique qui abordera la méthodologie. Outre les enseignements théoriques, seront développés des projets d’aménagement avec l’invitation de professionnels du privé et du public. Analyse de données - Enquêtes/Statistiques/SIG- Evrard -Bouhet Cet enseignement consiste à proposer aux étudiants un ensemble de compléments méthodologiques reposant sur 3 thématiques : (1) l’enquête : élaborer une méthodologie d’enquête, construire un questionnaire d’enquête, utilisation de logiciels spécifiques d’enquête (élaboration d’un questionnaire, saisies des réponses, traitement et analyse) ; (2) Analyses Multivariées : donner les moyens de passer de statistiques bivariées aux statistiques multivariées, dans un contexte de profusions d’informations statistiques, donner les outils pour un traitement global des données ; (3) SIG : reprendre les bases et approfondir l’utilisation des principaux logiciels de SIG, de type Mapinfo, ArcGis ou de logiciel libre. 4.1.2 Semestre 2 Analyse spatiale-Bouhet Cette UE est constituée de 4 parties : - Fondements de l’analyse spatiale en géographie et applications en aménagement de l’espace : concepts et théories. - Analyse de réseaux : apports de la théorie des graphes, de la recherche opérationnelle et de la géométrie fractale, propriétés des réseaux (ubiquité, connexité, connectivité, immédiateté, instantanéité), problèmes de cheminements, formes et fonctions de réseaux (invariance d’échelle, arborescence, maillage). - Effets de localisation et accessibilité : distances, potentiels, centralité, hiérarchie, localisations optimales. - Interactions spatiales, échanges et mobilités : modèle gravitaire, simulations multi-agents? Traitement d’images et télédétection (APT)-Labbé-Cherel L’imagerie satellite, et aérienne, constitue une partie intégrante des SIG. La présence de la Maison de la Télédétection à Montpellier et la mise en place du projet Equipex GEOSUD (infrastructure nationale d’imagerie satellitaire pour la recherche sur l’environnement et les territoires) confirment cette importance grandissante. Le module présente dans un premier temps les principes fondamentaux du traitement d’images (rayonnement, résolutions signatures, ?), l’offre en imagerie satellite et les prétraitement requis. Les exposés et les TD permettent ensuite d’appréhender les principaux traitements utilisés (composition colorées, classifications, filtres, MNT, ..). Enfin, des exemples illustrent l’intérêt de la télédétection dans différents domaines (environnement, agronomie, foresterie?). Base de données spatiales-Bringay Introduction à l’information géographique (spatiale, temporelle et thématique), aux systèmes de référence spatiale (géodésiques, ellipsoïde?), aux modèles de représentation des informations géographiques (e.g. OGC, ISO). Notion d’analyse spatiale : opérateurs, thématiques (arithmétiques et logiques), spatiaux (métriques, topologiques?). Bases de données spatiales : création de bases 34 avec des fonctionnalités géographiques, requêtes avec opérateurs spatiaux, optimisation de l’analyse géographique. Visualisation avancée d’informations spatialisées. Panorama des logiciels (outils SIG et SGBD spatiaux) et TP réalisés avec Postgis, Oracle, MapInfo, ArcView Introduction aux infrastructures de données spatiales et aux architectures associées. 4.1.3 Semestre 3 Ingénierie des projets d’aménagement-Pioch Le but de l’UE est de dresser le bilan des politiques d’aménagement-gestion des territoires, les expériences menées dans différents pays - développés comme en développement. Trois moments aménagement du territoire, ménagement de l’espace, management des territoires seront analysés. Les pratiques d’intervention en matière de planification spatiale ont généralement été, d’abord, à l’initiative des Etats et se sont traduites par des aménagements afin de conforter une dynamique économique. Une autre phase s’est juxtaposée-surimposée à celle-ci avec une préoccupation plus grande de ménager l’espace, de prendre en compte sa durabilité et sa vulnérabilité. L’intervention de structures supra nationales (Union européenne, différents marchés subcontinentaux etc.) et internationales (Banque Mondiale, PNUD etc.) vient encore complexifier la donne. La géométrique dans la recherche et l’entreprise -Bord Il s’agira ici, avec l’intervention de responsables d’entreprises et de chercheurs notamment, de sensibiliser et de mettre en contact les étudiants avec le monde entrepreneurial et de la recherche. Outre des responsables privés et publics d’entreprises, des chercheurs, interviendront également d’anciens étudiants du master en poste aujourd’hui ou en thèse afin de relater leur expérience. Analyse spatialeavancée -Bouhet Les apports théoriques de la géostatistique, de la morphologie mathématique, de la logique floue ou des graphes deviennent de plus en plus disponibles dans les logiciels Systèmes d’Information Géographique (SIG) Comment tirer partie de ces nouvelles techniques de traitements dans des problématiques d’aménagement de l’espace ? Objectif : S’initier à la pratique d’algorithmes avancés d’analyse spatiale dans les SIG Acteurs, Territoires, gouvernance-Chéry Cet enseignement aborde quatre aspects du système territorial : - Territoire, système territorial et méthode d’analyse - Gouvernance des territoires et logiques d’acteurs - Dimension du droit dans les projets de territoire - Indicateurs spatialisés et paysage A partir d’introductions conceptuelles et méthodologiques, et en interaction avec l’UE " : Imagerie spatiale et gestion des ressources renouvelables ż, les étudiants effectuent un diagnostic territorial ciblé sur une problématique particulière, à partir de cas concrets en France ou sur des territoires "Sud". Algorithmique, programmation par objets -Huchard Ce cours présente les bases de l’algorithmique impérative et introduit successivement les notions de types, variables, expressions, structures de contrôle, procédures et fonctions, récursivité. Il s’accompagne d’une initiation à la notion de complexité algorithmique. En parallèle, les fondements de la programmation par objets sont étudiés, notamment les notions de classe, d’attribut, de méthode, d’instanciation, d’héritage et de liaison dynamique. Les langages support de l’apprentissage peuvent être Java ou Python. Les exemples seront déclinés selon les domaines scientifiques visés 35 (géographie, aménagement, environnement?). Imagerie spatiale et gestion des ressources renouvelables-Bouhet Ce module vise à renforcer ou mettre à niveau les connaissances des étudiants en matière de traitement d’images d’observation de la Terre. Cet enseignement se structure autour de trois axes : un renforcement des connaissances et compétences en télédétection et traitement d’images ; - des applications thématiques de la télédétection ; - l’utilisation de logiciels de télédétection (libres et commerciaux) avec une mise en perspective des fonctionnalités offertes. L’équipe d’intervenants est constituée principalement d’ingénieurs et chercheur de l’UMR Espace-Dev à la Maison de la Télédétection. Information, cartographie et web -Desconnets Après des apports théoriques sur les architectures web sur lesquelles sont déployées les applications cartographiques sur le web, des connaissances sont apportées concernant les initiatives de normalisation de services web. Ces connaissances théoriques sont complétées par un large panorama des solutions (logiciels, librairies) existantes dans le monde du logiciel libre. Une grande part des enseignements est orientée vers la mise en ?uvre de solutions open source. La réalisation d’une application cartographique est demandée aux étudiants pour valider cette UE. Géomatique appliquée aux transports-Chapelon Cette UE porte sur la collecte, le traitement et la représentation des données spatialisées dans le cadre des politiques de transport. Elle accorde une large place aux expertises de terrain, en partenariat avec des collectivités territoriales, aux études de cas, en lien avec des projets d’infrastructures, et aux travaux sur machine à partir d’applications SIG (ArcGIS et Mapinfo). SIG en collectivités territoriales Chéry, Amara Il s’agira ici, d’approfondir la connaissance des collectivités territoriales qui demeurent un des débouchés majeurs de la géomatique en France. Une attention particulière sera portée sur le concours de la fonction publique territoriale avec notamment la mise en pratique de la note de synthèse et de l’oral. Enfin, l’élaboration de recommandations techniques sur des projets de SIG en collectivité territoriale sera développée sous la forme de travail en groupe. 4.1.4 Semestre 4 • Projet annuel CMI (5 ECTS), • Stage de recherche (25 ECTS) et • vie professionnelle (5 ECTS). 36 5 Master CMI Informatique IMAGINA Objectifs et débouchés de la formation Cette spécialité est essentiellement destinée aux industries et à la recherche dans les domaines de l’image, des jeux vidéo, et des simulateurs. Il s’agit donc d’un recentrage vers des métiers relativement précis, associé à une étude de marché dans notre région. Les objectifs de cette spécialité sont de former des ingénieurs et chercheurs dans les industries de l’image, des jeux vidéo, et simulateurs, susceptibles de maitriser les théories, modèles, algorithmes et architectures informatiques au service de ces industries. Les activités visées par le diplôme sont l’imagerie, la conception 3D, le développement de jeux vidéo, et la réalisation de simulateurs. Métiers professionnel visé : chef de projet imagerie / ingénieur / lead progammer jeux vidéo / ingénieur de recherche dans les simulateurs. Dans des sociétés multimédia spécialisées dans la 3D / sociétés de développement spécialisées dansl’imagerie numérisée / studios de production de jeux vidéo / studios de production spécialisés dans les effets spéciaux / sociétés de développement de simulateurs / sociétés de montage et traitement vidéo (ex : vidéo-surveillance Structure envisagée : 1. Semestre 1 : • Anglais • 3 UES obligatoires parmi 4 de la spécialité IMAGINA – – – – Programmation orienté agents Traitement du signal Intelligence Artificielle Interaction Homme Machine • 2 UE Informatique parmi soit la spécialité IMAGINA, soit parmi : – – – – – Théorie de l’information Ingénierie logicielle Réseaux Algorithmique/Complexité Bases de données avancées. 2. Semestre 2 : • Projet Annuel CMI • 3 UES parmi 4 de la spécialité IMAGINA – – – – Analyse et traitement des images Modélisation et Programmation 3D Algorithmes d’Exploration et de Mouvement Géométrie algorithmique et discrète • 2 UE Informatique parmi soit la spécialité IMAGINA, soit parmi : – Conduite de Projets 37 – Architecure N-tiers – Graphes et STructures – Méthodes approchées 3. Semestre 3: • 5 UES parmi 8 de la spécialité IMAGINA – – – – – – – – Son et Musique Moteurs de Jeux Imagerie Médicale et 3D Vision, Réalités Virtuelles et Augmentée Jeux Sérieus Codage et Compression Multimédia Informatique Graphique Société Virtuelle • Semestre 4 : – Vie d entreprise (Transversale) – Projet Annuel CMI (Transversale) – Stage Pro ou Recherche (Transversale) 5.1 Offre d ’UE IMAGINA 5.1.1 Semestre 1 Traitement du Signal Transmission des signaux Codage de l’information Calcul de capacité Sécurisation del’information Optimisation et compression Signaux continus, signaux discrets, signaux numériques. Représentation fréquentielle des signaux : transformations de Fourier et Laplace. Notion de systèmes linéaires et fonctions de transfert. Représentation numérique des signaux continus (réels). Synthèse des filtres numériques. Corrélation des signaux. Filtrage linéaire et filtrage médian : suppression du bruit. Histogramme et statistique d’un signal. Intelligence ARtificielle Ce module introduit des notions fondamentales d’intelligence artificielle, qui serviront de socle pour l’acquisition de techniques plus poussées dans des modules spécialisés (en représentation de connaissances, ingénierie des connaissances, théorie des bases de données/connaissances, algorithmique de l’intelligence artificielle, etc.). Sont en particulier traités les sujets suivants : - notion d’espace de recherche, parcours d’un espace de recherche, algorithme de backtrack, application de cet algorithme à différents problèmes : calcul des solutions d’un réseau de contraintes, test de la satisfiabilité d’une formule propositionnelle (problème SAT), calcul des solutions à une requête conjonctive dans une base de faits, application d’une règle du premier ordre, ... - systèmes à base de règles : règles en logique des propositions et en logique du premier ordre, mécanismes de chaînage avant et chaînage arrière, quelques techniques d’optimisation de ces mécanismes, modélisation de connaissances avec des règles. 38 Ces différents aspects sont mis en pratique en séance de TP Interaction homme -Machine- Cet UE a un double objectif: d’une part l’UE a pour but la présentation d’un panorama aussi large et représentatif que possible du domaine de l’interaction homme-machine en s’appuyant sur l’étude des réalisations, modèles, concepts et outils de base utiles à l’interaction homme-machine. D’autre part, cette UE vise à former les étudiants à la pratique des concepts étudiés par des études de cas concrets et des exercices de développement. Compétences à acquérir 1) Méthodologies et principes de conception et d’évaluation pour l’IHM : approches ergonomiques, cognitives, participatives; (2) Stratégies de visualisation de l’information : éléments de codage graphique, coloration, composition, placement; (3) Principes, styles et techniques d’interaction et d’animation; (4) Programmation évènementielle. Programmation graphique 2D. Programmations orientée Agents Concepts de base de la programmation par acteurs et agents : asynchronisme, parallélisme, distribution massive - Usage des continuations locales vs gestion des tâches en cours - Architectures classiques d’agents (réactives, BDI, subsomption) Langages de programmation d’agents - Protocoles classiques de coordination et de négociation - Utilisation de rôles et de groupes pour la réalisation d’applications - Gestion de la distribution d’applications multi-agents - Utilisation des techniques multi-agents pour faciliter la programmation d’applications ouvertes, évolutives et distribuées 5.1.2 Semestre 2 Analyse et Traitement d’images Introduction Image : représentations mathématiques Acquisition et formation del’image Le système visuel humain Colorimétrie Traitement sur les histogrammes Filtrage et segmentation des images Reconstruction et restauration Modélisation et Programmation 3D Introduction, rappel sur les vecteurs, projections, transformation ... Courbes Surfaces paramétriques Représentation surfacique Modèles volumiques Maillages Maillages : propriétés et caractéristiques de base Segmentation de maillage Modélisation avancée Simplification et subdivision de maillage Algorithmes d’Exploration et de Mouvement Dans ce module, nous explorons différentes méthodes d’exploration des connaissances dans des représentations différentes des données. Le contenu se décline en trois parties : - Exploration de graphes représentant des données incertaines (arbres de décision, réseaux bayésiens probabilistes) - Modèles et algorithmes pour la résolution pratique des problèmes difficiles (CSP, SAT, méta-heuristiques) - Algorithmes de mouvements d’entités spatiales Géométries algorithmique et discrète Le sujet du cours est l’étude algorithmique et combinatoire d’objet géométrique (principalement du plan). Les chapitres principaux sont : calcul de l’enveloppe convexe d’un ensemble de points, manipulation de polygones, graphes planaires, triangulations, triangulation de Delaunay et diagramme de Voronoï. Ces notions seront appliquées/illustrés sur les problèmes suivants: encodage compact des graphes planaires, localisation dans une carte planaire, reconnaissance de formes (alpha-shape et alpha-complexe), intersections de polygones (sommes de Minkowski), visualisation de scène (algorithme du peintre), arbre euclidien minimum, plus courts chemins dans un polygone... 39 5.1.3 Semestre 3 Son et Musique L’objectif de cette UE est l’acquisition de compétences théoriques et pratiques sur la conception et la réalisation de sons et musiques, ainsi que sur leur intégration dans des projets multimédia, en particulier dans le domaine des jeux. Musique assistée par ordinateur Théorie : bases sur la perception auditive et la musique Pratique : séquenceur multipistes et outils périphériques Design sonore Théorie : algorithmes de synthèse et de traitement sonore, cas d’utilisation des traitements sonores Pratique : programmation bas-niveau de synthèses sonores, transformations sonores usuelles, paramétrage sonore de haut-niveau Intégration Théorie : concepts relatifs à l’intégration Pratique : programmation de bas-niveau, API de gestion de sons paramétrés en haut-niveau, intégration dans un moteur de jeu L’évaluation de l’UE se fait au travers de contrôles continus, de rendus de TP et d’un projet d’intégration sonore dans un jeu. Moteurs de Jeux Introduction et notion de math Rappels pratiques Game Engine Gestion de mémoire et de scène GPU : du rendu au calcul Optimisations hardware Animation IA pour le jeu Imagerie Médicale et 3D Ce module a pour but de : ů Découvrir et approfondir l’ensemble des techniques de traitement des images numériques 3D. ů Appliquer concrètement ces techniques dans des cas pratiques, en particulier dans le domaine médical, mais aussi industriel ou du patrimoine culturel. ů Découvrir le rôle de l’ingénieur et del’informaticien en imagerie 3D. Le module abordera les points suivants : ů Systèmes d’acquisition 3D et modalités d’imagerie 3D ů Visualisation ů Segmentation ů Recalage ů Applications cliniques et industrielles Vision, Réalités Virtuelle et Augmentée - Principes de base de la vision artificielle. - Techniques de reconstruction 3D (stereovision, vision en lumière structurée, vision par silhouette, ...) - Estimation du mouvement apparent, systemes de suivit de mouvement. - Ancrage des objets virtuels dans le monde réel. - Rendu des objets : cohérence géométrique, cohérence photométrique, cohérence spatio-temporelle - Les dispositifs d’affichage et interaction pour la RA Jeux Sérieux Introduction aux serious games : Définitions et typologie des serious games Présentation des enjeux sociétaux et économiques Conception de serious games : Conception de jeux Concilier jeux et objectifs finalisés. Développement des serious games : Méthodologies de développement de jeux Méthodologies de développement de serious game Le joueur au coeur de l’interaction : Cas d?études L’enseignement s’appuiera sur des TP pour mettre en oeuvre des réalisations concrètes de serious games. Codage et Compression Multimédia - Format des images et colorimétrie - Théorie del’information - Compression sans perte - Compression avec pertes - Compression des vidéos - Chiffrement Insertion de données cachées - Stéganographie - Tatouage robuste - Vidéo et TV 3D Informatique Graphique - Modélisation géométrique avancé - Maillages, Cartes combinatoires Courbes et surfaces paramétriques - Courbes et surfaces de subdivision - Surfaces implicites Animation - Modélisation procédurale - Modélisation physique - Rendu 40 Société Virtuelle Modes de cognition individuelle et collective d’agents plongés dans un environnement social. Comportements collectifs: mécanismes de coopération, collaboration, compétition. Modélisation orientée agent de systèmes sociaux pour les jeux videos (ludiques et sérieux) et la simulation sociale. Comportement collectif: nature et implémentation. Mouvements de groupes. Organisations sociales. Représentation individuelle et collective. Mémétique, diffusion des idées, implémentation de modèles culturels. Problématique des sociétés humains/agents artificiels. Evolution de sociétés virtuelles. Application aux films d’animation, jeux videos, systèmes de sécurités, gestion de flux de trafic, simulation sociale et environnementale, éthologie, développement durable, gestion de ressources, aide à la prise de décision, etc. 5.1.4 Semestre 4 • Projet annuel CMI (5 ECTS), • Stage de recherche (25 ECTS) et • vie professionnelle (5 ECTS). 41 6 Master CMI Informatique MIT Objectifs et débouchés de la formation Contenus de la formation. La formation se déroule sur quatre semestres (S1-S4). Vous trouverez ci-après une présentation des contenus des thématiques abordées ainsi qu’une proposition d’équipe pédagogique pour chacune des thématiques. L’objectif est ici de présenter une vue d’ensemble de ce que pourrait être le parcours ; les contenus ne sont pas définitifs et seront amenés àă évoluer. De plus les équipes pédagogiques ne sont pas figées et pourront alterner. Au niveau organisationnel, (1) il serait souhaitable qu’un enseignant n’intervienne qu’au plus une fois au cours du cursus ; (2) au niveau des modules de recherche, les enseignants n’interviendront qu’au plus deux ans de suite (le terme enseignant désigne tout intervenant dans le parcours quel que soit son statut). Parcours Math-Info. Certaines des unités d’enseignement sont communes avec le parcours Math-Info ; celles-ci sont estampillées MI dans la suite du document. Semestre 1. S2. S3. Complexité/Algorithmique MI Théorie de l’information Algorithmique du texte (BCD) MI Méthodes et algorithmique probabilistes MI Anglais 1 option (AIGLE / DECOL / IMAGINA / AUTRE) Calculabilité MI Méthodes approchées MI Graphes et structures MI TER 2 options (Algo. distribuée (MIT) / AIGLE / DECOL / IMAGINA / AUTRE) 6 modules àă choisir parmi les 7 suivants : Module Recherche AlGCo Graphes, Algorithmique et Complexité Module Recherche ARITH/ESCAPE Théorie des langages et pavages Module Recherche COCONUT Contraintes Module Recherche ECO Algorithmes arithmétiques pour la cryptographie et les codes correcteurs Module Recherche GraphIK Théorie des bases de connaissances (DECOL) Module Recherche MAB Algorithmique pour la bioinformatique (BCD) Module Recherche MAORE Optimisation combinatoire 42 MI MI MI MI MI MI MI S4. Projet annuel CMI Stage CMI Vie professionnelle 1. Semestre 1 • Complexité/Algorithmique (5 ECTS). équipe pédagogique : Bruno Durand, Grégory Lafitte. Mutualisation : AIGLE, DECOL. Complexité de base couplée àă de l’algorithmique dans le cadre d’une remise àă niveau mutualisable. Complexité pire des cas et cas moyen, en espace et en temps. NPcomplétude. Exemples de problèmes en graphes, en pavages, en algorithmique fondamentale. Jeux algorithmiques de type arthur-merlin... • Théorie de l’information](5 ECTS). équipe pédagogique : Plusieurs équipes possibles. Mutualisation : IMAGINA. Ce module contient trois thèmes principaux qui s’entremêlent tout au long du module et qui présentent trois approches complémentaires et intimement liés de l’idée de quantifier le contenu en information d’un message ou d’un ensemble de messages. Le premier est la théorie de Shannon, avec les notions d’entropie, de codage de l’information et de modèles de communication. En particulier cette partie couvre tous les codes classiques et théorèmes associés, tels les différents codes de Huffman, Shannon-Fano, le théorème de l’inégalité de Kraft-McMillan et l’algorithme de Sardinas-Patterson. Le second thème est la théorie et la pratique des algorithmes et techniques de compression. Le troisième thème est une introduction àă la théorie algorithmique de l’information de Kolmogorov. Ces deux derniers thèmes sont présentés en étant mis en relation avec la théorie de Shannon, ce qui nous permet d’étudier les limites de chacune des approches. • Algorithmique du texte(5 ECTS). équipe pédagogique : Sèverine Bérard, Annie Chateau. Mutualisation : AIGLE, DECOL. Gràćce aux ordinateurs, nous traitons, stockons, consultons des quantités de plus en plus grande de textes, qu’ils soient en langue naturelle ou sous forme de séquences (par exemple, des génomes - séquence de l’ADN d’une espèce). Sur internet des millions de documents textuels sont accessibles et interrogeables selon des critères simples. Le besoin de méthodes efficaces de manipulation (au sens large) du texte va croissant. L’indexation des pages web sur un moteur de recherche est un exemple d’application àă très grande échelle. Ce module d’algorithmique traite des méthodes informatiques (par exemple, techniques de programmation dynamique) qui permettent ces manipulations de texte. On s’intéresse aux algorithmes de recherche d’un ou plusieurs mots dans un texte (KnuthMorris-Pratt ou Aho-Corasick), mais aussi aux structures d’indexation des textes (par 43 exemple, l’arbre des suffixes ou la table des suffixes) qui permettent, une fois calculées, des recherches àă la volée de mots ou d’expressions plus complexes. D’autres questions concernent la détection de répétition dans les textes ou la comparaison de textes, qui permet de calculer des distances (telles que la distance d’édition) ou mesures de similarités, pour ensuite pouvoir les classifier. Les applications dans des domaines variés seront abordées, principalement en bioinformatique et en linguistique. • Méthodes et algorithmique probabilistes(5 ECTS). équipe pédagogique : Anne-Elisabeth Baert. Mutualisation : AIGLE, DECOL. Cette U.E. s’oriente autour de trois axes : Aspects probabilistes de l’informatique, Analyse probabilistes d’algorithmes et graphes aléatoires, Algorithmique probabiliste. Le cours se décompose en quatre parties : – Socle / Fondements de l’analyse en moyenne (12-15h). Généralités sur les modèles probabilistes discrets: moyennes, variances, lois de probabilité discrètes. Liens entre dénombrements, analyse asymptotique, et analyse d’algorithmes. Inégalités de Chebyshev. Exemple élémentaire: sélection des k premiers, tables d’inversion, nombre de Stirling, comparaison de deux stratégies de sélection. Dénombrements exacts par séries génératrices ordinaires et exponentielles (Modèles de base pour les mots et langages, familles d’arbres, permutations, graphes contraints, allocations (modèles d’urnes). Pour les modèles rationnels: liens entre automates, séries rationnelles, systèmes linéaires, et matrices de transfert. Pour les modèles algébriques et leurs variantes: inversion de Lagrange, théorème de Cayley (arbres étiquetés), applications aux fonctions finies (mappings)). Notions sur les fonctions génératrices àă plusieurs variables: calculs explicites de moments et de lois de probabilité. Dénombrements asymptotiques. Utilisation des propriétés analytiques des séries génératrices: pàťles des fractions rationnelles, bornes sur les rayons de convergence (bornes de col), les singularités et leur influence sur les coefficients de séries (bases de l’analyse de singularité). Tri rapide (Quicksort); Sélection rapide (Quickfind); Variantes avec médiane; Tris (Bubble-sort, etc); Caractéristiques principales des arbres binaires de recherche (longueur de cheminement, pagination). Hachage avec chainage séparé et allocations aléatoires: paradoxe des anniversaires, collectionneur de coupons, loi de Poisson des remplissages, linéarité en moyenne. Mots et motifs: linéarité en moyenne de la recherche naàŕve de motifs. Arbres de Catalan, objets "bijectivement reliés "(chemins de Dyck, triangulations), et leurs principales caractéristiques probabilistes. Arbres de Cayley et application aux générateurs aléatoires. – Processus Markovien (6h). Les processus de naissance et de Mort / Processus Poissonnien. Chaines de Markov àă temps discret. Temps continu . – Algorithmes randomisés / Méthode Monte Carlo (3-6h). Introduction/définition. Randomisé vs approximation. Extraction des mots fréquents, extraction des contenus communs àă des corpus distincts. Applications àă l’optimisation combinatoire ou aux structures de données (skip lists) . – Graphes aléatoires (12-15h). La méthode probabiliste/Bollobas, définition propriétés. Graphes àă la Erdos Rényi : définition, propriétés, phénomènes de transition de 44 phases, composantes géantes. Arbres / Marches aléatoires et processus de branchement en Informatique. Graphes aléatoires géométriques, graphes petits mondes (application aux réseaux P2P / sans fils et sociaux). • Anglais (5 ECTS). • + 1 module au choix.]Un module àă choisir parmi l’offre des autres parcours AIGLE / DECOL / IMAGINA / AUTRE. 2. Semestre 2. • Calculabilité (5 ECTS). équipe pédagogique : Bruno Durand, Grégory Lafitte, Victor Poupet. Mutualisation : DECOL. La théorie de la calculabilité tourne autour de deux notions phares : les modèles de calcul et les réductions entre problèmes. Le cours commence par une présentation et des rappels sur différents modèles de calcul ayant diverses puissances de calcul, allant des automates finis aux machines de Turing en passant par la récursion primitive. Nous étudions alors différentes notions de réductions d’un problème àă un autre pour ensuite présenter différents ensembles canoniques et les théorèmes principaux de la calculabilité naàŕve, tels l’ensemble diagonal, les ensembles d’indices de fonctions, les théorèmes de point-fixe de Kleene, le théorème de Rice, l’isomorphisme de Rogers, etc. Le cours se termine par un aperàğu de la structure induite par les réductions sur les ensembles d’entiers quelconques et les ensembles récursivement énumérables. En particulier nous construisons différentes solutions au problème de Post. • Méthodes approchées(5 ECTS). équipe pédagogique : Rodolphe Giroudeau, Jean-Claude Konig. Mutualisation : IMAGINA. Maitriser les techniques pour résoudre au mieux (méthodes exactes, méthodes approchées) des problèmes classés comme difficile au sens de la théorie de la complexité. Branch and bound (algorithme A*), branch and cut, algorithmes approchés avec garantie de performance, programmation dynamique, PTAS, FPTAS, Recherche locale,... • Graphes et structures(5 ECTS). équipe pédagogique : Stéphane Bessy, Mickael Montassier. Mutualisation : IMAGINA Nous présenterons àă travers ce cours des résultats classiques de la théorie des graphes. Notre objectif sera d’appréhender des preuves parfois complexes manipulant des objets non triviaux. Nous reviendrons sur les raisonnements par l’absurde, par récurrence, par réduction, ... Entre autres, nous nous intéresserons aux : – problème du couplage dans les graphes bipartis (théorème de Hall), dans les graphes en général (théorème de Tutte),... 45 – problèmes de colorations de graphes avec notamment le problème des quatre couleurs et plus précisément le théorème des 5 couleurs (argument de Kempe (preuve par l’absurde), Lovász (preuve par réduction), Thomassen (preuve par induction))... – problèmes sur les graphes orientés avec les théorèmes de Gallai-Roy, Gallai-Milgram, d’Edmonds. àégalement seront abordées les problématiques de connectivité, de décompositions, d’hypergraphes,... • Projet annuel CMI de Master • + 2 modules au choix. Deux modules àă choisir parmi l’offre des autres parcours AIGLE / DECOL / IMAGINA / AUTRE. 3. Semestre 3 Ce semestre est constitué de six modules «recherche» àă choisir parmi sept. Chaque module est placé sous la responsabilité de la (ou les) équipe(s) de recherche correspondante(s) : le programme et les intervenants sont choisis par les équipes en fonction de leurs besoins et projets. Le volume d’un module est de 20 ou 40 heures selon l’équipe. Le département informatique demande une alternance des intervenants ; de ce fait, un enseignant n’interviendra qu’au plus deux ans de suite dans le module de recherche correspondant. • équipe AlGCo «Graphes, Algorithmique et Complexité» (5 ECTS). équipe pédagogique : Stéphane Bessy, toute l’équipe AlGCo. Ce module se situe àă l’interface de la combinatoire des structures discrètes, de l’algorithmique et de la théorie de la complexité. Il comportera donc plusieurs volets complémentaires tels que : – Théorie des graphes. L’objectif est ici de présenter les développements récents et les techniques émergentes pour les problèmes classiques (e.g. coloration, dominationâĂę) mais aussi les théories des décompositions de graphes et des mineurs ou encore des graphes géométriques / topologiques. – Algorithmes combinatoires. Les propriétés structurelles des graphes (décomposition, plongement dans les surfaces) permettent souvent, sur des classes de graphes particulières, soit de prouver l’existence d’algorithmes efficaces ou de concevoir de tels algorithmes. Nous étudierons essentiellement les méthodes algorithmiques (polynomiales, paramètrées, exponentielles) permettant de calculer des solutions exactes àă des problèmes d’optimisation combinatoire. – Algorithmique paramétrée. Au delàă de la théorie de la complexité classique, nous nous intéresserons en particulier àă la complexité paramétrée et aux méthodes de pré-processing polynomial (kernelization) en lien avec la logique (model checking) et les automates. 46 • équipes ARITH et ESCAPE «Théorie des langages et pavages» (5 ECTS). équipe pédagogique : Bruno Durand, Thierry Monteil, Pascal Ochem, Victor Poupet, Gwenaël Richomme, Andrei Romashchenko, Patrice Séébold. Les thèmes abordés dans ce cours sont amenés àă varier chaque année. – Pavages. Une tuile est un carré unité àă bords colorés; dans la suite, les ensembles de tuiles considérés sont supposés être finis. Ces tuiles jouent le ràťle de “modèles de tuiles” : on en place des copies dans les cases du plan. Ainsi, on obtient la notion de configuration : des tuiles posées dans le plan. On dit alors quâĂŹune zone est bien pavée si on y observe partout que deux càťtés de tuiles en contact ont la même couleur. Ainsi, pour certains ensembles de tuiles, on peut former des pavages du plan, pour dâĂŹautres on ne peut pas ; certains peuvent paver le plan périodiquement (avec 2 vecteurs de périodicité indépendants), dâĂŹautres ne le peuvent pas. Si les pavages intéressent diverses communautés, les logiciens ont les premiers développé des théories générales, notamment sur les problèmes de pavabilité. Curieusement, ces résultats et techniques sont liés àă la notion même de calcul : un pavage a l’air d’être un objet géométrique dévolu aux mathématiques ou àă la physique des cristaux mais en fait leur structure éventuellement compliquée vient de ce qu’ils expriment naturellement de l’algorithmique. Les pavages peuvent aussi être vus comme des mots en dimension 2 vérifiant des contraintes locales, mais la théorie des langages habituelle en dimension 1 ne se généralise pas aisément àă la dimension 2. – Langages. Dans de nombreux domaines de l’informatique (algorithmique du texte, compression, langages formels et automates, codage, gestion de files dâĂŹattente, . . . ) ou dâĂŹautres disciplines (placement de robots, algorithmique du génome, théorie des nombres, systèmes dynamiques, . . . ), une compréhension combinatoire de mots ou de langages (ensembles de mots) définis par des contraintes particulières ou par des mécanismes engendrant est nécessaire. La première partie du cours est consacrée àă l’étude des outils, techniques, objets et problématiques de base en combinatoire des mots (équations entre mots, complexités de mots, mots sturmiens, mots sans répétition, motifs évitable, mots de Lyndon, palindromes, décompositions, morphismes, . . . ). La deuxième partie sera consacrée àă l’exploration de problématiques en cours d’étude dans l’équipe. àĂ titre d’exemple, voilàă des centres d’intérêts actuels pouvant être abordés : mots et géométrie discrète ; propriétés abéliennes des mots ; graphes et répétitions ; mots et algorithmique du texte, . . . • équipe COCONUT «Contraintes» (5 ECTS). équipe pédagogique : Christian Bessiere, Rémi Coletta, Gilles Trombettoni. Le raisonnement par contraintes permet de résoudre de nombreux problèmes combinatoires (emplois du temps, affectation de personnel, etc.). Une solution àă un problème de satisfaction de contraintes (ou CSP) est une affectation de valeurs àă des variables soumises àă des restrictions (= contraintes) sur les combinaisons de valeurs qu’elles peuvent prendre. Nous aborderons rapidement la modélisation de problèmes en CSP et 47 décrirons les principales techniques pour résoudre un CSP. Nous insisterons sur la propagation de contraintes et nous étudierons le concept de contrainte globale, utilisé dans tous les logiciels de résolution de contraintes. Ensuite nous présenterons différentes extensions apportées au modèle CSP pour répondre àă des questions plus complexes comme la recherche de la "meilleure" solution selon certains critères. Une partie du cours sur la programmation par contraintes sur intervalles montrera comment ces techniques peuvent s’appliquer dans le monde continu pour résoudre des systèmes de contraintes d’égalités et d’inégalités sur les nombres réels et effectuer de l’optimisation globale sous contraintes. • équipe ECO] «Algorithmes arithmétiques pour la cryptographie et les codes correcteurs» (5 ECTS). équipe pédagogique : Pascal Giorgi, Eleonora Guerrini, Laurent Imbert. L’objectif de ce module est de présenter les concepts et outils mathématiques de la théorie de l’information, notamment la cryptographie et la théorie des codes correcteurs. Dans un monde de plus en plus interconnecté, la cryptographie est devenu un ingrédient indispensable àă la sécurisation des données et des communications. Elle s’attache àă protéger des messages pour assurer confidentialité, authenticité et intégrité. La théorie des codes permet de reconstruire des messages en cas de modifications (erreurs) pendant la transmission sur un canal bruité (par ex. communications par satellites). Ces deux disciplines de la théorie de l’information s’appuient fortement sur des notions et outils de la théorie des nombres. La première partie du cours est consacrée àă une introduction àă ces outils fondamentaux d’arithmétique et de calcul formel. Nous présentons les notions de divisibilité, les algorithmes de multiplication rapide et de pgcd, les anneaux et corps finis, ainsi que quelques notions d’algèbre linéaire. La seconde partie est dédiée aux applications de ces concepts àă la cryptographie asymétrique moderne et aux codes correcteurs d’erreurs. Nous présentons aussi les méthodes permettant d’attaquer les problèmes difficiles sousjacents comme la factorisation entière et le calcul de logarithme discret. Pour l’ensemble du module, des applications sont proposées permettant de mettre en œuvre les concepts vus en cours. • équipe GraphIK] «Théorie des bases de connaissances» (5 ECTS). équipe pédagogique : Marie-Laure Mugnier, Jean-François Baget, et autres membres de GraphIK. Mutualisation : DECOL. Ce module est consacré aux formalismes permettant de représenter une base de connaissances et d’effectuer des raisonnements sur ces connaissances. Le formalisme de référence est la logique du premier ordre. On s’intéresse àă deux problèmes fondamentaux : la satisfiabilité (ou cohérence) d’une base de connaissances et l’interrogation d’une base de connaissances, problème aussi connu sous le nom Ontology-Based Data Access : il s’agit d’interroger une base de faits / données, en tenant compte des inférences permises par une "ontologie", c’est-àă-dire un ensemble de connaissances générales sur le domaine modélisé. On traitera des points suivants : 48 – notions fondamentales : adéquation et complétude logiques, hypothèses du monde ouvert et du monde clos, réductions entre problèmes, expressivité, etc ; – problèmes sur les requêtes conjonctives, quelques problèmes équivalents, prises en compte de hiérarchies de classes/concepts et relations ; – datalog, règles existentielles, Datalog +/- ; – logiques de description, avec focus sur les logiques orientées interrogation ; – négation du monde clos et sémantique des modèles stables, Answer Set Programming ; – sémantiques tolérantes aux incohérences. • équipe MAB «Algorithmique pour la bioinformatique» (5 ECTS). équipe pédagogique : Sèverine Bérard, Annie Chateau. Mutualisation : BCD. L’U.E. donne un panorama des algorithmes utilisés en bioinformatique ou en biologie pour la comparaison de séquences moléculaires et la phylogénie. Partant des concepts et méthodes essentielles pour accéder àă la connaissance apportée par le génome (traitement des données de séquenàğage haut débit, algorithmes et problèmes liés àă l’assemblage génomique), nous introduisons ensuite les méthodes et algorithmes permettant d’exploiter cette connaissance, au niveau de la séquence génomique, àă travers les concepts d’alignement et autres notions de similarités entre séquences (Plus Longue SousSéquence Commune, distance d’édition, etc.). Ce module se poursuit par l’exploitation des données génomiques pour la reconstruction de l’arbre du vivant (reconstruction phylogénétique). Il s’agit de reconstruire l’évolution des objets biologiques, de la molécule àă la population, en passant par les gènes, les génomes et les espèces. Cette évolution est représentée par des arbres ou des réseaux. Les modèles sont combinatoires ou probabilistes. Les approches algorithmiques portent sur l’inférence d’arbres (àă partir de sous-arbres par exemple, ou de séquences), la comparaison d’arbres, la combinaison d’arbres au sein de réseaux, l’optimisation dans un espace d’arbres (ou de réseaux) de fonctions continues, notamment de type vraisemblance. àĂ travers chacune de ces thématiques, l’U.E. présente des méthodes algorithmiques et mathématiques originales, avec leurs complexités en temps et en espace. Elle sensibilise les étudiants àă leurs applications pratiques et donne un aperàğu des problèmes ouverts en recherche dans ce domaine. Le module se décompose en deux parties : un socle de base présentant les concepts et formalismes fondamentaux, ainsi que les algorithmes et outils classiques, et une série de cours-séminaires avancés présentant des recherches de pointes en bioinformatique. Prérequis : les prérequis en informatique concerne une connaissance de base en algorithmique et structures de données et des notions de complexité, les prérequis en biologie sont minimes et relèvent essentiellement de l’intérêt et de la curiosité pour la discipline. • équipe MAORE «Optimisation combinatoire» (5 ECTS). équipe pédagogique : Marin Bougeret, Sylvain Durand, Rodolphe Giroudeau, JeanClaude Konig, Miklós Molnár 49 Nous approfondirons tout d’abord les techniques classiques de conception d’algorithmes/schémas d’approximation (analyse d’algorithmes gloutons, programmation linéaire et arrondis, recherche locale, approximation duale, techniques de "guess",..), ainsi que des résultats de base sur l’inapproximabilité (typiquement introduction / transfert de gap). Nous nous intéresserons ensuite au cas de l’analyse on-line (les données ne sont pas connues àă l’avance), de l’analyse multicritère (plusieurs critères antagonistes sont considérés). Enfin, nous présenterons quelques résultats d’approximation polynomiale liés àă l’utilisation du rapport différentielle, alternative àă la mesure classique. Ces techniques seront dans un premier temps introduites sur les problèmes de base du domaine, (vertex cover and set cover, independent set, sac àă dos, problèmes de packing,...). Puis, nous verrons comment les utiliser sur des problèmes plus spécifiques dans les réseaux et dans l’ordonnancement. Entre autres, nous étudierons certains problèmes de recouvrement sous contraintes (recouvrement des graphes, problème de Steiner sous contraintes de degré des sommets, multiples contraintes dans l’optimisation, ...). 4. Semestre 4 • Projet annuel CMI (5 ECTS), • Stage de recherche (25 ECTS) et • vie professionnelle (5 ECTS). 50