88 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT 4.2 Unités d enseignement du M1 Tous les cours sont de 6 ECTS. Modélisation, optimisation et complexité des algorithmes (code RCP106) Objectif : Présenter des concepts, des méthodes, des démarches indispensables pour de futurs ingénieurs chargés de conception et développements informatiques. Méthodes de résolution de problèmes. Programmation linéaire, Programmation dynamique. Recherches arborescentes. Algorithmes gloutons, complexité des problèmes, approximation polynomiale Ordonnancements. Contraintes de ressources dans les ordonnancements - Ordonnancements d atelier - Applications en informatique. Optimisation en informatique (Code RCP104) Modalités d évaluation : examen écrit + projet Objectifs : A partir de problèmes concrets de l informatique distribuée (Réseaux, Bases de données réparties,.. ), apprendre à traiter des problèmes difficiles de la recherche opérationnelle : savoir écrire un modèle mathématique et proposer des méthodes, non nécessairement optimales, mais efficaces, utilisant des outils pratiques pour résoudre ces problèmes (méthodes approchées, programmation linéaire et logiciels.). Présentation de l ensemble du cours à partir d un problème d optimisation en informatique distribuée ou en réseaux informatiques. Apprendre à écrire un programme mathématique. Application à divers problèmes réels : dimensionnement de réseaux, localisation de concentrateurs dans les réseaux en étoile... Apprendre à transformer un programme non linéaire en un programme. Résolution approchée de problèmes difficiles. Validation des résultats obtenus par les heuristiques à l aide de bornes obtenues par utilisation du logiciel. Utilisation d un logiciel (Cplex, XPRESS, PCX...) et des interfaces. Recherche Opérationnelle Approfondie (code RCP207) Modalités d évaluation : exposé. L objectif de ce cours est d approfondir l un des thèmes classiques de la RO. Le thème varie d une année à l autre. Les thèmes abordés sont, par exemple : Programmation linéaire : initiation aux méthodes polyhédriques. Ordonnancements. Files d attente, etc. Chaque étudiant doit faire un exposé présentant un aspect du thème de l année. Recherche opérationnelle et programmation linéaire avancée (code RCP110J)
4.2. UNITÉS D ENSEIGNEMENT DU M1 89 L objectif est d approfondir un des thèmes majeurs de la Recherche Opérationnelle : la programmation linéaire. Programme : Systèmes d équations linéaires et matrices, algorithmes du simplexe (méthode algébrique, méthode des tableaux, complexité), Méthode révisée du simplexe, dualité, relations d exclusion et l interprétation économique des variables duales. Théorie des jeux : éléments. Analyse en sensibilité. Programmation linéaire en 0-1 et programmation linéaire en nombres entiers. Analyse numérique matricielle et optimisation (code CSC104) Objectifs : Aborder les techniques numériques pour les sciences de l ingénieur. Résoudre les systèmes linéaires, calculer les valeurs propres, minimiser des fonctions définies sur Rn avec ou sans contraintes. Contenu de la formation : Résolution de systèmes linéaires Notion de conditionnement numérique, résolution des systèmes linéaires. Calcul des valeurs propres et des vecteurs propres des matrices. Optimisation quadratique Résolution de problèmes de moindres carrés linéaires. Optimisation d une fonctionnelle quadratique : recherche de direction de descente et méthodes de gradient. Prise en compte des contraintes : méthodes de pénalisation et de dualité. Cas général de fonctionnelles arbitraires. Conditions de Kuhn et Tucker. Introduction à la commande optimale. Evaluation des performances et sûreté de fonctionnement (code RCP103) Objectifs : Etudier les formalismes et techniques pour l évaluation de performances des systèmes à événements discrets (réseaux de file d attente, réseaux de Petri stochastiques) et montrer leur application concrète dans le domaine des systèmes informatiques, des réseaux de communication et des systèmes de production. Il sera présenté deux outils logiciels appropriés mettant en oeuvre ces techniques sur des etudes de cas significatifs. Modélisation et évaluation de performances des systèmes à événements discrets. Processus stochastiques. Modélisation markovienne : chaînes de Markov à temps discret et à temps continu. Equations de balance globale Le formalisme d attente : file M/M/S, file M/G/1. Loi de Little, formule de Pollaczek-Khintchine Les réseaux de file d attente à fome produit : réseaux de Jackson, Gordon-Newell et BCMP. Equation de trafic, Algorithme de la valeur moyenne (MVA) Fiabilité, disponibilité. Modélisation par réseaux de Petri stochastiques : le modèle GSPN. Limites de la modélisation markovienne. Simulations stochastiques (méthodologie, validité, coût). Applications : applications web services et workflow, centre d appels (call centers), réseaux de comunication avec et sans fil,... Ingénierie des Bases de données (code NFE106) Modalités d évaluation : examen, présentation orale, Travaux pratiques L objectif du cours est la maîtrise du noyau des SGBD relationnels. Ce cours est centré sur l optimisation des requêtes SQL comme l une des clés des performances d un SGBD relationnel, en vue de la gestion et de l interrogation efficace de gros volumes de données. Ce domaine est d une telle complexité que la formation d experts dans ce
90 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT domaine est un des besoins reconnus de l industrie dans le domaine de l ingénierie des systèmes de gestion des bases de données et est une des composantes de nombreux métiers (voir plus haut). Cette maîtrise passe par la compréhension de techniques et leur mise en pratique avec les SGBD comme ORACLE ou MySQL. Par ailleurs, ce cours aborde quelques fondements classiques des BD relationnelles : introduction à la théorie des dépendances appliquée à la conception d un bon schéma, introduction au calcul relationnel (fondement du langage standard SQL). TP d optimisation sur ORACLE ou MySQL. Intégration des systèmes client-serveur (code NSY107J) Objectifs : Comprendre l ensemble des concepts qui sous-tendent les architectures client-serveur et réparties.savoir concevoir et intégrer des architectures applicatives de type distribuée. Les concepts : l évolution des architectures des systèmes informatiques du transactionnel centralisé aux approches réparties (client-serveur, coopératif), typologies, problématiques. Architecture technique matériel et logiciel, machines et serveurs. Gestion des threads, des processus. Multiprocesseurs, Clusters, parallélisme, haute disponibilité, disques RAID, réseaux de données SAN et NAS. Bases de données réparties. Entrepôts de données, systèmes décisionnels. Architecture des middlewares, Réseaux Peer to Peer et agents intelligents, Technologie clients-serveur Multi-Tiers, Internet : Clients légers Urbanisation. Intégration et communication inter-applications. Modélisation statistique (code STA110) Objectifs : Maîtriser les outils de la modélisation statistique (choix de modèles, test de spécification et de significativité, estimation, régions de confiances) dans un contexte général (modèles non linéaires, modèles dynamiques...), acquérir un savoir faire pratique dans la construction d un modèle destiné à formaliser un problème concret (fonction de comportement, choix discrets, équilibre, prévision, sélection, scénarios, causalité, propagation de chocs, hétérogénéité inobservable...) et savoir mettre en oeuvre un logiciel de modélisation statistique avancé (GAUSS). Outils généraux Simulation des lois usuelles. Estimateurs extrémaux. M-estimateurs. Moindres carrés non linéaires : réseaux de neurones, modèles splines, modèles index (applications à la biométrie et à la finance). Maximum de vraisemblance. Régions de confiance asymptotiques. Choix de modèles (critères de Takeuchi, d Akaike et de Schwarz). Tests d hypothèse non emboîtées (Test de Davidson Mc Kinnon). Méthodes de moments Reconnaissance des formes et méthodes neuronales (code RCP208) Modalités d évaluation : examen, évaluation des travaux pratiques Objectifs : Ce cours présente les éléments algorithmiques de base des méthodes d analyse et de modélisation des données numériques, illustrés par des exemples d applications réelles.
4.2. UNITÉS D ENSEIGNEMENT DU M1 91 Analyse en composantes principales. Méthodes de régression, régression linéaire. Théorie bayesienne de la décision. Méthodes de discrimination paramétriques et non paramétriques. Méthodes de classification automatique. Arbres de décision. Perceptrons multicouches. Cartes auto-organisatrices de Kohonen. Programmation dynamique. Spécification et modélisation informatiques (code NFP108J) Le but du cours est de présenter les automates finis à états et les formalismes logiques qui ont de nombreuses applications pour la spécification et la modélisation de systèmes informatiques. Ils interviennent notamment dans les domaines du génie logiciel, des réseaux, de la conception et du développement, des bases de données, des systèmes d information et des systèmes transactionnels. A ce titre, ils sont utilisés dans de nombreux enseignements du cursus. Les exemples du cours porteront sur des applications. Pour les automates finis, ces applications comportent la modélisation d automatisme (distributeur de billet, ascenseur), la modélisation de protocoles, des diagrammes d états-transition UML, la correction orthographique. Enfin, un exemple traitera d un système d information structuré autour d une base de données relationnelle. Les notions de dépendance fonctionnelle et de de forme normale seront mises en relation avec les concepts ensemblistes. Sureté de la programmation orientée objets (code NFP101) L objectif de ce cours est d étudier les concepts des langages de programmation orientés objets (encapsulation, héritage, redéfinition, liaison tardive,...). L accent est mis sur la sûreté de l exécution et en particulier, sur ce que doit apporter le typage pour assurer la correction de l exécution. Ce cours est basé sur deux langages de programmation orientée objets, à savoir Java (impératif) et OCaml (fonctionnel). Le cours débute par une initiation pratique de la programmation orientée objets, puis précise la sémantique des concepts utilisés en mettant notamment l accent sur le rôle du typage. Une dernière partie présente brièvement l utilisation des objets dans les applications réparties. Systèmes et applications répartis (code SMB111) Objectifs : Présenter les aspects concernant les systèmes et applications coopératives ou réparties (client-serveur, middleware ). Développer les problèmes et les difficultés du domaine considéré et certaines des solutions utilisées pour les résoudre, l organisation et la syntaxe de l interface de quelques produits très répandus, l ingénierie et la mise en oeuvre des techniques et outils proposés. Notions générales associées à la répartition. Parallélisme, flexibilité, indépendance de localisation, sûreté et sécurité, extensibilité. La gestion des activités et la synchronisation Propriétés d ordre dans les systèmes répartis. Partage des données La
92 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT désignation et cohérences mémoires. Les différents concepts seront mis en perspectives par rapport aux architectures informatiques actuelles : Cloud Computing, Data Center, les services Web et les composants de services...