Objectifs pédagogiques
A l'issue de cette formation, vous serez capable de :
- Décrire les subtilités du langage Python et en tirer parti pour écrire des programmes bien structurés, robustes et efficaces
- Gérer le développement en langage Python, de façon approfondie.
Compétences attestées par la certification
- Les compétences attestées sont variables en fonction du score obtenu (de 551 à 1000)
- Ce score déterminera un niveau (opérationnel, avancé ou expert) selon lequel vos compétences vous seront attribuées
Lien pour visualiser le détail de la certification enregistrée au RS : https://www.francecompetences.fr/recherche/rs/6202/
Niveau requis
Avoir suivi le cours PYT "Python - Par la pratique" ou avoir les compétences équivalentes.
Public concerné
Développeurs, administrateurs et architectes.
Programme
Jour 1
Langage
- Appel de fonctions aspects avancés : *args, **argk
- Lambda, filter et map
- Utilisation avancée des modèles de données : list, dic, stack, queue
- Utilisation avancée des fonctions : passages d'arguments
- Aspects avancés de la Programmation Orientée Objets (POO)
Exemples de travaux pratiques (à titre indicatif)
- Création d'un programme avec exploitation avancée des collections de Python
- Changement des types de passage d'argument
Programmation multithread
- Concepts de bases : programme, thread, synchronisation
- Gestion de threads : modules thread, threading
- Threads et la Programmation Orientée Objets
- Gestion des aspects concurrentiels : lock, mutex, sémaphores...
- Threads et échanges de données
- Notion de pool de threads
Exemples de travaux pratiques (à titre indicatif)
- Création d'un programme lançant plusieurs threads
- Synchronisation de ces threads pour obtenir un résultat dépendant de traitements parallèles
- Protection des données globales du programme écrit grâce aux mutex et lock
- Ajout d'un sémaphore pour l'accès à des ressources en nombre restreint
- Echange de données entre threads lancés
- Travail sur la notion de pool de threads disponibles
Programmation réseau avec les sockets
- Rappels sur le TCP/IP et concepts de base de l'API socket
- Utilisation du module socket
- Socket en mode connecté : TCP ou stream
- Socket en mode non connecté : UDP ou datagram
- Les sockets et la Programmation Orientée Objets
- Combinaison des sockets et des threads
Exemples de travaux pratiques (à titre indicatif)
- Création d'un programme serveur puis client échangeant des données via les sockets en TCP puis UDP
- Démonstration de l'avantage du multi-threading dans ce cas pour les serveurs
Jour 2
Python et XML
- Concepts de base
- DOM (Document Object Model)
- SAX (Simple API for XML)
- Parser...
- Gestion de fichiers XML selon SAX et selon DOM
- Requêtage Xpath et transformation avec XSL
Exemples de travaux pratiques (à titre indicatif)
- Création d'un programme de lecture d'un flux de données de taille importante via SAX
- Mise à jour d'une structure via DOM
Programmation graphique
- Différentes API : Tkinter, wxPython, Qt/UI API
- Tkinter : présentation et mise en oeuvre
- Présentation et mise en oeuvre
- API wxPython
- API Qt/UI
Exemples de travaux pratiques (à titre indicatif)
- Ecriture d'un programme utilisant Qt/UI d'échange utilisateur avec l'interface graphique
Persistance de données
- Concepts de base : sérialisation / désérialisation
- Différents modèles de persistance : Pickle...
- Persistance texte avec JSON et XML
Les bases de données
- Concepts de base : SQL, NoSQL, tables, curseur
- Création d'une base avec les modules Gadfly
- Gestion de la base de données SQLite et MySQL
Exemples de travaux pratiques (à titre indicatif)
- Création d'un programme qui sérialise un flux JSON
- Ecriture d'un programme d'accès à une base de données MySQL
- Mise au point de requêtes de lecture, inertion, mise à jour depuis Python
Jour 3
Intégration Python/C et Python/Java
- Présentation générale et mise en oeuvre de SWIG
- Python/C et les packages
- Natifs C
- Natifs Java
Exemple de travaux pratiques (à titre indicatif)
- Création d'un programme interfaçant avec des API écrites en C et en Java
Mise au point de programme
- Débogage : exécution pas à pas
- Modes : verbose et trace
- Analyse des performances et profiling
Certification (en option, hors inscription via le CPF)
- Prévoir l'achat de la certification en supplément (ne concerne pas les inscriptions via le CPF pour lesquelles la certification est incluse)
- L'examen (en français) sera passé soit à la fin de la formation, soit ultérieurement dans nos centres de formation
- Il s'effectuera en ligne et durera en moyenne 1h30
- 551 points minimum seront nécessaires pour l'obtention de la certification (le score obtenu attestera d'un niveau de compétence)
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation et/ou une certification (proposée en option)
Accessibilité de la formation
Le groupe M2i s'engage pour faciliter l'accessibilité de ses formations. Les détails de l'accueil des personnes en situation de handicap sont consultables sur la page Accueil et Handicap.
Modalités et délais d’accès à la formation
Les formations M2i sont disponibles selon les modalités proposées sur la page programme. Les inscriptions sont possibles jusqu'à 48 heures ouvrées avant le début de la formation. Dans le cas d'une formation financée par le CPF, ce délai est porté à 11 jours ouvrés.