École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Filière : Master Professionnel en Informatique, option Génie Logiciel (MGL)

  • Anglais technique

    L’anglais est la langue de travail de fait du génie logiciel : documentation des frameworks, messages d’erreur, dépôts open source, articles scientifiques, outils de gestion de projet, réunions avec des partenaires ou des clients internationaux. Ce cours d’Anglais technique (ATE5453) vise l’autonomie professionnelle d’un ingénieur logiciel de niveau Master : comprendre rapidement une documentation, écrire des textes techniques clairs (tickets, rapports, courriels, résumé de mémoire) et communiquer à l’oral en réunion, en démonstration ou en entretien d’embauche. Les situations sont ancrées dans le contexte nigérien et ouest-africain : projets financés par des bailleurs anglophones, partenaires au Nigeria et au Ghana voisins, fintechs de mobile money, communautés open source.

    Objectifs d’apprentissage

    • Maîtriser le vocabulaire anglais du cycle de vie logiciel, de l’architecture, des tests et du DevOps, et éviter les faux amis.
    • Lire et exploiter une documentation technique (README, référence d’API, RFC) et en interpréter les mots normatifs (MUST, SHOULD, MAY).
    • Rédiger des écrits techniques courts et normés : user stories, rapports de bug, messages de commit, README.
    • Rédiger des courriels professionnels, un rapport d’avancement, un abstract de mémoire et une lettre de candidature.
    • Participer à une réunion agile, présenter une démonstration et réussir un entretien technique en anglais.

    Prérequis

    Niveau d’anglais général intermédiaire (A2-B1), connaissances de génie logiciel acquises en Master 1.

    Plan du cours

    1. Leçon 1 — Vocabulaire du génie logiciel et lecture de documentation technique
    2. Leçon 2 — Grammaire de l’écrit technique : user stories, bug reports, commits et README
    3. Leçon 3 — Communication écrite professionnelle : courriels, rapports, abstract et candidature
    4. Leçon 4 — Communication orale : réunions agiles, présentations techniques et entretiens

    Modalités d’évaluation

    Volume horaire : 10 h de cours (CM), 10 h de travaux dirigés (TD), 0 h de TP et 20 h de travail personnel (TPE), soit 40 h pour 2 crédits. La maquette ne précisant pas le mode d’évaluation, on retient un contrôle continu (40 % : exercices écrits de TD et une présentation orale de 5 minutes) et un examen terminal écrit (60 % : compréhension d’une documentation, traduction, rédaction d’un courriel ou d’un abstract).

    Bibliographie

    • Murphy, R. English Grammar in Use. Cambridge : Cambridge University Press.
    • Remacha Esteras, S. Infotech: English for Computer Users. Cambridge : Cambridge University Press.
    • Glendinning, E. H., McEwan, J. Oxford English for Information Technology. Oxford : Oxford University Press.
    • Strunk, W., White, E. B. The Elements of Style. New York : Longman.
    • Bradner, S. RFC 2119, « Key words for use in RFCs to Indicate Requirement Levels », IETF, 1997.
  • Stage en entreprise et soutenance

    Le Stage en entreprise et soutenance (SES5452, 10 crédits) est l’aboutissement du Master Professionnel en Informatique, option Génie Logiciel. L’étudiant intègre une structure d’accueil — entreprise de services numériques, banque, opérateur de télécommunications, fintech de mobile money, administration engagée dans l’e-gouvernement, start-up — pour y conduire un projet réel de génie logiciel : analyse, conception, développement, tests, déploiement. Le travail est restitué dans un mémoire de fin d’études puis défendu devant un jury. Ce module en ligne est un guide méthodologique : il donne les étapes, les livrables, les modèles et les grilles qui permettent de transformer une mission de stage en un travail de Master évaluable.

    Objectifs d’apprentissage

    • Rechercher un stage, négocier un sujet et formaliser la convention et le cahier des charges.
    • Planifier le stage et piloter le projet (Scrum, jalons, rapports d’étape, gestion des risques).
    • Appliquer les bonnes pratiques du génie logiciel en contexte professionnel (UML, Git, tests, CI/CD, sécurité).
    • Rédiger un mémoire structuré, argumenté et conforme aux normes.
    • Présenter et défendre son travail devant un jury, démonstration à l’appui.

    Prérequis

    Ensemble des enseignements de Master (génie logiciel, UML, bases de données, programmation web et mobile, architectures distribuées, qualité logicielle) et cours de Méthodologie de la recherche (MRE5451) suivi en parallèle.

    Plan du cours

    1. Leçon 1 — Trouver, cadrer et démarrer le stage en entreprise
    2. Leçon 2 — Conduire le projet de génie logiciel pendant le stage
    3. Leçon 3 — Rédiger le mémoire de fin d’études
    4. Leçon 4 — Préparer et réussir la soutenance devant le jury

    Modalités d’évaluation

    Volume horaire de la maquette : 0 h de CM, 0 h de TD, 0 h de TP et 200 h de travail personnel de l’étudiant (TPE) consacrées au stage et au mémoire, pour 10 crédits. Évaluation : contrôle continu (suivi du stage : appréciation du tuteur en entreprise, rapports d’étape et points avec l’encadreur académique) et examen terminal (mémoire et soutenance publique devant un jury). La pondération détaillée est fixée par le règlement de l’établissement ; une grille indicative est proposée dans les leçons 3 et 4.

    Bibliographie

    • Beaud, M. L’art de la thèse. Paris : La Découverte.
    • Sommerville, I. Software Engineering. Harlow : Pearson.
    • Schwaber, K., Sutherland, J. The Scrum Guide (version 2020), scrumguides.org.
    • ISO/IEC/IEEE 29148 — Systems and software engineering — Life cycle processes — Requirements engineering.
    • Zobel, J. Writing for Computer Science. London : Springer.
  • Méthodologie de la recherche

    Ce cours de Méthodologie de la recherche (MRE5451) prépare les étudiants de Master 2 Génie Logiciel à conduire, rédiger et défendre un travail de fin d’études répondant aux exigences scientifiques. En informatique professionnelle, le mémoire n’est pas un simple rapport d’activité : il doit poser une question précise, s’appuyer sur un état de l’art, justifier une méthode, produire des résultats vérifiables et les discuter de façon critique. Le cours articule la démarche scientifique générale avec les méthodes propres au génie logiciel (design science, étude de cas, expérimentation, revue systématique de la littérature) et les illustre par des sujets ancrés au Niger : gestion scolaire à Niamey, paiement par mobile money, e-gouvernement, applications pour les opérateurs télécoms.

    Objectifs d’apprentissage

    • Distinguer les types de recherche (fondamentale, appliquée, design science, empirique) et situer son projet de mémoire.
    • Formuler une problématique, des questions de recherche et des hypothèses opérationnelles et vérifiables.
    • Conduire une recherche documentaire structurée (bases IEEE Xplore, ACM, Scopus, HAL) et gérer ses références avec un outil bibliographique.
    • Choisir et appliquer une méthode de collecte (questionnaire, entretien, expérimentation, mesures) et analyser les données de manière rigoureuse.
    • Rédiger un mémoire conforme aux normes (structure, style, citations APA ou IEEE, prévention du plagiat).
    • Préparer une soutenance claire, argumentée et maîtrisée dans le temps.

    Prérequis

    Connaissances de génie logiciel (cycles de vie, UML, tests), notions de statistiques descriptives, pratique de la rédaction de rapports techniques en français.

    Plan du cours

    1. Leçon 1 — Démarche scientifique et construction de la problématique en génie logiciel
    2. Leçon 2 — État de l’art, recherche documentaire et gestion bibliographique
    3. Leçon 3 — Méthodes de collecte et d’analyse des données
    4. Leçon 4 — Rédaction du mémoire, normes de citation et préparation de la soutenance

    Modalités d’évaluation

    Volume horaire : 10 h de cours théorique (CM), 10 h de travaux dirigés (TD), 0 h de TP et 20 h de travail personnel de l’étudiant (TPE), soit 40 h pour 2 crédits. La maquette ne précise pas le mode d’évaluation ; on retient un contrôle continu (40 % : fiche de problématique, équation de recherche et synthèse bibliographique réalisées en TD) et un examen terminal (60 % : épreuve écrite ou dossier méthodologique du projet de mémoire).

    Bibliographie

    • Beaud, M. L’art de la thèse. Paris : La Découverte.
    • Quivy, R., Van Campenhoudt, L. Manuel de recherche en sciences sociales. Paris : Dunod.
    • Zobel, J. Writing for Computer Science. London : Springer.
    • Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., Wesslén, A. Experimentation in Software Engineering. Berlin : Springer.
    • Hevner, A. R., March, S. T., Park, J., Ram, S. « Design Science in Information Systems Research ». MIS Quarterly, 28(1), 2004.
  • Langages et technologies Web : PHP, MySQL, XML

    Ce cours de spécialité approfondit le développement d’applications web côté serveur avec PHP 8, MySQL et les formats d’échange XML et JSON. Il conduit de la maîtrise du langage à l’architecture MVC et à la sécurité, au travers de travaux pratiques guidés construisant une application de gestion scolaire (inscriptions, notes, paiement des frais par mobile money) adaptée au contexte des établissements nigériens.

    Objectifs d’apprentissage

    • Écrire du PHP 8 typé et orienté objet, organisé avec Composer et PSR-4 ;
    • Concevoir une base MySQL, écrire des requêtes d’analyse et y accéder de façon sûre avec PDO ;
    • Structurer, valider, interroger et transformer des données XML et JSON ;
    • Architecturer une application selon le motif MVC et exposer une API REST ;
    • Appliquer les protections défensives du Top 10 OWASP dans une application PHP.

    Prérequis

    HTML/CSS, algorithmique et programmation orientée objet, bases de données relationnelles et SQL, notions de HTTP.

    Plan du cours

    1. Leçon 1 — PHP 8 : langage, formulaires, sessions et objets
    2. Leçon 2 — MySQL et accès aux données avec PDO
    3. Leçon 3 — XML et JSON : structuration, validation et transformation
    4. Leçon 4 — Architecture MVC, API REST et sécurité des applications web

    Modalités d’évaluation

    Volume horaire : 20 h de cours magistraux, 10 h de travaux dirigés, 20 h de travaux pratiques, 50 h de travail personnel (5 crédits). Évaluation : contrôle continu (TP guidés notés, mini-projet MVC, quiz) et examen terminal.

    Bibliographie

    • Documentation officielle PHP (php.net/manual) et MySQL 8.0 Reference Manual (dev.mysql.com/doc).
    • Luke Welling, Laura Thomson, PHP and MySQL Web Development, Addison-Wesley.
    • Josh Lockhart, Modern PHP, O’Reilly.
    • W3C, recommandations Extensible Markup Language (XML) 1.0, XML Schema, XPath et XSLT (w3.org).
    • OWASP Foundation, OWASP Top 10 et OWASP Cheat Sheet Series (owasp.org).
  • Programmation distribuée

    Ce cours de spécialité prépare l’ingénieur en génie logiciel à concevoir et programmer des applications réparties : services web et mobiles à forte charge, plateformes de paiement, systèmes d’information multi-sites. Il combine fondements théoriques (temps logique, exclusion mutuelle, consensus, cohérence) et pratique de la programmation (threads, sockets, RPC/gRPC, messagerie) au travers de travaux pratiques guidés.

    Objectifs d’apprentissage

    • Caractériser un système distribué et évaluer le gain d’une parallélisation (Amdahl, Gustafson) ;
    • Programmer des échanges entre processus par sockets, RPC/gRPC et API, en maîtrisant les sémantiques d’appel ;
    • Calculer des horloges logiques et appliquer des algorithmes d’exclusion mutuelle et d’élection ;
    • Choisir un modèle de réplication et de cohérence (CAP, quorums) ;
    • Concevoir une application tolérante aux pannes (messagerie, idempotence, 2PC/Saga, consensus).

    Prérequis

    Programmation orientée objet (Java ou Python), systèmes d’exploitation (processus, threads), réseaux TCP/IP, bases de données transactionnelles.

    Plan du cours

    1. Leçon 1 — Systèmes distribués, concurrence et parallélisme
    2. Leçon 2 — Communication : sockets, RPC et services distants
    3. Leçon 3 — Temps, horloges logiques et coordination répartie
    4. Leçon 4 — Middleware, réplication et tolérance aux pannes

    Modalités d’évaluation

    Volume horaire : 20 h de cours magistraux, 10 h de travaux dirigés, 20 h de travaux pratiques, 50 h de travail personnel (5 crédits). Évaluation : contrôle continu (TP guidés notés, exercices d’algorithmique répartie, quiz) et examen terminal écrit.

    Bibliographie

    • Andrew S. Tanenbaum, Maarten van Steen, Distributed Systems, 3e éd., distributed-systems.net.
    • George Coulouris, Jean Dollimore, Tim Kindberg, Gordon Blair, Distributed Systems: Concepts and Design, Pearson.
    • Martin Kleppmann, Designing Data-Intensive Applications, O’Reilly.
    • Brian Goetz et al., Java Concurrency in Practice, Addison-Wesley.
    • Leslie Lamport, « Time, Clocks, and the Ordering of Events in a Distributed System », Communications of the ACM, 21(7), 1978.
  • Gestion et évaluation financière et comptable

    Ce cours donne au futur ingénieur logiciel, chef de projet ou créateur d’entreprise numérique les outils financiers et comptables nécessaires pour lire les comptes d’une entreprise, en diagnostiquer la santé, calculer le coût réel d’un projet et décider d’un investissement. Il s’appuie sur le SYSCOHADA révisé applicable au Niger et sur des cas tirés du secteur numérique ouest-africain : ESN de Niamey, start-up SaaS, opérateurs de paiement mobile, projets d’e-gouvernement.

    Objectifs d’apprentissage

    • Lire et interpréter un bilan et un compte de résultat établis selon le SYSCOHADA révisé ;
    • Calculer les soldes significatifs de gestion et la capacité d’autofinancement ;
    • Réaliser un diagnostic de l’équilibre financier (FRNG, BFR, trésorerie nette) et des ratios ;
    • Déterminer le coût de revient d’un projet logiciel et le seuil de rentabilité d’une activité ;
    • Évaluer un projet d’investissement (VAN, TRI, IP, délai de récupération) et construire un budget de projet.

    Prérequis

    Mathématiques financières élémentaires (pourcentages, intérêts composés), notions de gestion de projet (estimation de charge, planning). Aucune connaissance comptable préalable n’est exigée.

    Plan du cours

    1. Leçon 1 — Comptabilité générale SYSCOHADA et états financiers
    2. Leçon 2 — Analyse financière : équilibre, CAF et ratios
    3. Leçon 3 — Comptabilité analytique et coût des projets
    4. Leçon 4 — Évaluation financière des projets et budgétisation

    Modalités d’évaluation

    Volume horaire : 20 h de cours magistraux, 10 h de travaux dirigés, 0 h de TP et 30 h de travail personnel (3 crédits). Évaluation : contrôle continu (TD notés, étude de cas d’évaluation d’un projet numérique, quiz en ligne) et examen terminal écrit.

    Bibliographie

    • OHADA, Acte uniforme relatif au droit comptable et à l’information financière (AUDCIF) et Système comptable OHADA révisé, 2017 (en vigueur depuis 2018).
    • Pierre Vernimmen, Pascal Quiry, Yann Le Fur, Finance d’entreprise, Dalloz (édition annuelle).
    • Hubert de La Bruslerie, Analyse financière : information financière, évaluation, diagnostic, Dunod.
    • Charles T. Horngren, Srikant M. Datar, Madhav V. Rajan, Cost Accounting: A Managerial Emphasis, Pearson.
    • Project Management Institute, A Guide to the Project Management Body of Knowledge (PMBOK Guide), PMI.
  • Droit informatique

    Ce cours initie les futurs ingénieurs et chefs de projet en génie logiciel au cadre juridique dans lequel ils conçoivent, vendent et exploitent des systèmes d’information au Niger et en Afrique de l’Ouest. Il privilégie une approche opérationnelle : identifier les risques juridiques d’un projet, traduire les obligations légales en exigences techniques et sécuriser les contrats.

    Objectifs d’apprentissage

    • Identifier les sources du droit du numérique applicables au Niger (textes nationaux, OAPI, OHADA, CEDEAO, UEMOA) ;
    • Appliquer la législation sur la protection des données personnelles à la conception d’une application ;
    • Qualifier les principales infractions informatiques et organiser une réponse conforme à un incident ;
    • Déterminer la titularité des droits sur un logiciel ou une base de données et choisir une licence ;
    • Analyser et rédiger les clauses clés d’un contrat informatique ; connaître le régime de la signature électronique.

    Prérequis

    Aucun prérequis juridique. Une expérience de projet informatique (cahier des charges, développement, hébergement) facilite la compréhension des cas.

    Plan du cours

    1. Leçon 1 — Cadre juridique du numérique et protection des données personnelles
    2. Leçon 2 — Cybercriminalité et responsabilité pénale
    3. Leçon 3 — Propriété intellectuelle du logiciel et des bases de données
    4. Leçon 4 — Contrats informatiques, transactions et signature électroniques

    Modalités d’évaluation

    Volume horaire : 20 h de cours magistraux, 10 h de travaux dirigés (cas pratiques), 0 h de TP, 30 h de travail personnel (3 crédits). Évaluation : contrôle continu (cas pratiques, analyse de contrat, quiz) et examen terminal écrit (cas pratique et questions de cours).

    Bibliographie

    • République du Niger, loi n° 2017-28 du 3 mai 2017 relative à la protection des données à caractère personnel, et loi n° 2019-33 du 3 juillet 2019 portant répression de la cybercriminalité (textes modifiés).
    • OAPI, Accord de Bangui révisé, annexe VII (propriété littéraire et artistique).
    • CEDEAO, Acte additionnel A/SA.1/01/10 relatif à la protection des données à caractère personnel et Acte additionnel A/SA.2/01/10 portant transactions électroniques (2010).
    • Union africaine, Convention sur la cybersécurité et la protection des données à caractère personnel (Malabo, 2014).
    • Christiane Féral-Schuhl, Cyberdroit : le droit à l’épreuve de l’internet, Dalloz (coll. Praxis).
  • Supervision et monitoring des réseaux

    Ce cours forme les futurs ingénieurs à la mise en œuvre d’une supervision professionnelle des réseaux, systèmes et applications. Il couvre les protocoles de gestion (SNMP, syslog), la métrologie et ses indicateurs, les outils du marché (Nagios/Centreon, Zabbix, Prometheus/Grafana) et l’organisation de l’exploitation (alertes, tableaux de bord, gestion des incidents). Les cas sont tirés d’infrastructures ouest-africaines : banques et microfinances multi-agences, opérateurs de mobile money, administrations reliant Niamey aux régions.

    Objectifs d’apprentissage

    • Expliquer l’architecture d’un système de supervision et le fonctionnement de SNMP (MIB, OID, versions) ;
    • Calculer et interpréter les indicateurs de performance (débit, utilisation, latence, gigue, disponibilité, percentiles) ;
    • Déployer et configurer une solution de supervision (Zabbix) et écrire des contrôles et des déclencheurs ;
    • Centraliser les journaux et concevoir des tableaux de bord et des alertes pertinents ;
    • Organiser la gestion des incidents et mesurer la qualité de service (MTTD, MTTR, SLA).

    Prérequis

    Réseaux TCP/IP (adressage, routage, UDP/TCP), administration Linux en ligne de commande, notions de bases de données.

    Plan du cours

    1. Leçon 1 — Fondements de la supervision et protocole SNMP
    2. Leçon 2 — Métrologie et indicateurs de performance
    3. Leçon 3 — Outils de supervision : Nagios, Zabbix, Prometheus
    4. Leçon 4 — Journaux, alertes, tableaux de bord et gestion des incidents

    Modalités d’évaluation

    Volume horaire : 10 h de cours magistraux, 10 h de travaux dirigés, 20 h de travaux pratiques, 40 h de travail personnel (4 crédits). Évaluation : contrôle continu (comptes rendus des TP guidés, exercices de métrologie, quiz) et examen terminal.

    Bibliographie

    • William Stallings, SNMP, SNMPv2, SNMPv3, and RMON 1 and 2, Addison-Wesley.
    • Douglas R. Mauro, Kevin J. Schmidt, Essential SNMP, O’Reilly.
    • Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy, Site Reliability Engineering: How Google Runs Production Systems, O’Reilly.
    • IETF, RFC 3411-3418 (architecture SNMPv3) et RFC 5424 (The Syslog Protocol).
    • Documentation officielle Zabbix (zabbix.com/documentation) et Prometheus (prometheus.io/docs).
  • Automates, langage et compilation

    Ce cours de spécialité présente les fondements théoriques des langages (langages formels, automates, grammaires) et leur application à la construction de compilateurs et d’interpréteurs. Au-delà du compilateur, ces techniques sont quotidiennes pour l’ingénieur logiciel : validation d’entrées par expressions régulières, langages dédiés de règles métier, analyse de fichiers et de formats, outils d’analyse statique et de qualité du code. Les TP guidés conduisent à la réalisation complète d’un interpréteur pour un mini-langage, EPIScript.

    Objectifs d’apprentissage

    • Manipuler expressions régulières et automates finis (déterminisation, minimisation) ;
    • Réaliser un analyseur lexical et définir la syntaxe d’un langage par une grammaire hors contexte non ambiguë ;
    • Construire des analyseurs syntaxiques LL(1) et comprendre l’analyse LR (SLR, LALR) ;
    • Mettre en œuvre l’analyse sémantique (table des symboles, typage, grammaires attribuées) ;
    • Générer et optimiser du code intermédiaire ; réaliser un interpréteur complet.

    Prérequis

    Algorithmique et structures de données (arbres, piles, tables de hachage), mathématiques discrètes (ensembles, relations), programmation en Python ou Java.

    Plan du cours

    1. Leçon 1 — Langages formels, expressions régulières et automates finis
    2. Leçon 2 — Analyse lexicale et grammaires hors contexte
    3. Leçon 3 — Analyse syntaxique descendante et ascendante
    4. Leçon 4 — Analyse sémantique et génération de code

    Modalités d’évaluation

    Volume horaire : 20 h de cours magistraux, 20 h de travaux dirigés, 20 h de travaux pratiques, 60 h de travail personnel (6 crédits). Évaluation : contrôle continu (TD, TP guidés et projet d’interpréteur, quiz) et examen terminal écrit.

    Bibliographie

    • Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools, 2e éd., Pearson (traduction française : Compilateurs : principes, techniques et outils).
    • John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction to Automata Theory, Languages, and Computation, Pearson.
    • Michael Sipser, Introduction to the Theory of Computation, Cengage.
    • Terence Parr, The Definitive ANTLR 4 Reference, Pragmatic Bookshelf.
    • Andrew W. Appel, Modern Compiler Implementation in Java, Cambridge University Press.
  • XML avancé

    XML reste un format pivot des systèmes d’information d’entreprise : configuration d’applications (Maven, Jakarta EE, Spring), services web SOAP des banques et administrations, messages financiers ISO 20022, factures électroniques UBL, documents bureautiques (OOXML, ODF), flux de données entre ministères. Ce cours de spécialité approfondit l’ensemble de la chaîne XML : syntaxe et espaces de noms, validation (DTD, XML Schema), interrogation (XPath, XQuery), transformation (XSLT), traitement par programme (DOM, SAX, StAX, liaison de données) et sécurisation des échanges. Il est mené sur un fil conducteur : les données de scolarité d’EPI-NIGER (promotions, étudiants, notes) échangées entre les campus de Niamey et de Maradi et la tutelle. Chaque leçon comporte un TP guidé réalisable avec des outils libres (xmllint, xsltproc, BaseX, Saxon-HE, Java ou Python).

    Objectifs d’apprentissage

    • Produire des documents XML bien formés utilisant correctement les espaces de noms.
    • Concevoir des grammaires de validation en DTD et en XML Schema (types, facettes, clés).
    • Écrire des requêtes XPath et XQuery pour extraire et agréger des données.
    • Transformer des documents avec XSLT vers HTML, XML ou texte.
    • Choisir et utiliser une API de traitement (DOM, SAX, StAX, JAXB) adaptée au volume et à l’usage, avec une configuration sûre contre les attaques XML (XXE).
    • Situer XML dans les échanges d’entreprise (SOAP/WSDL, ISO 20022, UBL) et le comparer à JSON.

    Prérequis

    Bases du Web (HTML, HTTP), programmation Java ou Python, notions de bases de données et d’expressions régulières.

    Plan du cours

    1. Leçon 1 — XML, espaces de noms et validation par DTD
    2. Leçon 2 — XML Schema : typage et contraintes avancées
    3. Leçon 3 — Interroger des documents XML : XPath et XQuery
    4. Leçon 4 — Transformations XSLT, API de traitement et échanges sécurisés

    Modalités d’évaluation

    Volume horaire : 20 h de CM, 20 h de TD, 20 h de TP, 60 h de TPE, soit 120 h pour 6 crédits. Évaluation : contrôle continu (comptes rendus de TP, TD notés et mini-projet d’échange de relevés de notes validé et transformé, 40 %) et examen terminal écrit (60 %).

    Bibliographie

    • W3C, recommandations Extensible Markup Language (XML) 1.0, Namespaces in XML 1.0, XML Schema 1.1, XPath 3.1, XQuery 3.1, XSLT 3.0, disponibles sur w3.org.
    • Elliotte Rusty Harold, W. Scott Means, XML in a Nutshell, 3e éd., O’Reilly, 2004.
    • Priscilla Walmsley, Definitive XML Schema, 2e éd., Prentice Hall, 2012.
    • Priscilla Walmsley, XQuery, 2e éd., O’Reilly, 2015.
    • Michael Kay, XSLT 2.0 and XPath 2.0 Programmer’s Reference, 4e éd., Wiley/Wrox, 2008.