Catalogue de Formation - Agenium Campus

La page est créée Philippe Couturier
 
CONTINUER À LIRE
Catalogue de Formation - Agenium Campus
Catalogue de Formation
Catalogue de Formation - Agenium Campus
L’offre AGENIUM CAMPUS

Sommaire.
            Cycle C++

            Cycle Outils

            Cycle Performance
Catalogue de Formation - Agenium Campus
L’offre
AGENIUM Campus
     PRESENTATION
Catalogue de Formation - Agenium Campus
Vue d’ensemble

   Notre proposition                                       Protocole andragogique
   • Thématiques : C++ et performance des applicatifs      • Sessions de 4 à 10 personnes

   • De la simple remise à niveau jusqu’au niveau Expert   • La manipulation des logiciels est prépondérante

   • Des intervenants reconnus au niveau international     • Validation par la mise en pratique sur des sujets de
                                                             complexité croissante

   Types de formations
4 • Formations intra-entreprises
   • Formations inter-entreprises

   • Sur site client ou dans nos locaux
Catalogue de Formation - Agenium Campus
Mission pédagogique

    Direction des programmes                           Notre objectif
    Joel FALCOU est ingénieur en informatique,         AGENIUM CAMPUS transfère son expertise
    Docteur et Maître de conférence HDR de             technique aux équipes de développement
    l’Université Paris Saclay.                         logiciel.

    Il est le créateur et président de C++FRUG,        Pour cela, nous proposons une variété de
    animateur du Meetup C++ et présentateur dans       formations sur différents thèmes souvent sous-
    de multiples conférences internationales comme     estimés et pourtant indispensables dans les
    BoostCon, C++Now, C++Russia, CppCon et             applications d’aujourd’hui et de demain.
5   Meeting C++.

    Il est aussi membre du comité de standardisation
    ISO pour le C++ depuis 2014.
Cycle C++

1   LES BASES DU C++
2   PERFECTIONNEMENT EN C++
3   TRANSITION VERS C++14/17
4   METAPROGRAMMATION
5   PROGRAMMATION OBJET AVANCEE
Les Bases du C++

          Objectif
          Cette formation permet d’aborder les bases du langage
          C++ basée sur les dernières normes du langage (14/17).

                                                                      Niveau
                      Bénéfices attendus
                      • Maîtriser les bases de C++14.               INITIATION
                      • Savoir développer une application en C++.
                      • Se familiariser avec l’écosystème C++.
7
          Public
          • Ingénieurs, techniciens et scientifiques
            désirant s’initier au langage C++.
          • Une première expérience d’un langage de                  Durée : 3 Jours
            programmation quelconque est souhaitable.
                                                                     +1 jour de TP optionnel
Les Bases du C++
    • Introduction                                      • Structures de données
      • Historique du langage et positionnement dans      • Types énumérés
        l’écosystème logiciel actuel                      • Liste d’initialiseur
      • Eléments de base d’un programme C++               • Paire et tuple
      • Processus de compilation                          • Structure définie par l’utilisateur

    • Type et variable                                  • Aspect impératif
                                                                                                      Niveau
      • Types de base du langage (natif et composite)     • Définition et déclaration de fonction
      • Qualificateurs
      • Inférence de type
                                                          • Surcharge de fonction
                                                          • Fonction générique                      INITIATION
                                                          • Inférence du type de retour
    • Entrées/Sorties
8     • Modèle de flux                                  • La bibliothèque standard
      • Manipulations de flux                             • Séquences standards
      • Formatages/Structurations des entrées             • Algorithmes standards
                                                          • Fonctions anonymes
    • Structures de contrôles
      • Notion de flot de contrôle                                                                   Durée : 3 Jours
      • Bloc conditionnel
      • Boucles déterministe et non-déterministe                                                     +1 jour de TP optionnel
Perfectionnement en C++

          Objectif
          Cette formation permet d’approfondir la pratique du langage C++
          basée sur les dernières normes du langage (14/17).

                                                                               Niveau
                      Bénéfices attendus
                      • Maîtriser les concepts avancés de C++14.              AVANCÉ
                      • Savoir utiliser les outils associés au langage.
                      • Savoir développer des composants C++ réutilisables.
9
          Public
          • Ingénieurs, techniciens et scientifiques
            désirant améliorer leur pratique du langage C++.
          • Une première expérience en C++ est nécessaire.                    Durée : 3 Jours
                                                                              +1 jour de TP optionnel
Perfectionnement en C++
     • Introduction                                     • La bibliothèque standard
       • Historique du langage et positionnement dans     • Itérateur et allocateur custom
         l’écosystème logiciel actuel                     • Gestion du temps
       • C++ comme un langage multi-paradigme             • Outils pour le calcul numérique
                                                          • Threads et calculs asynchrones
     • Programmation orientée objet
       • Principes généraux                             • Programmation templates
                                                                                               Niveau
       • Notion d’interface                               • Principes généraux
       • Héritage et polymorphisme
       • Méthodologie SOLID
                                                          • Template de fonction
                                                          • Template de classe
                                                                                              AVANCÉ
                                                          • Template variadique
     • Gestion des ressources                             • Perfect Forwarding et
10     • lvalue et rvalue                                   Références Universelles
       • Sémantique de transfert                          • Alias de type
       • Principe de la RAII                              • Introspection via les traits
       • Pointeur à sémantique riche                      • Calcul à la compilation
       • Règle du ZERO
                                                                                              Durée : 3 Jours
                                                                                              +1 jour de TP optionnel
Transition vers C++14/17

           Objectif
           Cette formation permet d’approcher les éléments spécifiques des
           normes C++14 et 17 à partir d’une base de code C, C++ 98 ou C++ 11.

                                                                                   Niveau
                       Bénéfices attendus
                       • Maîtriser les nouvelles fonctionnalités de C++14/17.     AVANCÉ
                       • Savoir appliquer ces idiomes sur du nouveau code.
                       • Anticiper les changements à apporter à un code legacy.
11
           Public
           • Ingénieurs, techniciens et scientifiques
             souhaitant évoluer vers les nouvelles normes C++.
           • Une première expérience en C++ est nécessaire.                       Durée : 3
                                                                                          4 Jours
                                                                                  +1 jour de TP optionnel
Transition vers C++14/17
     • Introduction                                     • La bibliothèque standard
       • Historique du langage et positionnement dans     • Séquences et algorithmes standards
         l’écosystème logiciel actuel                     • Fonctions anonymes
       • C++ comme un langage multi-paradigme             • Gestion du temps
       • Axes de changement en C++14/17                   • Outils pour le calcul numérique

     • Un langage plus simple
                                                          • Threads et calculs asynchrones        Niveau
       • Inférence de type                              • Programmation templates
       • Boucles généralisées
       • Types énumérés
                                                          • Inférence du type de retour
                                                          • Template variadique
                                                                                                 AVANCÉ
       • Liste d’initialiseur                             • Perfect Forwarding et
       • Paire et tuple                                     Références Universelles
       • Construction par délégation                      • Alias de type
12
       • Gestion du polymorphisme : final, override       • Introspection via les traits
                                                          • Calcul à la compilation
     • Gestions des ressources
       • lvalue et rvalue
       • Sémantique de transfert                                                                 Durée : 3 Jours
       • Principe de la RAII
       • Pointeur à sémantique riche                                                             +1 jour de TP optionnel
       • Règle du ZERO
Métaprogrammation
     et techniques template avancées
            Objectif
            Cette formation permet de découvrir et de mettre en œuvre les idiomes
            fondamentaux de la métaprogrammation en C++14 et en C++17.

                                                                                     Niveau
                        Bénéfices attendus
                        • Se familiariser avec les principes généraux de la         EXPERT
                          métaprogrammation.
                        • Savoir quand et comment l’utiliser.
13
            Public
            • Ingénieurs, techniciens et scientifiques
              désirant approfondir leur pratique du langage C++.
            • Une bonne maîtrise du langage C++ est nécessaire.                     Durée : 3 Jours
                                                                                    +1 jour de TP optionnel
Métaprogrammation
     et techniques template avancées
     • Introduction                                      • Génération de code
       • Impacts de la métaprogrammation                   • Duplication de code
       • C++ comme un langage métaprogammable              • Gén. conditionnelle : SFINAE

     • Techniques de base
                                                           • Gén. conditionnelle : Tag Dispatching
                                                           • Gén. : if constexpr                      Niveau
       • Template de fonction et de classe                 • Calcul à la compilation via template
       • Spécialisation et spécialisation partielle        • Calcul à la compilation via constexpr
       • Inférence du type de retour                                                                 EXPERT
       • Template variadique                             • Applications
       • Perfect Forwarding et Références Universelles     • Fonctions génériques contraintes
       • Alias de type                                     • Détections de plateformes
14                                                         • Programmation générative
     • Manipulation de types
       • Notion de traits
       • Introspection de type
       • Génération de type                                                                          Durée : 3 Jours
       • Détection d’interface
       • Erreur de compilation via static_assert                                                     +1 jour de TP optionnel
       • Séquence de types et algorithmes associés
Programmation
     objet avancée en C++
           Objectif
           Cette formation permet de se familiariser avec les
           différentes stratégies de conception et d’implémentation
           orientées objets spécifiques au langage C++.
                                                                                    Niveau
                       Bénéfices attendus
                       • Connaître les bonnes pratiques du design orienté objet.   AVANCÉ
                       • Concevoir des composants réutilisables et testables.
                       • Maîtriser la syntaxe objet du C++.
15
           Public
           • Ingénieurs, techniciens et scientifiques
             désirant améliorer leur pratique du langage C++.
           • Une première expérience en C++ est nécessaire.                        Durée : 3
                                                                                           4 Jours
                                                                                   +1 jour de TP optionnel
Programmation
     objet avancée en C++
     • Introduction                                     • Méthodologie SOLID
       • Historique du langage et positionnement dans     • Objectifs
         l’écosystème orienté objet                       • Single Responsability Principle
       • C++ comme un langage objet                       • Open/Close
                                                          • Principe de Substitution de Liskov    Niveau
     • Programmation orientée objet                       • Ségrégation d’Interface
                                                          • Inversion de Dépendances
       • Principes généraux
       • Notion d’interface                                                                      AVANCÉ
       • Héritage et polymorphisme                      • Design Patterns
       • Construction par délégation                      • Patterns de génération
       • Gestion du polymorphisme : final, override       • Patterns structurels
16
                                                          • Patterns comportementaux
     • Gestion des ressources
       • lvalue et rvalue
       • Sémantique de transfert
       • Principe de la RAII                                                                     Durée : 3 Jours
       • Pointeur à sémantique riche                                                             +1 jour de TP optionnel
       • Règle du ZERO
Cycle
            Outils
     1 PREMIERS PAS AVEC PYTHON 3

17
Premiers Pas avec Python 3

           Objectif
           Cette formation permet d’aborder les bases du langage
           Python en utilisant la dernière version du langage.

                                                                          Niveau
                       Bénéfices attendus
                       • Maîtriser les bases de Python.                 INITIATION
                       • Savoir développer une application en Python.
                       • Se familiariser avec les idiomes Python.
18
           Public
           • Ingénieurs, techniciens et scientifiques
             désirant s’initier au langage Python.
           • Une première expérience d’un langage de                     Durée : 3 Jours
             programmation quelconque est souhaitable.
                                                                         +1 jour de TP optionnel
Premiers Pas avec Python 3
     • Introduction                         • Structurer son programme PYTHON
       • Objectifs du langage                 • Script vs Module
       • Pourquoi un langage interprété ?     • Notion de packages
                                              • Les Doc String
     • Programmer en PYTHON                   • Le style PEP8
       • Prise en main de l'interpréteur      • Test unitaire et benchmark
       • Structures de contrôle
       • Gestion des erreurs de syntaxe     • Aspect orienté objet
                                                                                  Niveau
                                              • Notion de classe
     • Aspect impératif
       • Principes généraux des fonctions
                                              • Données et fonctions membres
                                              • Notion de visibilité            INITIATION
       • Arguments de fonctions               • Interface et héritage
       • Fonctions anonymes                   • Abstract Base Class
19     • Fonctions d'ordre supérieure         • Itérateurs et outils associés
       • Générateur et coroutines
       • Interface avec l'OS                • Autres outils
                                              • Pattern Matching
     • Structures de données                  • Formules Mathématiques
       • Chaine de caractères                 • Connectivité Internet            Durée : 3 Jours
       • Liste, Tuple, Dictionnaire           • Gestion des dates et du temps
                                                                                 +1 jour de TP optionnel
       • Autres collections                   • Numpy
Cycle
Performance
1 BONNES PRATIQUES POUR LA PERF.
2 INTRODUCTION PROGRAMMATION PARALLELE
3 PROGRAMMATION GPGPU AVEC NVIDIA
Bonnes pratiques
     pour la performance en C++
           Objectif
           Cette formation permet de découvrir et de mettre en œuvre les bonnes
           stratégies de développement et de compréhension du matériel afin de
           garantir un haut niveau de performance dans des applications C++.
                                                                                   Niveau
                       Bénéfices attendus
                       • Connaître les sources logicielles et matérielles de la   AVANCÉ
                         performance.
                       • Savoir adapter sa pratique du langage C++ afin de
21                       garantir les performances d’un logiciel.

           Public
           • Ingénieurs, techniciens et scientifiques
             soucieux des performances de leur logiciels.
           • Une première expérience en C++ est nécessaire.                       Durée : 3
                                                                                          4 Jours
                                                                                  +1 jour de TP optionnel
Bonnes pratiques
     pour la performance en C++
     • Introduction                              • Impact de l’architecture
       • Historique des architectures modernes     • Application Compute bound et
       • C++ comme un langage performant             Memory bound
       • Adéquation Architecture/Algorithme        • Principe de fonctionnement des caches
                                                   • Impact sur le design logiciel                 Niveau
                                                   • Impact sur l’utilisation des composants de
     • Cycle de vie des objets                       la STL
       • Valeur, référence, pointeur
       • Optimisation et élision des copies
                                                                                                  AVANCÉ
       • Sémantique de transfert                 • Techniques d’optimisation de code
       • Principe de la RAII                       • Fusion et fission des boucles
       • Pointeur à sémantique riche               • Tuilage
22                                                 • Array of Structures/Structure of Arrays
       • Règle du ZERO
                                                   • Le modèle AoSoA

     • Gestion du polymorphisme
       • Polymorphisme d’inclusion
       • Polymorphisme paramétrique
                                                                                                  Durée : 3 Jours
       • Coût et surcoût du polymorphisme                                                         +1 jour de TP optionnel
       • Le CRTP
Introduction à la
     programmation parallèle
           Objectif
           Cette formation permet de se familiariser avec les outils et
           stratégies de programmation parallèle disponibles dans
           l’écosystème du langage C++.
                                                                                   Niveau
                        Bénéfices attendus
                        • Connaître les métriques utiles du parallélisme.         AVANCÉ
                        • Se familiariser avec la programmation sur multicœurs.
                        • Se familiariser avec la programmation distribuée.
23
           Public
           • Ingénieurs, techniciens et scientifiques
             désirant s’initier à la programmation parallèle.
           • Une première expérience en C++ est nécessaire.                       Durée : 3
                                                                                          4 Jours
                                                                                  +1 jour de TP optionnel
Introduction à la
     programmation parallèle
     • Introduction                                  • Programmation Multi-threading
       • Historique des architectures modernes         • Principes généraux
       • Historique du langage                         • Multi-threading en C++ standard
       • Positionnement dans l’écosystème logiciel     • Synchronisations : mutex, condition
                                                         variable, atomique                          Niveau
                                                       • Promesses et Futures : calcul asynchrone
     • Eléments de base du parallélisme
                                                       • Programmation multi-threads via OpenMP
       • Loi de Moore
       • Classification de Flynn                                                                    AVANCÉ
       • Compute bound ou Memory bound                • Programmation distribuée
       • Scalabilité forte : Loi d’Amdahl                • Le standard MPI
       • Scalabilité faible : Loi de Gustafson-Barsis    • Communications synchrones
24
       • Métrique de performance : accélération          • Communications collectives
       • Métrique de performance : efficacité            • Communications asynchrones
       • Métrique de Karp-Flatt

                                                                                                    Durée : 3 Jours
                                                                                                    +1 jour de TP optionnel
Programmation GPGPU
     avec NVIDIA CUDA
          Objectif
          Cette formation permet de se familiariser avec les outils et
          stratégies de programmation parallèle sur cartes graphiques
          programmables via le langage CUDA.
                                                                                  Niveau
                      Bénéfices attendus
                      • Connaître les principes généraux des GPGPUs.             AVANCÉ
                      • Se familiariser avec la programmation sur GPGPU.
                      • Se familiariser avec les stratégies d’optimisation sur
25                      GPGPU.
          Public
          • Ingénieurs, techniciens et scientifiques
            désirant s’initier à la programmation sur carte graphique.
          • Une première expérience en C++ est nécessaire.                       Durée : 3
                                                                                         4 Jours
                                                                                 +1 jour de TP optionnel
Programmation GPGPU
     avec NVIDIA CUDA
     • Introduction                              • Stratégie de parallélisation
       • Historique des architectures modernes     • Opération point à point
       • La fin de la loi de Moore                 • Réduction
       • Architecture de base des GPGPUs           • Opération à voisinage
                                                   • Flux asynchrone et multi-buffering    Niveau
                                                   • Evénements asynchrones
     • Le langage CUDA
       • Principes généraux
       • Notion de kernel                        • Outils annexes                         AVANCÉ
       • Notion de fonction device                 • cuBLAS
       • Blocs et Threads                          • cuFFT
       • Gestion de la mémoire                     • Thrust
26                                                 • CUB
       • Types de mémoire

                                                                                          Durée : 3 Jours
                                                                                          +1 jour de TP optionnel
AGENIUM CAMPUS
GIF-SUR-YVETTE

Bâtiment 660 – DIGITEO
Rue Noetzlin
91190 Gif-sur-Yvette
France

Tél. +33 (0)1 69 15 73 26
Mob. +33 (0)6 60 17 98 99
Mail: campus@agenium.com

ORGANISME DE FORMATION

N° d’agrément : 11 91 07537 91
Certifié Datadock jusqu’en 2021

  www.agenium.fr
Vous pouvez aussi lire