Apprendre la programmation

Tags :
  • code
  • python
Auteur :
  • François Brucker

Ce cours est dédié au code informatique. Coder, c'est passer d'un algorithme papier (pseudo-code ou idées) à un programme informatique, appelé code. Par extension, on inclura dans cette partie la modification d'un code existant. Le but d'un code est d'être exécuté par un ordinateur pour réaliser une tâche.

Pour permettre son exécution, le code est écrit dans un langage de programmation. Celui-ci dépend de la tâche à réaliser : le code est un outil il faut utiliser celui qui est le plus adapté au résultat voulu.

Nous utilisons ici le python car notre but est ici :

  • de coder des algorithmes classiques et python est très proche du pseudo-code.
  • d'apprendre les bonnes pratiques de développement et python est un langage qui permet de les apprendre simplement

Enfin, python est un langage très utilisé dans le monde, que ce soit par des informaticiens ou part des personnes devant utiliser du code informatiques au quotidien (scientifiques, ingénieurs en tous genres, data scientists, etc).

La très grande majorité des concepts que l'on verra seront transposables dans d'autres langages.

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.

IA et code

Les agents IA sont de formidables accélérateurs en développement, mais :

  • ils n'inventent rien de neuf : ils ne peuvent répondre qu'à des problèmes déjà résolus,
  • ils peuvent (vont parfois) halluciner et donner des solutions qui semblent corrects mais sont fausses en réalité

En temps que développeur vous avez l'obligation :

  • de préparer le terrain aux agent étant le plus explicite possible dans vos demandes
  • de toujours vérifier le code produit
  • de connaître le fonctionnement de votre projet et pouvoir modifier le code si nécessaire

Pour cela :

  • vous devez appendre le cours
  • faire vous même les exercices et les TDs pour assimiler les concepts
  • utiliser l'IA dans les projets plus long en vérifiant chaque étape produite

Partie I : Concepts

Les différents concepts de la programmation avec des objets. On apprendra tout ça avec python, mais cela vous aidera dans tous les langages, en particulier ceux à objets.

Avant de passer à la partie II, vérifiez bien que vous avez acquis les concepts en faisant les exercices finaux de la partie I.

Ne passez pas à la partie suivante sans avoir fait et compris les 84 mono-lignes en python, on est parfois surpris de voir qu'on ne maîtrise finalement pas ce que l'on croyait savoir...

Partie II : Développement d'un projet

La première partie nous a appris les concepts fondamentaux d'un langage de programmation à objet et nous a permis d'écrire et d'exécuter un (petit) programme python. Cette partie nous permettra de passer à l'échelle en créant des programmes sur plusieurs fichiers.

Partie III : 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.

Partie IV : Gestion des dépendances

La plupart des projets informatiques ont besoin de modules extérieurs pour leur fonctionnement et ce quelque soit le langage de programmation. Nous allons voir comment gérer ces dépendances en python mais le principe est général :

Partie V : 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.

Partie VI: Pour aller plus loin sur les modules

Odds and ends

Curiosités et propriétés des modules python :

Anatomie d'un espace de nommage

La base de cette séparation en unités fonctionnelles séparée est l'espace de nommage. Nous l'avons déjà entre-aperçu lorsque l'on a parlé de modules et de fonctions, nous allons ici rentrer dans les détails et expliciter comment python trouve un objet associé à un nom.