Catalogue de Formation - Agenium Campus
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
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 locauxMission 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 optionnelLes 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 optionnelPerfectionnement 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 optionnelPerfectionnement 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 optionnelTransition 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 optionnelTransition 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 ZEROMé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 optionnelMé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ésProgrammation
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 optionnelProgrammation
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 ZEROCycle
Outils
1 PREMIERS PAS AVEC PYTHON 3
17Premiers 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 optionnelPremiers 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 • NumpyCycle 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 optionnelBonnes 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 CRTPIntroduction à 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 optionnelIntroduction à 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 optionnelProgrammation 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 optionnelProgrammation 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 optionnelAGENIUM 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