Enseignements de la Spécialité IAGL
| Nom de l'UE | Nature de l'UE | Caractère de l'UE | Niveau de l'UE | ECTS | Volume horaire |
| Génie Logiciel | Disciplinaire | Obligatoire | Expert | 6 | 80 |
| Bases de Données et Internet | Disciplinaire | Obligatoire | Expert | 4 | 40 |
| Construction des applications réparties avancées | Disciplinaire | Obligatoire | Expert | 5 | 60 |
| Systèmes répartis et Stage Linux * | Disciplinaire | Obligatoire | Expert | 5 | 52 |
| Intelligence Artificielle | Disciplinaire | Obligatoire | Expert | 5 | 70 |
| Concepts avancés du génie logiciel | Disciplinaire | Obligatoire | Expert | 5 | 60 |
| Projet technique | Disciplinaire | Obligatoire | Expert | 5 | 140 |
| Communication dans l'entreprise * | Transversale | Obligatoire | Approfondi | 5 | 44 |
| Anglais | Transversale | Obligatoire | Approfondi | 5 | 30 |
| Stage en entreprise | Disciplinaire | Obligatoire | Expert | 15 | 3 à 6 mois |
* UE mutualisée avec le Master spécialité TIIR
Génie Logiciel
Intervenantes universitaires : Raphaël Marvie
Intervenants extérieurs : Christophe Cousin
Durée de l'enseignement: 80 heures
Résumé :
Comprendre comment mener à bien un projet logiciel, en vue d'aboutir à la satisfaction du clientet de l'utilisateur final. Prendre conscience de la nécessité de produire des logiciels itérativement dans une relation gagnant-gagnat avec le client.
- Découverte et mise en places des méthodes agiles de développement logiciel comme Scrum, XP et le développement Lean. Appréhension d'un projet dans son intégralité de l'identification des besoins aux phases de recette et de déploiement. Sensibilisation à la gestion du risque.
- Cours et ateliers organisés autour d'un projet à réaliser en équipe idéalement dans le cadre d'Agil-IT. Un site de communication est obligatoirement mis en place afin de favoriser la communication entre les personnes concernées par le projet (maîtrises d'ouvrage et d'oeuvre). Le projet est entièrement géré par le groupe d'étudiants.
Prérequis : analyse, conception et programmation orientés objet, capacité à communiquer.
Evaluation : projet
Base de données et Internet
Intervenant: Anne-Françoise Le Meur
Durée de l'enseignement: 40 heures
Résumé :
- SGBD relationnels : rappels sur les principaux objets qui définissent un schéma relationnel (les tables, les contraintes d'intégrités, les vues) avec des extensions procédurales (les triggers, les procédures stockées).
- Bases de données et XML : Les objectifs sont d'une part d'acquérir les principales notions liées au modèle XML comme le typage (DTD, XML-schema), les langages de transformation ou de requêtes (Xpath, XSLT, XQuery), et d'autre part de comprendre les articulations existant entre bases de données et XML.
- SGBDR et Web : nous abordons la manière de relier le SGBD avec un serveur WEB. Après avoir présenté les principes généraux des serveurs WEB et serveurs SGBD, les différentes techniques de gestion de pages dynamiques sont présentées (CGI, ASP, JSP, Servlet, PHP). L'accent est porté sur l'approche Java à travers les Servlet, les JSP et les EJB en utilisant des drivers JDBC pour un accès banalisé au SGBD. Le cours se termine avec une présentation de l'administration d'un serveur J2EE.
Prérequis : fondements des bases de données, Merise, SQL. Java
Evaluation: Examen écrit et projet
Construction des Applications réparties avancées et veille technologique
Intervenant: Lionel Seinturier
Durée de l'enseignement: 60 heures
Résumé :
Cette UE se déroule en deux temps. Le premier concerne l'apprentissage des techniques actuelles permettant la gestion de la répartition et des problèmes techniques associés (sécurité, transaction, persistance, tolérance aux fautes). Le second temps concerne l'apprentissage de la veille technologique.
Dans un premier temps, l'objectif pédagogique de ce cours est de faire appréhender aux étudiants cette nouvelle dimension dans la réalisation de logiciels : la répartition. Cependant, le domaine de l'informatique répartie étant vaste, ce cours met principalement l'accent sur les styles d'architecture que l'on rencontre dans les technologies Internet les plus récentes : les Web Services, les objets distribués à la norme CORBA et les environnements à base de composants tels que l'approche proposée par .NET. Les étudiants acquièrent en TP une connaissance pratique de la réalisation d'applications réparties utilisant les technologies Java et les composants.
Parallèlement, les étudiants préparent un ensemble d'exposés de veille technologique sur des thèmes en rapport avec les dernières innovations du domaine. L'idée est de leur proposer un ensemble de lectures et de leur faire faire une synthèse sous forme d'un exposé et d'un rapport.
Forme: 28 h de cours et 28 h de travaux pratiques
Evaluation: TP et exposés
Systèmes répartis et Stage Linux
Intervenant: Pierre Boulet Autre intervenant : JL Levaire
Durée de l'enseignement: 50 heures
Résumé :
L'objectif du cours est de présenter les problèmes systèmes liés à l'utilisation de machines en réseaux. Un système distribué est idéalement un ensemble de machines vu comme un seul ensemble de ressources. L'utilisateur ne doit pas savoir comment les tâches sont réparties entre les machines. Structure du cours : présentation des problèmes classiques apparaissant dans de tels systèmes ainsi que des éléments de réponse à ces problèmes, puis études de cas avec des exposés sur des thèmes liés aux systèmes distribués, par exemple des implémentations réelles ou des applications utilisant un système distribué. En complément, une semaine d'administration système en début de formation permet aux étudiants de se familiariser avec les protocoles principaux des systèmes en réseau (NFS, DNS, NIS, DHCP, etc).
Forme: 36 h de cours et 16 h de travaux pratiques
Evaluation: exposés
Intelligence Artificielle
Intervenant: Jean-Paul Delahaye et Francesco De comité
Durée de l'enseignement: 80 heures
Résumé :
Objectif principal : Présenter diverses techniques et méthodes de l'Intelligence Artificielle dont en particulier les outils d'aide à la décision et la programmation logique.
Structure du cours
- Systèmes experts : Les différents algorithmes de base. Les améliorations possibles et différentes heuristiques. Le problème de la difficulté à trouver les bonnes questions à poser à l'utilisateur. Les systèmes avec variables (``ordre 1'') et les problèmes qui en découlent : l'algorithme de RETE.
- Algorithmes génétiques : Principes généraux, implémentation des algorithmes, étude théorique. Etudes de cas : les exemples célèbres, application à des problèmes 'concrets'.
- Apprentissage par renforcement : l'idée de base, exemples d'applications. Algorithmes Q-learning et TD(lambda) et leurs variantes. Implémentation des algorithmes, résolution de problèmes par l'apprentissage par renforcement, rôle des différents paramètres.
- Les systèmes multi-agents : la problématique, les différents modèles, état de l'art.
- L'intelligence de l'algorithme du Pagerank (Google) pour évaluer la notoriété des pages Internet. Tentatives de manipulation et contre-mesures.
- Principes généraux de la programmation déclarative. Programmation en utilisant le calcul des prédicats du premier ordre. Résolution PROLOG. Arbres de raisonnement. Environnement SWI Prolog. Négation, CUT, déterminisme, mode, utilisation des listes, récursivité, utilisation de la database, entrées/sorties, schéma itératif général, calculs arithmétiques. Utilisation du non-déterminisme : parcours d'arbres et de graphes. Applications à la génération de plans et à la résolution de problèmes (moteurs d'inférence des systèmes experts).
- Théorie des jeux et simulation de comportements complexes (brève introduction)
Evaluation: examens
Concepts Avancés du Génie Logiciel
Intervenant: Raphaêl Marvie et Lionel Seinturier
Durée de l'enseignement: 60 heures
Résumé :
Ce cours se décompose en deux partie. La première présente des techniques de conception avancées, la seconde se focalise sur les techniques de conception et de programmation générative au travers de l'ingénierie dirigée par les modèles.
- Techniques de conception avancées
L'objectif est de proposer aux étudiants la découverte d'un ensemble de techniques et de bonnes pratiques permettant une meilleure maîtrise du développement logiciels.
Mots clés :
Patrons de conception, réflexivité, protocole à méta-objets, programmation par aspects.
Contenu du cours
La maîtrise de grands codes passe par les bonnes pratiques de programmation permettant ainsi la réutilisation et la maintenance des logiciels. Nous proposons dans ce cours la découverte des patrons de conception tels que le visiteur, la fabrique, l'oberveur/observé, l'intercepteur, le proxy. Nous proposons également des techniques permettant l'adaptation des applications telles que la réflexivité, les protocoles à méta-objets ou encore les langages de programmation par aspects.
Evaluation: des TP permettront de mettre en pratique ces techniques.
- Ingénierie Dirigée par les Modèles
L'objectif est de sensibiliser les étudiants à l'ingénierie dirigée par les modèles de manière pragmatique pour appréhender les bénéfices d'une telle démarche.
Mots-clés
Métamodélisation, modélisation orientée domaine, transformation de modèle, génération de code.
Contenu du cours
L'ingénierie dirigée par les modèles (IDM) est une des approches émergentes pour le développement de logiciel. Ses motivations sont doubles: d'une part offrir une démarche de développement spécifique au domaine d'application, et d'autre part capitaliser la définition d'un système logiciel indépendamment des détails technologiques. Enfin, le fait de découper clairement le cycle de développement doit favoriser la réutilisation des moyens et outils de production du logiciel. Pour atteindre ces objectifs, l'IDM repose sur l'utilisation de modèles tout au long du cycle de développement: des modèles abstraits capturant l'essence d'un système spécifiquement au domaine d'application pour lequel il est construit, des modèles de mise en oeuvre pour une technologie cible, etc. La seconde fondation de l'IDM est la notion de transformation de modèle qui permet de traduire un modèle abstrait en un modèle de mise en oeuvre par introduction de détails. Enfin, l'utilisation de la génération de code permet de passer d'un modèle détaillé d'un système à sa mise en oeuvre.
Déroulement du cours
Le déroulement du cours suit la mise en oeuvre d'une approche dirigée par les modèles:
- spécification du domaine d'activité sous la forme d'un métamodèle pour permettre une modélisation spécifique aux besoins métier,
- spécification de la technologie de mise en oeuvre sous la forme d'un métamodèle pour introduire les détails d'implémentation (raffinement) par transformation du modèle métier,
- utilisation de la génération de code pour produire tout ou partie de la mise en oeuvre du système.
Associés au cours, des travaux pratiques permettent aux étudiants premièrement de construire des métamodèles, des transformations de modèles et des générateurs de code, puis dans un second temps de mettre en oeuvre leurs connaissances à l'aide d'outils disponibles sur le marché.
Projet technique / Conférences
Durée de l'enseignement: 140 heures
Résumé :
- Le projet technique consiste en un projet de développement proposé par les équipes de recherche du laboratoire LIFL. Ces projets représentent environ une centaine d'heures. L'évaluation se déroule avec un rapport et une soutenance du projet
- Un cycle de conférence est également proposé aux étudiants. Il leur permet de rencontrer des professionnels de l'informatique et des domaines annexes. Ces dernières années, un architecte logiciel de chez Microsoft a présenté l'architecture .Net, une avocate est venue présenter les lois liées à l'informatique, plusieurs sociétés de services sont venues présenter les métiers informatiques.
Communication dans l'entreprise
Intervenant: Michele Calvat-Duverney / Jean-Marie Lebbe
Durée de l'enseignement: 30 heures
Résumé :
Les compétences visées sont la prise de parole (s'adapter au contexte, aux interlocuteurs, respecter le temps imparti, travailler en fonction d'une stratégie d'objectifs, s'impliquer, établir une relation au public, réagir, répondre aux questions, gérer des supports, improviser) et la rédaction (rédaction synthétique, rédaction classique, rédaction pour la lecture à l'écran, maîtrise des règles de lisibilité, sensibilisation à la notion de qualité rédactionnelle). Les thèmes abordés sont la prise de position, le compte-rendu d'activité, la prise en compte d'un interlocuteur non-spécialiste, la gestion de projets de communication en équipe et les conseils pour les diverses démarches liées à la recherche d'emploi. En plus de ces enseignements les étudiants ont à réaliser un projet de communication par groupe. Ces projets ont généralement pour finalité de mieux faire connaître le Master, ce qui constitue un prétexte pour que les étudiants apprennent à planifier un travail, répartir les tâches, établir et suivre un budget, faire de la recherche de sponsors d'où contacts téléphoniques et mailings, etc.
Un jeu d'entreprise complète la formation avec pour objectifs :
- simuler sur plusieurs périodes l'activité d'une entreprise, et dans des conditions proches de la réalité : achats, production, ventes, négociation, investissements...
- travailler en équipe, respecter des procédures et un calendrier ;
- négocier avec d'autres acteurs.
Le programme de ce jeu est
- utilisation d'un logiciel de simulation économique ;
- utilisation de documents réels : contrats, bilans, budgets...
- analyse et prises de décision ;
- négociation entre équipes ;
- réalisation de challenges.
Forme: 42 h de travaux dirigés et un projet en groupe (au moins 20 h)
Evaluation: les étudiants sont évalués sur les documents réalisés lors du cours, le résultat de leur projet de communication et du jeu d'entreprise.
Anglais
Intervenant: Isabelle Al Haj
Durée de l'enseignement: 30 heures
Résumé :
Après l'acquisition d'une langue de communication générale les années précédentes, en 3ème cycle l'accent est mis sur l'univers de l'entreprise. Les candidats sont mis en situation lors de jeux de rôle et de jeux d'entreprise permettant au futur diplômé d'être opérationnel quelles que soient ses tâches et fonctions à venir. Les thèmes abordés seront, entre autres, l'évolution en entreprise, la manière d'intervenir dans un débat ou de mener un débat afin d'arriver à un accord, la manière de mener des négociations, la manière d'organier des réunions de travail. Les candidats acquérront les outils pratiques nécessaires à la description et à l'analyse de bilans, les techniques de recrutement (écrire et analyser un CV ou une lettre de motivation, préparer un entretien).
Forme: 30 h de travaux dirigés
Evaluation: Le cycle sera validé par l'évaluation d'un rapport écrit ainsi que par l'évaluation d'une prestation orale basée sur un jeu de rôle ayant pour thème une situation typique de la vie d'une entreprise.
Stage en entreprise
Résumé : stage de 3 à 6 mois niveau ingénieur en informatique dans les spécialités de la formation
Forme: stage en entreprise
Evaluation: rapport et soutenance avec l'avis de l'entreprise