Coder et développer en python
- 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
- Interagir avec le système :
- Installer un interpréteur et un IDE
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 :
- Séparer code et fonctions en créant ses propres modules
- 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.mdoù 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
- création d'un environnement virtuel pour ses projets
- 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.txtest 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 :