Public
Développeurs, ingénieurs, chefs de projets proches du développement.
Pré-requis
Connaissances de base en programmation.
Objectifs
- Avoir une expertise dans la syntaxe du langage Python
- Assimiler les concepts fondamentaux de la programmation orientée objet
- Familiariser avec l'utilisation pratique des divers modules Python
- Concevoir des interfaces graphiques efficaces
- Utiliser les outils dédiés au test et à l'évaluation de la qualité d'un programme Python
Programme
Programme : Jour 1: Session 1 (9h-11h) - Syntaxe du langage Python Les bases de la syntaxe Python. Identifiants, références, conventions de codage. Types de données, variables, affichage, portée.
Jour 1: Session 2 (11h-13h) - Syntaxe du langage Python (Suite) Manipulation des types numériques et des chaînes de caractères. Manipulation des tableaux dynamiques (liste), tableaux statiques (tuple), et dictionnaires. Utilisation des fichiers. Jour 1: Session 3 (14h-16h) - Syntaxe du langage Python (Suite)
Structures conditionnelles (if/elif/else). Opérateurs logiques et de comparaison. Boucles d'itérations (while, for). Fonction range. Jour 1: Session 4 (16h-17h) - Syntaxe du langage Python (Suite) Écriture et documentation de fonctions. Lambda expressions et générateurs. Structuration du code en modules. Travaux pratiques : Installation et prise en main de l'interpréteur Python.
Jour 2: Session 5 (9h-11h) - Approche Orientée Objet Principes du paradigme Objet. Définition d'un objet, classe, attributs, méthodes. Encapsulation, communication entre objets. Jour 2: Session 6 (11h-13h) - Approche Orientée Objet (Suite) Héritage, polymorphisme, association entre classes. Présentation d'UML. Travaux pratiques : Modélisation en UML d'un cas d'étude simple. Jour 2: Session 7 (14h-16h) - Programmation Objet en Python
Modèle Objet de Python. Écriture de classes, instanciation. Constructeurs, destructeurs, protection d'accès. Jour 2: Session 8 (16h-17h) - Programmation Objet en Python (Suite) Héritage simple, héritage multiple, polymorphisme. Méthodes spéciales, introspection. Bonnes pratiques et modèles de conception. Travaux pratiques : Pratique des concepts Objet via l'implémentation de l'étude de cas.
Jour 3: Session 9 (9h-11h) - Utilisation StdLib
Arguments en ligne de commande. Moteur d'expressions régulières Python (module "re"). Manipulation du système de fichiers. Jour 3: Session 10 (11h-13h) - Utilisation StdLib (Suite) Modules importants de la bibliothèque standard. Empaquetage et installation d'une bibliothèque Python. Accès aux bases de données relationnelles, DB API. Travaux pratiques : Mise en œuvre de modules Python - expressions régulières, accès à une base de données. Jour 3: Session 11 (14h-16h) - Outils QA Outils d'analyse statique de code (Pylint, Pychecker). Analyse des comptes rendus d'analyse. Extraction automatique de documentation Jour 3: Session 12 (16h-17h) - Outils QA (Suite) Débogueur de Python, développement piloté par les tests. Modules de tests unitaires Python (Unittest...). Tests de couverture de code, profiling. Travaux pratiques : Utilisation des outils pylint et pychecker, mise en œuvre de tests unitaires.
Jour 4: Session 13 (9h-11h) - Création IHM TkInter Principes de programmation des interfaces graphiques. Bibliothèque TkInter, conteneurs, widgets. Gestionnaire de fenêtres, placement des composants. Jour 4: Session 14 (11h-13h) - Création IHM TkInter (Suite) Gestion des événements, applications multifenêtres. Travaux pratiques : Conception d'une interface graphique avec Tkinter. Jour 4: Session 15 (14h-16h) - Interfaçage Python/C Présentation du module Ctypes. Chargement d'une librairie C, appel de fonctions. Réécriture d'une fonction Python en C avec l'API Python/C. Jour 4: Session 16 (16h-18h) - Interfaçage Python/C (Suite) Création de modules C pour Python. Interpréteur Python dans C, utilisation du profileur de code. Travaux pratiques : Appel de fonctions écrites en C depuis Python, création de modules C pour Python.
Conclusion et Modalités d'évaluation Analyse critique de Python, évolution du langage. Webographie et bibliographie. Modalités d'évaluation : QCM, mises en situation, tests de position
Méthodes Pédagogiques:
- Apports théoriques illustrés par des exemples de code.
- Réalisation d'un mini-projet (70% de travaux pratiques).
