Coder et développer
- cours
- code
- python
- François Brucker
Ce cours est dédié au code informatique. On utilisera le language python comme support car c'est un langage très utilisé et qui permet de mettre en lumière tous les aspects du développement d'un code informatique. La très grande majorité des concepts que l'on verra seront cependant transposables dans d'autres langages (comme le javascript ou encore ruby par exemple),
On supposera que vous avez des connaissances scientifiques de base (ie. mathématiques de Lycée) et que vous disposer d'un ordinateur dont vous êtes administrateur.
Aucune compétences en informatique préalable n'est nécessaire.
Bases
Langage python
Bases de la programmation sous la forme d'un tutoriel au langage python.
TBD : QCM sur les notions vues (variable, conteneurs, espace de noms)
Tutoriels
Matplotlib
Pour aller plus loin, vous pouvez suivre le cours d'analyse des données sur l'utilisation de la bibliothèque d'analyse des données pandas.
Python
Une fois les bases acquises, terminez cette partie en faisant le tutoriel de python qui reprend tout ce que nous avons vu de façon plus détaillée :
S'équiper pour le développement
Un ordinateur pour le développement
- connaissances minimales du fonctionnement d'un ordinateur (application, process, mémoire)
- dossiers/fichiers
- terminal pour exécuter des commandes/applications
Installation d'un interpréteur
Lorsque l'on veut utiliser l'interpréteur python exécuter un programme informatique que l'on aura développé, il faut s'assurer que chaque exécution du programme soit identique. Pour éviter les effets de bords (anciennes variables déclarées, modules importées, etc) Il est indispensable de pouvoir :
- créer un nouvel interpréteur python pour chaque exécution du programme.
- écrire notre programme en-dehors de tout interpréteur
Développer
TBD refaire on fait des fichiers et on importe des choses sans l'avoir défini avant.
Python gère les noms de variables via un concept appelé espace de noms. Il est crucial de comprendre comment cela fonctionne pour ne pas laisser par au doute quand à savoir quelle variable est utilisée quand :
TBD exercices : plein de fonctions différentes à créer (voir partie algorithmie ?). Utilisation de listes, suppression de doublon, recursion (flocon de koch ?) etc
TBD faire de petits programmes
TBD : mettre espace de nom dans bases de python.
TBD exercices : variables locales vs globales/fonctions/ajout d'éléments dans une liste
Le débogueur, qui permet d'exécuter ligne à ligne du code python est non seulement un excellent outil pour corriger son code, mais également un très bon outil d'apprentissage puisqu'il vous permettra d'assimiler plus rapidement ces notions de variables, d'objets et d'espaces de noms :
TBD exercices/projet
Gestion des dépendances
On a utilisé pip pour installer des modules python comme pytest (voir partie modules). Nous allons voir dans cette partie comment créer ses propres modules et la gestion des modules par projets.
Un interpréteur par projet
Créer ses propres modules
TBD déjà vu ? parler de module dossier avec
__init__.py
(vide. Le remplir est niveau 2) référence dans le module
Stockage des données
En mémoire
Chaîne de caractères
TBD méthodes de chaines de caractères :
- split
- caractères spéciaux : tabulation, fin de ligne
- strip
- supprimer les accents. transformation et ascii. voir partie data
Sur des fichiers
Archétype de programmation
Programmation objet
La programmation objet est un principe de programmation utilisé par la quasi-totalité des langages de programmation. Nes nuances existent bien sur, la programmation objet en rust n'est pas la même qu'en java par exemple, mais quelques principes fondateurs sont utilisés partout.
Nous allons dans cette partie du cours nous atteler à montrer ces principes et leur utilité dans le cadre du langage python.
Programmation évènementielle
La programmation évènementielle est un principe de développement très utilisé dans le développement de GUI. Le principe est de coder des réactions qui seront exécutées lorsqu'un utilisateur effectuera une action spécifique (générant un évènement) comme cliquer sur quelque chose, appuyer sur une touche, etc.
Maintenir et développer du code sûr
Programmation par les tests
On a pris l'habitude d'écrire des tests pour se rassurer quant à l'exactitude de nos fonctions. Mais pourquoi pas ne pas écrire les tests avant ? C'est le parti pris osé (mais très efficace) de la programmation par les tests (Test Driven Development, ou TDD) que l'on vous propose d'essayer dans le projet ci-après.
Couverture de code
La couverture de code est un outils essentiel lorsque l'on programme par les tests et plus généralement lorsque l'on code tout court. Cet outil permet de vérifier les lignes de codes qui sont testées (ie. couvertes).