—
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!

image:assets/images/x-outro-end.png[That's all folks!]
