Coder et développer en python

Tags :
  • enseignement
  • ECM

15h+6h heures de cours pour apprendre le python objet, les bases de la gestion des sources avec git et la programmation par les tests.

Connectez vous au réseau Éduroam qui est le réseau des université européennes pour vos travaux en TD/TP.

  • login : votre adresse mail
  • mot de passe : celui de l'ent ECM

Sous Linux suivez les instructions de : https://cat.eduroam.org/

Tous les exercices et rendu sont fait pour être réalisé sans IA :

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 0 : Vérification des acquis

1h cours

Pour terminer cette partie, utilisez un interpréteur en ligne ou spyder pour vous rafraîchir la mémoire en python :

Vous devriez être capable de comprendre toutes les solutions et (dans le meilleur des cas) d'en faire une grande partie.

Partie I : Projets informatique

Interpréteur python et IDE

1h cours

Principe de conduite d'un projet informatique

1h TD

Les deux principes fondamentaux lorsque l'on développe un projet informatique est de séparer le programme principal des fonctions et de conserver les tests qui nous on permis de vérifier qu'elles fonctionnent :

  1. Séparer code et fonctions en créant ses propres modules
  2. Tester ses fonctions

Pour aller plus loin, comment trouver des bugs de façon efficace :

À vous

2h TP

Les 3 exercices se suivent et prennent les mêmes exemples. Faite un exemple au complet (fonction puis création module puis test) avant de passer à un autre.

Pour aller plus loin :

Vous aurez besoin d'utiliser des fichiers, donc lisez la partie consacrée aux fichiers du cours

À rendre

2h DM à rendre sur Moodle

Lisez la partie du cours suivant et faire le rendu qu'il faudra déposer sur Moodle :

Travail à rendre

Faite le Projet pourcentage.

Le travail (code + réponse aux questions) est à rendre sur Moodle avant mercredi 16/09 à 8h00.

Vous rendrez un dossier contenant :

  • le code (uniquement les fichiers .py (main, fonctions et tests), pas le dossier __pycache__ par exemple,)
  • un ficher texte réponses.md où vous aurez répondu aux questions. Vous utiliserez le format markdown.

Partie II : Classes et objets

À lire avant la séance

Classe et objets en python

2h cours

1h TP

Rendre ses objets plus conviviaux

1h CM

1h TP

À rendre

2h DM à rendre sur github et ne mettre sur Moodle qu'un fichier texte contenant le lien vers le dépôt github.

Travail préparatoire

Mettre son code à disposition via un Dépôt sur github.

Travail à rendre

Le travail est à rendre sur github et en mettant le lien vers le déport sur Moodle avant mercredi 23/09 à 8h00.

Partie III : Composition/agrégation et héritage

Composition et agrégation

2h cours

1h TP

Héritage

2h cours

À rendre

2h+ DM à rendre sur github et ne mettre sur Moodle qu'un fichier texte contenant le lien vers le dépôt github.

Travail préparatoire

  1. création d'un environnement virtuel pour ses projets
  2. mettre son code à disposition via un Dépôt sur github.

Rendre le projet Bataille Navale.

Les consignes sont :

  • le projet doit se trouver sur github
  • mettre de la couleur dans vos sorties en utilisant le module https://github.com/termcolor/termcolor
  • il doit fonctionner avec un environnement virtuel : le fichier requirements.txt est requis

Le travail est à rendre sur github et en mettant le lien vers le dépôt sur Moodle avant mercredi 23/11 à 8h00.

Pour aller plus loin

Vous l'avez sans doute vu, ce cours est une extraction d'un cours plus vaste sur le développement logiciel (mais parfois encore en bordel et toujours en chantier). Ce cours est vaste et part de zéro pour arriver plus loin, si vous voulez y jeter un œil, il est disponible ici :