FORMATION PYTHON

  • Home
  • FORMATION PYTHON

Python est un langage de programmation puissant et facile à apprendre. Il dispose de structures de données de haut niveau et permet une approche simple mais efficace de la programmation orientée objet.

Avec Python, on peut :
  1. créer et administrer un site Web.
  2. développer des logiciels et des applications, aussi bien pour ordinateur que pour téléphone.
  3. automatiser des scripts systèmes et des interactions ordinateur – navigateur Web.

Objectifs de la formation 

Le langage Python est particulièrement polyvalent même s’il est particulièrement utilisé dans la Data Science et le Machine Learning grâce à la richesse de ses bibliothèques scientifiques d’analyse de données.

Cette formation Python vous permet de disposer des solides bases en programmation objet, présentées et déclinées dans le contexte de Python. 

À l’issue de cette formation, vous aurez acquis les connaissances et compétences nécessaires pour : 

  • Connaître les fondamentaux de la programmation objet
  • Maîtriser la syntaxe du langage Python
  • Connaître et mettre en œuvre les modules Python
  • Manipuler les données en Python
  • Concevoir des interfaces graphiques en Python
  • Disposer d’une première expérience dans l’utilisation des outils de test et d’évaluation d’un programme Python

À qui s’adresse cette formation ?

Public :

Ce cours Python s’adresse à tout développeur souhaitant acquérir les bases de la programmation en Python.

Prérequis :

Les participants à cette formation Python doivent connaître un langage de programmation, car la formation ne prévoit pas de revenir sur les bases de la programmation (variables, test, boucle, fonction, …)

Contenu du cours 

  1. Bien commencer avec Python

    Pourquoi utiliser Python plutôt qu’un autre langage ?
    Exemples de projet en Python
    Différences entre les versions de Python
    Installation de Python (pré-requis, fichiers, arborescence détaillée)
    Fonctionnement de l’interpréteur Python
    Les apports de l’interpréteur interactif iPython
    Un premier programme…

    Travaux pratiquesObjectifs : Prendre en main rapidement son environnement de développement
    Description : Premier programme simple interactif de saisie et d’affichage de texte afin de prendre en main l’interpréteur Python. Un second programme non interactif permet de voir l’aspect automatisation de Python.

    Les bases de Python (la syntaxe, les types)

    Organisation du code (modules, package, importations)
    Recommandations de nommage
    Les types de base (entier, chaîne, réel, …)
    Erreurs classiques sur les types
    Boucles (for), opérateurs, tests (if/else)
    Définition et appel de function

    Travaux pratiquesObjectifs : Mettre en œuvre la syntaxe fondamentale de Python 
    Description : Saisie de notes dans un tableau numpy, affichage de la moyenne, de la plus petite et de la plus grande note. Chargement des notes depuis un fichier CSV (avec en tête), recherche du meilleur étudiant

     

    1.  

    Programmer objet en Python

    Limites de la programmation « simplement » structurée
    Philosophie, concepts, et vocabulaire de la programmation objet
    Représentation des données en programmation objet (classes, propriétés)
    Représentation des traitements (méthodes)
    Contrôler l’accès aux données (encapsulation)
    Exemples de classes prédéfinies en Python permettant de profiter pleinement de l’approche objet
    Cycle de vie d’un objet (constructeur, destructeur)
    Accéder aux attributs et fonctionnalités de l’objet cible (self)
    Comment les objets communiquent entre eux ?
    Classe mère et classe fille (héritage)
    Des fonctions différentes avec … le même nom (polymorphisme)
    Héritage simple et héritage multiple
    La fonction super()
    Protection des traitements (public, protected, private)
    Le mécanisme de traitement des exceptions
    Exemple de formalisme UML (diagramme de classe)
    Tour d’horizon des classes fondamentales existantes en Python
    Notion de Design Patterns

    Travaux pratiquesObjectifs : Savoir programmer objet en Python. Comprendre les liens entre les classes.
    Description : Mise en œuvre progressive d’un modèle objet en Python CLASSE, ELEVE, EXAMEN, NOTES regroupant l’ensemble des concepts vus dans ce chapitre et favorisant la réflexion sur les bonnes pratiques (encapsulation, héritage ? composition ?) tout en prenant en main la syntaxe de façon concrète.

    Types de données évolués

    Savoir choisir les bonnes structures de données
    Tuples, séquences et listes (append, extend, insert, …)
    Fonctions utiles avec les listes (filter, map, reduce)
    Gestion des piles ou des files
    La puissance des dictionnaires (tableaux associatifs)
    Construire une liste sur la base d’une expression (compréhension)

    Travaux pratiquesObjectifs : Savoir utiliser les listes en Python
    Description : Ajout à la classe ELEVE de propriétés (utilisation des list et set) sous la forme de label inclinés (utilisation de la librairie Matplotlib)

     

    1.  

    Compléments sur le langage Python

    Générateurs et itérateurs
    Scripts exécutables
    Opérateurs associés aux listes
    Enchaînement de tests par rapport aux listes
    Comparer les sequences

    Travaux pratiquesObjectifs : Savoir utiliser les itérateurs
    Description : Modification de la classe ResultatExamen afin qu’elle implémente un itérateur. Afficher dans un log les données qu’elle contient via l’utilisateur de l’itérateur (librairie logging)

    Les modules de Python

    Philosophie de Python avec les modules (standard, tiers, …) 
    Tour d’horizon des modules standards 
    Module re (expressions rationnelles)
    Modules os et sys (services du système d’exploitation)
    Module csv (fichiers structurés par séparateur)
    Comment trouver les modules ?
    Installer des modules tiers (setuptools, EasyInstall)
    Le dépôt central : Python Package index (Pypi)
    Importer des modules
    Mieux gérer son environnement avec Virtualenv

    Travaux pratiquesObjectifs : Maîtriser l’utilisation des modules en Python
    Description : Création d’un nouveau module en restructurant le projet précédent afin que les 2 classes Resultat et ResultatExamen soient dans un package note. On écrit ces données dans un fichier texte (librairie csv). On modularise notre projet afin de simplifier sa maintenance et sa livraison en respectant les bonnes pratiques

     

    1.  

    Gestion des données (fichiers, SGBD, XML)

    Accéder aux fichiers (objet File)
    Conformité des modules Python pour accéder à une base de données (DB-API)
    Python et requêtes SQL
    Filtrer les données grâce aux expressions régulières
    Présentation de la manipulation de flux XMl en Python (ElementTree)
    Manipuler des fichiers CSV Travaux pratiquesObjectifs : Savoir dialoguer avec une base de données de type SQL en encapsulant les traitements de lecture/écriture pour respecter les bonnes pratiques d’architecture
    Description : Construction d’un accès à une base MySQL ou PostgreSQL (librairies panda, psyco)
    Dans un module persistance, on construit une classe ResultatDao, qui permet toutes les actions standards sur la table résultats (insertion, mise à jour, suppression, lecture ciblée ou complète de la table).

     

    1.  

    Création d’interface graphique 

    Spécificités du développement d’interface graphique (programmation événementielle)
    Présentation de la bibliothèque TkInter.
    Les principaux conteneurs.
    Présentation des widgets disponibles (Button, Radiobutton, Entry, Label, Listbox, Canvas, Menu, Scrollbar, Text…).
    Le gestionnaire de fenêtres.
    Le placement des composants, les différents layouts.
    La gestion des événements, l’objet event.
    Les applications multifenêtres.
    Un petit mot sur la bibliothèque Qt

     

    Travaux pratiquesObjectifs : Mettre en œuvre une IHM en Python avec TkInter
    Description : Développement d’une maquette pour compléter l’atelier précédent sous forme graphique (menu, boîtes de dialogue, liste, boutons, …) afin de proposer une interface pour la saisie des actions de manipulations des données et l’affichage des résultats

    Qualité et outils 

    En quoi consiste l’assurance qualité d’un programme Python (QA) ?
    Vue d’ensemble de la « trousse à outils » proposée au développeur 
    Utiliser le plugin Eclipse pour Python (Pydev)
    Rechercher des bugs avec PyChecker
    Vérifier le respect des standards avec PyLint
    Utiliser le guide de style PEP 8 (Python Enhancement Proposals)
    Générer de la documentation
    Disposer de statistiques sur l’exécution de son programme (profiling)
    Comprendre l’intérêt des outils de Tests (Doctests, Unit tests)Travaux pratiquesObjectifs : Bien comprendre le champ fonctionnel de chaque outil présenté dans ce chapitre et savoir les utiliser
    Description : Audit de code Python ne respectant pas les standards professionnels en terme de lisibilité. Bonnes pratiques dans le Deboguage d’un programme. Mise en œuvre de tests unitaires simples. Génération de documentation. Repérage des parties consommatrices d’un programme Python d’analyse de données (profiling de l’application du TP d’extraction des données de data.gouv.fr).

     

Objectifs de la formation 

Cette formation Développement avancé avec Python vous apprend à maîtriser des fonctionnalités comme la gestion des graphiques, des bases de données, les liens avec les langages C et Java, le développement d’applications Web, et l’utilisation de framework comme Django.



À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Packager un projet Python
  • Mettre en œuvre les manipulations avancées des primitives en Python        
  • Gérer les bases de données avec Python
  • Connaître la notion de concurrence avec Python

Appréhender le développement web avec Python

À qui s’adresse cette formation ?

Public :

Cette formation s’adresse aux développeurs Python.

Prérequis :

Avoir suivi la formation Python ou posséder des connaissances équivalentes.

modeste, seul ou en équipe.

Contenu du cours 

  1. 1.   

    Packager un projet Python

    Projet vs bibliothèque  
    Gérer un projet avec pipenv
    Créer un wheel distribuable avec setup.cfg
    Compiler le code Python en un exécutable avec nuitka

    Manipulations avancées des primitives en Python

    Générer du code à la volée : factories puis métaclasses
    Décorateurs à plusieurs niveaux
    Context manager et décorateur à la fois
    Au delà de yield : la méthode send() des générateurs
    Monkey paching et autres injections de code
    Introspection du code

    Gestion des bases de données avec Python

    Base de données supportées
    SQL à la main avec la DB API
    Démonstration d’un ORM : SQLAlchemy ou Peewee

    Concurrence en Python

    Programmation non blocante avec les threads
    Le GIL et les limites des threads
    Exploiter plusieurs coeurs avec le multiprocessing
    I/O asynchrone avec asyncio

    Programmation graphique

    Différentes solutions : PyQt, Tkinter, PyGTK, wxWidgets et Kivy
    Caractéristiques de chaque solution.
    Travaux pratiques avec le module Tkinter.
    Création d’objets (fenêtres, boutons, …),
    Appel des méthodes associées (grid(), pack(), …)

    Développement web avec Python

    Les frameworks les plus populaires : Django, Pyramid, Flask, Zope …
    Le protocole HTTP
    Le cycle requête / réponse
    Mise en œuvre avec Flask

Objectifs de la formation 

Cette formation Analyse de données en Python permet aux participants dans un premier temps de découvrir et apprendre le langage Python puis de comprendre pourquoi Python est particulièrement bien adapté à toutes sortes de problèmes d’analyse de données

 

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Maîtriser les bases du langage Python
  • Connaitre les aspects avancés en Python
  • Savoir analyser des données en Python
  • Savoir faire une représentation graphique de données en Python
  • Acquérir des données externes en Python
  • Comprendre les performances et la  parallélisation

À qui s’adresse cette formation ?

Public :

Cette formation est destinée à toute personne qui souhaite utiliser Python pour développer des applications de calcul scientifique ou d’analyse de données.

Prérequis :

Pour suivre cette formation Python Analyse de données, il est nécessaire de connaître au moins un langage de programmation.

Contenu du cours 

  1. 1.

    Les bases du langage Python

    Les caractéristiques du langage Python
    Pourquoi choisir Python pour l’analyse de données ?
    Installation et configuration
    Philosophie de Python (indentation, objet, etc.)
    Les types de données
    Appels de fonctions et méthodes
    Structures de contrôles (boucle, test, exceptions)
    Structures de données et séquences (tuple, liste, primitives, dict)
    Les principales bibliothèques de Python (NumPy, Pandas, Matplotlib, Ipython, SciPy)

    Atelier :Installation et configuration de son environnement de développement
    Un premier programme simple permettant de résumer la syntaxe de base des grands concepts dans une approche mnémonique

    Aspects avancés en Python

    Espace de noms, périmètre et fonctions locales
    Manipuler les fonctions comme des objets
    Les fonctions anonymes (lambda)
    Syntaxe d’appels étendus (*args, **kwargs)

    Introduction à l’Analyse de Données en Python

    La manipulation de données par l’utilisation de la librairie Pandas
    Introduction du concept de Dataframe comme structure de données central pour l’analyse de données
    Comment interroger ces structures ? Comment ces structures sont indexées ?
    Traitement de « données manquantes »
    Fusion de dataframes
    Manipulation des dates
    Application de mesures statistiques variées sur les DataFrames
    Bonne compréhension des problèmes d’échelle de mesure, de normalisation
    Création de métriques d’analyse

    Atelier :Cet atelier permettra aux participants d’intégrer des données tabulaires et des séries temporelles, de les « nettoyer », les manipuler et d’y appliquer des analyses statistiques simples

    La représentation graphique de données en Python

    Introduction aux bases de la visualisation de données
    Focalisation sur la génération de graphes grâce à la librairie Matplotlib : démonstration de l’application de graphes Matplotlib à la visualisation de problèmes concretsAtelier :Cet atelier permettra de poursuivre les travaux de l’atelier précédent en générant des visualisations graphique illustrant les analyses de données réalisées

    L’acquisition de données externes en Python

    Les formats de données structurées : CSV, flux XML et JSON
    Lecture et écriture de fichiers
    Manipulation des données issues de ces fichiers par des structures Python adaptées
    Fonctions d‘accès et de download de données en ligne

    Atelier :Cet atelier permettra de réaliser un module de capture de données disponibles sur Internet
    Application à la capture de séries financières (indices de marché et cours de bourse)

    Analyses Statistiques en Python

    Présentation des principales bibliothèques d’analyse de données Python : NumPy, SciPy, IPython (Jupyter)
    Fonctions de manipulation et de calcul matriciel (Numpy)
    Fonctions de Statistiques Descriptives (SciPy) : quantiles et des fonctions de répartition pour
    différentes lois statistiques
    Fonctions de comparaison de populations, mesures d’association, etc  (SciPy)
    Fonctions de classification automatique (SciPy) : k-meansAtelier :Cet atelier permettra aux participants d’appliquer leurs connaissances à la réalisation d’un « mini atelier » d’Analyse Technique pour la Finance des Marchés :
    – Collecte automatique de séries financières
    – Calcul d’indicateurs : d’indicateurs simples (moyennes mobiles) à des indicateurs avancés (tel que le RSI et les Bandes de Bollinger)
    – Visualisation des résultats

    Performances et parallélisation

    Les outils pour lire l’activité (Timeit, cProfile)
    Paralléliser vos traitements avec le multiprocessing
    Calcul distribué avec la librairie Celery
    Les faiblesses du multithreading

    Atelier :Mise en œuvre de l’algorithme Map Reduce avec Celery

Objectifs de la formation 

Cette formation Python avancé pour le calcul scientifique de trois jours permet aux participants de découvrir les éléments avancés du langage Python dans un contexte de calculs scientifiques.

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Calculer, estimer et inférer dans des data-set réels, bruités et de dimension importante
  • Augmenter un data-set
  • Réaliser des calculs plus précis
  • Détecter des motifs approchant dans une bibliothèque de séquences
  • Réaliser des prédictions sur des séries temporelles

Dépoter les calculs sur des architectures matérielles optimisées pour les calculs sans modifier le code

À qui s’adresse cette formation ?

Public :

Ce cours Python Calcul Scientifique s’adresse aux ingénieurs de développement et ingénieurs scientifiques.

Prérequis :

Pour suivre cette formation Python Calcul Scientifique, il est nécessaire de de connaître les éléments de base du langage Python (variables, fonctions, et structures de données) ainsi que les principes de fonctionnement des librairies scientifiques Python (Numpy, Scipy et Pandas).

Contenu du cours 

  1. 1



    Partie 1 – Éléments avancés du langage Python

    Éléments avancés du langage Python

    Éléments de programmation avancée avec les fonctions :
    – Les fonctions anonymes
    – Fonction dans une fonction
    – Les décorateurs
    – Comment se servir des décorateurs pour augmenter la vitesse d’exécution du code Python ?
    Utilité et exemple d’application
    Comment ça fonctionne ?

    Mise en oeuvre et exercices guidés

    Choix d’une partie facultative selon la demande et le rythme d’avancement.
    On complète cette première journée avec des éléments avancés de la librairie Pandas ou des points avancés du langage Python.

    Partie facultative du programme Python

    Traitement des dates et des heures en Python
    Les ensembles et collections :
    – Opérateur ‘splat’
    – Appel étendu et nombre infini d’arguments dans un appel de fonction

    Partie facultative du programme Pandas

    Brefs éléments de rappels de la librairie Pandas
    Multi-index avec Pandas
    Fusion de DataFrame
    Regroupement (groupby, split, apply, combine)

    Exercices guidés reprenant les notions sur des jeux de données réels

    1.  

    Partie 2 – Mise en oeuvre du langage Python : les librairies scientifiques avancées

    Comment aller au-delà des bibliothèques scientifiques de base que sont Matplotlib, Scipy et Numpy ?

    Des exercices sur des data-sets permettent d’explorer quelques librairies scientifiques avancées de détection et de prédictions

    Pattern Mining

    Comment utiliser Python pour détecter des pattern fréquents et des motifs cachés dans des données bruitées de très grandes dimensions ?
    – Recherche optimisée de séquences cibles dans une bibliothèque de séquences
    – Classification de série temporelles
    – Détection d’anomalies et prédictions

    Exercice guidé : application sur des séries temporelles et des data-set réels et bruités

    Comment réaliser des prédictions dynamiques sur des séries temporelles ?

    Panorama de librairies spécialisées  
    Comment appliquer les méthodes de prédictions bayésiennes avec Python ?
    Aller plus loin. Pistes afin de réaliser des prédictions sur des données dynamiques (online prediction) ?

    Exercice guidé autour d’un data-set réel

    1.  

    Partie 3 – Accélérer les calculs avec Python

    Panorama de quelques librairies qui permettent de combler l’écart entre Python et les langages compilés type C/C++
    Comment accélérer le traitement de ses dataframes Pandas afin d’économiser plusieurs ordres de grandeur de temps de calcul ?
    Quelles librairies pour déporter ses calculs sur carte graphique GPU sans modifier son code ?

    Exercice guidé avec Dask

    Partie 4 – Datavisualisation avancée avec Python

    Rappel et panorama des bibliothèques de visualisation (Matplotlib, Seaborn)
    Comment aller au-delà des bibliothèques standard ?
    Bref panorama de quelques bibliothèques avancées :
    – graphiques sur des données de flux (streaming)
    – graphiques interactifs
    – graphiques sur des données massives (Big Data) difficilement représentables avec les outils standards
    Comment représenter graphiquement les données de grandes dimensions ?  
    Méthodes avancées de projection pour les données de grandes dimensions

    Partie 5 – Exercice libre sur un exemple choisi afin d’utiliser les notions acquises pendant la formation

Objectifs de la formation 

Avec sa réputation d’excellent « langage glue », Python est la technologie idéale pour récupérer des données hétérogènes depuis des sources aux formes variées afin d’accumuler une base de connaissances.

 À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Comprendre les enjeux techniques et ethniques du scraping
  • Connaître les différentes méthodes utilisées pour récupérer, traiter et stocker les données

Maîtriser les technologies existantes pour choisir la solution adaptée à votre besoin d’acquisition

À qui s’adresse cette formation ?

Public :

Ce cours Scraping Python cible principalement les programmeurs déjà à l’aise avec Python, ayant déjà des projets de taille moyenne à leur actif, et souhaitant mettre en œuvre leur propre outillage pour étoffer le stock de données dans lequel ils puissent piocher.

Prérequis :

Pour suivre ce cours Scraping Python, il faut être à l’aise avec le langage Python dans sa dernière version. 

Contenu du cours 

  1. 1.

    La base du traitement par lot (scraping)

    Rappel des fondamentaux

    Parcourir le système de fichiers
    Gérer proprement l’encoding
    Lire et écrire des fichiers
    Analyser le JSON, le CSV et l’XML
    Les générateurs

    Travaux Pratiques

    Crawler une collection de CSV pour en faire un rapport statistique

    Parcours de données sur le Web

    Mon premier scraper

    Rappel sur le protocole HTTP
    Requêtes simples avec Request
    Stocker les données avec SQLAlchemy
    Analyser du HTML avec Beautiful Soup

    Travaux Pratiques

    Crawler les articles de Wikipédia sans passer par l’API, stocker le résultat en base

    Questions de performances

    Concurrence et parallélisme

    Threads et GIL
    Utiliser plusieurs cœurs avec le multiprocessing
    Programmation I/O asyncrone
    Performances et éthiques
    Utilisation d’une forme de cache : disque, RAM et redis
    Introduire un délai aléatoire
    Le fichier robot.txt

    Travaux Pratiques

    Crawler les articles de Wikipédia via l’API et Asyncio

    Les API professionnelles

    Concurrence et parallélisme

    Authentifications et token
    Anatomie d’une API REST
    Retry propre
    Gérer le rate limiting
    Gestion des erreurs
    Logging de l’application
    Exemple avec un client twitter fait à la main

    Travaux Pratiques

    Crawler les posts de twitter via l’API officielle en utilisant un client déjà existant

    Industrialiser le crawling

    Scrappy, un framework de scraping automatique

    Introduction aux mécanismes de base du framework

    Travaux Pratiques

    Crawler les articles de Wikipédia en utilisant scrappy

    Selenium, un browser headless

    Utiliser Selenium à la main
    Utiliser Scrappy et Selenium ensemble

    Travaux Pratiques

    Crawler les images et les commentaires d’imgur avec scrappy et selenium

Objectifs de la formation 

Cette formation Machine Learning avec Python vous propose de découvrir les concepts et les technologies du Machine Learning à travers le langage Python et sa bibliothèque Scikit-Learn qui propose tous les algorithmes standards. Vous apprendrez à développer de puissants modèles prédictifs dont les résultats vous surprendront par leur puissance et leur facilité de mise en œuvre.

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Décrire les concepts du machine learning
  • Connaître les principaux algorithmes utilisés en machine learning
  • Utiliser la bibliothèque Scikit-Learn
  • Mettre en œuvre le regroupement de données automatique (clustering)

Utiliser Azure Machine Learning

À qui s’adresse cette formation ?

Public :

Ce cours Machine Learning avec Python s’adresse à toute personne amenée à utiliser Python pour développer des modèles de prédiction dans n’importe quel domaine : scientifique, médical, bancaire, sécurité, data…

Prérequis :

Cette formation Machine Learning avec Python suppose de savoir développer et de connaître les bases de Python.

Contenu du cours 

  1. 1.

    Fondamentaux du Machine Learning

    Les promesses du machine learning
    Les technologies sous-jacentes
    Liens entre Cloud, Big Data et Machine Learning
    Présentation du Deep Learning

    Travaux pratiques

    Parcours de différents résultats de programmes de machine learning afin de valider le vocabulaire et les concepts présentés dans ce chapitre (prévisions de tarifs, classification d’images, reconnaissance de textes, etc.)

    Les algorithmes standards

    Différences entre apprentissage supervisé et non supervisé
    La régression linéaire
    La régression logistique
    L’arbre de décision
    Les machines à vecteur de support (SVM)
    La classification selon Naive Bayes
    Les plus proches voisins
    Pourquoi faut-il parfois réduire les dimensions ?
    Les réseaux de neurones

    La bibliothèque Python (Scikit-Learn)

    Comment utiliser la documentation ?
    Intégration de Scikit-Learn avec d’autres librairies (Pandas, Numpy, SciPy, Matplotlib, etc.)
    Représentation des données par des tableaux (Numpy, Scipy, Pandas, Python)
    Représentation d’une prédiction par une classe (prédicteur, classifieur, estimator)
    Comment choisir le bon algorithme d’apprentissage automatique ?

    Travaux pratiques

    Reconnaissance et classification d’images de fleurs selon des critères observables (chargement d’une base, découverte du contenu, observation des données, visualisation avec Seaborn, apprentissage, prédiction)

    Apprentissage non supervisé (clustering) en Python

    Explorer les données et les regrouper (clustering)
    Visualisation avec clustering hiérarchique et t-SNE
    Décorrélation des données et réduction des dimensions
    Découvrir des fonctionnalités interprétables
    Extraire des connaissances des textes (Text Mining)

    Travaux pratiques

    Extraction de sujets et de tendances à partir de gros volume de flux de données (exemple Twitter)
    Analyse de sentiments et démotions
    Classification automatique de textes dans une ou plusieurs catégories (Word2Vec, Doc2Vec, TF-DF)
    Retour sur l’atelier de la reconnaissance supervisée des fleurs pour le passer en mode non supervisé : réduction des dimensions, regroupement des données selon différents algorithmes (clustering) jusqu’à la mise en évidence de l’identification des groupes de familles de fleurs

    Azure Machine Learning

    Construire des modèles sans coder avec les outils du Cloud
    Les services proposés par Visual Studio, Azure et GitHub
    Valider les performances des modèles
    Déployer son modèle
    La préparation des données

    Travaux pratiques

    Construction d’un modèle de prédiction sous Visual Studio

Objectifs de la formation 

Cette formation Python Bonnes pratiques et Design patterns vous apprend les bonnes pratiques de programmation avec Python.

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Appliquer des design patterns et des bonnes pratiques pour développer des applications avec Python
  • Exploiter des fonctionnalités avancées de programmation Python pour concevoir des programmes fiables
  • Créer et gérer des threads de contrôle concurrents
  • Générer des requêtes et des réponses aux services Web REST et utiliser les données renvoyées
  • Suivre l’exécution du programme et améliorer les performances
  • Lancer des tests unitaires sur les programmes et les modules Python, les installer et les distribuer.

À qui s’adresse cette formation ?

Public :

Cette formation est destinée aux programmeurs, développeurs, ingénieurs en logiciels, testeurs et responsables techniques souhaitant approfondir leurs connaissances du langage Python.

Prérequis :

Afin de suivre ce stage, il est nécessaire d’avoir suivi la formation Python ou de posséder les connaissances équivalentes telles qu’une expérience professionnelle d’au moins 3 mois de programmation avec Python.

Contenu du cours 

  1. 1.

    Programmation orientée objet avec Python

    Étendre les classes pour définir des sous-classes
    Hériter des plusieurs super-classes et classes mixin
    Ajouter des propriétés à une classe
    Définir des classes abstraites de base

    Fonctionnalités Python

    Écriture de code Python

    Personnaliser les itérations et les indexations avec des méthodes « magiques »
    Modifier le code de façon dynamique avec le « monkey patching »

    Traitement des exceptions

    Lever des exceptions personnalisées
    Réduire la complexité du code avec les gestionnaires de contexte et l’instruction with

    Vérification du code et tests unitaires

    Tests : Les bonnes pratiques

    Développer et lancer des tests unitaires Python
    Simplifier les tests automatiques avec le paquetage Nose

    Vérification du comportement du code

    Investiguer les dépendances entre objets avec le paquetage Mock
    Mettre en œuvre les assertions avec le paquetage MagicMock

    Recherche des erreurs et techniques de débogage

    Identification des erreurs

    Journaliser les messages pour les audits et le débogage
    Vérifier le code à la recherche de bogues avec PyLint

    Débogage du code Python

    Extraire les informations sur les erreurs à partir des exceptions
    Suivre l’exécution du programme avec l’environnement de développement intégré PyCharm

    Design patterns Python

    Patrons structurels

    Mettre en œuvre les patrons décorateurs avec @
    Contrôler les accès à un objet avec le patron Proxy

    Patrons comportementaux

    Utiliser le patron d’itération avec les générateurs Python
    Définir un algorithme squelette avec le patron de méthode
    Autoriser des couplages lâche entre classes avec le patron observateur

    Interface avec les clients et les services Web REST

    Services Web REST Python

    Développer un service REST
    Générer des réponses JSON pour des clients Ajax

    Clients REST Python

    Envoyer des requêtes REST depuis un client Python
    Utiliser les données JSON et XML renvoyées

    Mesure et amélioration de la performance de l’application

    Mesurer l’exécution de l’application

    Chronométrer l’exécution des fonctions avec le module « timeit »
    Suivre l’exécution du programme via « cProfile »
    Manipuler le suivi de l’exécution de manière interactive avec « pstats »

    Les fonctionnalités du langage Python pour l’optimisation des performances

    Déterminer les structures de données efficaces parmi listes, dictionnaires et tuples
    Transformer et filtrer des ensembles de données avec les compréhensions
    Remplacer l’interpréteur traditionnel Python par PyPy

    Installation et distribution de modules

    Gestion des versions des modules

    Installer les modules depuis le dépôt PyPi avec pip
    Portabilité du code entre les différentes versions de Python

    Paquetage des modules et des applications Python

    Définir des environnements Python isolés avec « virtualenv »
    Préparer la distribution d’un paquetage avec « setuptools »
    Importer les modules Python dans un dépôt local

    Exécution en parallèle

    Processus légers (threads)

    Créer et gérer plusieurs threads de contrôle avec la classe Thread
    Synchroniser des threads avec des verrous

    Traitements lourds

    Exécuter des commandes du système d’exploitation comme sous-processus
    Synchroniser des processus avec les files d’attente
    Exécuter des traitements en parallèle avec les groupes de processus et des exécuteurs

Objectifs de la formation 

Cette formation PyQt s’attache à la dimension GUI de Qt.
Elle vous permettra de savoir développer des interfaces graphiques pour les utilisateurs en Python, et ce de qualité professionnelle tant en termes de rendu que d’architecture.

 

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

 

  • Aborder l’ensemble des nombreux domaines fonctionnels abordés par le framework PyQt
  • Architecturer son code selon le standard MVC
  • Utiliser les Widgets proposés par Qt dans ses programmes Python
  • Créer ses propres widgets
  • Maîtriser la disposition et la cinématique des fenêtres
  • Programmer les événements
  • Gérer les styles
  • Développer des tâches en parallèles (multihtreading)
  • Utiliser les possibilités multimédia (son, vidéo, 3D, …)

À qui s’adresse cette formation ?

Public :

Ce cours PyQt cible principalement les développeurs Python, même relativement débutants. Des développeurs C++ connaissant un peu Qt mais débutant en Python peuvent aussi être intéressés par cette formation.

Prérequis :

Pour suivre cette formation PyQt dans de bonnes conditions, une certaine connaissance de Python est souhaitable. Il est a minima nécessaire d’avoir des connaissances dans un langage de programmation orienté objet.

Contenu du cours 

  1. 1.

    Contexte d’usage de Qt et de PyQt

    Qu’est-ce que Qt ?
    Usage de Qt avec le langage Python (ou l’invention de PyQt)
    L’écosystème technique autour de PyQt
    Utilisation commerciale et industrielle de PyQt : quelques exemples

    Widgets en PyQt

    Un premier “Hello World”
    La notion de fenêtre et les objets associés en PyQt
    Notions de widget et de disposition (layout) en PyQt
    Inventaire des widgets principaux

    Disposition de fenêtres en PyQt

    Les différents procédés de disposition en PyQt
    QHBoxLayout et QVBoxLayout
    QGridLayout et QFormLayout
    Les autres contrôles de disposition

    Gestion des évènements en PyQt

    Les évènements en PyQt
    Focus sur pyqtSignal
    Les mots-clés partial et lambda

    La gestion des styles en PyQt

    Les polices avec QFont
    Les images avec QPixmap
    Icônes et ressources
    QPalette et QBrush
    Le QSS dans tous ses états

    Architecture avancée avec PyQt

    Adopter une architecture MVC
    Interagir avec une base de données
    Mapping de données en PyQt

    Multimédia en PyQt

    Les animations avec PyQt
    Détour par un autre framework : Pygame
    Gestion du son en PyQt
    Gestion de la vidéo en PyQt

    Le multithreading

    Les problèmes de freeze de l’interface
    QTimer
    QThread et QThreadPool

    Plus loin avec le framework

    Les couches basses et le réseau
    Diagramme de données en PyQt
    De la 3D !
    Un mot sur la micro-électronique

Objectifs de la formation 

Cette formation Python pour le Pentest traite des différents modules et cas d’utilisations de Python dans le cadre de tests d’intrusion.
Vous analyserez différentes problématiques rencontrées lors d’audits et les solutions que le scripting Python permet de mettre en place afin d’automatiser les tâches complexes et spécifiques.

 

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Faciliter le développement d’exploits en Python
  • Interfacer différents langages avec Python
  • Automatiser le traitement de tâches et automatiser les exploitations
  • Contourner les solutions de sécurité

À qui s’adresse cette formation ?

Public :

Ce cours est destiné aux RSSI, aux consultants en sécurité, aux ingénieurs et techniciens et aux administrateurs systèmes et réseaux.

Prérequis :

Pour participer à cette formation Python pour le Pentest, vous devez avoir une connaissance basique du langage Python.

Contenu du cours 

  1. 1.

    1.  

    Python pour le HTTP, requests

    Développement d’un système de recherche exhaustive
    Contournement de captcha

    Développement d’un modèle Python BurpSuite

    Introduction à BurpSuite
    Développement d’un module de détection passif de Web Application Firewalls

    Exploitation d’une injection SQL en aveugle

    Extraction bit à bit et analyse comportementale

    1.  

    Introduction aux tâches distribuées

    Introduction à l’attaque Slowloris
    Développement d’un exploit Slowloris distribué

    Python et l’altération HTTP

    Introduction à MITMProxy
    Développement d’un module “SSL Striping”

    Python et le forensics

    Volatility
    Hachoir
    Network Forensics avec Scapy

    1.  

    Le C et Python, Cython

    ctypes
    Développement d’un module Cython Antivirus et Backdoors

    Antivirus et Backdoors

    Shellcodes
    Création d’une porte dérobée avancée

    1.  

    Chaîne d’exploitation

    Exploitation de multiples vulnérabilités
    Création d’un exploit complet (POC)

    Travaux Pratiques : atelier final

    Capture the Flag

Objectifs de la formation 

Flask est un framework open-source de développement web en Python. Écrit après Django, l’autre grand framework Python, il a intégré le retour d’expérience de la communauté Python. Souvent plus explicite, il est plus simple d’accès pour un(e) débutant(e). Vous pouvez ainsi développer un site web ou une application web en gardant la souplesse du langage de programmation Python.

À qui s’adresse cette formation ?

Public :

Cette formation Flask s’adresse aux développeurs Python qui souhaitent créer et maintenir leurs premières applications à base de Web services.

Prérequis :

Pour suivre ce cours Flask, il est nécessaire de maîtriser le langage de programmation Python.

Contenu du cours 

  1. 1.

    Introduction à Flask

    Pourquoi les frameworks web sont nécessaires
    Vue d’ensemble des frameworks Web Python disponibles
    Installation de Flask
    Routage des demandes pour afficher les fonctions

    Travaux Pratiques :

    Validation de la plateforme avec exposition d’un service REST élémentaire

    Construire une API REST avec Flask

    Servir des fichiers statiques
    Rendu de modèles avec Jinja2
    Produire du JSON, ou XML
    Émission de redirections
    Contexte d’application et contexte de demande
    Traitement des téléchargements de fichiers avec Flask-Uploads

    Travaux Pratiques :

    Application pour la construction de services REST pour l’exposition d’un contrat de gestion de données (contacts d’un agenda)

    Sécuriser une API REST

    Pourquoi ajouter de la sécurité à des échanges HTTP
    Plusieurs modes de sécurisation
    Gestion de session utilisateur avec Flask-Login et Flask-User
    L’interface d’administration créée par Flask-Admin
    Envoi d’email avec Flask-Mail

    Travaux Pratiques :

    Contrôle pour limiter les accès d’un service Web à un ensemble d’usagers

    Automatiser les phases d’un projet Web Python

    Étape de conception Swagger
    Étape de construction avec Conda
    Étape de déploiement d’applications Flask en production

    Travaux Pratiques :

    Gestion de projet depuis la conception jusqu’au déploiement derrière un serveur HTTP

Objectifs de la formation 

Cette formation Django vous permettra d’acquérir les connaissances nécessaires pour créer des applications Web avec le framework Django. Trois jours pour acquérir les bases du framework Django et disposer d’une bonne vue d’ensemble des différents modules à disposition et des possibilités

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Utiliser l’ORM, les vues et les templates
  • Réaliser rapidement des projets web puissants
  • Intégrer des modules externes

Gérer le déploiement et la maintenance de votre projet

À qui s’adresse cette formation ?

  • Public :
  • Cette formation Django s’adresse à tout développeur souhaitant acquérir les bases du framework Django.
  • Prérequis :

Pour suivre cette formation Django dans de bonnes conditions, il est important de connaitre les bases du langage Python

Contenu du cours 

  1. 1.

    Introduction à Django

    Rappels sur le protocole HTTP
    Comprendre la structure d’un projet Django
    Revue générale du fichier settings.py
    Le routing, via urls.py
    Les vues, et les objets de requête / réponse
    Template, liens, tags et filtres

    L’ORM Django

    Bases de données prises en charge
    Créer des modèles, types de champs
    Accès aux données avec les querysets
    Champs relationnels et Managers
    Agrégation et annotations de requêtes
    Modèles de bases : utilisateur et groupes
    Comment fonctionne les Class Based Views

    L’interface d’administration de Django

    Installer l’interface d’administration
    Comptes utilisateurs et droits
    Publier des modèles dans l’interface

    Workflow de l’utilisateur

    GET, POST et COOKIES
    Authentification et session
    Les middlewares
    Les formulaires

    Gestion des formulaires

    Créer un formulaire
    Les types de champs
    Validation des données
    Créer des champs personnalisés
    Personnaliser l’apparence
    Utiliser AJAX pour la soumission
    Upload de fichiers
    Protections CSRF

    Internationalisation

    Internationaliser une application
    Gestion des fichiers de langues
    Traductions javascript
    Détection du langage utilisateur

    Déploiement et maintenance

    Intégration dans Apache ou Nginx : le protocole WSGI
    Gestion des fichiers statiques
    Django-debug-toolbar

Objectifs de la formation 

Cette formation ZOPE création d’une application vous permet de connaître le serveur d’applications, le component Architecture, le Framework MVC (Grok) et l’intégration WSGI (Web Server Gateway Interface).

 

À l’issue de cette formation, vous aurez acquis les connaissances et les compétences nécessaires pour :

  • Connaître le serveur d’applications
  • Connaître le component Architecture
  • Connaître le Framework MVC (Grok)

Connaître l’intégration WSGI (Web Server Gateway Interface

À qui s’adresse cette formation ?

Public :

Cette formation Zope concerne les Gestionnaires d’applications, administrateurs système, webmestres, développeurs de sites, programmeurs.

Prérequis :

Cette formation zope nécessite des donnaissances sur les technologies du Web (XML, XHTML) et de Python et/ou une expérience d’intégrateur sur Plone. Idéalement avoir suivi la formation Python.

Contenu du cours 

  1. 1.

    Introduction à Zope

    Etat actuel des technologies
    Les frameworks de Zope : Zope 2, Zope 3 (Component Architecture),   Repoze, Grok
    Les plates-formes populaires construites avec Zope
    Les conventions des développeurs

    Mettre en place  un environnement de développement Zope

    Python
    Zope
    Connaître les nouvelles librairies de développement (Zope 3) : Zope interface, Zope schéma, etc…
    Aspects de déploiement

    Architecture de composants de Zope, les concepts

    Notion d’interface – Notion de composant
    Adaptation d’interface, Adaptateurs et Browser Views (Multi-Adaptateurs)
    Configuration avec le ZCML (Zope Configuration Markup Language)

    Les outils de développement de Zope

    Présentation avec les Page Templates
    Templates et Browser Views (logique de présentation)
    Composants de contenus persistants (via la base de données objet de Zope : ZODB)
    Formulaires d’interaction avec la librairie zope.formlib (AddForm, EditForm, DisplayForm)
    Indexation et recherche

    Zope : pratiques de développement recommandées

    Tests unitaires avec doctest
    Tests fonctionnels

    Introduction à Grok

    De Zope 3 à Grok – Principes et intérêts de l’approche Grok
    Installation des librairies complémentaires pour Grok

    Tutoriel de mise en oeuvre d’une application avec Grok

    Modèle de données (Model-View-Controler)
    Formulaires auto-générés
    Présentation : Classes de Browser View & Templates

    Pour aller plus loin avec Zope

    L’API de Grok
    Les interfaces R.E.S.T