Enseignements du parcours IHM (M1-M2) à partir de 2016

     ue tc master informatique
     ue spécialité ihm master

Parcours IHM en Master 1

Théorie des langages et compilation

Objectifs: Acquérir les bases des méthodes de définition et de traitement des langages informatiques : grammaire, sémantique, interprétation, compilation, optimisation. Comprendre la structure d’un compilateur. Savoir mettre en œuvre un traducteur pour passer d’une représentation externe à un code généré pour un langage de programmation, de spécification, de modélisation, de manipulation de données.

Prérequis: Notion de langages, grammaires, automates finis, analyse lexicale, algèbre relationnelle et langages relationnels

Contenu:

  • Principes et généralités sur la compilation, interprète/compilateur.
  • Syntaxe abstraite/concrète, table des symboles.
  • Analyse syntaxique descendante : grammaire LL, procédures de descente récursive.
  • Traduction et génération de code (langage intermédiaire des quadruplets).
  • Stratégies d’optimisation des langages relationnels
    • Règles de transformation des arbres algébriques.
    • Stratégies de recherche énumératives et aléatoires.
  • Analyse ascendante (principe, grammaire LR), génération de code en ascendant.

Réferences:

  • Compilers: Principles, Techniques, and Tools 2nd Edition, A.V. Aho, M. S. Lam, R. Sethi& J.D. Ullman, Ed. Addison Wesley, ISBN 0321486811.
  • Relational Databases and Knowledge Bases, G. Gardarin & P. Valduriez, Ed. Addition Wesley, ISBN 0 -201-09955-1.

Compétences: Maîtriser les principes de la compilation et de l’optimisation afin d’être capable de concevoir et réaliser un traducteur/compilateur et d’intégrer des contraintes pour optimiser le code généré.

Mot-clés: Analyse syntaxique, traduction, optimisation

Modélisation et conception objet

Objectifs: Ce cours traite de la modélisation et de la conception de logiciels complexes. Le cours commence par une sensibilisation aux spécificités du développement des logiciels complexes. Les aspects traités dans ce cours sont la modélisation, son utilisation dans le cadre d’une démarche de développement, la spécification de contraintes afin de rendre les modèles cohérents et la conception au moyen de patrons de conception. Dans ce cours, nous nous intéressons à la modélisation en utilisant le langage UML et en mettant l’accent sur les aspects pratiques de la modélisation à travers des exercices pointus et des TPs et sur l’utilisation du langage dans le cadre d’une démarche de développement complète.

Prérequis: Programmation orienté-objet, Notions de UML (diagrammes de classes et de séquence)

Contenu:

  • Gestion de la complexité des logiciels, techniques de gestion de la complexité (décomposition vs. abstraction).
  • Démarche de développement (utilisation d’un processus au long des enseignements de modélisation et conception).
  • Modélisation avec UML
    • Modélisation des exigences.
    • Modélisation structurelle.
    • Introduction à la spécification de contraintes avec OCL.
    • Modélisation du comportement.
  • Introduction à la transformation de modèles.
  • Conception à base de patrons
    • introduction aux patrons de conception.
    • description et classification des patrons de conception.
    • principaux patrons structurels et comportementaux : Stratégie, Adaptateur, Facade, Observateur, Décorateur...
    • Introduction aux patterns créationnels.

Réferences:

  • B. Bruegge. OO Software Engineering Using UML, Patterns and Java, Pearson, 2009.
  • P. Roques. UML2 par la pratique, Eyrolles, 2009.
  • J Warmer, A Kleppe The OCL, Addison Wesley 2003.
  • E. & E. Freeman, Head First Design Patterns, O’Reilly, 2005.

Compétences:

  • Concevoir un logiciel orienté objet
  • Apporter des éléments objectifs et justifiés à la prise de décision dans le cadre du développement d’un logiciel complexe
  • Savoir quand et comment exploiter un patron de conception

Mot-clés: modélisation, conception, démarche de développement, spécification des contraintes, OCL, transformation de modèles, patron de conception, flexibilité logicielle

Algorithmique Avancée : Recherches complètes et incomplètes de solutions optimales

Objectifs:

  • acquérir les bases de différents formalismes permettant de modéliser un problème de recherche de solution optimale.
  • maîtriser des classes d’algorithmes adaptées à chaque formalisme et différencier les recherches dans les cas discrets ou continus, et les recherches complètes ou incomplètes.

Prérequis: Graphes et Structures de données.

Contenu:

  1. Structure de Données efficaces, notion de complexité amortie (accès/construction)
    • Récapitulation des structures de données (tas, B-arbre, arbres rouge-noir)
    • Exemple des kd-trees pour accéder aux k+proches voisins
  2. Problèmes d’optimisation à algorithmes polynomiaux
    • Programmation Linéaire (PL) en nombre réels: étude de l'algorithme du Simplex
    • Flots : problème de répartition optimale de la circulation d'une quantité dans un réseau.
  3. Méthodes de recherche locale sans garantie (incomplètes) : problèmes d'optimisation combinatoire à solutions discrètes
    • Voisinage (une affectation complète qu’on fait évoluer)
    • Algorithme génétique (plusieurs affectations complètes (population)) avec meta-heuristiques (pour éviter les optimum locaux)

TP + projets maison:

  • Codage d’un kd-tree.
  • Codage de l’alogrithme de Ford-Fulkerson et utilisation des outils PL.
  • Modélisation de petits problèmes en Flots et PL.
  • Codage d'un algorithme de recherche locale.

Réferences:

  • Algorithmique, Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein.
  • Collection: Sciences Sup, Dunod 2010 - 3ème édition - 1296 pages - EAN13 : 9782100545261

Compétences:

  • Evaluer la complexité amortie de l’accès/construction des données.
  • Formaliser un problème décrit en langage naturel en termes de contraintes linéaires ou de flots.
  • Choisir et implémenter un algorithme de recherche local approprié.

Mot-clés: complexité amortie, tas, B-arbre, arbre-kd, Simplex, Flots, Recherche Locale

Parallélisme et répartition

Objectifs: L’objectif de cette unité d’enseignement est de rappeler et d'introduire les fondements de base du parallélisme (Données, Traitements) et de la répartition.

  • Construction de modèles fiables et performants.
  • Les propriétés comportementales des différents modèles sont étudiées à travers une classification en propriétés de sûreté et propriétés de vivacité.
  • Gestion de la cohérence des données et évaluation de la performance.
  • Les modèles du parallélisme (Synchrone, Asynchrone).
  • Les modèles de la répartition (Client/Serveur, Jeton circulaire, Fragmenté, Dupliqué).
  • Les mécanismes de coopération, de communication et de synchronisation (conditions, RdV).

Prérequis: Programmation concurrentes, processus, threads, synchronisation, variables partagées.

Contenu:

  • Parallélisme /données (12H= 2HC + 6hTD + 4HTP)
  • Gestion de la cohérence des données dans une architecture à mémoire partagée (2HC + 2HTD).
  • Analyse des performances d’un programme parallèle : évaluation des coûts de communication/synchronisation, estimation de l’accélération, comparaison d’algorithmes – mise en œuvre en TP avec OpenMP (4HTD + 4TP).
  • Parallélisme/activité, répartition, Modèle Synchrone (introduit mais développé en spécialités), Modèle Asynchrone, Synchronisation/Communication (38H= 12HC+ 14HTD+ 12HTP).
  • Modélisation en RdP : sensibilisation à la représentation des activités parallèles, l’interaction (synchrone, asynchrone), diffusion et non déterminisme, (2HC, 4HTD).
  • Modéliser la composition (CCS , LOTOS) (4HC, 4HTD).
  • Variables partagées et condition de synchronisation : Mettre en œuvre des problèmes comme les P/C, L/R en termes de Moniteur de Hoare 2HC, 6HTD, 6HTP.
  • Idées de base de l’algorithmique répartie, Envoie de message : Concept de RdV : mettre en œuvre des exemples style, diffusion, élection, terminaison (4HC- 6HTP).

Réferences:

  • Fundamentals of Parallel Multicore Architecture, de Yan Solihin (Chapman and Hall/CRC).
  • Principles of Concurrent and Distributed Programming, Addison-Wesley, 2006.
  • Communication and Concurrency (Prentice Hall Int. Series in Computer Science), 1995, Robin Milner.

Compétences:

  • Prendre de bonnes décisions pour modéliser et concevoir des systèmes parallèles et répartis.
  • Choisir le modèle adapté au problème et au support.
  • Construire un système fiable et performant (par modélisation suivi par implémentation).

Mot-clés: Architectures parallèles, Modèles parallèles, Modèles répartis, performance, cohérence de données, expressions et conditions de synchronisation

Modélisation et calcul scientifique

Objectifs: Acquérir des outils mathématiques afin de modéliser et de résoudre des systèmes physiques. Les notions d'optimisation sans et avec contraintes et les algorithmes associés seront présentés. De plus, l'UE permettra tester ces outils sur des systèmes physiques.

Prérequis: Calcul Matriciel (L2), Méthodes Numériques (L1)

Contenu: Optimisation : Modélisation et Résolution:

  1. Fonctions de plusieurs variables - généralité, gradient, hessienne.
  2. Introduction à l'analyse convexe et l'optimistion, algorithmes numériques.
  3. Cas particuliers : problèmes aux moindres carrés totaux et ordinaires.
  4. résolutions de systèmes linéaires : méthodes directes et itératives.

Réferences:

  • Introduction à l'analyse numérique matricielle et à l'optimisation, P. Ciarlet, Dunod.
  • Introduction à l'optimisation et au calcul semi-différentiel, M. Delfour, Dunod.

Compétences: Savoir modéliser et résoudre numériquement et algorithmiquement un problème physique

Mot-clés:Optimisation, modélisation, systèmes linéaires, algorithmes numériques

Travaux d'initiation à la recherche

Objectifs:

  • Découvrir les activités de recherche scientifique.
  • Découvrir le métier de chercheur en Informatique.
  • Approfondir des connaissances sur un sujet de recherche.
  • Savoir travailler en équipe.

Prérequis: Aucun

Contenu: Les cours abordent les sujets suivants:

  • Introduction à la recherche (présentation des sociétés savantes, de l’organisation et de l’évaluation de la recherche).
  • Principes de standardisation et certification.
  • Présentation synthétique et très rapide d'un sujet de recherche avec la technique appelée "Elevator pitch".
  • Principes de la rédaction d'articles de recherche (état de l'art, intégration de citations et références).

Une séance de TD est consacrée à la recherche bibliographique.

Un travail de recherche, en groupe de 3 ou 4 étudiants encadrés par un chercheur ou enseignant-chercheur, permet de mettre en oeuvre les connaissances acquises pendant les cours et TD. Ce travail consiste à analyser un sujet de recherche, effectuer une recherche bibliographique, faire la synthèse de l'état de l'art et la restituer dans un rapport prenant la forme d'un article de recherche.

Réferences: http://www.acm.org/

Compétences:

  • Savoir décrire le fonctionnement de la recherche (peer-review, conférences...).
  • Savoir mener une recherche bibliographique.
  • Savoir construire un argumentaire scientifique.
  • Savoir intégrer des citations et des références dans un rapport.

Mot-clés:Recherche scientifique, état de l'art, rédaction d'articles

Projet

Objectifs:

  • Savoir participer à la réalisation organisée d’un projet informatique significatif, et mettant en œuvre des pratiques méthodologiques.
  • Savoir travailler en équipe.
  • Acquérir les compétences pratiques et méthodologiques utiles à la réalisation des travaux qui seront confiés lors du stage éventuel.

Prérequis: Aucun

Contenu: Le cours présente les principes fondamentaux de réalisation des projets informatiques. L’essentiel de l’Ue repose sur la réalisation par un groupe d’étudiants d’un projet significatif proposé par un client. Les clients sont des enseignants-chercheurs du laboratoire IRIT, des étudiants en Informatique ou des partenaires issus de l'industrie. Le projet consiste en une étude ou un développement de logiciel. Les groupes choisissent des projets, de préférence en rapport avec leur parcours. L’attribution d’un projet à un groupe est laissée à l’initiative du client. Des TD sont proposés pour aider à la mise en œuvre des concepts abordés lors de la partie de cours. Les groupes d’étudiants effectuent une recette de leur projet avec leur client, et ils présentent leur travail lors d’une soutenance orale.

Plan du cours :

  1. Projets Informatiques (nature et enjeux, acteurs et rôles, éléments incontournables de maîtrise de projet).
  2. Qualité (contenu d’un plan qualité, exigences qualité, normes et standards).
  3. Organisation des projets (définition d’une démarche de développement, approches possibles pour un développement nouveau, maintenance).
  4. Visibilité (suivi de projet, bilan).

Réferences:

  • ISO/IEC DTR 29110-5-6-2.
  • NF X50-120.

Compétences:

  • Constituer une équipe de développement pour répondre à une offre client.
  • Répondre à une offre de client.
  • Appliquer le cycle de vie logiciel adapté au projet choisi.
  • Assurer le suivi et la visibilité du projet.

Mot-clés:Projet logiciel, cycle de vie, qualité, organisation, suivi, bilan

Conception Informatique de Systèmes Interactifs

Objectifs: Maitriser les principes de la conception informatique et de la modélisation des systèmes interactifs. Etre capable de proposer une architecture logicielle pour la partie interactive des applications :

  • Architecturer les applications interactives pour garantir l'utilisabilité, la modifiabilité et la fiabilité.
  • Concevoir une application interactive en utilisant le design pattern MVC (Model View Controler) et savoir le relier à l'architecture logicielle.
  • Modéliser entièrement la partie interactive d’une application interactive (entrées, sorties et comportement).
  • Valider la fiabilité d’une application interactive (test logiciel et vérification de propriétés).
  • Mettre en œuvre ces concepts et principes dans un environnement de programmation par événement.

Prérequis: Programmation orientée objet (notamment Java), bibliothèque Java SWING et programmation par événement, modélisation par automates.

Contenu:

  1. Présentation des principes architecturaux des systèmes interactifs (modèle de Seeheim et modèle ARCH).
  2. Présentation des principes de modélisation des systèmes interactifs à base d’automates à états finis étendus.
  3. Présentation du design pattern MVC, de sa mise en œuvre en Java et de son intégration dans l'architecture ARCH.
  4. Implémentation à base de modèle dans un environnement de programmation par événement.
  5. Description de propriétés de systèmes interactifs et vérification sur modèles. Comment gérer utilisabilité et fiabilité dans un même cadre méthodologique.
  6. Mise en œuvre des principes de validation : vérification de propriétés, définition et mise en œuvre de tests sur des systèmes interactifs.

Réferences:

  • Buxton, W., 1990. A three-state model of graphical input. IFIP TC13 Conference on HCI, North-Holland Publishing Co., 449-456.
  • L. Bass, P. Clements, R. Kazman, Software Architecture in Practice, (3rd edition), Addison-Wesley, 2012.

Compétences:

  • Savoir modéliser des applications interactives.
  • Savoir architecturer des applications interactives.
  • Savoir tester et vérifier des propriétés sur des applications interactives.

Mot-clés: modélisation de systèmes interactifs, fiabilité, utilisabilité, vérification, test

Conception Centrée Utilisateur

Objectifs: Cette UE a pour objectif de permettre aux étudiants de maitriser les principes de conception, de programmation et d'évaluation d'interfaces homme-machine permettant de produire des systèmes informatiques utilisables. Les étudiants seront capables de proposer une démarche de conception centrée utilisateur pour le développement des applications informatiques.

Prérequis: Aucun

Contenu:

  • Présentation des concepts sur l’interaction homme machine tel que l’utilisabilité, l’accessibilité, la ""user experience"" (UX), …
  • Présentation des concepts fondamentaux de la Conception Centrée Utilisateurs (User Centered Design.
  • Présentation de mise en œuvre de technique d'analyse et modélisation de tâches utilisateurs.
  • Mise en œuvre des techniques de prototypage de l’interface utilisateur
  • Présentation et mise en œuvre de règles connaissances ergonomique $.
  • Présentation des principes et des méthodes d’évaluation de l’utilisabilité avec l’expérimentation pratique sur les prototypes réalisés précédemment.
  • Techniques d’interaction.
  • Justification de la démarche centrée utilisateur par le coût.

Réferences:

  • NIELSEN, J. Usability Engineering. 1993. Morgan Kaufmann Publishers. 362 pages. ISBN-10: 0125184069.
  • DIX, A., FINLAY, J., ABOWD, G., BEALE, R. 2003. Human-Computer Interaction (3rd Edition). Prentice-Hall, Inc., USA.

Compétences:

  • Savoir mettre en place une démarche centré utilisateurs.
  • Savoir faire des maquettes de basse, moyenne et haute-fidélité.
  • Savoir appliquer des recommandations ergonomiques.
  • Expérimenter des méthodes d’évaluation de l’utilisabilité.

Mot-clés: Utilisabilité ; prototypage d'interface utilisateurs; modélisation des utilisateurs ; démarche de conception centrée sur les besoin utilisateurs ;

Web Services/XML

Objectifs: Ce cours a pour objectif de présenter les méthodes et outils permettant de gérer l'interopérabilité d'applications informatiques distribuées et hétérogènes. La première partie du cours est consacrée à la représentation de données structurées à l'aide d'XML : modélisation via différents types de grammaires, langages de transformation et d'interrogation. Dans la seconde partie, l'objectif est d'exploiter les outils précédents dans le cadre de l'interopérabilité comme format universel d'échange. En particulier, l'approche par services web est mise en avant (aspects architecturaux, conception, développement et publication).

Prérequis: Programmation orientée objet (notamment Java), connaissances élémentaires de bases de données et de programmation distribuée (modèle client-serveur)

Contenu:

  1. Technologies XML pour créer des documents structurés
    • Langages de balisages structurés, normes.
    • Modèles de données XML : DTD et schémas XML.
    • Transformations et extractions d’informations : XSLT, XPath .
    • API Java pour la représentation de doc XML : SAX, DOM, StAX.
  2. Interopérabilité dans l'approche orientée services
    • Introduction aux Web Services.
    • Services web étendus : WSDL, SOAP, UDDI.
    • Services web REST.
    • Méthodologie de conception : approche contract-first et code-first.

Réferences:

  • Neil Bradley : The XML companion, Addison-Wesley
  • Spring : https://spring.io/docs

Compétences:

  • Savoir modéliser des formats d'échange.
  • Savoir produire, consommer, transformer des données structurées.
  • Savoir décrire, développer, publier et consommer un service WEB.

Mot-clés: interopérabilité, données structurées, services web

Management de projets informatiques

Objectifs:

  • Connaître la définition d'un projet informatique.
  • Connaître les principaux processus de développement, leurs avantages et inconvénients ainsi que le cadre dans lequel ils s'appliquent.
  • Connaître les principales méthodes d'estimation de charge et savoir appliquer un chiffrage analytique sur un projet simple.
  • Connaître les enjeux de la planification et savoir représenter un planning selon les diagrammes Gantt et PERT.
  • Connaître les éléments principaux du suivi de projet, de la gestion des risque ainsi que d'une démarche qualité.

Prérequis: Aucun

Contenu:

  1. Introduction à la gestion de projet informatique
  2. Processus de développement
    • Cycle en cascade et cycle en V
    • Modèle en spiral
    • Unified process
    • Méthodes agiles
  3. L'estimation des charges
    • Chiffrage analytique
    • Autres approches (DELPHI, points de fonction, Cocomo)
  4. Le budget
    • Prise en compte des profils
    • Prise en compte de la marge
  5. La planification
    • Séquencement des activités
    • Chemin critique
    • Représentation de planning (Gantt, PERT)
  6. Le suivi de projet
    • Suivi de la charge, du budget et du planning
    • Suivi des actions
    • Reporting
  7. La gestion des risques
    • L'identification et la qualification du risque
    • Plan d'action
    • Suivi des risques
  8. Démarche qualité
    • Normes et qualité
    • Qualité du logiciel
    • Qualité du processus

Réferences:

  • Guide PMBOK©.
  • Gestion de projet en SSII, Michel Winter.

Compétences:

  • Connaître les grands principes de la gestion de projet.
  • Savoir appliquer un chiffrage analytique sur un projet simple.
  • Savoir représenter un planning selon les diagrammes Gantt et PERT.

Mot-clés: Gestion de projet informatique, processus de développement, estimation de charges, planification, gestion des risques.

Développement Collaboratif, gestion de configuration, Qualité

Objectifs: Connaître la définition et le rôle de la gestion de configuration (GeCo) dans un projet informatique.

Savoir mettre en oeuvre les pratiques les plus courantes de GeCo en environnement Java :

  • Savoir utiliser un outil de build indépendant de l'environnement de développement capable de gérer en amont les dépendances et en aval les artefacts produits ; par exemple, Maven ou Gradle.
  • Savoir utiliser un outil de gestion de version de code source décentralisé tel que Git.
  • Savoir utiliser un outil permettant le suivi des exigences et savoir lier ces exigences aux modifications du code source effectuées pour répondre à ces exigences.
  • Savoir rechercher des librairies Open Source dans un repository d'artefacts publics.
  • Connaître le rôle d'une plateforme d'intégration continue.

Prérequis: Savoir développer en Java.

Contenu:

  1. Introduction à la gestion de configuration
  2. Partager techniquement le code source avec Git
    • Approches et outils pour la gestion de version de code source
    • La gestion de code source avec Git
  3. Construire un projet de manière uniforme
    • Introduction à Maven
    • Gestion des dépendances
    • Goals et phases Maven
  4. Gérer les exigences
    • Les référentiels d'exigences
    • Cercle vertueux environnement de développement, gestion de code source et gestion des exigences
  5. Garantir la qualité du code
    • L'analyse statique de code
    • Les tests unitaires et les tests d'intégration
    • Couverture du code par les tests
  6. Intégration et déploiement continus
    • Exemple de workflow
    • Plateforme d'intégration continue
  7. Le plan de gestion de configuration
    • Introduction à la gestion de configuration "normalisée"
    • Les items de configuration et leur repositories associés
    • Rédiger un plan de gestion de configuration

Réferences:

  • IEEE Standard for Configuration Management in Systems and Software Engineering, IEEE Std 828TM-2012

Compétences:

  • Savoir développer en utilisant un outil de gestion de version de code distribué.
  • Savoir mettre en œuvre différentes pratiques permettant de vérifier certains critères de qualité lors du développement d'un logiciel.

Mot-clés: Gestion de configuration, développement collaboratif, Git, Maven, Gradle, exigences, tests, analyse statique de code, qualité.

Composants, Design Patterns : Composition et Flexibilité

Objectifs: Cette UE a pour objectif de présenter la problématique de la réutilisation, d’étudier les principes de la conception et à la programmation à base de composants logiciels, et de renforcer les compétences acquises dans l’UE MCOO en matière de conception à base de patrons réutilisables

Prérequis:

  • Modélisation, conception et programmation objet, UML.
  • Notion de design pattern et principaux design patterns (Stratégie, Adaptateur, Observateur, Décorateur...).

Contenu:

  1. Principes, modèles et ingénierie des composants logiciels
    • Composants, connecteurs, interfaces fournies et requises, composition
    • Configuration, reconfiguration
    • Modèles de composants « académiques » et « industriels »
    • Plateformes à composants, déploiement et administration
    • Les composants dans UML2
    • Ingénierie des composants
  2. Compléments sur les design patterns
    • Rappels sur les design patterns
    • Compléments sur les design patterns comportementaux et structurels
    • Design patterns créationnels
    • Composition de patterns et interactions

Réferences:

  • Software Engineering (10th edition), I. Sommerville, Pearson, 2016.
  • Design Patterns pour Java, L. Debrauwer, ENI, 2009.

Compétences:

  • Concevoir et mettre en œuvre une application par assemblage de composants logiciels réutilisables.
  • Construire des composants logiciels réutilisables.
  • Concevoir une application complexe à base de design patterns.
  • Composer les design patterns.

Mot-clés: Composant logiciel, réutilisation, interfaces fournies et requises, conception, design pattern

Java EE

Objectifs: L'objectif de ce cours est d'acquérir une connaissance générale sur les architectures multi-couches et la plateforme Java EE ainsi que les technologies associées (servlet, JSP, persistance d'un mapping objet/relationnel,etc).

Prérequis: Programmation orientée objet (notamment en Java), modélisation UML, éléments du langage HTML

Contenu:

  1. Eléments d'architecture répartie
    • client-serveur vs.n-tier
    • MVC1 et MVC2
  2. La plateforme Java EE
    • Cycle de vie d’une Servlet et d’une JSP
    • Éléments de syntaxe JSP
    • ServletRequest, ServletResponse et RequestDispatcher
    • Les scopes request, session et application
    • Les évènements du cycle de vie de l’application
    • Packaging et déploiement d'une application
    • Accès aux données avec JDBC,
    • Introduction JPA.

Réferences:

  • Oracle Java EE 7 : http://docs.oracle.com/javaee/7/index.html

Compétences:

  • Savoir décrire la plateforme Java EE.
  • Développer un projet simple pour la plateforme Java EE à base de servlets et JSP suivant le modèle MVC2.
  • Développer un projet simple Java EE se connectant à une base de données relationnelle.

Mot-clés: application répartie, spécification Java EE, MVC

Professionalisation (Stage ou Bureau d'étude)

Objectifs: Le stage ou le Bureau d'études de fin de Master1 a pour but de mettre les étudiants en situation réelle, en entreprise ou en laboratoire, pour connaître et approfondir le monde professionnel orienté industrie ou recherche ; de mettre en application les connaissances acquises au cours de leur cursus ; de les préparer au stage long de Master2 et de favoriser la future insertion professionnelle en apportant une expérience indéniable aux étudiants.

Prérequis: Fonction du sujet, en cohérence avec les enseignements du parcours DL ou IHM

Contenu: Le travail sera orienté pour l'essentiel vers du développement et une réalisation concrète bien définie. La durée sera de 12 semaines minimum à temps plein à partir du XXXXXXXX.

Compétences: Cette UE permettra aux étudiants d'acquérir ou d'améliorer les capacités d'autonomie, de communication, de travail en équipe, de rédaction de documents.

Parcours IHM en Master 2

Mise à niveau

Objectifs: Mettre à niveau les étudiants du M2 IHM en fonction des enseignements suivis avant le M2. Permettre aux étudiants n'ayant pas les prérequis de suivre les enseignements du M2 IHM.

Prérequis: Aucun

Contenu: Le contenu de cette mise à niveau dépendra des lacunes des étudiants arrivant au M2 IHM. Ce contenu sera limité aux prérequis principaux du M2 IHM:

  • Introduction à l'IHM.
  • Principes de la conception centrée utilisateur.
  • Principes de la modélisation et de la vérification de systèmes interactifs.
  • Protoypage itératif.

Réferences:

  • Human Computer Interaction, 3rd Edition Alan Dix, Janet Finlay, Gregory Abowd, Russell Beale Prentice Hall, 2004. ISBN 0-13-046109-1

Compétences: Compétences liées à l'acquisition des bases nécessaires à la compréhension des enseignements en M2 IHM.

Mot-clés: Interaction Homme-Machine

Facteurs Humains et Méthodes Expérimentales

Objectifs: Savoir décrire le comportement humain, ainsi que son schéma cognitif, durant les interactions avec un système interactif. Etre experts en matière de développement de supports pour décrire des groupes utilisateurs (profils, personas, user stories et scenarios). Savoir évaluer le comportement humain et peuvent identifier les discordances (e.g. problèmes d'utilisabilité) qu'il peut y avoir entre un système conceptualisé et le comportement humain, à un niveau expert. Etre capables d'identifier les limitations et les défauts d'un ensemble de méthodes et peuvent sélectionner l'ensemble adéquat de méthodes pour différents buts et domaines applicatif (e.g. mobile). Savoir communiquer les problèmes identifiés (e.g. aux designers) et fournir des solutions à ces problèmes d'utilisabilité.

Prérequis: M1 IHM: (notion et application) développement centré utilisateur, évaluation heuristique, tests utilisateur, utilisabilité, statistiques simples.

Contenu:

  • Concepts clés pour aider les humains utilisant des systèmes interactifs incluant: utilisabilité, expérience utilisateur, sûreté, sécurité, confiance, confidentialité, fun, persuasion, communication/collaboration.
  • Modèles humain et perception. Présentation du lien entre les groupes utilisateurs , les lignes directrices et les recommandations pour prendre en compte l'utilisabilité et l'expérience utilisateur. Présentation des moyens de description des humains (SRK, le Modèle du Processeur Humain, ...) et de leurs comportements (erreurs, ...).
  • Contexte, Utilisateur et Tâches: Présentation des techniques d'analyse des utilisateurs et de leurs comportements, de comment décrire les utilisateurs (segmentation de groupes utilisateurs). Vue d'ensemble des méthodes pour faire une analyse contextuelle. Présentation des méthodes et outils pour l'analyse de tâches et la modélisation de tâches.
  • Evaluation et approche par les sciences sociales (méthodes expérimentales): Vue d'ensemble des méthodes de sciences sociales classiques (interview, questionnaire ...) et des méthodes d'évaluation de l'utilisabilité et de l'expérience utilisateur (tests utilisateur, ...).

Réferences:

  • Alan Dix, Janet E. Finlay, Gregory D. Abowd, and Russell Beale. 2003. Human-Computer Interaction (3rd Edition). Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
  • JoAnn T. Hackos and Janice C. Redish. 1998. User and Task Analysis for Interface Design. John Wiley & Sons, Inc., New York, NY, USA.
  • Jonathan Lazar, Jinjuan Heidi Feng, Harry Hochheiser. 2009. Research Methods in HCI. Wiley, New York, NY, USA.

Compétences:

  • Savoir différencier/classifier les utilisateurs, analyser et décrire les tâches des utilisateurs.
  • Connaitre plusieurs méthodes d'évaluation.
  • Identifier et résoudre les problèmes d'utilisabilité en respectant les contraintes et les objectifs.
  • Utilisabilité, Ressenti utilisateur, Cognition, Perception et motricité; Contexte, modèles de tâches, Evaluation, Questionnaire, Interview, expérimentation.

Génie des Systèmes Interactifs

Objectifs: Produire des experts dans le domaine de l’ingénierie des systèmes interactifs.

  • Architecturer les applications interactives pour garantir l'utilisabilité, la modifiabilité et la fiabilité.
  • Etre capable de structurer une argumentation détaillée sur les options étudiées lors de la conception ainsi que sur les critère et les facteurs qui ont permis d’effectuer les choix parmi les alternatives.
  • Modéliser entièrement la partie interactive d’une application interactive (entrées, sorties et comportement) incluant aussi les aspects pilotes de périphériques, techniques d’interaction et application de grande taille.
  • Etre expert dans la planification et la conduite de projet de conception centrée utilisateur de systèmes interactifs.
  • Etre expert dans l’ingénierie des exigences d'utilisabilité.

Prérequis: Programmation par événement, conception de systèmes interactifs par automates, gestion de projets informatiques, conception centrée utilisateur.

Contenu:

  • Part 1: Ingénierie des Systèmes Interactifs
    • Processus de conception de systèmes interactifs critiques et normes associées (D0 178-C, CS 25 1302).
    • Concepts et principes de Reliability Engineering et Safety Engineering Introduction aux techniques et outils associés.
    • Concepts, méthodes et outils de sureté de fonctionnement pour les systèmes interactifs.
    • Description formelle de systèmes interactifs gestion multifenêtre, application entière, modélisation de techniques d’interaction vues ailleurs e.g. pie menu et marking menu) V&V et test.
    • Principes, techniques et outils de Design rationale.
    • Conférences d’experts.
  • Part 2: Management de projet et ingénierie des exigences des systèmes interactifs
    • Rappels sur les processus de management de projet (démarrer, planifier, exécuter, suivre, clôturer).
    • Planification et suivi d'une conception centrée utilisateur selon la norme ISO 9241-210.
    • Besoins et exigences utilisateurs, rédaction des exigences d'utilisabilité, mise en place du référentiel, maintenance du référentiel, avec utilisation des résultats des enquêtes contextuelles, des scénarios, justification des besoins/traçabilité. Bilan de projet et livraison.

Réferences:

  • Palanque, Philippe and Paterno, Fabio. Formal Methods in Human-Computer Interaction. Springer-Verlag Berlin and Heidelberg GmbH & Co. K, 1997.
  • Bass Len, Clements Paul, Kazman Rick. Software Architecture in Practice, Addison Wesley 2013.
  • H. Beyer and K. Holtzblatt. 1998. Contextual Design: Defining Customer-Centered Systems. Morgan Kaufmann.
  • Elizabeth Buie and Dianne Murray. 2012. Usability in Government Systems: User Experience Design for Citizens and Public Servants. Morgan Kaufmann.

Compétences:

  • Savoir gérér un projet pour assurer la présence de propriétés conflictuelles (utilisabilité, fiabilité, sécurité, ...).
  • Savoir décrire à l'aide de modèles chacun des composants d'un système interactif.
  • Savoir rationaliser la conception et le dévelopement d'un systèmes interaction en justifiant les options retenues par rapport à des critères mesurables.
  • Savoir mettre en place et conduire un processus itératif centré utilisateur de développement de systèmes interactifs.
  • Savoir formaliser les besoins des utilisateurs sous forme d'exigences.
  • Savoir gérer l’évolution des besoins et exigences utilisateurs.

Mot-clés:Gestion de projets centrée utilisateur, Ingénierie des systèmes interactifs, fiabilité et modifiabilité, architecture logicielle et matérielle

Recherche Scientifique et IHM

Objectifs:

  • Savoir rédiger un état de l’art sur un sujet donné dans le domaine de l'IHM.
  • Savoir intégrer des citations et des références dans un rapport.
  • Savoir citer des laboratoires et leurs thèmes de recherche en IHM.
  • Savoir décrire les activités de recherche effectuées dans chacune des équipes de recherche de Toulouse et des environs.
  • Savoir décrire les différences de gestion de la recherche en IHM entre les grandes entreprises et les PME.
  • Savoir décrire le fonctionnement de la recherche (peer-review, conférences, journaux...).
  • Savoir citer les associations, conférences et thèmes de l'IHM.
  • Savoir décrire les fonctions du métier de chercheur et les critères d'évaluation de la recherche.
  • Savoir utiliser les sources bibliographiques dans le domaine de l'IHM.

Prérequis: Aucun

Contenu:

  • Présentation des sociétés savantes, de l’organisation et de l’évaluation de la recherche, application à l’IHM (conférences, journaux, laboratoires…), innovation et propriété intellectuelle, crédit impôt recherche.
  • Recherche documentaire (bibliothèque).
  • Présentation des équipes de recherche en IHM des labos publics de la région toulousaine: LII, ISAE, ICS, ELIPSE.
  • Tour d’horizon des labos de recherche en IHM en Europe et dans le monde.
  • R&T IHM en entreprise.
  • Tutorat sur l’état de l’art (2 séances par groupe avec remise des notes par groupe).
  • Ecriture scientifique (écriture de l’état de l’art).
  • Remise commune des évaluations (dépôt d’une nouvelle version corrigée par les étudiants à la suite des évaluations).
  • Introduction.

Réferences:

  • Le métier de chercheur. Regard d'un anthropologue. Bruno Latour. INRA Editions, 2001.

Compétences:

  • Comprendre l'organisation de la recherche et le métier de chercheur.
  • Distinguer les activités de recherche scientifique académique et industrielle.
  • Savoir mener un travail d'approfondissement de connaissances sur un sujet.

Mot-clés:Recherche scientifique en IHM, état de l'art, rédaction d'articles de recherche

Techniques d'Interaction et Domaines d'application

Objectifs: Le but de cette UE est de présenter les développements récents en termes de techniques d’interaction et d’approfondir des domaines d’application particulièrement porteurs. Les objectifs sont :

  • Maitriser le corpus de connaissance des techniques d'interaction et savoir les exploiter dans le cadre d'une conception.
  • Maitriser les concepts et technologies IHM liés à des domaines spécialisés, qu’ils soient matures (outils collaboratifs, outils pour la programmation, divertissement, mobile, environnement 3D, visualisation d’information) ou émergents (pervasif (Internet of things), persuasif, robotique, recommandation, suppléance).
  • Maitriser la programmation d’une application multimodale.

Prérequis:

  • Connaitre les différents périphériques d’entrée et sortie.
  • Savoir sélectionner et appliquer les règles ergonomiques selon le contexte d’utilisation.

Contenu:

  • Introduction du vocabulaire précis par rapport à l'état de l'art scientifique pour décrire les techniques d’interaction susceptibles d'impacter la conception d'une application interactive.
  • Différentes types de techniques d’interaction seront étudiées au sein de cette U.E : manipulation directe, manipulation instrumentale, interaction multitouch, vocale, gestuelle, mid air, tangible, ambiant, multimodalité en entrée et sortie du système. Ces différentes techniques seront implémentées et/ou appliquées dans le cadre de la conception d’une application interactive.
  • De même plusieurs domaines présentant des problématiques IHM spécifiques seront présentés. Nous distinguerons les domaines dits « matures », c’est-à-dire déjà fortement implantés dans les applications grand public ou métier (mobile, collaboratif, visualisation de grandes quantités d’information, environnement 3D, etc.) et les domaines émergents tels que internet of things, les robots, les applications pervasives, les systèmes de suppléances. Il s’agira à chaque fois de présenter les concepts IHM liés à la spécificité de ces domaines ainsi que les technologies utilisées pour répondre à ces problématiques.

Réferences:

  • Kortum, P. (2008) HCI Beyond the GUI: Design for Haptic, Speech, Olfactory, and Other Nontraditional Interfaces, ISBN: 978-0-12-374017-5.

Compétences:

  • Maitriser la programmation d’une technique d’interaction en utilisant les technologies adaptées.
  • Maitriser les aspects IHM associés à un domaine spécifique.

Mot-clés:modalité d'interaction, geste, tactile, multimodalité, tangible, ambiant, multitouch, mobile, environnement 3D, visualisation d’information, collaboratif

Technologies et Techniques pour les Systèmes Interactifs

Objectifs: L’UE TTSI vise à amener les étudiants à maîtriser les technologies et les techniques associées à la mise en œuvre de systèmes interactifs, au développement d’applications web interactives, au prototypage d’applications interactives et au développement par composants :

  • Maîtriser l'implémentation des modèles des services standards d'interface.
  • Maîtriser le développement des IHM pour leur web, leurs domaines d’application et leurs limites.
  • Maîtriser les techniques permettant le prototypage rapide d’applications interactives (mobiles, multitouch, web, standard, critique...).
  • Maîtriser l’approche de développement de systèmes interactifs par composants, ses principes et les différences par rapport aux approches à objets.

Prérequis: L’ensemble de ces cours nécessitent une connaissance forte de la conception et de la programmation par objets, ainsi que des compétences en développement web.

Contenu:

  • Maîtriser l'application des Design Patterns essentiels de l’IHM (MVC, PAC, State, Visitor, Command...) pour implémenter les services standards des systèmes interactifs (copier/coller, undo/redo, interruption des actions longues…).
  • Apprendre les principes de l’approche composant pour l’IHM (avantages, inconvénient et différences par rapport à l’approche objet). Présentation de modèles de composant (Corba-CM, Java Beans, Qt, .Net). Les techniques de mise en œuvre des composants.
  • Langages pour la partie “client” des applications web (javascript, DHTML, CSS, Flash…), cas d’application et architecture logicielle. Middleware : AJAX, architectures orientées‐service, SOAP, REST. Interaction avancée sur le web : manipulation directe, interaction graphique, etc.
  • Utilisation du prototypage logiciel pour aider à la conception, l’évaluation et la communication. Apprendre les outils dédiées à des domaines spécifiques et les langages associés (cas du mobile, multitouch, web, applications standards, applications critiques...).

Réferences:

  • Constantine, L. L., Lockwood, L. A. D. (1999), Software for Use: A Practical Guide to the Models and Methods of Usage‐Centered Design. Addison‐Wesley.
  • Component Software, C. Szyperski, Prentice Hall, 2nd edition 2002.
  • Jablonski, S., Petrov, I., Meiler, C., Mayer, U. Guide To Web Application And Platform Architectures. Springer Verlag (2004).
  • Protoyping development and tools M. Beaudouin‐Lafon, W. E. Mackay, in J.A. Jacko and A. Sears, editors, Human Computer Interaction Handbook, pp 1006‐1031 LEA.

Compétences: Maîtriser l'implémentation des services d'interface standards. Architecturer une IHM dans une approche à base de composant. Maîtriser la mise en œuvre d'applications web complexes. Maîtriser les environnements de prototypage.

Mot-clés:UML et design patterns pour l’IHM, programmation d’applications interactives par composants, prototypage de systèmes interactifs, applications web interactives

Design de systèmes interactifs

Objectifs: Objectif global: savoir concevoir le design graphique interactif d'une application

  • Savoir concevoir (niveau Maîtriser):
    • L'architecture globale d'une application interactive.
    • La partie graphique d'une application.
    • L'interaction graphique d'une application.
    • La structure de représentation appropriée.
  • Savoir maîtriser les techniques et méthodes de créativité.
  • Savoir choisir le type de prototype adapté aux objectifs de prototypage.

Prérequis:

  • Recueillir les besoins.
  • Maîtriser l'utilisabilité et les capacités de perception et d'action.
  • Réaliser des prototypes de basse fidélité graphique et interactive.

Contenu:

  • Activité/Métier du design.
  • Design architecture application/système.
  • Design graphique (histoire de l'art, couleur, formes, composition, typographie).
  • Sémiologie graphique.
  • Structure de visualisations et Infovis.
  • Animation/motion design.
  • Design d'applications 2D, 3D, mobile, multitouch.
  • Créativité.
  • Typologie et rôles du Prototypage dans le processus de design.
  • Atelier de design.

Réferences:

  • Bertin, J. (1967) Sémiologie Graphique - Les diagrammes - les réseaux - les cartes. Gauthier-Villars et Mouton & Cie, Paris.
  • Terry Winograd (Ed.). 1996. Bringing Design to Software. ACM, New York, NY, USA.
  • Bill Moggridge. 2006. Designing Interactions. The MIT Press.
  • Colin Ware. 2012. Information Visualization: Perception for Design (3 ed.). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.

Compétences:

  • Savoir collaborer avec des designers.
  • Savoir designer des interactions graphiques.

Mot-clés:design de graphisme 2D (et 3D?), d'interaction graphique, de visualisation d'information

Anglais de l'entreprise

Objectifs:

  • Savoir utiliser l'anglais professionnel dans le contexte de l'entreprise.
  • Savoir présenter en anglais un projet professionnel à l'oral et à l'écrit.
  • Savoir faire des recherches sur un sujet choisi basées sur des documents en langue anglaise.
  • Connaître et maîtriser les outils utiles à la préparation de projets en anglais à l'oral (usage critique de dictionnaires audio, vidéos actualisées de modèles de présentation, de techniques d’entretien) à l’écrit (propositions de projets, rapports).

Prérequis: Bonnes connaissances de l'Anglais (minimum niveau global CECR B2, production orale B1)

Contenu:

  • Le niveau des étudiants sera évalué lors de leur arrivée dans la formation (si le niveau est trop bas pour arriver à un niveau C1/B2à la fin de l'année, ils seront orientés vers des stages à l'étranger et vers la sélection d'un sujet de chef d'œuvre réalisé en langue anglaise).
  • La formation sera interactive avec le travail basé sur des documents en anglais liés à l'Interaction Homme-Machine.
  • Les étudiants devront régulièrement présenter en langue anglaise.
  • Les étudiants passeront des d’entretiens de sélection (stage, emplois) en langue anglaise (exercices de simulation).

Réferences:

  • Beer, David and McMurrey, David.. A Guide to Writing As an Engineer. J. Wiley & Sons, 4th ed, 2013
  • Markel, Mike, Technical Communication. Bedford/St Martin’s, 11th ed., 2014
  • Rosenberg, Barry J. Spring Into Technical Writing for Engineers and Scientists. Addison Wesley, 2005

Compétences:

  • Etre capable de communiquer avec des données, de reformuler et d’argumenter.
  • Etre capable de rédiger son CV en langue anglaise.
  • Etre capable de se présenter et de présenter ses ambitions en termes de stage et d'emploi en langue anglaise.

Mot-clés:Anglais de l'entreprise, Recherches en anglais, Anglais aéronautique, Curriculum Vitae, Techniques d’entretiens

Chef d'oeuvre

Objectifs: Application des méthodes, technologies, langages et outils abordés en cours durant le semestre 9 dans le cadre d'un projet maitrisé par l'équipe pédagogique.

Contenu: Le chef d'œuvre occupe une place centrale dans la formation, et le planning libère un volume horaire important pour permettre aux étudiants de s'y consacrer. Les sujets sont proposés par les équipes de recherche et les entreprises impliquées dans le Master. Chaque chef d'œuvre est réalisé par une équipe de 4 étudiants, et tutoré par un enseignant du Master. Les chefs d'œuvre donnent lieu à une pré-soutenance en décembre, puis à une soutenance et une démonstration publique (mi mars).

Compétences: Mener à bien un projet de conception centrée utilisateur d'une application interactive:

  • Comprendre le contexte d'utilisation.
  • Spécifier les exigences utilisateurs.
  • Concevoir des solutions.
  • Evaluer l'utilisabilité des solutions.
  • Itérer.

Stage en laboratoire ou en entreprise

Objectifs: Les stages ont un double objectif: d’une part il vise à préparer l’insertion professionnelle des étudiants ; d’autre part il vise à vérifier si les étudiants arrivent à appliquer les connaissances dispensés en cours dans un contexte professionnel. De façon à soutenir les projets professionnels des étudiants, deux modalités de stages sont proposés :

  • Dans l’industrie : pour les étudiants qui vient une insertion immédiate dans le marché de travail après le master ;
  • En laboratoire : pour les étudiants s’orientent vers un doctorat et une carrière scientifique.

Prérequis: Le sujet de stage doit être dans le domaine de compétence de la formation IHM et validé par l'équipe pédagogique.

Contenu: Tout au long du stage l’étudiant sera suivi par un tuteur, membre de l’équipe pédagogique, qui le guidera dans le choix de méthode, technologies et outil nécessaire pour réaliser sa mission dans l’organisme qui l’accueil en stage. Par ailleurs, le tuteur guidera l’étudiant pour la rédaction du rapport et présentation du stage lors de soutenance. En outre le tuteur, l’étudiant sera suivi par le responsable de l’UE stage sur les aspects administratifs entre l’université et l’organisme d’accueil.

Réferences:

  • Marco Winckler (2009). Guide de rédaction d'un rapport de stage pour le Master 2IHM. 15 pages.

Compétences:

  • Maîtriser la rédaction d’un rapport d'activités réalisés lors du stage.
  • Maîtriser la présentation à l’oral des activités réalisé lors du stage.
  • Savoir appliquer une démarche centrée utilisateurs et la justifier par écrit dans le rapport de stage.

Mot-clés:stage en laboratoire, stage en entreprise

Tweet #masterihm