Files
training.python.beginner/documentation/00-course-plan.md

146 lines
3.9 KiB
Markdown

---
title: Plan de formation Python Initiation
author: Steve Kossouho
---
# Programme de Python Initiation
La formation s'adresse à des quasi débutants en programmation, ou curieux d'en savoir un peu plus sur les bases de Python.
Pour les plus avancés, le rythme change (*uniquement si le groupe est suffisamment homogène*).
## Démarrage
- Tour de table et présentation
- Logistique, planning et administratif
- Rappel du programme
## Découvrir Python
- Nature de Python et court historique
- Versions de Python et différences
- Découvrir la ligne de commande et le shell
- Environnements de développement intégrés
- Créer un nouveau projet avec PyCharm
*lundi 10h30 si pas de pb d'install*
## Découvrir le langage
- Syntaxe de base
- Types de base : chaînes, nombres
- Variables et expressions
- Contrôler ce que l'on exécute : conditions et boucles
- Découvrir les listes (et tuples, sets) + slicing
- Découvrir les dictionnaires
- Compréhensions (listes etc.)
- Opérations sur les chaînes : méthodes et formatage
*mardi 14h30 max*
## Le droit aux erreurs
- Découvrir le concept d'exceptions
*mardi 15h45*
## Découvrir les fonctions
- Découvrir l'utilité des fonctions
- Découvrir la syntaxe
- Référence vs appel de fonction
- Valeurs de retour d'une fonction
- Passer des arguments aux fonctions
*mercredi 10h00*
## Découvrir la structure du code au-delà du simple script
- Expliquer ce qu'est pip, venv (*avec exemples*) et aussi conda
- Modules et packages
- Bibliothèque standard python et imports
- Exemple : faire un peu de calcul avec la bibliothèque standard
- Réutiliser votre propre code
- Extra : virtualenv et pip)
*mercredi 12h00*
## Types supplémentaires
- Découvrir les types heure+date et intervalle de temps
- Convertir depuis du texte ou vers du texte
*mercredi 14h30*
## Découvrir la programmation orientée objet
- Intérêts de la programmation objet
- Découvrir la syntaxe
- Concepts d'attributs et de méthodes
- Différence entre une classe et ses objets
- Instancier avec une autre signature
- Découvrir l'héritage et le polymorphisme
- Bonus : Courte introduction aux décorateurs avec @staticmethod
- Bonus : Introspection (*getattr, setattr, dir, isinstance, type*)
- Bonus : Diagramme de classes UML
*mercredi 17h00*
# Programme de Python Approfondissement
Même public que l'initiation : peu d'expérience en programmation ou curiosité quant à Python. Nécessite toutefois de connaître les bases du langage.
**Objectif** : aller un peu plus loin dans les bases de Python pour pouvoir traiter quelques données.
## Découvrir comment manipuler des fichiers texte
- Écrire et lire des fichiers (*open/close*)
- Écrire et lire des fichiers (*gestionnaire de contexte*)
- Formats : JSON
- Formats : CSV
- Extra : Parcours de fichiers (pathlib)
*jeudi 14h30*
## Toucher du doigt les bases de données SQL avec DBAPI et SQLite3
- Exemple simple pour dialoguer avec une base SQL
- Ajouter et requêter des données simplement
- Bonus : ORMs (peewee)
*jeudi 17h00*
## Documenter du code Python
- Comment on fait ?
- Qu'est-ce qu'on documente ?
- Comment on génère des fichiers HTML de documentation ? (*pdoc3, sphinx*)
- Bonus : Donner des indications sur le type des variables et arguments
*vendredi 10h45*
## Faire sa première interface graphique avec Python
- Exemples d'outils pour les interfaces graphiques
- PySide6 avec Python (*sous Linux*)
- Écrire une fenêtre simple
- Interagir avec les contrôles (boutons, champs)
- Concevoir graphiquement une fenêtre et l'utiliser avec Python
*vendredi 15h45*
## Bonus : Aborder la journalisation
- Qu'est-ce que c'est ? Et pourquoi, pour qui, quand ?
- Exemple simple de journalisation
- Exemple configuré de journalisation dans un fichier
*vendredi 16h30* (selon possibilités)
## Certifications
Au plus tard le vendredi à 15h30. Dure jusqu'à 17h30.
## That's all folks!
![That's all folks!](assets/images/x-outro-end.png)