Coder et développer

Tags :
  • cours
  • code
  • python
Auteur :
  • 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

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 :

  1. créer un nouvel interpréteur python pour chaque exécution du programme.
  2. é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.

Espace de noms

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).