---
title: "Master Expert en Ingénierie du Logiciel - José DA COSTA"
description: "Master Expert en Ingénierie du Logiciel à l'ESIEA (2023-2026). Diplôme de niveau RNCP 7, spécialisation en génie logiciel et architecture."
locale: "fr"
canonical: "https://portfolio.josedacosta.info/fr/parcours/master-expert-en-ingenierie-du-logiciel"
source: "https://portfolio.josedacosta.info/fr/parcours/master-expert-en-ingenierie-du-logiciel.md"
html_source: "https://portfolio.josedacosta.info/fr/parcours/master-expert-en-ingenierie-du-logiciel"
author: "José DA COSTA"
type: "journey"
slug: "master-expert-en-ingenierie-du-logiciel"
generated_at: "2026-04-23T15:48:47.005Z"
---

# Master Expert en Ingénierie du Logiciel

**Period:** 2023-12-31 - 2026-03-31  
**Type:** education  
**Level:** Master - BAC+5 - RNCP Niveau 7  
**Training hours:** 738h de formation  
**Institution:** ESIEA - École d'Ingénieur·e·s d'un numérique utile

## Overview

Master Expert en Ingénierie du Logiciel à l'ESIEA (2023-2026). Diplôme de niveau RNCP 7, spécialisation en génie logiciel et architecture.

- Diplôme RNCP Niveau 7 (Bac+5)
- Spécialisation ingénierie logicielle à l'ESIEA
- Formation en alternance (2023-2026)

## Competencies (33)

- **Patterns d'architecture logicielle** (confidence 5/5) _(technical)_: Concevoir des systèmes logiciels évolutifs en utilisant des patterns architecturaux tels que l'architecture en couches, l'architecture hexagonale, les microservices, l'architecture événementielle et le CQRS.
- **Principes SOLID et code propre** (confidence 5/5) _(technical)_: Appliquer les principes SOLID (responsabilité unique, ouvert/fermé, substitution de Liskov, ségrégation des interfaces, inversion de dépendances) et les pratiques de code propre pour un logiciel maintenable.
- **Design Patterns (Gang of Four)** (confidence 5/5) _(technical)_: Implémenter les design patterns du Gang of Four (créationnels, structurels, comportementaux) pour résoudre des problèmes de conception récurrents et construire des logiciels orientés objet flexibles et réutilisables.
- **Stratégie de tests et qualité logicielle** (confidence 5/5) _(technical)_: Définir et exécuter des stratégies de tests complètes incluant les tests unitaires, les tests d'intégration, les tests de bout en bout, les pratiques TDD/BDD et les processus d'assurance qualité logicielle.
- **Sécurité des applications web (OWASP)** (confidence 4/5) _(technical)_: Sécuriser les applications web en appliquant les recommandations OWASP Top 10, en implémentant l'authentification/autorisation, en prévenant les attaques par injection, XSS, CSRF et en réalisant des audits de sécurité.
- **Programmation JavaScript (POO, événementiel, asynchrone)** (confidence 5/5) _(technical)_: Maîtriser les paradigmes de programmation JavaScript incluant la programmation orientée objet, l'architecture événementielle, les patterns asynchrones (Promises, async/await) et les fonctionnalités modernes ES6+.
- **Développement TypeScript** (confidence 5/5) _(technical)_: Développer des applications type-safe avec TypeScript en exploitant les systèmes de types avancés, les génériques, les décorateurs, les interfaces et l'intégration avec les frameworks et outils de build modernes.
- **Programmation Java SE** (confidence 2/5) _(technical)_: Programmer des applications robustes en Java SE en maîtrisant les concepts fondamentaux tels que les collections, les génériques, les streams, le multithreading, les I/O et l'écosystème JVM.
- **Java Spring et Hibernate** (confidence 2/5) _(technical)_: Développer des applications d'entreprise avec le framework Spring (Boot, MVC, Security, Data) et Hibernate ORM pour la persistance des données, la gestion des transactions et le développement d'API RESTful.
- **Conception et implémentation d'API REST** (confidence 5/5) _(technical)_: Concevoir et implémenter des API RESTful selon les bonnes pratiques incluant la modélisation des ressources, les méthodes HTTP, les codes de statut, l'authentification, le versionnage, la documentation et la sécurité des API.
- **Docker et pratiques DevOps** (confidence 5/5) _(technical)_: Conteneuriser les applications avec Docker, créer des images optimisées, gérer des environnements multi-conteneurs avec Docker Compose et intégrer les pratiques DevOps pour la livraison continue.
- **Workflows Git avancés (GitHub et GitLab)** (confidence 5/5) _(technical)_: Appliquer des workflows Git avancés incluant les stratégies de branchement (GitFlow, trunk-based), les pull requests, les revues de code, l'intégration CI/CD et la collaboration sur les plateformes GitHub et GitLab.
- **Pratiques avancées Agile et Scrum** (confidence 5/5) _(technical)_: Appliquer les pratiques avancées Agile et Scrum incluant la planification de sprints, le refinement du backlog, le suivi de vélocité, les rétrospectives et les frameworks de mise à l'échelle pour les projets logiciels complexes.
- **Exécution et pilotage de projets logiciels** (confidence 5/5) _(technical)_: Exécuter et piloter des projets d'ingénierie logicielle de bout en bout, en gérant le périmètre, les délais, les budgets, les livrables et les attentes des parties prenantes tout au long du cycle de vie du projet.
- **Algorithmes avancés et complexité** (confidence 5/5) _(technical)_: Analyser et concevoir des algorithmes efficaces, comprendre la complexité computationnelle (notation Big O) et appliquer des structures de données avancées et des stratégies algorithmiques pour résoudre des problèmes complexes.
- **Conception UML d'applications complexes** (confidence 3/5) _(technical)_: Modéliser des conceptions d'applications complexes à l'aide de diagrammes UML incluant les diagrammes de classes, de séquence, de cas d'utilisation, de composants et de déploiement.
- **Développement front-end Angular** (confidence 4/5) _(technical)_: Construire des applications front-end de niveau entreprise avec Angular, incluant les composants, les services, l'injection de dépendances, le routage, les formulaires réactifs, les observables RxJS et la gestion d'état.
- **Développement mobile Kotlin et Android** (confidence 1/5) _(technical)_: Développer des applications Android natives avec Kotlin, incluant le design UI avec Jetpack Compose, l'architecture MVVM, la persistance des données, l'intégration d'API et les bonnes pratiques mobiles.
- **Architecture distribuée et Big Data** (confidence 3/5) _(technical)_: Concevoir et implémenter des systèmes distribués et des architectures Big Data en utilisant des technologies telles que Hadoop, Spark, Kafka et des bases de données distribuées pour le traitement de données à grande échelle.
- **Bases de données NoSQL (Redis, MongoDB, Cassandra, Neo4j)** (confidence 4/5) _(technical)_: Travailler avec des systèmes de bases de données NoSQL incluant Redis (clé-valeur), MongoDB (document), Cassandra (colonne) et Neo4j (graphe), en sélectionnant le modèle approprié pour chaque cas d'usage.
- **Programmation fonctionnelle (Scala)** (confidence 1/5) _(technical)_: Appliquer les paradigmes de programmation fonctionnelle avec Scala, incluant l'immutabilité, les fonctions d'ordre supérieur, le pattern matching, les monades et les approches fonctionnelles de la programmation concurrente.
- **Fondamentaux du machine learning** (confidence 4/5) _(technical)_: Comprendre et appliquer les fondamentaux du machine learning incluant l'apprentissage supervisé/non supervisé, les réseaux neuronaux, l'évaluation des modèles et l'intégration de capacités IA dans les applications logicielles.
- **Analyse fonctionnelle et ingénierie des exigences** (confidence 4/5) _(technical)_: Recueillir et analyser les besoins du client, modéliser les spécifications fonctionnelles et traduire les exigences métier en cahiers des charges logiciels à l'aide de techniques telles que les cas d'utilisation, les user stories et les matrices de traçabilité des exigences.
- **Design UX et wireframing** (confidence 3/5) _(technical)_: Concevoir des interfaces centrées utilisateur à travers la recherche UX, le wireframing, le prototypage, les tests d'utilisabilité et l'application de principes de design pour créer des produits numériques intuitifs et accessibles.
- **Stratégie de communication projet** (confidence 4/5) _(technical)_: Développer et exécuter des stratégies de communication projet incluant le reporting aux parties prenantes, les tableaux de bord de suivi, la communication des risques et les techniques d'alignement d'équipe.
- **Droit des contrats informatiques et conformité** (confidence 3/5) _(technical)_: Comprendre le droit des contrats informatiques incluant les SLA, la propriété intellectuelle, la conformité RGPD, les clauses de responsabilité et les cadres juridiques régissant le développement logiciel et les services numériques.
- **Leadership d'équipe et coaching** (confidence 5/5) _(soft)_: Diriger et coacher des équipes de développement à travers le mentorat, la délégation, la motivation, le feedback de performance et la promotion d'une culture d'apprentissage continu et de croissance professionnelle.
- **Management transversal** (confidence 5/5) _(soft)_: Coordonner des équipes transversales, aligner des parties prenantes diverses et gérer des projets transverses couvrant plusieurs départements avec des priorités et contraintes différentes.
- **Design Thinking et innovation** (confidence 3/5) _(soft)_: Appliquer la méthodologie Design Thinking pour stimuler l'innovation, incluant la carte d'empathie, l'idéation, le prototypage rapide et la validation itérative avec les utilisateurs finaux.
- **Relation client et conseil en IT** (confidence 4/5) _(soft)_: Construire et maintenir des relations de confiance avec les clients à travers le conseil en IT, l'analyse des besoins, les propositions de solutions et les services de conseil alignant la technologie avec les objectifs métier.
- **Documentation technique et communication** (confidence 4/5) _(soft)_: Produire une documentation technique claire, rédiger des communications projet efficaces, créer des fiches de décision architecturale et présenter des concepts techniques complexes à des audiences diverses.
- **Maîtrise de l'anglais professionnel** (confidence 1/5) _(soft)_: Communiquer efficacement en anglais professionnel à travers la documentation technique, les présentations, les réunions et la collaboration internationale avec des équipes de développement mondiales.
- **Collaboration internationale** (confidence 1/5) _(soft)_: Management interculturel, communication RH internationale et capacité à collaborer avec des équipes distribuées dans plusieurs pays et cultures.

## Curriculum

### Bloc 1 - Gestion de la relation client en ingénierie du logiciel

- **Analyse fonctionnelle d'un projet SI**
  _Topics:_ Introduction - Définition, Les types d'analyses fonctionnelles, Le cahier des charges fonctionnelles, Les étapes de l'AF, L'analyse du besoin, Expression fonctionnelle des besoins, Besoins fonctionnels et non fonctionnels, Fonctions de services, Analyses fonctionnelles techniques, SADT, Architecture technique, Tests utilisateurs, User Stories, Traduction des solutions en tâches
  _Objectives:_ Expliquer le rôle de l'analyse fonctionnelle dans un projet SI, Conduire une analyse fonctionnelle (besoins fonctionnels et non fonctionnels), Rédiger un cahier des charges fonctionnelles, Traduire les besoins en user stories et en tâches techniques
- **Initier efficacement un projet SI**
  _Topics:_ Qu'est-ce qu'un projet SI ?, Typologie de projet SI, Projets et produits, Rôle du MOE, Rôle du MOA, Rôle du responsable produit, Qu'est-ce qu'un système de création de valeur ?, Qu'est-ce qu'un SI ?, Environnement interne du SI, Environnement externe du SI, Connaître son SI, Vue de l'écosystème, Vue métier du système d'information, Vue des données, Vue des applications - couverture fonctionnelle, Vue de l'administration, Vue des infrastructures logiques et physiques, Identifier les projets d'amélioration et d'évolution, Identifier les projets de rupture, Établir une veille, Benchmarking, Exploiter un business case, Créer un business case, Plan de gestion des bénéfices, Estimation et précision, Estimer les délais, Estimer les coûts, Estimer les compétences, Prioriser les projets SI, Mécanisme d'appel d'offres (AO et AP), Le cahier des charges, Type de contrat, Initier un projet en tant que MOE, Initier un projet en tant que MOA, Initier un projet en tant que chef de produit, Accompagner le changement, Communiquer !, La gouvernance
  _Objectives:_ Analyser la structure et les enjeux d'un système d'information, Identifier, évaluer et prioriser les projets SI, Estimer les coûts, délais et ressources d'un projet SI, Exploiter et construire un business case, Communiquer et accompagner le changement autour des projets SI
- **Droit des contrats informatiques**
  _Topics:_ Contrats informatiques - Définition et enjeux, Panorama des risques juridiques en matière de prestations IT, Une typologie des contrats informatiques, Le cadre juridique de la prestation informatique, Les documents préparatoires au contrat informatique, La négociation du contrat informatique, Cas pratique relatif à la phase précontractuelle, La formalisation du contrat informatique, La validité du contrat informatique, Les clauses sensibles du contrat informatique, Les spécificités des contrats en mode agile, Principes relatifs à l'exécution des contrats, Les clauses relatives à la propriété intellectuelle, Devoir de conseil du prestataire vs devoir de collaboration du client, L'obligation de délivrance de la prestation informatique, Focus sur la clause de recette, Focus sur les clauses de 'services level agreement', Focus sur les clauses de protection des données, L'impact du déploiement des IA, La résolution du contrat informatique, Focus sur la clause de réversibilité, Les clauses de règlement des différends, Le contrat de développement de logiciel spécifique, Le contrat de maintenance, Le contrat d'infogérance, Le contrat de fourniture en mode SAAS, Rédiger une clause de licence de logiciel, La check-list utile au prestataire informatique
  _Objectives:_ Appliquer les principes juridiques des contrats professionnels (B2B), Identifier les mécanismes de propriété intellectuelle applicables aux solutions informatiques, Détecter les clauses essentielles des contrats de développement ou de fourniture de solutions informatiques, Identifier et analyser les contrats utiles pour sécuriser la fourniture et l'utilisation de solutions informatiques, Appréhender les risques juridiques spécifiques liés aux contrats internationaux
- **UX et Wireframing**
  _Topics:_ Qu'est-ce que l'UX design, La gestion de projet UX design, Les lois de la Gestalt, Recherches utilisateurs, 5W, Interviews et questionnaires, Focus group, Benchmark UX, Analyse de données, Shadowing, Personas, Cas pratique - Persona, Parcours utilisateurs, Cas pratique - Parcours utilisateur, Hiérarchiser et organiser des contenus, Le tri des cartes, Concevoir une arborescence, Flowchart et storyboard, 10 mythes UX-UI, UX-UI - exemples et tendances, Spécificités du design mobile, Le responsive design et les aspects techniques, Éléments constitutifs d'une interface, Zoning, Sketching, Cas pratique - Atelier de sketching, Wireframes, Prototypes interactifs, Tests utilisateurs, Test en laboratoire, A-B testing, Eye tracking, Et après ?
  _Objectives:_ Comprendre les enjeux et le périmètre de l'UX Design, Découvrir les différentes étapes de la méthode, Identifier les utilisateurs, leurs besoins, leurs attentes et leurs freins, Concevoir une interface en utilisant et assemblant les éléments qui la constituent, Tester votre projet pour connaître les axes d'amélioration
- **Design Thinking**
  _Topics:_ Définition et origines du Design Thinking, La philosophie et l'approche Design Thinking, La méthodologie en 5 étapes, Exemple de cas d'usage, L'immersion - comment mener des interviews utilisateurs, Découvrir les outils de l'immersion, Identifier le problème ultime, La phase d'idéation et le cadre du brainstorming, Les 3 étapes de la créativité, Exemple d'outils pour briser la glace, Découvrir les outils de divergence (1-2), Découvrir les outils de divergence (2-2), Identifier la solution à prototyper - les outils de convergence, Définition et importance du prototypage, Exemples de prototypage physique et digital, Démonstration d'outils en ligne de prototypage, Confronter son prototype et itérer, Structurer une session de test, Exemple d'applications, Pitcher sa solution pour convaincre, Pourquoi et comment cadrer un atelier Design Thinking, Concevoir un déroulé d'atelier bien ficelé, Outils pour concevoir un déroulé d'atelier, La structure pour débriefer après un atelier, Le rôle et la posture du facilitateur, Gérer l'énergie et les personnalités au sein du groupe, Développer sa confiance pour animer sereinement, Gérer les imprévus lors d'une séance de co-construction, Techniques de prise de parole en atelier, Zoom sur la facilitation graphique, Les différents formats d'atelier de co-création, Les différentes modalités - distance vs présentiel, Outil pour animer des sessions collectives à distance, Synthèse et défi - à vous de jouer !
  _Objectives:_ Appliquer la méthodologie du design thinking et les techniques de recherche utilisateur, Stimuler la créativité au sein d'un groupe et générer des idées innovantes, Maîtriser les outils de prototypage pour donner vie à leurs solutions, Tester et itérer les solutions avec les utilisateurs pour optimiser leur proposition de valeur, Concevoir et animer des ateliers d'intelligence collective en utilisant les techniques de facilitation
- **Management transversal**
  _Topics:_ La transversalité dans l'entreprise, Management transversal vs hiérarchique, Se positionner dans un rôle transversal, Les 3 leviers du management transversal, Piloter l'activité, Planifier et gérer le temps, Établir une relation de qualité & de confiance, L'agilité relationnelle : s'adapter, se synchroniser, S'adapter aux profils introversion vs extraversion, S'adapter aux profils sensation vs intuition, S'adapter aux profils pensée vs sentiment, S'adapter aux profils organisation vs adaptation, Traits dominants par métier et fonction, Résistance & non opposition centrée, La collaboration générative : attitude coach, Transformer les blocages, S'affirmer en transversal & développer son leadership, Vision & mobilisation, Oser animer cohésion de groupe, Critères de motivation individuelle, Communication influente : réseau et équipe indirecte, Auto-Diagnostic, Fiche pratique : le cadre d'intervention, Renforcer son leadership & transformer l'opposition, Episode 1 - Gérer les conflits dans son équipe, Episode 2 - Animer une réunion à distance, Episode 3 - Savoir dire non à un collaborateur, Episode 4 - Remotiver un collaborateur, Episode 5 - Recadrer un collaborateur
  _Objectives:_ Mettre en œuvre les outils et comportements clés du management transversal, S'adapter aux différents profils comportementaux pour collaborer efficacement, Organiser et coordonner une équipe sans lien hiérarchique, Gérer les résistances et développer son leadership transversal
- **Animer et encadrer une équipe**
  _Topics:_ Les fondamentaux du management, Intégration du manager, Recrutement, Intégration d'un collaborateur, Les quatre styles de management, La posture idéale, Le modèle DISC, Le modèle Herrmann, Les croyances limitantes et les drivers, L'intelligence émotionnelle, La confiance en soi et l'exemplarité, Fonctionnement de la confiance mutuelle, Le triangle de Karpman, La posture d'adulte responsable à adulte responsable, Les leviers de la relation de confiance, Les principes de la communication, La CNV, Trois méthodes complémentaires de communication, Fonctionnement et prévention des conflits, Les différentes méthodes pour gérer les conflits, Recadrer respectueusement, Les sources de motivation, Définir les objectifs, Feuille de route, Tableau de bord prospectif, Déploiement des objectifs avec les rythmes managériaux, Les rythmes managériaux collectifs, Les rythmes managériaux individuels, Lean management, Le management agile, Créer une forte cohésion d'équipe, La mise en dynamique individuelle, La mise en dynamique collective, Entreprises libérées ou opales, Exemple de l'entreprise Buurtzorg, Exemple de l'entreprise FAVI, Episode 1 - Gérer les conflits dans son équipe, Episode 2 - Animer une réunion à distance, Episode 3 - Savoir dire non à un collaborateur, Episode 4 - Remotiver un collaborateur, Episode 5 - Recadrer un collaborateur
  _Objectives:_ Acquérir les outils et méthodes pour un management efficace de son équipe, Adapter son style de management en fonction des profils et des situations, Maîtriser les techniques de communication (CNV) et de gestion des conflits, Activer les leviers de motivation individuels et collectifs

### Bloc 2 - Pilotage de projet d'ingénierie logiciel

- **Exécuter et piloter la réalisation d'un projet Génie logiciel**
  _Topics:_ À quoi sert le management de projet ?, Différences entre projets et opérations, Découvrir le contexte du projet, Définir le périmètre du projet, Établir la charte projet, Qu'est-ce qu'une partie prenante ?, Gérer efficacement les parties prenantes, Recueillir les exigences, Définir les objectifs et contraintes, Intérêt de choisir son approche projet, Qu'est-ce qu'une approche prédictive ?, Qu'est-ce qu'une approche incrémentale ?, Qu'est-ce qu'une approche itérative ?, Qu'est-ce qu'une approche agile ?, Qu'est-ce qu'une approche hybride ?, Choisir une approche projet, Construire son équipe, Identifier les livrables, Créer le WBS, Décomposer les livrables en activités, Évaluer les activités, Identifier les risques, Évaluer les ressources, Évaluer le budget, Qu'est-ce que la qualité dans un projet ?, Définir les modalités d'acceptation des livrables, Planifier l'exécution du projet, Créer l'échéancier du projet en prédictif, Créer l'échéancier du projet agile, Suivre l'avancement de son projet, Analyse de la valeur acquise, Communiquer sur l'avancement du projet, Clôturer son projet
  _Objectives:_ Analyser et comprendre l'environnement de son projet, Choisir et mettre en place un cadre d'exécution adapté, Identifier et estimer le travail et les ressources d'un projet, Organiser et séquencer l'exécution du travail, Suivre et communiquer sur l'avancement d'un projet
- **Méthodes Agiles avancées / Scrum**
  _Topics:_ L'histoire de la gestion de projet, Les différents modèles de gestion de projet, Démarrer avec le pourquoi, Les OKR, Connaître nos utilisateurs finaux, Raconter l'histoire de nos utilisateurs, Le Product Backlog, La user story, La roadmap, Design Sprint, Les bases de Scrum, Les rôles de Scrum, Les artefacts, Les rituels, La vélocité, Les estimations relatives, La prédictibilité, Kanban, Management visuel, L'amélioration continue, L'agilité à l'échelle, Conclusion
  _Objectives:_ Différencier les approches traditionnelles des approches agiles et produit, Maîtriser le framework Scrum : rôles, artefacts, rituels et estimation, Organiser un backlog produit, rédiger des user stories et planifier une roadmap, Appliquer Kanban et les principes d'amélioration continue
- **Leadership et Management**
  _Topics:_ Qu'est-ce que le management ?, Les missions-clés du manager, Qu'est-ce que le leadership ?, Plusieurs styles de leadership, Commencer par (mieux) se connaître, Ouvrir la fenêtre (de johari), Définir ses objectifs de développement, Travailler son propre style - Exercices pour démarrer, Travailler son propre style un arbre pour continuer, Être au service des objectifs.. ou de soi-même - Le leadership inspirant, Lutter contre son sentiment d'imposture, Estime de soi ou confiance en soi ? Telle est la question, Assumer son ambition, Faire face à ses peurs, Accepter les compliments, Renforcer l'engagement de l'équipe - 3 piliers gagnants, Sécuriser le sentiment d'inclusion de chacun, Améliorer ses capacités d'écoute, Définir des règles de travail partagées par les membres d'une équipe, Communiquer avec impact, Faire des points individuels efficaces, Donner du feedback positif, Recadrer un comportement lorsque c'est nécessaire, Réussir les entretiens de développement, Dire non quand il le faut, Gérer les situations les plus délicates, Pour conclure, Prérequis
  _Objectives:_ Comprendre les enjeux du leadership vis-à-vis de ceux du management, Découvrir des techniques de connaissance de soi qui renforcent le leadership du manager, Développer des compétences relationnelles au service de l'engagement d'une équipe, Faire face aux situations difficiles (syndrome de l'imposteur, tensions, stress, sexisme..)
- **Communiquer en mode projet**
  _Topics:_ Qu'est-ce qu'un projet ?, Définir la communication, Les différents types de communication, À quelles étapes du projet communiquer, Pourquoi communiquer dans un projet, Les types de communication à éviter, 10 réflexes pour bien communiquer, La proposition de valeur, Élaborer son plan de communication, Construire ses objectifs, Identifier ses cibles, Créer des personas, Présenter son plan de communication, Développer sa communication à chaque étape du projet, Bien se connaître et comprendre l'autre, Motiver les équipes, Identifier les différents supports de sa communication, Utiliser les outils d'une communication efficiente, Organiser et animer les réunions projets, Les réunions de prise de brief, Les kicks off projet, Les revues de projet, Les résolutions de problèmes, Les bilans de projet, Conclusion générale
  _Objectives:_ Connaître les fondamentaux de la communication projet, Comprendre comment élaborer un plan de communication performant, Identifier les supports de communication essentiels en mode projet, Maîtriser la communication en fin de projet

### Bloc 3 - Intégration, industrialisation et déploiement du logiciel

- **Javascript : initiation et programmation orientée objet**
  _Topics:_ Le langage du web, Environnement de travail, Les variables, Les opérateurs, Les structures conditionnelles, Les structures itératives, Les tableaux, Les tableaux multi-dimensionnels, Les fonctions, Les paramètres, La récursivité, La POO, Les modificateurs d'accès, Les classes built-in, Application Boulangerie / Analyse, Application Boulangerie / Codage, L'héritage, Application Boulangerie / Les pâtissiers, Application Boulangerie / Solution, Contexte et arrow functions, Conclusion
  _Objectives:_ Comprendre l'usage de JavaScript dans le développement front-end, Maîtriser la syntaxe et les bases indispensables du langage JavaScript, Appliquer les bases de la POO (Programmation Orientée Objet) commune à l'ensemble des langages du web, Concevoir du code à l'aide de méthodes spécifiques à JavaScript
- **Javascript : programmation événementielle et asynchrone**
  _Topics:_ JavaScript et le DOM, L'objet global window, Sélectionner des éléments, Créer et supprimer des éléments, Gérer les règles CSS, La programmation événementielle, Les écouteurs, Exercice Pion en cage (Partie 1), Exercice Pion en cage (Partie 2), Programmation asynchrone, L'API Fetch, Application Météo (Partie 1), Application Météo (Partie 2), Application Météo (Partie 3), Les fonctions asynchrones, Application Météo (Partie 4), Conclusion
  _Objectives:_ Manipuler la structure DOM d'une page web, Manipuler les feuilles de styles CSS, Pratiquer la programmation événementielle et asynchrone, Maîtriser l'API Fetch
- **Développer vos applications web avec TypeScript**
  _Topics:_ Introduction à TypeScript, Installer TypeScript et le configurer, Les types fondamentaux, Les types Tuples, Les types Object et Array, Les types Enums, Les types Functions, Les modules import, export, Classe private, protected, public, Classe readonly, static, get, set, Classe abstraite, Créer une interface simple, Aller plus loin sur les interfaces, Les génériques, Les classes génériques, Les types avancés, Création d'un simple décorateur, Utiliser un décorateur comme validateur, Namespace, Mixin, Documenter le code avec JSDoc, Implémenter TypeScript dans NodeJS et Jest, Implémenter TypeScript avec ParcelJS et Webpack
  _Objectives:_ Maîtriser les types de TypeScript, Mettre des contrôles avec les interfaces, Structurer un projet avec les modules et namespaces, Aller plus loin en programmation orientée objet (POO), Utiliser TypeScript dans différents environnements
- **Fondamentaux du développement Front-end avec Angular**
  _Topics:_ Il était une fois.. Angular !, Installation, Édition de notre application, Introduction aux composants, Création d'un composant, Template, style et sélecteurs de composants, Databinding et string interpolation, Liaison de propriétés et des évènements, Two way databinding, La directive ngIf : afficher conditionnellement, Directives ngStyle/ngClass : changer le style dynamiquement, Directive ngFor : afficher des listes, Aide au débug, Composants @Input et @Output custom property binding, Composants et CSS comprendre l'encapsulation de vue, Accéder aux éléments du DOM avec @ViewChild, Le cycle de vie des composants, Création d'une directive custom, @HostListener et @HostBinding, Pourquoi utiliser un service ?, Comprendre l'injection de dépendance, Comprendre les observables, Création d'une observable, Les sujets et les opérateurs
  _Objectives:_ Maîtriser le fonctionnement d'une application Angular, Appliquer les briques de base d'Angular : Composants, Services et Directives, Debugger une application Angular, Utiliser des observables
- **Approfondissement du développement Front-end avec Angular**
  _Topics:_ Introduction, Mise en place du projet de base, Les routes, Navigation, Passer des paramètres aux routes, Routes nestées et liens actifs, Redirections et wildcards, Guard CanActivate, Guard CanDeactivate, Passage de données à une page, Les formulaires, L'approche template-driven, L'approche model-driven, Model-driven - custom validators, Utiliser les pipes, Créer un pipe custom, Créer un pipe de filtre, Comprendre le pipe async, Requêtes HTTP Introduction, POST, GET et DELETE, Gestion des erreurs, Changer les Headers, les query params et le type de réponse, Utilisation d'un intercepteur
  _Objectives:_ Créer une application Angular complète, Créer et naviguer entre des pages avec le routeur, Créer des formulaires complexes en utilisant les model-driven forms ou les template-driven forms, Utiliser les pipes et créer des pipes custom, Faire des requêtes HTTP (GET, POST..), Utiliser les intercepteurs
- **Maîtriser Java SE**
  _Topics:_ Présentation et historique du microcosme Java, Présentation et installation du JDK 17, Présentation et installation d'Eclipse 2022-12, Première classe, la classe HelloWorld, Les types primitifs, les objets et les tableaux, Le projet ' devinez un nombre ', La classe String et le projet palindrome, Écriture de classes POJO, le projet poker, Les mots clés static et final, L'héritage et le polymorphisme les classes Document, Devis et Facture, Les exceptions, Les interfaces, Les collections 1e partie, Les collections 2e partie, Implémentation des interfaces Comparable et Comparator, Implémentation de l'interface Serializable, Écriture d'interfaces et leur utilisation dans les couches logicielles, Les annotations, Maven, Lombok, Importation d'un fichier CSV avec commons-csv, L'API Stream et les lambdas 1e partie, L'API Stream et les lambdas 2e partie, Présentation de JUnit et écriture d'une classe de test, Présentation de Log4J et intégration dans le projet poker
  _Objectives:_ Développer des classes Java, Maîtriser les principaux mots clés du langage, Mettre en œuvre des couches logicielles en utilisant des interfaces, Utiliser l'API Stream et les lambdas, Comprendre l'outil Maven, les bibliothèques Lombok et Log4J et le framework JUnit
- **Développer en Java avec Spring et Hibernate**
  _Topics:_ Présentation de Jakarta EE et de Spring, Présentation de jakarta persistence et hibernate, Les projets de spring, Présentation du projet avis, Les modèles en couche de spring et la notion de stéréotype, Les premières annotations de jakarta persistence, Les annotations de jakarta persistence liées aux relations et à l'héritage, Initialisation du projet avis avec spring initializr, Importation du projet avis dans intellij et installation des plugins, Configuration du projet avis en xml et auto-configuration, Configuration du projet avis à l'aide de classes java, Configuration du projet avis avec un fichier properties, Configuration du projet avis avec un fichier yaml, Écriture et annotation JPA des classes du modèle dans le projet avis, Ajout des validations dans les classes du modèle, Écriture de la couche d'accès aux données avec spring data, Écriture de la classe d'ajout de données et premier concept phare de spring, Présentation du HQL, Utilisation du HQL dans la couche d'accès aux données, Écriture de méthodes dérivées dans la couche d'accès aux données, Notion de projection et mise en pratique dans la couche d'accès aux données, La pagination des données, Écriture de la couche de service, Rappels sur le protocole HTTP et ses codes retour, Écriture des contrôleurs et des vues THYMELEAF, Écriture de contrôleurs REST, Mise en place et utilisation de SWAGGER, La notion d'advice, Les spring REST repositories, Deuxième concept phare - La programmation orientée aspect, Conclusion
  _Objectives:_ Maîtriser Jakarta Persistence et Hibernate pour la persistance des données, Développer une application d'entreprise avec le framework Spring, Concevoir et exposer une API REST avec Spring Boot, Documenter une API avec Swagger et appliquer la programmation orientée aspect
- **Git avancé - GitHub et GitLab**
  _Topics:_ Quelques rappels sur GIT, Ponctionner un commit (cherry-pick), Retrouver des commits disparus (reflog), Ajouter des notes, Importer un dépôt SVN, Retrouver l'origine de modifications, Ignorer des fichiers précisément, Définir un hook, Gérer des sous-modules, Désigner des intervalles de commits, Gérer des fichiers volumineux, Workflows GIT, Présentation Github, Créer un dépôt GitHub, Travailler en équipe sur GitHub, Synchroniser les Pull Requests, Les commandes en ligne GitHub, Les actions GitHub, Partager des snippets sur Gist, Introduction à GitLab, Créer son compte GitLab, Travailler en groupe sur GitLab, Synchroniser une Merge Request, Les objets internes de GIT, Commandes d'administration et d'optimisation
  _Objectives:_ Maîtriser les commandes et concepts de Git, Maîtriser les Pull Request sur GitHub, Gérer un projet sur GitLab, Appliquer les concepts internes de Git
- **Maîtriser Docker et le DevOps**
  _Topics:_ Qu'est-ce que le DevOps ?, Introduction à Docker, Installer Docker, Gestion des images Docker, Lancement et gestion des conteneurs, Les réseaux Docker, Les volumes Docker, Utilisation des fichiers Dockerfile, Les instructions avancées dans un Dockerfile, Infrastructure As Code avec Docker Compose, Aller plus loin sur Docker Compose, Utiliser Docker Hub, Créer un registry privé, Introduction à Docker Swarm, Créer un cluster avec Docker Swarm, Rendre l'infrastructure extensible avec Docker Swarm, Partager des données sur plusieurs serveurs, Utiliser des secrets, Comprendre l'intégration continue et le déploiement continu, L'intégration continue avec Docker et Github, Passer au niveau supérieur : Kubernetes
  _Objectives:_ Comprendre les concepts de base de Docker, Utiliser les outils Docker Compose pour définir et gérer des applications multi-conteneurs, Déployer et gérer des applications à l'aide de Docker Swarm, Utiliser les outils d'intégration continue avec Docker pour automatiser les processus de déploiement
- **Déploiement d'une application**
  _Topics:_ Le déploiement dans le cycle de vie d'une application, Le diagramme UML de déploiement, Le diagramme UML de composants, Typologie des hébergements classiques, Typologie des hébergements Cloud, Structure d'une architecture répartie, Déploiement sur un service PaaS, Le versionnement sémantique d'une application, Les workflows de versionnement de code, Intégration continue d'une application, Déploiement continu d'une application, Les principes de la conteneurisation, Création d'image et déploiement de conteneur, Déploiement de conteneurs multiples, Gestion des volumes et des réseaux avec les conteneurs, Orchestration de conteneurs, Déploiement de type 'rolling update', Déploiement de type 'blue-green', Déploiement de type Canary, Migration de données, Monitoring d'une application, Signature de code
  _Objectives:_ Décrire et exécuter le déploiement d'une application, Choisir un mode de déploiement adapté en fonction du type d'hébergement, Préparer un déploiement d'application web et microservice, Prendre en compte la sécurité pour le déploiement d'application
- **Kubernetes pour orchestrer ses conteneurs**
  _Topics:_ Introduction, Docker, les bases, Volumes, Dockerfile et Registry, Docker les bases : démonstration, Docker Compose, Docker Compose : démonstration, Kubernetes : introduction, Interagir avec Kubernetes, Interagir avec Kubernetes : démonstration, Ressources de base, Namespace pods et services, Namespace pods : démonstration, Label : démonstration, Services : démonstration, ReplicaSet et Déploiement, ReplicaSet et Déploiement : démonstration, Secrets et ConfigMap, Secrets et ConfigMap : démonstration, Lifecycle, Jobs, Jobs et CronJobs : démonstration, Maîtrise des capacités, Maîtrise des capacités : démonstration, PersistentVolumes et PersistentVolumesClaims, PersistentVolumes et PersistentVolumesClaims : démonstration, Architecture de Kubernetes, Authentication et autorisation, Authentication et autorisation : démonstration, Déployer une application avec HELM, Déployer une application avec HELM : démonstration
  _Objectives:_ Comprendre les concepts de base de Kubernetes, Maîtriser les fondements des conteneurs et démontrer comment Kubernetes facilité leur gestion, Déployer une application simple dans Kubernetes, Créer un service pour exposer une application dans un cluster, Utiliser kubectl pour surveiller l'état d'un cluster et récupérer des journaux
- **Maîtriser le langage Kotlin**
  _Topics:_ Présentation, HelloWorld, Les différents typages, Optimiser son IDE, Fonction et fonction expression, Création d'objets de base, Data class, Objet complexe (chapitre avancé), Singleton et companion object, Exploiter une API Rest, GSON Optimisation (chapitre avancé), Gestion des exceptions, Condition, Boucle, Collection, TP Récapitulatif, exploiter une API avec une collection, Extensions, Lambda Syntaxe (chapitre avancé), Lambda et les collections, Let also apply run, Héritage, Tâches asynchrones avec des Thread
  _Objectives:_ Maîtriser les fondamentaux et la syntaxe du langage Kotlin, Appliquer la programmation orientée objet et fonctionnelle en Kotlin, Exploiter des API REST et manipuler les données JSON, Gérer les tâches asynchrones avec les threads
- **Développer des applications mobiles Android en Kotlin**
  _Topics:_ Présentation, HelloWorld, Maîtriser l'architecture du projet, Créer une interface graphique, Internationaliser son application, Optimiser son IDE, Manipuler l'IHM, Maîtriser le thème de son application, Développer un menu et des boîtes de dialogue, Comprendre le cycle de vie d'une activité, Utiliser une tâche asynchrone, Réaliser une requête https, Exploiter une API Rest, GSON Optimisation (chapitre avancé), Gestion des exceptions, Retrofit (chapitre avancé), Architecture ViewModel, Live data et MVVM, Projet récapitulatif, Databinding, Gestion des permissions, Mise en place d'un RecyclerView, Google Maps théorie
  _Objectives:_ Créer une application native Android en Kotlin, Concevoir et manipuler des interfaces graphiques (RecyclerView, menus, thèmes), Exploiter des API REST avec Retrofit et l'architecture MVVM, Gérer le cycle de vie des activités, les permissions et les erreurs
- **Construire une API REST avec Spring Boot**
  _Topics:_ C'est quoi une API REST ?, Présentation de spring boot, Modéliser son API avec draw.io, Mettre en place son environnement de travail, Découvrir l'arborescence et démarrer l'application, Récupérer les entreprises avec un GET, Utiliser spring boot dev tools, Implémenter une interface de service, Communiquer avec la base de données, Récupérer une entreprise précise avec un GET, POST - Créer une nouvelle entreprise, PUT - Modifier une entreprise, PATCH - Mettre à jour des champs précis de l'entreprise, DELETE - Supprimer une entreprise, Lier entreprise et jeu, Exposer un endpoint pour notre jeu, Récupérer les jeux d'une entreprise avec GET, POST - Créer un nouveau jeu pour une entreprise, PUT - Modifier un jeu, DELETE - Supprimer un jeu, Documenter avec swagger, Valider vos données avec les contraintes
  _Objectives:_ Découvrir le concept d'API REST, Apprendre à générer un projet Spring Boot, Savoir interagir avec une API REST en tant que client, Documenter son API pour permettre sa compréhension, Valider vos données avec les annotations

### Bloc 4 - Conception avancée de l'architecture du logiciel

- **Principes SOLID en JAVA**
  _Topics:_ La problématique de la qualité du code, Les principes Solid, une réponse aux enjeux d'un code maintenable, S : Single Responsability Principle Introduction, Non-respect du Single Responsability Principle, Respect du Single Responsability Principle, Impact du Single Responsability Principle sur la gestion de version du code, O : Open-Close Principle Introduction, Non-respect de l'Open-Close Principle, Respect de l'Open-Close Principle avec l'utilisation d'interfaces, Respect de l'Open-Close Principle en multi-modules, L : The Liskov Substitution Principle Introduction, Non-respect du Liskov Substitution Principle, Respect du Liskov Substitution Principle, I : The Interface segregation Principle Introduction, Non-respect de l'Interface segregation Principle, Respect de l'Interface segregation Principle, D : The Dependency Inversion Principle Introduction, Non-respect du Dependency Inversion Principle, Respect du Dependency Inversion Principle grâce aux interfaces, Respect du Dependency Inversion Principle dans un projet multi-modules, Les points clés
  _Objectives:_ Identifier les enjeux du clean code, Appréhender les principes SOLID, Mettre en œuvre les principes SOLID en JAVA
- **Architecture logicielle**
  _Topics:_ La nécessité de l'architecture logicielle, Panorama des architectures logicielles, Introduction à l'architecture monolithique, Cas d'usage de l'architecture monolithique, Mise en œuvre de l'architecture monolithique en Java, Introduction à l'architecture orientée services, Cas d'usage de l'architecture orientée services, Mise en œuvre de l'architecture orientée services en Java, Introduction à l'architecture micro-services, Cas d'usage de l'architecture micro-services, Mise en œuvre de l'architecture micro-services en Java, Introduction à l'architecture basée sur les évènements, Cas d'usage de l'architecture basée sur les évènements, Mise en œuvre de l'architecture basée sur les évènements en Java, Introduction à l'architecture centrée sur les données, Cas d'usage de l'architecture centrée sur les données, Mise en œuvre de l'architecture centrée sur les données en Java, Conclusion revue des architectures logicielles
  _Objectives:_ Identifier et comparer les principales architectures logicielles (monolithique, SOA, microservices, événementielle, centrée données), Évaluer les cas d'utilisation adaptés à chaque type d'architecture, Mettre en œuvre une architecture logicielle en Java
- **Conception d'application complexe avec UML**
  _Topics:_ Introduction à la modélisation structurelle avec UML, Le diagramme de classe (classe et héritage), Le diagramme de classe avec Visual Paradigm, Traduction du diagramme de classe en code(classe et héritage), Le diagramme de classe (relation et multiplicité), Le diagramme de classe avec Visual Paradigm (relation et multiplicité), Traduction du diagramme de classe en code(relation et multiplicité), Le diagramme de classe (interface et énumération), Le diagramme de classe avec Visual Paradigm (interface et énumération), Traduction du diagramme de classe en code (interface et énumération), Illustration autour d'un cas pratique FantasyRPG 1, Illustration autour d'un cas pratique FantasyRPG 2, Le diagramme de classe pour modéliser une BDD, Le diagramme de séquence (ligne de vie et message), Le diagramme de séquence avec Visual Paradigm (ligne de vie et message), Le diagramme de séquence (Fragment et Jacobson), Le diagramme de séquence avec Visual Paradigm (Fragment et Jacobson), Traduction du diagramme de séquence en code, Illustration autour d'un cas pratique FantasyRPG 3, Présentation du diagramme de composants, Le diagramme de composant avec Visual Paradigm, Présentation du diagramme de package, Le diagramme de package avec Visual Paradigm, Illustration autour d'un cas pratique FantasyRPG 4, Présentation du diagramme de déploiement, Le diagramme de déploiement avec Visual Paradigm
  _Objectives:_ Produire un code source à partir d'un diagramme de classe, Représenter un scénario complexe à l'aide d'un diagramme de séquence, Illustrer une architecture logicielle à l'aide d'un diagramme de composant, Établir un diagramme de déploiement, Produire un diagramme de package à partir du code source
- **Design Pattern en Java**
  _Topics:_ Introduction Design Pattern du GoF, la légende, Description des Design Pattern de création, Description du Design Pattern Singleton, Implémentation de Singleton, Description du Design Pattern Factory Method, Implémentation de Factory Method, Description du Design Pattern Abstract Factory, Implémentation d'Abstract Factory, Description des DP Builder DP Prototype, Description des Design Pattern de structure, Description du Design Pattern Proxy, Implémentation de Proxy, Description du Design Pattern Composite, Implémentation de Composite, Description du Design Pattern Adapter, Implémentation de Adapter, Description du Design Pattern Facade, Implémentation de Facade, Description du Design Pattern Decorator, Implémentation de Decorator, Description des DP Flyweight DP Bridge, Description des Design Pattern de comportement, Description du Design Pattern Observer, Implémentation d'Observer, Description du Design Pattern Strategy, Implémentation de Strategy, Description du Design Pattern Iterator, Implémentation d'Iterator, Description du Design Pattern Interpreter, Implémentation d'Interpreter, Description du Design Pattern Chain of Responsibility, Implémentation de Chain of Responsibility, Description des DP Template Method DP Mediator, Description des DP Visitor DP Memento, Description des DP Command DP State, Les autres Design Pattern Exemple Composite Specification, Implémentation du Design Pattern Composite Specification
  _Objectives:_ Connaître les 23 Design Pattern de conception du Gang of Four (GoF), Appliquer les principaux DP de création en Java (Singleton, Factory, Abstract Factory), Appliquer les principaux DP de structure en Java (Adapter, Proxy, Composite, Façade, Decorator), Appliquer les principaux DP de comportement en Java (Observer, Strategy, Iterator, Interpreter, Chain of Responsibility), Adapter un ou plusieurs DP à des situations réelles
- **Sécurité des applications web**
  _Topics:_ Introduction à la sécurité des applications web, L'authentification et l'autorisation dans les applications web, Découvrez les recommandations OWASP, Recommandation A01-2021 : Broken Access Control, Recommandation A02-2021 : cryptographic failure, Recommandation A03-2021 : injection, Recommandation A04-2021 : insecure design, Recommandation A05-2021 : security misconfiguration, Recommandation A06-2021 : Vulnerable and Outdated Components, Recommandation A07-2021 : Identification and Authentication Failures, Recommandation A08-2021 : Software and Data Integrity Failures, Recommandation A09-2021 : Security Logging and Monitoring Failures, Recommandation A10-2021 : Server-Side Request Forgery (SSRF), Mise en œuvre de Spring Security dans un projet Java Spring Boot, Configurer une chaîne de filtres de sécurité « Basic Authentication », Utiliser des utilisateurs en base de données pour l'authentification, Gérer l'autorisation grâce à la mise en œuvre de rôles de sécurité, L'authentification basée sur les jetons, Configurer une chaîne de filtres de sécurité « Bearer Token Authentication », Créer votre propre filtre de sécurité basé sur les jetons, Testez votre sécurité avec Spring Security Test, Découvrez le protocole d'autorisation OAuth2, Découvrez le protocole d'identité OpenID, Reprise des points clés
  _Objectives:_ Appréhender les recommandations OWASP, Connaître les modes d'authentification pour les applications web, Implémenter une authentification basée sur les tokens en Java avec Spring Security
- **Algorithmie avancée**
  _Topics:_ Optimiser, par où commencer ?, Rechercher, une tâche complexe ?, Améliorer la recherche avec un tri, Complexité du tri, Amélioration du tri dans le meilleur cas, Vérifier, aussi compliqué que faire ?, Simplifier et simplifier encore, Équivalence récursif et itératif, Les tours de Hanoï, Diviser pour régner, La recherche dichotomique, Le tri rapide, Comparons les tris, La mémoire, Mémoire et récursivité, Tableaux et mémoire, Performance et tableaux, Listes chaînées, Opérations sur liste chaînée, Liste doublement chaînée, Liste doublement chaînée circulaire, Implémentation d'une liste chaînée, Pile et file, Sac à dos Force brute, NP-Complétude, Algorithme d'approximation, Les algorithmes gloutons, Sac à dos glouton, Programmation dynamique, La suite de Fibonacci, Classique versus Dynamique, Sac à dos dynamique, Les versions de sac à dos, Le temps, la mémoire et les stratégies
  _Objectives:_ Être en mesure de pouvoir comparer deux algorithmes, Améliorer un algorithme en termes de temps d'exécution, Améliorer un algorithme en termes d'utilisation de la mémoire, Appliquer une stratégie de résolution de problème
- **Programmation fonctionnelle en Scala**
  _Topics:_ Introduction à la programmation fonctionnelle, Règles et lois sur les fonctions, Introduction à Scala, Installation d'IntelliJ IDEA / Utilisation de SBT, Un aperçu de Scala, Programmation orientée objet, Types et composition de types, Énumération des types, Fonctions en Scala, Pattern Matching, Données immuables, Récursivité, Fonctions de haut niveau, Implémentation d'une collection, Gestion des erreurs en Scala, Effets, programmation parallèle et concurrente en Scala
  _Objectives:_ Comprendre les concepts fondamentaux de la programmation fonctionnelle, Savoir utiliser les fonctions comme des valeurs, Maîtriser les techniques de manipulation de données immuables, Appliquer les concepts de récursivité et de fonctions de haut niveau, Utiliser Scala pour mettre en pratique les concepts de la programmation fonctionnelle
- **Architecture distribuée et Big Data**
  _Topics:_ Introduction au big data, Architecture distribuée, Implications business du big data et de l'architecture distribuée, Système de gestion de bases de données, NoSQL, Hadoop, MapReduce, MapReduce démonstration, DataFlow Engines, Spark, RDD, RDD Démonstration, RDD transformations et actions, Démonstration RDD, transformations et actions, Spark Architecture, Spark, API de haut niveau, Démonstration Spark, API de haut niveau, Optimisation Spark, Spark SQL, Dataframes et Datasets, Démonstration Spark SQL, DataFrames et DataSets, Choix de l'API, Streaming, Spark Streaming, Spark Structured Streaming, Démonstration - Spark Structured Streaming
  _Objectives:_ Comprendre les enjeux du Big Data, Maîtriser le stockage relationnel & NoSQL : leurs garanties et leurs limitations, Parcourir les caractéristiques des systèmes distribués, Maîtriser les bases du traitement batch : MapReduce, Data Flow Engines (Spark..), Analyser la donnée temps réel avec du Streaming
- **NoSQL**
  _Topics:_ Introduction au stockage, Le modèle relationnel, Les bases du relationnel, OLAP vs OLTP, Agrégations, transactions et optimiseur, Les bases du relationnel : Démonstration, Relationnel moteur de stockage : Démonstration, Relationnel transactions : Démonstration, Relationnel optimiseurs : Démonstration, Introduction au NoSQL, NoSQL : Clé valeur, Redis - CRUD : Démonstration, Redis, Transactions et pub-sub : Démonstration, Redis : Architecture, Redis, architecture : Démonstration, NoSQL : Colonne, Cassandra, CRUD : Démonstration, NoSQL Cassandra : Architecture, Cassandra, Architecture : Démonstration, NoSQL : Document, MongoDB, CRUD : Démonstration, MongoDB, CRUD : Architecture, MongoDB, Architecture : Démonstration, NoSQL : Graph, Neo4j, crud : Démonstration, Neo4J, complex graph : Démonstration, Neo4J : Architecture, Neo4j, architecture : Démonstration
  _Objectives:_ Comparer les modèles de bases de données relationnelles et NoSQL, Maîtriser les bases NoSQL : clé-valeur (Redis), colonne (Cassandra), document (MongoDB), graphe (Neo4j), Concevoir et gérer des bases de données dans un environnement distribué, Comprendre la répartition de charge, la cohérence des données et la tolérance aux pannes
- **Structure des données**
  _Topics:_ La bonne structure, Que contient un graphe ?, Graphe orienté et graphe non orienté, Graphe pondéré, Structure de données graphe, Représenter un graphe en Python, Rendre un graphe pondéré en Python, Parcours en largeur, Parcours en profondeur, Parcours de graphe en Python, Chemin dans un graphe, Chemin hamiltonien, Chemin hamiltonien en Python, Chemin eulérien, Présence d'un chemin eulérien en Python, Algorithme de Fleury en Python, Arbre couvrant minimum, Algorithme de Kruskal en Python, Le plus court chemin, Algorithme de Dijkstra, Les limites de Dijkstra, Arbre binaire de recherche, Manipuler un arbre binaire de recherche, Opérations sur un arbre binaire de recherche, Modifications d'un arbre binaire de recherche, Arbres rouges et noirs, Insérer dans un arbre rouge et noir, Supprimer dans un arbre rouge et noir, Tas et tri par tas, Implémenter le tri par tas, Utiliser la bonne structure de données
  _Objectives:_ Comprendre les structures non linéaires à travers la structure graphe, Représenter un graphe dans un langage de programmation, Parcourir un graphe, Résoudre des problèmes courants à l'aide de graphes
- **Plans de tests d'une application**
  _Topics:_ Objectifs d'un plan de tests, Contenu d'un plan de tests, Création d'un cas de test, Typologie et hiérarchie des tests automatisés, Les bases d'un test unitaire, Le TDD - le développement piloté par les tests, Application concrète du TDD, Tests unitaires avancés sur le backend, Couverture du code par les tests, Tests sur la partie front-end, Tests et intégration continueavec Gitlab, Les tests d'intégration et les jeux de données, Les tests d'intégration d'API, Exécution des tests d'intégration dans Gitlab, Le BDD - Les tests avec les utilisateurs, Les tests de bout en bout, Analyse statique de code, Enjeux sur les tests de sécurité avec l'OWASP, Sécurité - Contrôle d'accès défaillant, Sécurité - Défaillances cryptographiques, Sécurité - Injection SQL, Sécurité - Failles XSS, Fuzzing - Analyse de sécurité par des tests aléatoires, Tests de charge, Conclusion
  _Objectives:_ Construire et exécuter un plan de tests adapté selon la méthodologie de développement, Différencier les types de tests et choisir une stratégie adaptée au contexte, Créer et exécuter des tests automatisés sur des environnements adaptés, Analyser la sécurité d'une application et apporter des corrections selon les recommandations de OWASP
- **Introduction au Machine Learning**
  _Topics:_ Le Machine Learning en pleine expansion, Découvrir les concepts du machine learning, Appréhender l'apprentissage supervisé, Visualiser le cycle de vie d'un projet de Machine Learning, Mettre en place son environnement de travail, Prendre en main Python et Numpy, Pandas, Scikit-learn, Découvrir notre premier modèle, KNN, Le KNN en pratique, Évaluer son modèle de régression, Évaluer son modèle de régression avec sklearn, Explorer les données, Comprendre le 2e modèle régression linéaire, Entraîner une régression linéaire, Appréhender un problème de classification, Préparer des données Partie 1, Préparer des données partie 2, Mettre en place une méthodologie d'évaluation Partie 1, Évaluer son modèle de classification, Mettre en place une méthodologie d'évaluation Partie 2, Manipuler un 3e modèle Arbre de décision, Lutter contre le sur-apprentissage avec la régularisation, Tuner son modèle grâce aux hyper-paramètres, Découvrir les modèles d'ensemble avec la forêt aléatoire, Sélectionner les features pertinentes, Déployer son modèle de prédictions, Structurer son projet de machine learning, Découvrir le Deep Learning, Implémenter un réseau de neurones, Classifier des images avec des réseaux de neurones convolutifs
  _Objectives:_ Définir le machine learning et ses composants, Être capable de préparer des données, Savoir entraîner et exploiter un modèle de machine learning, Identifier des cas d'usage pertinents du machine learning

### Bloc 5 - Préparation à votre niveau d'anglais

- **Anglais commercial**
  _Topics:_ Dépasser les fausses croyances courantes dans l'apprentissage de l'anglais, Comment gérer les interactions professionnelles de base, Comment utiliser le vocabulaire commun à l'anglais et au français dans les interactions professionnelles, Identifier et éviter les pièges les plus courants dans la communication professionnelle en anglais, Comment créer le cadre pour augmenter votre aisance dans les situations professionnelles, Presenting yourself and your company, Rédiger un courriel professionnel, Téléphoner pour obtenir des Informations (ou prendre rdv), Résoudre un problème de service client, Participer à une réunion, Comprendre les demandes et les consignes, Comprendre les questions et reformuler, Identifier et définir les problèmes, Suivre une réunion, Comprendre une proposition commerciale, Présenter des informations de manière simple et cohérente, Assurer le suivi d'un projet, Exprimer les divergences d'opinion et informer les collaborateurs des problèmes, Structurer clairement ses idées et ses propositions, Comment intervenir lors d'une réunion, Comment gérer les sujets complexes ou ambigus, Comment se préparer à suivre une négociation, Comment gérer les déplacements professionnels en anglais, Les clés pour participer à un salon en anglais, Comment gérer sereinement la multiculturalité
  _Objectives:_ Savoir accueillir, renseigner et faire remplir une fiche d'information, Pouvoir communiquer et maîtriser les bases de l'anglais commercial, Traiter des réclamations clients par écrit, Enrichir et utiliser un vocabulaire spécifique et adapté
- **Anglais Commercial Niveau Avancé**
  _Topics:_ Vocabulary Expansion for Professional Contexts, Speaking Skills for Business Meetings and Présentations, Writing Skills for Business Emails and Reports, Business Negotiations, Professional Présentations and Public Speaking, Sales Méthodologies and Techniques-Persuasive Techniques for Sales, Negotiation Techniques in English, Handling Objections and Closing Deals, Sales Forecasting and Performance Évaluation, Sales Team Management and Leadership, Cultural Awareness and Sensitivity in Business, Global Business Etiquette and Protocol, Cross Culture Negotiation Styles, Adapting Communication Styles for Different Markets, Managing Cross-Cultural Teams and Relationships, B2B Sales Process and Relationship Building, Advanced Negotiation Skills and Harvard Style Negotiation, Account Management and Customer Retention, Handling Complex Sales Cycles and Objections, Sales Forecasting and Performance Évaluation for B2B Sales, Marketing Strategy and Planning for Business Growth, Customer Needs Analysis and Lead Génération, Product Marketing and Promotion Techniques, Effective Customer Communication and Relationship Management, Sales Forecasting and Performance Évaluation for Marketing
  _Objectives:_ Améliorer les compétences de communication en anglais des affaires, Développer des techniques et stratégies de vente avancées, Renforcer les compétences de communication interculturelle pour le commerce international, Appliquer les compétences de vente B2B et de gestion de comptes, Comprendre les compétences en marketing et communication client
- **Anglais Commercial Niveau Intermédiaire**
  _Topics:_ Professional English Communication in Sales, Professional English Communication in Sales, Communication via Phone and Email, Managing Misunderstandings and Expressing Disagreement in English Conversations, Differences between French and Anglo-Saxon Cultures, Tips for Improving English Pronunciation, Reading aloud to Enhance Fluency and Confidence, Common expressions for managing stress and nervousness during présentations in English, Breathing and Relaxation Techniques to Enhance Confidence in English, Practical exercises to improve diction and voice projection in English, Effective Présentation Techniques in English, Key Phrases for a successful présentation in English, Structure of sales proposals in English, Action verbs for formulating business ideas and proposals in English, Writing professional présentation materials in English, Understanding commercial terminology in English, Managing misunderstandings in English, Variations in customer needs based on culture, Reformulating customer requests to better meet expectations, Active listening- techniques and tools for empathy and understanding prospects, Sales process and product-service présentation, Presenting solutions aligned with customer needs, Crafting persuasive sales proposals, Action verbs for formulating sales proposals in English, Handling common sales objections in English
  _Objectives:_ Communiquer efficacement avec des collaborateurs, des clients ou des fournisseurs en anglais, Découvrir des méthodes pour améliorer la prononciation et l'articulation en anglais, Maîtriser les techniques de présentation efficace en anglais pour captiver l'audience, Comprendre les besoins des clients et les reformuler, Formuler des propositions commerciales et répondre aux objections
- **Anglais : préparation au TOEIC**
  _Topics:_ Introduction au TOEIC®, Les types de TOEIC®, Focus sur le TOEIC® : listening and reading, Le nouveau TOEIC®, Comment se préparer, Le vocabulaire général, Les thèmes généraux, Le vocabulaire professionnel, Accroître son vocabulaire, Accroître son vocabulaire 2, Les mots outils, Prépositions & "phrasal verbs", La grammaire du TOEIC®, La formé -ing, Emploi du gérondif, Les auxiliaires, Les modaux, Conjuguer avec "be", Conjuguer avec "have", Conjuguer avec "will", "would", "do" et "did", Trucs et astuces de conjugaison, Section "listening" (compréhension orale), Part 1, Réussir "Part 1", Mini test "Part 1", Part 2, "Part 2" : Questions / réponses types, Réussir "Part 2", Mini test "Part 2", Part 3, Questions types de "Part 3", Mini test "Part 3", Part 4, Questions types de "Part 4", Mini test "Part 4", Section "reading" (compréhension écrite), Part 5, Questions types de "Part 5", Mini test "Part 5", Part 6, Réussir "Part 6", Mini test "Part 6", Part 7, Comment réussir "Part 7", Les particularités de "Part 7", Derniers conseils pour le jour J
  _Objectives:_ Se familiariser avec la formé du test TOEIC, Identifier les points de grammaire à maîtriser et le vocabulaire à acquérir, Déjouer les "pièges" du TOEIC, Maximiser son score TOEIC grâce aux conseils de préparation et au passage d'un TOEIC blanc

### Bloc 6 - Modules de mise à niveau préparatoire et de renforcement

- **Anglais des Ressources Humaines**
  _Topics:_ Se présenter et présenter son poste, Métiers des RH en entreprise, Comprendre et utiliser les codes professionnels de communication (hiérarchie, distance, formel-informel), Collecter les besoins et adapter une fiche de poste à un recrutement international, Rédiger une offre d'emploi en anglais claire et attractive, Poster une offre sur les plateformes - Site carrière de l'entreprise, linkedin, jobboards, Comprendre les CVS internationaux et tendances culturelles, Obtenir les informations essentielles lors d'un entretien de recrutement (présentiel ou distanciel), Donner un retour à un candidat, Présenter le processus d'onboarding, Répondre aux questions courantes lors d'un entretien, Gestion administrative du personnel - Promesse d'embauche et formalisation du contrat de travail, Comprendre l'influence culturelle sur le contenu des rapports d'étonnement, Préparer et mener un entretien de fin de période d'essai, Rédiger des mails RH types (convocation, relance, suivi..), Effectuer des tâches courantes - One-to-one avec le collaborateur, téléphone, en visio, Prendre des notes et rédiger un compte-rendu concis d'entretien ou de réunion RH, Gérer des demandes administratives de collaborateurs internationaux, Conduire un entretien annuel et professionnel, Gérer les talents et évaluer des besoins en formation, Engager une procédure de sanction à l'encontre d'un collaborateur, Suivre un plan de développement individuel, Valider un profil avec un manager, Identifier les différences culturelles majeures dans les pratiques RH, Reconnaître des incompréhensions ou tensions interculturelles, Gérer des incompréhensions ou tensions interculturelles, Communiquer avec assertivité (feedback, situations délicates, conflits), Promouvoir son entreprise auprès d'un candidat international, Expliquer les avantages sociaux et la vie en France, Valoriser la diversité et la culture d'entreprise, Rédiger la présentation d'un projet RSE (inclusion, QVCT), Évaluer l'impact d'une action RH (ex. formation, onboarding), Tirer des renseignements d'un outil RH (ATS, SIRH.), Utiliser efficacement un outil de traduction, Communiquer sur la politique de confidentialité de l'entreprise en anglais (transparence, RGPD, consentement des collaborateurs.)
  _Objectives:_ Concevoir et adapter des stratégies de communication en anglais pour des situations RH complexes et internationales, Développer et enrichir un lexique RH spécialisé afin de formuler avec précision des politiques et procédures RH en anglais, Élaborer des messages et supports RH (mails, entretiens, présentations) en anglais en intégrant les dimensions linguistiques et interculturelles, Produire une communication RH cohérente, claire et crédible, adaptée à des interlocuteurs multiculturels et à des contextes organisationnels variés

## Program Stats

#### Courses

1151

#### Hours

738

#### Objectives

186

#### Topics

43

## Rankings

### Palmarès nationaux des écoles d'ingénieurs en France (2024-2026)

- Rank: 1 - Specialty: Spécialité Informatique - Observation: L'Usine Nouvelle 2026 - ex æquo - Url: https://www.esiea.fr/lesiea-classee-n1-ex-aequo-des-écoles-dingénieurs-en-informatique-en-2026/
- Rank: 3 - Specialty: Écoles spécialisées Informatique - Observation: L'Usine Nouvelle 2025 - Url: https://www.esiea.fr/lesiea-parmi-les-meilleures-écoles-dingénieurs-en-informatique-en-2025/
- Rank: 4 - Specialty: IA & Data Science - Observation: Eduniversal 2026 - Url: https://meilleurs-bachelors.fr/classement-écoles-d-ingénieurs-et-écoles-spécialisées-en-informatique-et-numérique-post-bac.html
- Rank: 5 - Specialty: Top 20 Informatique Post-Bac - Observation: L'Étudiant 2024 - Url: https://www.letudiant.fr/études/école-ingénieur/classement-des-écoles-dingénieurs-le-top-10-des-écoles-dinformatique.html
- Rank: 6 - Specialty: Ingénieurs Informatique - Observation: Le Figaro Étudiant 2024 - Url: https://www.esiea.fr/les-classements-de-2024-sont-tombes/
- Rank: 10 - Specialty: Palmarès Général Post-Bac - Observation: L'Étudiant 2025 - Url: https://objectif-ast.fr/classement-letudiant-écoles-ingénieurs/
- Rank: 11 - Specialty: Écoles d'Ingénieurs Post-Bac - Observation: L'Étudiant 2026 - ex æquo - Url: https://objectif-ast.fr/classement-étudiant-2026-meilleures-écoles-ingénieurs/
- Rank: 13 - Specialty: Ingénieurs Généralistes Post-Bac - Observation: Eduniversal 2026 - Url: https://meilleurs-bachelors.fr/classement-écoles-d-ingénieurs-généralistes-post-bac.html

## Pedagogy Objectives

- **Recueillir et analyser les besoins** du client, adopter une **approche conseil** en apportant des solutions logicielles adaptées
- Répondre aux attentes des métiers en **délivrant la valeur attendue**, avec la juste qualité, en **maîtrisant les coûts et les délais**
- **Prototyper, concevoir, développer, livrer et maintenir** des solutions logicielles **multi plate-forme**
- Tirer profit de **l'intelligence artificielle** et du **traitement massif de données** dans le développement d'applications métier
- Maîtriser les **langages de programmation essentiels** et les **environnements de développement** correspondants
- **Sécuriser les applications web** en appliquant les recommandations OWASP et les bonnes pratiques de cybersécurité
- Valider la **qualité logicielle** par des stratégies de tests automatisés, de performance et d'intégration continue

**Pedagogy Vision:** Approche d'apprentissage par projet combinant connaissances théoriques approfondies et applications concrètes en entreprise. Les étudiants travaillent sur des **projets de niveau professionnel** tout au long de leur cursus, couvrant l'ensemble du cycle de développement logiciel : de la conception architecturale au déploiement en production, en passant par le développement, les tests et la sécurisation. Le programme est conçu pour former des **experts capables de concevoir, développer, tester, sécuriser et manager des projets logiciels complexes**.

**Presentation:** L'ESIEA est une **école d'ingénieurs** française fondée en 1958, reconnue par la Commission des Titres d'Ingénieur (CTI). L'école **formé des ingénieurs du numérique capables de relever les défis technologiques actuels et futurs**. Le titre « **Expert en Ingénierie du Logiciel** » est un titre RNCP de niveau 7 (équivalent Master) certifié par l'ESIEA. Ce programme couvre l'ensemble des compétences requises pour **concevoir, développer, tester, sécuriser et manager des projets logiciels complexes** dans un environnement professionnel exigeant.

## Related achievements

- [magicplaylist-android-music-discovery](https://portfolio.josedacosta.info/fr/realisations/magicplaylist-android-music-discovery.md)
- [plateforme-gestion-projets-collaboratif](https://portfolio.josedacosta.info/fr/realisations/plateforme-gestion-projets-collaboratif.md)
- [gamesup-plateforme-ecommerce-ml](https://portfolio.josedacosta.info/fr/realisations/gamesup-plateforme-ecommerce-ml.md)

Full interactive version with timeline navigation: https://portfolio.josedacosta.info/fr/parcours/master-expert-en-ingenierie-du-logiciel
