Programme académique 2020/21
4ème année du cursus Bac+5
Programme spécial « Admissions parallèles »

Préambule : Hexagone, une Grande École différente

L’École Hexagone propose une signature andragogique (pédagogie appliquée aux adultes) particulière :

  • Un encadrement pédagogique strict : les cours sont obligatoires, les absences doivent être dûment justifiées, un débriefing individuel peut être organisé après chaque évaluation, les parents et tuteurs peuvent avoir accès au dossier de l’étudiant à distance, deux conseils de Promotion par année, les écarts de comportement peuvent conduire à une exclusion de l’établissement, etc. ;
  • Une recherche perpétuelle de l’Excellence : avec des attentes particulièrement exigeantes du marché du travail, l’École Hexagone oriente son dispositif académique vers l’Excellence, avec un référent académique par classe qui suivra l’étudiant tout au long de sa scolarité, avec des cours de qualité et, le plus important, des formateurs-consultants expérimentés issus du monde de l’entreprise ;
  • Des projets étudiants et professionnels internationaux : l’Ingénieur a une certaine vision du monde et des environnements qui le composent. Cette approche très humaine doit être encouragée et développée durant les études supérieures. Ainsi, en complément des cours d’informatique, vous suivrez des cours sur la communication interculturelle, l’innovation, l’entrepreneuriat, l’oenologie, des cours de théâtre, etc.
  • Une École préoccupée par le bien-être de ses étudiants : Afin de parvenir à l’Excellence académique, nous pensons que vous devez vous sentir bien dans votre corps. C’est pourquoi vous serez suivi individuellement par un coach sportif à raison de 60 heures par an. Enfin, si vous le souhaitez, vous pourrez bénéficier de 3 séances d’ostéopathie, directement sur le Campus et prises en charge par Hexagone.

Ce programme de 4ème année, du cursus Bac+5, a pour vocation de former le futur ingénieur en informatique à une expertise de pointe sur les sujets qui font et feront l’IT des 10 prochaines années, et à renforcer sa pratique professionnelle des métiers.

Il a par ailleurs été spécialement conçu pour les étudiants qui souhaitent poursuivre leurs études après un Bac+3, et qui ont désormais pour objectif d’obtenir un Bac+5. C’est dans cet état d’esprit que nous avons intégré deux modules, « Bonnes pratiques du développement » et « Bonnes pratiques d’Administration réseaux », afin que chacun puisse pleinement profiter des nouvelles thématiques telles que l’Intelligence Artificielle, le Machine Learning, le Big Data et les télécommunications 5G.

D’une durée de 649 heures, ce programme est également conçu pour laisser un rythme d’alternance idéal, en accord avec nos entreprises partenaires qui recrutent nos étudiants. Ainsi vous serez 3 jours en cours à Versailles et 2 jours en entreprise. Pour mémoire, l’alternance peut s’effectuer à travers un stage conventionné ou un contrat de professionnalisation.

SYNTHÈSE DU PROGRAMME DE LA 4ÈmE ANNÉE

 Vous pouvez directement cliquer sur un des éléments pour accéder aux détails.

Bloc de compétencesModuleDuréeECTS
Bonnes pratiques du développement35 h.4
Gestion de projet – Méthodologie de tests21 h.4
Technologies Web – PHP et Node.JS42 h.4
API et microservices avec Java et C#35 h.4
Développement Front – ReactJS42 h.4
Bonnes pratiques d’Administration réseaux21 h.3
Virtualisation – Docker42 h.4
Intégration continue28 h.3
Télécommunications 5G35 h.4
Bases de données et Big DataSQL et NoSQL63 h.4
Big Data42 h.4
Business Intelligence42 h.4
Intelligence Artificielle56 h.4
Machine Learning56 h.4
Soft-SkillsFondamentaux de la comptabilité28 h.4
Markéting et stratégie d’entreprise28 h.4
Sport33 h.2
ProjetsProjet fil rouge sur l’année8

Activités non obligatoires n’entrant pas en compte dans le calcul des crédits ECTS

• Accès au Laboratoire pour ses projets académiques ou personnels
• Activités associatives à travers le Bureau des Étudiants
• Ateliers d’oenologie
• Séances de yoga

Les formateurs-consultants

L’École Hexagone attache une importance toute particulière à la qualité de sa formation et à la satisfaction des étudiants. Les formateurs-consultants sont sélectionnés pour leurs sérieux et expériences professionnelles probantes. En toute transparence, nous vous présentons quelques-uns de vos futurs mentors pour l’année 2020-21 pour les Campus de Riyadh et Versailles.

Abir BHAR Profil LinkedIn
ASpécialiste des questions de télécommunications radios 2G/3G/4G/5G, Abir a  mené avec brio plusieurs projets en Algérie, en Belgique et en France, sur les technologies Cisco, Ericson, Huawei et ZTE.

Benjamin CLÉMENT-KERFI Profil LinkedIn
Après de belles expériences chez Scor (Expert réseaux) et à la Société Générale (Expert Wifi & NAC), Benjamin a créé BISPOK, une agence de conseils et d’intégrations spécialisée dans les projets de Flex Office, de Sécurisation NAC et de solutions de Wi-Fi Proximity Marketing.

Emerick DUVAL Profil LinkedIn
Consultant en Business Intelligence depuis près de 8 ans, Emerick s’est très vite spécialisé dans les données. Passionné par son métier il transmet régulièrement ses connaissances aux étudiants et stagiaires en formation professionnelle.

Sion GENDERS Profil LinkedIn
Depuis près de 10 années, Sion travaille sur les technologies .Net / C# (Microsoft). Passionné par le développement informatique, il a su à travers différentes expériences en centre de formation, transmettre son savoir à ses pairs.

Guillaume LAIRLOUP  Profil LinkedIn
Guillaume a commencé sa carrière en tant que DSI en 1995 à l’Institut Français de Rabat, puis a passé près de 9 ans chez TV5MONDE, puis entre autres à l’AccorHotels Arena (Paris-Bercy). Il s’est spécialisé sur les questions IT pour les médias et les grandes manifestations artistiques et sportives.

Conception d’applications d’entreprise

Bonnes pratiques du développement

Les fondamentaux mathématiques et algorithmiques sont indispensables à une bonne appropriation des enjeux actuels et futurs autour de la data, sa représentation et son exploitation en développement, dans des secteurs aussi différents que la finance, le bâtiment ou les médias.

Objectifs de compétences à l’issue de ce module

  • Maitriser les fondamentaux de la programmation Algorithmique
  • Comprendre les mécanismes mathématiques associés
  • Savoir utiliser les outils de développement modernes
  • Disposer des bons réflexes et méthodes pour un développement efficace

Contenu pédagogique

Partie 1 : Bonnes pratiques de la programmation (Python)
Rappels sur la programmation orientée objet

  • Classe, objet, comportements, caractéristiques
  • Tirer parti d’UML
  • Encapsulation et héritages

Gestion des erreurs

  • Mécanismes
  • Déclenchement et traitement des exceptions

Fondamentaux de Python

  • Principes du langage
  • Gestion de la ligne de commande
  • Lecture/écriture de fichiers

Méthodologie de tests

  • Rôle du test dans le processus de développement
  • Utilisation de Git et outils associés

Partie 2 : Outils mathématiques pour l’informatique
Généralités

  • Ensembles, éléments, parties d’un ensemble, fonctions,
    opérations sur les ensembles

Dénombrements

  • Cardinal d’un ensemble, ensemble fini, ensemble dénombrable
  • Arrangements, combinaisons, permutations, formule du
    binôme

Probabilités combinatoires

  • Épreuves, événements, lois de probabilité, probabilités
    conditionnelles, indépendance, essais répétés

Algèbre linéaire

  • Notion de matrice
  • Espaces vectoriels
  • Exemple d’application à la 3D

Logique

  • Calcul propositionnel
  • Propositions, connecteurs, formes propositionnelles
  • Prédicats, quantificateurs
  • Récurrences, définitions récursives

Gestion de projet – Méthodologie de tests

Il est indispensable de maîtriser les méthodologies de gestion de projet et de tests afin de respecter les exigences qualité de l’industrie.

Objectifs de compétences à l’issue de ce module

Gestion de projet :

  • Comprendre les principes itératifs des méthodes agiles
  • Définir et prioriser un scénario d’utilisation en mode agile
  • Mettre en place une planification de projet basée sur les principes agiles

Méthodologie de tests :

  • Connaître les avantages du Test Driven Development sur les autres techniques de programmation
  • Développer une application simple avec TDD
  • Utiliser TDD

Contenu pédagogique

Partie 1 : Méthodes Agiles
Introduction

  • Principe de l’agilité et rappels sur les méthodes classiques de gestion de projet
  • Panorama des différentes méthodes Agiles

La formalisation des exigences

  • Techniques de description des besoins fonctionnels et des exigences qualité
  • Les features, les Users Stories, notion de Backlog
  • Les tests d’acceptation
  • Construire des stories tests

Priorisation des « User Stories »

  • La planification basée sur la valeur
  • Utilité du modèle de Kano. La méthode Moscow.
  • Calculer les valeurs ajoutées – la valeur client pour chaque story à planifier dans la release
  • Priorisation des stories basée sur le risque et sur la valeur client

La planification des releases

  • Le découpage du projet en releases. Construire la roadmap.
  • Définir les sprints ou les itérations du projet
  • Évaluer des charges, évaluation de la taille des stories : le Planning Poker.
  • Définition de la vélocité de l’équipe.

Planification et organisation des itérations

  • Construire le Backlog de sprint, identification des tâches, planification
  • Mise en oeuvre d’une amélioration continue : l’animation des revues et les rétrospectives de fin d’itération
  • La planification journalière : daily scrum ou standing meeting : l’objectif, l’organisation
  • L’organisation du développement. Le WIP, les itérations de développement de XP.
  • Les principes d’ingénierie : conception simple, amélioration du code par la réécriture, intégration continue
  • Les indicateurs d’avancement

Mise en oeuvre des méthodes agiles

  • Les outils agiles. Les tableurs, les outils spécialisés.
  • Les étapes de la transition d’une démarche classique vers une approche agile
  • L’accompagnement du changement. Le contexte, définir les objectifs du changement. Le rôle du coach.

Partie 2 : Test Driven Development

  • Introduction au Test Driven Development
  • Gestion des exceptions – Refactoring
  • Feedback et Agilité
  • TDD et Génie logiciel
  • Mise en situation : développement d’une application
  • Les patterns

 

Technologies Web – PHP et Node.JS

Le Web est partout et donc incontournable dans ses aspects technologiques.

Objectifs de compétences à l’issue de ce module

  • Installer et configurer un serveur Node.js
  • Savoir implémenter des solutions CRUD avec PHP (Symfony) et Node.js
  • Mettre en oeuvre les concepts de la programmation événementielle et asynchrone
  • Mettre en place un framework Web
  • Gérer la persistance dans une base de données NoSQL avec un ODM
  • Comprendre les mécanismes de Twig

Contenu pédagogique

Partie 1 : NodeJS
JavaScript serveur

  • Présentation du JavaScript côté serveur, de Node.js du moteur Google V8
  • Rappels JavaScript : callbacks, closures, notion de scope, apply, bind, call

Initiation à ECMAScript

  • Premiers pas en Node.js
  • Installation du serveur Node.js
  • Le gestionnaire d’extensions NPM

Les fondamentaux Node.js

  • Le développement asynchrone et la gestion évènementielle
  • Principaux modules de l’API : console, util, file, events & timer…
  • Gestion des requêtes/réponses HTTP, HTTPS
  • Parsing d’URL (paramètres, requête…)
  • Traiter une requête en mode asynchrone
  • Mettre en place un gestionnaire de routes

Express

  • Construction et configuration d’un squelette d’application
  • La gestion de formulaires et des uploads de fichiers
  • Le routage d’URL
  • Mise en place d’une API REST avec Token.JS

Les vues avec les Templates Twig

  • Présentation de Twig et de sa syntaxe
  • Les notions de layout/views et de blocs
  • Fonctionnalités avancées du langage
  • Échange de données et interactions avec les contrôleurs

Persistance des données

  • Initiation à une base NoSQL : MongoDB
  • Mise en place de CRUD (Create, Read, Update, Delete)
  • Utilisation de Mongoose.

Test d’une application Web

  • Méthodologie de test
  • Premiers pas avec Mocha
  • Les assertions et le test synchrone et asynchrone
  • Différentes méthodes de tests (inclusifs, exclusifs…)

Partie 2 : Symfony
Présentation et introduction à Symfony

  • Architecture du framework
  • La notion de distribution
  • Les composants de base

Mettre en place un projet Symfony

  • Création d’un projet avec l’édition standard du framework
  • Configuration du framework pour l’utiliser dans ses applications
  • Liaison à la base de données
  • Les différents environnements : dev, test, prod.

Configuration de Symfony

  • Les fichiers et syntaxes de configuration
  • Syntaxes YAML, Annotations, XML et PHP

Le modèle de programmation de Symfony

  • Présentation de la console pour la génération des squelettes code de l’application
  • La notion de Bundle

La manipulation des bases de données pour le modèle

  • Configuration de l’application et du Bundle pour l’accès aux données
  • Présentation des techniques de mapping objet/relationnel
  • Doctrine 2
  • Les entités et le mapping sur les tables
  • Génération avec la console
  • Utiliser l’EntityManager
  • Les repositories et le DQL

Les contrôleurs et le routage des requêtes

  • Mécanisme de contrôleur frontal et de routage
  • Format et configuration des routes
  • Implémentation des contrôleurs

Les formulaires

  • Initialisation et affichage d’un formulaire
  • Traitement et validation des données d’un formulaire
  • Utilisation des thèmes de formulaire pour la personnalisation du rendu

La sécurité dans les applications Symfony

  • L’authentification
  • Gestion des permissions utilisateurs
  • Gestion des autorisations

 

API et microservices avec Java et C#

Les microservices désignent à la fois une architecture et une approche de développement logiciel qui consiste à décomposer les applications en éléments les plus simples, indépendants les uns des autres.
Les APIs quant à elle permettent à plusieurs applications d’échanger des informations. L’objectif de ce module est d’apprendre à créer ce type d’architecture en utilisant le C# et/ou le Java.

Objectifs de compétences à l’issue de ce module

  • Maîtriser les bases de REST et des Web API
  • Utiliser OData pour requêter les données
  • Authentifier les utilisateurs et les applications Moderne avec OAuth
  • Documenter un Web Service automatiquement
  • Découvrir Docker pour un déploiement léger de microservices
  • Comprendre les implémentations de ces architectures en Java et C#

Contenu pédagogique

Bases des Web Services REST avec Web API

  • Le Representational State Transfer
  • Sérialiser les objets en Javascript Object Notation
  • Organiser avec l’architecture Modèle Vue Controleur
  • Utiliser des routes pour donner du sens aux URLs
  • Exprimer les routes avec des attributs
  • Requêter un serveur avec HttpClient
  • Gestion des versions de serveurs

Héberger un Web Service

  • RHéberger son service sur un serveur IIS et Microsoft Azure
  • Auto-héberger son application
  • Journaliser avec les APIs de logging

Requêter un serveur avec OData

  • Économiser la bande passante et enrichir le client
  • Mises à jour avec OData
  • Requêter avec OData et un client .Net
  • Limiter le volume des données
  • Permettre les jointures avec $expand
  • Requêter avec OData sans .Net

Sécurité des Web services REST

  • Les principes d’une authentification moderne
  • Distinguer les types de clients
  • Azure Active Directory ou Active Directory Federation Service ?
  • Créer un fournisseur d’identité OAuth avec Microsoft
    Identity

Documentation du site

  • Documentation avec ASP.Net MVC
  • Documenter une API avec Swagger
  • Travaux pratiques
  • Documentation du site avec Swagger

Microservices avec Docker

  • Machine virtuelle et containerisation
  • Écrire un DockerFile. Mapper les ports avec Docker
  • Docker Compose : orchestrer les applications

Cross Origin Ressource Sharing

  • Restrictions de sécurité du navigateur
  • Autoriser les preflight request
  • Accessibilité du service

Web Sockets

  • Utiliser les Web Sockets pour une communication bidirectionellle avec le navigateur
  • AMettre en place SignalR et JQuery-SignalR

Approche Java – Analyse comparative

  • Présentation de Eclipse Jersey

 

Développement Front – ReactJS

Grâce à React, il est facile de créer des interfaces utilisateurs interactives. Définissez des vues simples pour chaque état de votre application, et lorsque vos données changeront, React mettra à jour, de façon optimale, juste les composants qui en auront besoin. L’objectif de ce module et de maitriser les concepts de cette librairie pour créer des applications Web et Mobile.

Objectifs de compétences à l’issue de ce module

  • Développer avec ReactJS des applications web
  • Comprendre les mécanismes des applications Web modernes

Contenu pédagogique

Introduction

  • Rappels sur les fondamentaux. HTML, CSS, JavaScript. Le DOM.
  • Design patterns applicatifs classiques Limitations des applications JavaScript
  • Les différents frameworks JavaScript
  • Principes de Data-Binding
  • JSX, présentation. Mise en oeuvre « Transpilers »
  • Environnement de développement. IDE et plug-ins

Développer avec ReactJS

  • Approche : MVC et Virtual Dom
  • Utiliser JavaScript ou JSX
  • Méthodes principales de l’API.
  • Création de composant de vues. Cycle de vie.
  • Initialisation de propriétés
  • Gestion des états de composant

Interactivité des composants

  • Gestion des événements. « autobinding » et délégation
  • Design Pattern : stratégie pour les composants à état
  • Composants réutilisables : contrôle et transfert de propriétés
  • Contrôle des composants de formulaire
  • Manipulation du DOM

Application monopage avec ReactJS et Flux ou Redux

  • Flux/Redux : présentation. Propagation de données
  • Comparaison des architectures
  • Création de vues et contrôleurs dans Flux
  • Rôle du « Dispatcher » dans Flux pour les actions
  • Les « Stores », gestionnaire d’états logique dans Flux
  • Définition du Functionnal Programming
  • Approche avec Redux, Le « Reducer »
  • Extension pour ReactJS : « hot-loader »

Application isomorphique

  • Principe et bénéfices du développement isomorphique
  • Écosystème du JavaScript côté serveur
  • Initiation à NodeJS
  • Configuration de NodeJs pour ReactJS
  • Organisation de routes

DevOps et Gestion d’infrastructures

Bonnes pratiques d’Administration réseaux

Les infrastructures réseaux sont au coeur de toutes les entreprises, de la TPE jusqu’au groupe global, et leurs sont indispensables. Les développements effectués doivent s’intégrer dans des contraintes de performances et sécurité des réseaux.

Objectifs de compétences à l’issue de ce module

  • Comprendre l’architecture des réseaux
  • Appréhender les technologies des réseaux d’accès et de transport
  • Spécifier les réseaux d’entreprise, les réseaux pour la mobilité et le Cloud
  • Connaître les moyens de gestion des réseaux en termes de performance et de sécurité

Contenu pédagogique

Fondements des architectures de réseaux

  • Les principes de base des architectures de réseau
  • Services, applications et modèles de communication
  • Qualité de Service, congestion dans les réseaux, service offert par IP
  • Centralisation des serveurs et des données, data center, Cloud et virtualisation
  • Réseaux d’opérateurs, Overlays et distribution de contenu, réseaux cellulaires et mobiles
  • L’Internet des objets

Architecture Internet, fonctionnement et organisation

  • Rappels sur TCP/IP
  • Protocole IPv4, IPv6. ICMP. Transport : TCP, UDP, RTP.
  • La gestion de réseaux IP. L’approche SNMP.
  • Principes de Qualité de Service
  • Évolutions des technologies et usages réseaux

Les réseaux à l’accès pour la connexion des terminaux et usagers

  • La transmission sur paire torsadée : ADSL, VDSL.
  • La boucle locale optique (FTTB, FTTH, FTTdp).
  • Les solutions câblo-opérateurs. Modems câbles.
  • La boucle locale radio. WiFi.
  • Les solutions cellulaires 3G/4G/4G+/5G.
  • Les réseaux de domicile : WiFi, CPL, LiFi

Les technologies et l’articulation des réseaux de transport

  • La commutation de labels. Architecture MPLS
  • Les VPN et les solutions pour les construire
  • Ethernet pour les réseaux opérateurs
  • Les réseaux Overlay (CDN)
  • L’approche SDN

Les réseaux sans-fil et la mobilité

  • Les différentes typologies de réseaux mobiles
  • Technologies des réseaux sans fil
  • IEEE 802.15, Bluetooth, ZigBee et UWB
  • L’IEEE 802.11
  • QoS et sécurité du Wifi
  • Technologies émergeantes

Le Cloud et la virtualisation des réseaux

  • La virtualisation des serveurs et l’impact sur l’infrastructure
  • La centralisation du plan de contrôle et les fonctions du contrôleur
  • La virtualisation du réseau
  • La programmabilité des équipements
  • Approche SDN

Les interconnexions et les réseaux privés virtuels

  • Le commutateur de niveaux 3, 4 et de contenu
  • La commutation versus routage. Le Spanning tree. Routage IP intra et inter-domaine. Commutation de labels
  • La technologie VPN. La sécurité des échanges.
  • Le filtrage de l’information. La sécurité et la gestion
  • Les environnements VPN-IP- IPsec et VPN-IP-MPLS

La disponibilité et la sécurité des réseaux

  • SNMP : fonctionnalités, proxies, MIB. Versions 2 et 3
  • Les attaques : virus, Worms, DDOS. Les solutions : firewall, authentification (MD5, RSA)
  • Principe de chiffrement (DES, IDEA)
  • Mécanismes de signature électronique…
  • IPSEC

Les réseaux aujourd’hui et demain

  • L’Internet des objets
  • La gestion de l’énergie
  • Les réseaux programmables et la virtualisation intensive des systèmes. La gestion et la sécurité.
  • L’évolution des acteurs

 

Virtualisation – Docker

Les machines virtuelles (VM) sont devenues incontournables dans les entreprises. Une VM est un environnement de système d’exploitation ou d’application installé sur logiciel. Elle permet à l’utilisateur de profiter de la même expérience que sur une machine physique, avec plusieurs avantages. Docker a étendu ce principe pour devenir la plateforme de containers la plus populaire et la plus utilisée. Le but de ce module est de comprendre tout ce que vous devez savoir sur cette solution de containerisation : sa définition, son fonctionnement, ses avantages et inconvénients, ou encore les bonnes pratiques d’utilisation.

Objectifs de compétences à l’issue de ce module

  • Comprendre le positionnement de Docker et des conteneurs
  • Manipuler l’interface en ligne de commande de Docker pour créer des conteneurs
  • Mettre en oeuvre et déployer des applications dans des conteneurs
  • Administrer des conteneurs

Contenu pédagogique

De la virtualisation à Docker

  • Les différents types de virtualisation
  • La conteneurisation : LXC, namespaces, control-groups
  • Présentation de Docker
  • Installation et première configuration

Mise en oeuvre en ligne de commande

  • Mise en place d’un premier conteneur
  • Le Docker hub : ressources centralisées
  • Mise en commun de stockage interconteneur
  • Mise en commun de port TCP interconteneur
  • Publication de ports réseau
  • Le mode interactif

Création de conteneur personnalisé

  • Produire l’image de l’état d’un conteneur
  • Le fichier Dockerfile
  • Automatiser la création d’une image.
  • Mise en oeuvre d’un conteneur
  • Conteneur hébergeant plusieurs services : supervisor

Mettre en oeuvre une application multiconteneur

  • Utilisation Docker Compose
  • Création d’un fichier YAML de configuration
  • Déployer plusieurs conteneurs simultanément
  • Lier tous les conteneurs de l’application

Interfaces d’administration

  • L’API Docker et les Web Services
  • Interface d’administration en mode Web
  • Héberger son propre registre : Docker Registry, Gitlab-CE…

Administrer des conteneurs en production

  • Automatiser le démarrage des conteneurs au boot
  • Gérer les ressources affectées aux conteneurs
  • Gestion des logs des conteneurs
  • Sauvegardes : quels outils et quelle stratégie ?

Orchestration et clustérisation

  • Présentation de Docker Machine
  • L’orchestrateur Swarm : nodes, services, secrets, configs
  • Déploiement de services et stacks dans un Swarm
  • Reverse-proxy et load-balancer pour Web Services en cluster (Traefik…)

 

Intégration continue

L’intégration continue est un ensemble de pratiques utilisées en génie logiciel consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l’application développée. Le but de ce module est de découvrir les bonnes pratiques de gestion du code en entreprise et de les mettre en application en utilisant la solution GitLab entre autres.

Objectifs de compétences à l’issue de ce module

  • Comprendre les composantes et les principes de l’intégration continue
  • Manipuler un gestionnaire de contrôle des versions
  • Comprendre les mécanismes de la construction du logiciel et les outils de Build associés
  • Configurer un projet sur un serveur d’intégration continue
  • Déchiffrer les principales métriques d’outils d’analyse de code
  • Appréhender le rôle des dépôts d’artefacts et la gestion des configurations

Contenu pédagogique

Introduction

  • Les différents types d’environnement : développement, recette, production
  • La gestion des configurations : système et applicative
  • Le rôle des conteneurs applicatifs : Docker
  • Centralisation des configurations : puppet, Ansible
  • Industrialisation des déploiements
  • Mettre en place une plateforme d’intégration continue
  • Gestion des versions
  • Les problématiques d’intégration des changements
  • Le rôle des branches et tags

Automatisation des Builds

  • Les Builds, cycle de vie de projet.
  • Les outils de Build

Gestion des dépôts

  • La gestion des livrables (artfacts) : releases, snapshots, déploiement.
  • Organisation des dépôts : développement, test, production
  • Intégration des gestionnaires des dépôts avec les outils de Build, avec les outils de gestion des taches

Automatisation des tests

  • La mise en oeuvre de l’automatisation des tests

Serveur d’intégration continue

  • Le rôle du serveur d’intégration continue
  • Les grandes fonctionnalités
  • La gestion des tâches (job) et la dépendance entre tâches

Mise en place de métriques

  • La génération de rapports
  • Les outils d’analyse et de reporting
  • La traçabilité des changements

 

Télécommunications 5G

La 5G va permettre la création de nouveaux services à valeur ajoutée et va contribuer au développement des smart cities. Le but de ce module, en partenariat avec Huawei, est de comprendre les principes techniques et les enjeux de cette technologie.

Objectifs de compétences à l’issue de ce module

  • Appréhender les objectifs techniques attendus
  • Comprendre les principales évolutions radio attendues en 5G
  • Prendre connaissance des principales évolutions d’architecture attendues en 5G
  • Connaître les services associés à la 5G

Contenu pédagogique

Introduction

  • Rappels 2G, 3G et 4G : de l’architecture aux services
  • Initiatives et standardisation : les projets estampillés 5G, initiatives constructeurs opérateurs, planning attendu
  • Les objectifs de la 5G : quels challenges techniques ? Quel monde 5G à venir ?

5G – Aspects radio

  • Vers de nouvelles fréquences : des 3 GHz en passant par les 6 GHz et au-delà
  • Un OFDM filtré, oui mais lequel ? Les FBMC, UFMC, GFDM, F-OFDM.
  • Du neuf du côté du duplex et de la structure : FDD/TDD, TDD dynamique, canal Full Duplex, Structure Trame/Soustrame
  • De nouvelles techniques DMA : Non Orthogonal Multiple Access (NOMA), Sparse Code Multiple Access (SCMA)
  • Évolutions MIMO : du MIMO Spatial Multiplexing au Massive MIMO
  • Nouvelles formes de Carrier Agrégation
  • Du nouveau du côté Codage Canal : LDPC et Polar Code
  • Évolutions diverses : Time Reversal, Modulations FQAM & APSK

5G – Aspects réseau

  • L’approche SDN : principes, protocoles et interfaces
  • Du SDN à la virtualisation : principes, protocoles et interfaces
  • Concept NFV : principes, initiative ETSI, exemple de virtualisation d’un coeur de réseau LTE
  • Du RAN au Cloud RAN principes, protocoles et interfaces
  • Vers un réseau plus flexible : network slicing, séparation contrôle/data, apport du CDN, chaînage des services
  • Point sur l’avancement du standard 5G 3GPP côté Radio et côté architecture
  • Les solutions d’interopérabilité 4G (LTE) – 5G (NR)

5G – Aspects services

  • Du neuf du côté Audio et Vidéo : de l’AMR à l’EVS, du H.261 au H.265, évolutions vidéo DASH
  • L’essor du M2M (Machine-to-Machine) et de l’IoT (Internet of Things) : du LTE-M au NB-IoT et après ?
  • Les applications critiques : GCSE, MCPTT, D2D vers des solutions public safety 5G
  • Les applications véhiculaires : de V2V à V2X
  • Les applications Multicast et Broadcast 5G : de l’eMBMS 4G à un eMBMS 5G

Bases de données et Big Data

SQL et NoSQL

Les bases données ont été développées dès les prémisses de l’informatique et sont critiques pour le fonctionnement des SI des entreprises. Il est donc indispensable d’en maîtriser la conception et l’exploitation.

Objectifs de compétences à l’issue de ce module

  • Identifier les différences entre les SGBD traditionnels (SQL) et NoSQL
  • Évaluer les avantages et les inconvénients inhérents au NoSQL
  • Analyser les principales solutions du monde NoSQL pour chaque modèle de données
  • Identifier les champs d’application des SGBD NoSQL en opérationnel et en analytique
  • Comprendre les différentes architectures, les modèles de données, les implémentations techniques

Contenu pédagogique

Introduction au NoSQL

  • Les différentes approches de gestion de SGBD à travers le temps : hiérarchiques, relationnelles, objets, XML, NoSQL
  • Données non structurées
  • NoSQL, Big Data et architectures Cloud
  • Les modes de distribution : avec maître et décentralisé
  • Transactions distribuées, failover, points de sauvegarde, parallélisation des requêtes, équilibrage de charge

Le relationnel et le NoSQL

  • Rappels sur les bases de données relationnelles
  • Schémas explicites et implicites
  • Des qualités ACID aux qualités BASE
  • Théorème CAP (cohérence, disponibilité, tolérance au partitionnement)
  • Les différents niveaux de cohérence
  • Le langage SQL, la performance des jointures. L’accès par la clé en NoSQL
  • L’évolution vers le distribué : extensibilité verticale et horizontale

Les mondes du NoSQL

  • L’architecture distribuée : principes, le shared-nothing
  • Disponibilité et cohérence différée : gossip, timestamps, la règle de majorité, l’arbre de Merkle
  • Les patterns et les modèles
  • Les bases orientées clé-valeur et en mémoire : Redis, Riak, Aerospike
  • Les bases orientées documents : le format JSON. Couchbase Server, MongoDB
  • Les bases orientées colonnes distribuées pour le big data opérationnel : Hbase, Cassandra, ScyllaDB…
  • Les moteurs orientés graphes : Neo4j, OrientDB…
  • Les moteurs de recherche JSON : Elasticsearch, SOLR
  • Les bases de données de séries de temps : InfluxDB, KDB, Prometheus

Choisir et mettre en place

  • À quels usages correspondent les bases NoSQL ?
  • Comment aborder la migration ?
  • Comment développer efficacement avec des bases NoSQL ?
  • Les outils de supervision
  • Quelle est la complexité administrative et la courbe d’apprentissage ?
  • Cas d’utilisation
  • Gérer les interactions avec les bases de données relationnelles
  • Implémenter le NoSQL dans les clouds publics

NoSQL et Big Data

  • Big data analytique : l’écosystème Hadoop
  • Stockage et traitements. Les différentes formes de stockage dans HDFS : SequenceFile, Apache Parquet.
  • Fonctions et usages : moteurs de recherche, outils de suggestion commerciale, détecteurs d’intrusion…
  • Différents types de traitements : MapReduce, graphe orienté acyclique, flux, machine learning, graphes distribués…
  • Fonctionnalités, outils et algorithmes : moteurs de recherche, Google Search, l’algorithme PageRank
  • L’outil intégré : Apache Spark
  • Connexion avec les moteurs opérationnels : ETL, Apache Sqoop.

 

Big Data appliqué aux environnements financiers

Dans la continuité de l’explosion des tailles de bases de données, les capacités de traitement de gros volumes de données se sont largement développées ces dernières années. C’est une compétence clé.

Objectifs de compétences à l’issue de ce module

  • Apprendre des techniques fondamentales de Finance
  • Utiliser la bibliothèque NumPy de Python pour travailler rapidement avec des données numériques
  • Utiliser la bibliothèque Pandas de Python pour analyser et visualiser des données
  • Utiliser la bibliothèque Matplotlib de Python pour créer des graphiques personnalisés
  • Calculer des statistiques financières telles que les rendements quotidiens, les rendements cumulatifs, la volatilité, etc.
  • Utiliser le module statsmodels pour l’analyse des séries temporelles

Contenu pédagogique

  • NumPy pour un traitement numérique très rapide
  • Pandas pour une analyse efficace des données
  • Matplotlib pour la visualisation de données
  • Utilisation de pandas-datareader et de Quandl pour l’extraction de données
  • Techniques d’analyse des séries temporelles de Pandas
  • Analyse des rendements boursiers
  • Rendements quotidiens cumulatifs
  • Volatilité et risque lié aux titres
  • EWMA (Moyenne Mobile Pondérée Exponentiellement)
  • Statsmodels
  • ETS (Erreur-Tendance-Saisonnalité)
  • ARIMA (Moyennes Mobiles Intégrées Auto-Régressives)
  • Graphiques d’Auto-Corrélation et graphiques d’Auto-Corrélation partielle
  • Bases de la Finance
  • Ratio de Sharpe
  • Optimisation de la répartition du portefeuille
  • Optimisation de portefeuille financier : la frontière efficiente de Markowitz
  • Types de fonds d’investissement
  • Transactions boursières
  • Vente à découvert ou position courte
  • Modèle d’évaluation des immobilisations
  • Fractionnement d’actions et dividendes
  • Hypothèses des marchés financiers efficients
  • Trading Algorithmique avec Quantopian
  • Négociation de contrats à terme ou futures (Trading)

Business Intelligence – Outils métiers

La visualisation de données et la fabrication de rapports montrant les KPI sont indispensables pour les directions métiers.

Objectifs de compétences à l’issue de ce module

  • Se connecter, interroger et associer des sources de données hétérogènes
  • Modéliser et préparer ses données
  • Créer et mettre en forme des rapports avec Power BI Desktop
  • Concevoir des mesures avec le langage DAX
  • Découvrir les services Power BI Online

Contenu pédagogique

Introduction

  • La Suite Power BI : Power BI Desktop, le service Power BI et les applications Power BI Mobile
  • Extraire, transformer et charger des données dans Power BI
  • Utiliser des fichiers plats, Excel, bases de données relationnelles, sources SSAS, Web
  • Choisir les colonnes, choisir les lignes, filtrer, trier et supprimer les doublons

Transformer les données

  • Nettoyer et compléter les jeux de données
  • Fractionner les colonnes, les formater et définir le type de données, assembler et fusionner des tables
  • Créer des colonnes calculées. Empiler et fusionner des requêtes

Définir le modèle de données

  • Utiliser la vue Diagramme pour définir des relations entre les tables
  • Concevoir des mesures avec les fonctions statistiques
  • Fonctions DAX pour concevoir des mesures élaborées : CALCULATE, ALL, ALLEXCEPT, FILTER, RANKX, etc
  • Utiliser les fonctions DAX Time Intelligence

Conception de rapport Power BI

  • Création de rapports, pages, tableaux de bord
  • Afficher des données : Table, Matrice, Carte
  • Exploiter les paramètres de données et de formatage
  • Insérer des éléments visuels. Exploiter les visualisations cartographiques
  • Importer des éléments visuels (.pbviz) depuis la galerie : jauges, images etc.
  • Ajouter des outils de filtrage, des segments, des KPI. Mise en page pour écran ou smartphone

Présentation du service Power BI Online

  • Présentation des fonctionnalités du service Power BI, stockage, présentation, partage
  • Épingler les visualisations dans un tableau de bord
  • Présentation de conception de rapport avec le service Power BI

 

Intelligence Artificielle

Peu de sujet ont en informatique autant suscité de fantasmes que l’intelligence artificielle. L’intelligence artificielle (IA) désigne « l’ensemble des théories et des techniques mises en oeuvre en vue de réaliser des machines capables de simuler l’intelligence ». Avec l’explosion du Big Data et des solutions de type
Alexa ou Google Home, l’IA se retrouve au coeur de nombreuses architectures. Le but de ce module est de comprendre les principes de l’IA ainsi que les domaines d’application actuels.

Objectifs de compétences à l’issue de ce module

  • Comprendre réellement ce que sont les outils Machine et Deep Learning, leurs potentiels et leurs limites
  • Avoir une vision à date de l’état de l’art de ces domaines
  • Connaître et comprendre les applications de ces domaines à différents domaines de l’industrie
  • Maîtriser les méthodologies et connaître les outils propres aux projets d’intelligence artificielle

Contenu pédagogique

Introduction, de l’IA aux réseaux de neurones

  • Types d’actions : classification, régression, clustering, estimation de densité, réduction de dimensionnalité
  • Intelligence collective : agréger une connaissance partagée par de nombreux agents virtuels
  • Algorithmes génétiques : faire évoluer une population d’agents virtuels par sélection
  • Machine Learning

Réseaux de neurones et Deep Learning

  • Notion de réseau de neurones
  • Génération de représentations internes au sein d’un réseau de neurones.
  • Généralisation des résultats d’un réseau de neurones.
  • Présentation du Deep Learning

Applications du Deep Learning

  • Classification de données.
  • Outils de classification
  • Prédiction d’information et donnée séquentielle/temporelle
  • Transformation/génération de données.
  • Opération de transformation sur un même format
  • Neural Style, génération d’images à partir de présentations textuelles
  • Reinforcement Learning : contrôle d’un environnement

Cas d’utilisation du Machine Deep Learning ?

  • Condition sur les données : volumétrie, dimensionnement, équilibre entre les classes, description
  • Machine Learning versus Deep Learning
  • Qualifier le problème et sa solution

Génération d’un Dataset

  • Préparation des données
  • Stocker/contrôler la donnée
  • Comprendre la donnée
  • Formater une donnée

Recherche de la solution optimale

  • Méthodologie
  • Itérations successives depuis les algorithmes les plus simples jusqu’aux architectures les plus complexes
  • Conservation d’un banc de comparaison transversal
  • Arriver à une solution optimale

Les outils

  • Présentation des solutions du marché : Tensorflow, Apache Spark et Hadoop
  • Industrialiser un réseau de neurones

 

Machine Learning

Le Machine Learning, aussi appelé apprentissage statistique est un champ d’étude de l’intelligence artificielle qui se fonde sur des approches mathématiques et statistiques pour donner aux ordinateurs la capacité d’« apprendre » à partir de données, c’est-à-dire d’améliorer leurs performances à résoudre des tâches sans être explicitement programmés pour chacune. Dans ce module, les étudiants auront l’occasion de mettre en application ces concepts au travers de différents cas d’étude.

Objectifs de compétences à l’issue de ce module

  • Comprendre les différents modèles d’apprentissage
  • Modéliser un problème pratique sous forme abstraite
  • Identifier les méthodes d’apprentissage pertinentes pour résoudre un problème
  • Appliquer et évaluer les méthodes identifiées sur un problème
  • Faire le lien entre les différentes techniques d’apprentissage

Contenu pédagogique

Introduction au Machine Learning

  • Le Big Data et le Machine Learning
  • Les algorithmes d’apprentissage supervisés, non supervisés et par renforcement
  • Les étapes de construction d’un modèle prédictif
  • Détecter les valeurs aberrantes et traiter les données manquantes
  • Choix des algorithmes

Procédures d’évaluation de modèles

  • Les techniques de ré-échantillonnage en jeu d’apprentissage, de validation et de test
  • Test de représentativité des données d’apprentissage
  • Mesures de performance des modèles prédictifs
  • Matrice de confusion, de coût et la courbe ROC et AUC

Les modèles prédictifs, l’approche fréquentiste

  • Apprentissage statistique
  • Conditionnement des données et réduction de dimension
  • Machines à vecteurs supports et méthodes à noyaux
  • Quantification vectorielle
  • Ensemble learning et arbres de décision

Les modèles et apprentissages bayésiens

  • Principes d’inférence et d’apprentissage bayésiens
  • Modèles graphiques : réseaux bayésiens, champs de Markov, inférence et apprentissage
  • Méthodes bayésiennes : Naive Bayes, mélanges de gaussiennes, processus gaussiens
  • Modèles markoviens : processus markoviens, chaînes de Markov, chaînes de Markov cachées, filtrage bayésien

Le Machine Learning en production

  • Les spécificités liées au développement d’un modèle en environnement distribué
  • Le déploiement Big Data avec Spark et la MLlib
  • Le Cloud : Amazon, Microsoft Azure ML, IBM Bluemix…
  • La maintenance du modèle

Soft-Skills

Fondamentaux de la comptabilité

L’objectif de ce module est de comprendre le fonctionnement d’une entreprise au sens comptable. C’est une compétence indispensable pour tout professionnel, qu’il soit dans une grande entreprise ou en train de créer la sienne.

Objectif de compétences à l’issue de ce module

  • Acquérir les fondamentaux pour créer ou reprendre une entreprise
  • Acquérir les compétences pour gérer et développer durablement son entreprise
  • Partager son expérience avec d’autres futurs entrepreneurs
  • Passer d’une idée à un projet d’entreprise

Contenu pédagogique

  • Votre projet de création-reprise d’entreprise – Vous – Vos associés
  • L’étude de marché
  • La stratégie marketing, commerciale et de développement
  • Les moyens humains et matériels
  • L’étude juridique, fiscale, sociale et patrimoniale
  • Les prévisions financières et outils de gestion
  • Les aides à la création et le financement de votre projet
  • Les formalités à accomplir pour s’installer
  • Le suivi du développement de votre entreprise

Sports

ADN de l’École Hexagone, la pratique sportive permet aux étudiants de s’oxygéner la tête et de prendre du temps pour soi. Avec un accompagnement personnalisé, les étudiants pourront se fixer des objectifs réalistes.

Projet fil rouge

L’objectif de ce projet est de mettre en lien l’ensemble des modules abordés dans l’année au travers de :

  • La réalisation d’une application
  • La conception et l‘implémentation de l’architecture la supportant
  • La gestion des données utilisées ou générées

En groupes restreint, les étudiants devront réaliser le projet tout au long de l’année, des volumes horaires dédiées à des sessions d’accompagnement ainsi qu’à des points d’étapes seront planifiés tout au long de l’année.