Prérequis
Aucun prérequis n’est exigé pour cette formation.
Toutes les notions et outils nécessaires seront développés tout au long de la formation.
Quelques connaissances de base en programmation (quelque soit le language) seront un plus.
Présentation
Le contenu pédagogique de la formation s’articule autour de 3 axes principaux :
- Les principes et concepts de la programmation orientée objet
- La plateforme Java et son écosystème
- La mise en oeuvre des principes (qualité, fiabilité, robustesse)
Le premier axe contient les aspects principiels et théoriques de la programmation orientée objet. Les thèmes qui y seront abordés sont :
- les paradigmes de programmation (programmation évènementielle, par contrat, impérative, fonctionnelle…)
- les principes fondamentaux de l’orienté objet : injection de dépendance, polymorphisme, responsabilité unique…
- la conception orientée objet et les modèles de conception (design patterns).
Le deuxième axe s’intéresse plus spécifiquement à la plateforme Java. L’objectif est de détailler les composantes de cette plateforme ainsi que l’écosystème qui l’accompagne. Parmi les thèmes développés dans cette partie, on retrouve :
- Les éléments de langage JAVA : variables, opérateurs, expressions, classes, objets, héritage, génériques, collections…
- Le fonctionnement de la plateforme : machine virtuelle (JVM), byte code, ramasse miettes…
- Les interfaces de programmation (API) : entrées/sorties (I/O), concurrence, sérialisation XML/Java, introspection et réflexivité
- L’écosystème Java : les frameworks, les outils de développement (IDE, test unitaire…), outils de mesure de la performance, de la qualité du code…
- Les paradigmes « explicites » de la plateforme : aspects impératifs, évènementiels, fonctionnels…
Enfin le troisième et dernier axe est une synthèse des deux premiers. Il s’agit ici de développer quelques modalités de mise en oeuvre des principes avec la plateforme Java. Les notions de qualité, fiabilité et robustesse seront abordées à travers les thèmes ci-dessous :
- Tests unitaires et assertion
- Programmation évènementielle
- Programmation par contrat
Vos futurs compétences
Thèmes abordés
Les thèmes présentés ci-dessous ne seront pas abordés ni de manière linéaire ni dans l’ordre indiqué. Dans chaque séance de cours, un ou plusieurs thèmes seront abordés en fonction de l’avancement du programme et des connaissances déjà acquises auparavant.
La programmation orienté objet est un paradigme de programmation parmi tant d’autre. Il est important de bien comprendre ses spécifités pour être en mesure de l’utiliser à bon escient.
Différents paradigmes vous seront présentés. Ces paradigmes seront mis systématiquement en perspective avec la programmation orienté objet.
Ce thème permettra d’aborder en profondeur les concepts fondammentaux de la programmation orienté objet (classe, objet, interface, polymorphisme…).
Les principes fondammentaux comme la responsabilité unique ou l’injection de dépendances seront aussi abordés.
Toutes ces notions seront systématiquement mises en pratiques à travers un projet transverse.
Ce thème sera l’occasion d’une initiation à la conception orienté objet.
Plusieurs modèles de conception (design patterns) seront présentés et utilisés dans le développement du projet transverse.
Une bonne compréhension des éléments de la plateforme Java est indispensable pour produire des applications de qualité, les superviser et améliorer leurs fonctionnements.
Nous verrons notemment les élements constitutifs et le fonctionnement de la JVM (Java Virutuel Machine), le JDK, le ramasse miettes.
L’objectif de ce thème est de fournir toutes les connaissances nécessaires pour écrire un programme en Java.
Nous verrons : les variables, les opérateurs, les classes, les objets, les interfaces, l’héritage, les génériques, les collections, les exceptions…
Les principales API (Sérialisation XML/JSON, Entrées/Sorties, Réflexion, concurrence) seront présentés et mises en oeuvre dans le projet transverse.
Les tests unitaires, le debuggage, quelques notions d’optimisation de performance seront présentés et utilisés pour améliorer la qualité du code produit par les stagiaires.
Chaque concept théorique sera accompagné de travaux pratiques. De plus un projet sera développé tout au long de la formation. Ce projet sera l’occasion de mettre en pratique dans un cas fonctionnel concret toutes les compétences acquises.
Un support exhausitif contenant un résumé des notions et des travaux pratiques sera mis à disposition des stagiaires.
Une environnement de développement complet sous forme de machine virtuelle ou d’environnement distant sera disponible pour la réalisation des travaux pratiques et le développement du projet transverse.
Lorsqu’une demande d’accès à un cours est émise par un stagiaire pour une session donnée, la demande est traité dans les plus bref délais (moins d’un journée en moyenne).
Lorsque le nombre de place disponible le permet le stagiaire peut immédiatement accéder à la session qu’il a demandé. Sinon il est prioritaire pour la prochaine session disponible.
Quelques jours avant le demarrage de la session un email récapitulatif est transmis au stagiaire. Cet email contient la convocation à la session, les dates et horaires de formation ainsi que les élements nécessaires pour accéder à la plateforme technique.
Cette formation étant disponible en distanciel, elle est totalement accéssible aux personnes en situation de handicap.
L’évaluation sera fera selon les trois paramètres ci-dessous :
- Un QCM à la fin de chaque chapitre pour valider l’acquisition des conceps théoriques
- Les travaux pratiques sur les notions fondamentales
- La qualité et la réussite du projet transverse
La note finale sera une moyenne des ces trois paramètres.
Responsable

Landry TIEHI
Avec plus de 10 ans d’expérience dans la conception et le développement d’application, Landry est aussi un exéllent pédagogue.
Son activité de freelancer l’a emmené à intervenir en tant qu’expert auprès de grand groupe (Axa Banque, EDF, Engie, Renault…). Il a contribué de manière très active au développement de solutions stratégiques au sein ces entités.
Il a aussi enseigné les principes de l’intégration continue et du déploiement continue pendant quelques années dans l’école d’Ingénieur (ESIEE Paris) dont il est issue.

