Public
Développeurs, ingénieurs, chefs de projets proches du développement.
Pré-requis
Bonnes connaissances en développement Python, ou connaissances équivalentes à celles apportées par notre formation **"Python, programmation Objet" **(Réf. AQ-PPO-35).
Objectifs
- Mettre en œuvre de façon méthodique des Design Patterns établis.
- Appliquer les techniques avancées du langage Python telles que les Context Managers, les métaclasses, les closures, et les fonctions avancées.
- Améliorer les performances de ses programmes grâce au monitoring et à l'utilisation du parallélisme.
- Structurer et déployer efficacement les artefacts Python.
- Explorer des bibliothèques clés contribuant au rayonnement du langage, notamment dans les domaines du calcul scientifique, de l'Intelligence Artificielle, du traitement XML, et des communications réseau.
Programme
Jour 1: Rappels Importants et Optimisation (9h - 12h30)
- Affectation par référence, types de données modifiables et non modifiables.
- Passage d'arguments, valeurs par défaut, variables locales. Jour 1: Rappels Importants et Optimisation (13h30 - 17h)
- Variables de classe et d'instances, slices, et structures de données avancées.
- Éléments avancés des structures de contrôle.
- Travaux pratiques : Optimisation, intersection de listes, et calcul de complexité. Jour 2: Fonctions Avancées (9h - 12h30)
- Utilisation avancée de décorateurs.
- Décorateurs et Design Patterns, fermeture/closure. Jour 2: Fonctions Avancées (13h30 - 17h)
- Propriétés, itérateurs, héritage multiple, Context Managers.
- Travaux pratiques : Chaînage de consommateurs, abonnement à des événements. Jour 3: Déploiement et Qualité (9h - 12h30)
- Installation de librairies tierces, PyPI.
- Packaging de librairies, déploiement autonome avec virtualenv et buildout. Jour 3: Déploiement et Qualité (13h30 - 17h)
- Travaux pratiques : Packaging d'une librairie, dépôt sur PyPI. Jour 4: Parallélisme et Librairies Avancées (9h - 12h30)
- Profilage avec Timeit et cProfile.
- Parallélisation, multiprocessing, calcul distribué avec Celery. Jour 4: Parallélisme et Librairies Avancées (13h30 - 17h)
- Calcul scientifique avec Numpy, Scipy, visualisation avec Matplotlib et Pandas.
- Intelligence Artificielle, algorithmes d'apprentissage avec Scikit-Learn.
- Réseau : Twisted pour le relay tcp, supervision SNMP avec PySNMP.
- Travaux pratiques : Extraction d'informations dans des fichiers XML, filtres, statistiques, et représentation graphique. Modalités Pratiques
Méthodes Pédagogiques:
- Apports théoriques illustrés par des exemples de code.
- Réalisation d'un mini-projet (70% de travaux pratiques).
Modalités d'Évaluation:
- Évaluation continue par le formateur à travers QCM, mises en situation, et travaux pratiques.
- Test de positionnement en amont et en aval pour valider les compétences acquises.
