E2-Python
Annonces
Cette zone sera utilisée pour communiquer des informations importantes concernant le cours. Il est impératif de la consulter avant chaque séance.
Renseignements pratiques
- le planning, dans la barre de recherche :
e2-4-ESTpour le groupe 1 ;e2-5-ESTpour le groupe 2 ;
Découpage pédagogique
Jour |
Début |
Durée |
Sujet |
|---|---|---|---|
Jeudi 22/10/2026 |
09h00 |
03h00 |
Introduction, nombres |
Jeudi 05/11/2026 |
09h00 |
03h00 |
Contrôle de l’exécution d’un programme |
Jeudi 12/11/2026 |
09h00 |
03h00 |
Fonctions et modules |
Jeudi 19/11/2026 |
09h00 |
03h00 |
Chaines de caractères |
Jeudi 26/11/2026 |
09h00 |
03h00 |
Listes |
Jeudi 03/12/2026 |
09h00 |
03h00 |
Tuples |
Jeudi 10/12/2026 |
09h00 |
03h00 |
Fichiers |
Jeudi 17/12/2026 |
08h00 |
02h00 |
Sets |
Jeudi 07/01/2027 |
10h00 |
03h00 |
Dictionnaires |
Jeudi 14/01/2027 |
10h00 |
03h00 |
Exceptions |
Jeudi 21/01/2027 |
10h00 |
03h00 |
Classes |
Prérequis
Pour ce cours, il est nécessaire d’avoir suivi les cours IPA et IPO. Avoir déja réalisé des projets personnels en Python est un plus.
Méthodologie d’apprentissage
Pour chaque chapitre du cours :
lorsqu’elle est présente, visionner la vidéo d’introduction qui donne un aperçu général de la notion à acquérir ;
lire attentivement le cours, reproduire les exemples présentés et parcourir la documentation officielle correspondante pour une idée plus exhaustive des interactions possibles ;
faire les exercices d’application en utilisant les assistants de codage en demandant explicitement de ne pas fournir le code mais d’expliquer les notions nécessaires.
La totalité du contenu est disponible en ligne. Rester attentif au séquencement pédagogique pour ne pas prendre de retard.
Sollicitez l’assistance de l’enseignant ou de l’IA lorsque :
une notion du cours n’est toujours pas claire, après avoir visionné la vidéo, lu le cours, manipulé avec l’interpréteur interactif et sollicité l’assistant de codage ;
vous butez sur un exercice après avoir essayé de le résoudre par vous même pendant au moins 10 mn.
Si vous avez besoin d’assistance sur un exercice, que l’interlocuteur soit un humain ou un assistant de codage, assurez vous de produire un exemple minimal reproductible. Minimal pour se concentrer sur l’essentiel du problème, reproductible pour pouvoir reproduire le problème sur une machine différente. Souvent cette démarche est suffisante pour cerner le problème et y apporter une solution.
Note
Il est tentant de ne pas faire l’effort de structuration nécessaire lorsqu’on utilise un assistant de codage. Mais si le contexte est incomplet ou mal structuré, la solution fournie peut manquer de pertinence et/ou de précision.
Les exercices
Le cours ci dessous est accompagné d’exercices, pour lesquels les conventions suivantes sont utilisées :
🟢 Exercice obligatoire
🟠 Exercice optionnel
Note
Dans un contexte de programmation assistée par un assistant de codage, faire un maximum d’exercices optionnels
Le cours Python
Python est un langage de programmation de haut niveau, orienté objet, qui permet de développer rapidement des applications. Il est très utilisé dans le monde de la data science, de l’intelligence artificielle, du développement web et plus largement de nombreux domaines de l’ingéniérie. Il est assez facile à apprendre et à utiliser, mais comme tout langage de programmation, il nécessite un certain investissement pour être maîtrisé.
Introduction (00:30)
Introduction au langage Python : découverte de son historique, de sa philosophie et de ses domaines d’application. Premiers pas avec l’interpréteur Python.
Installation (01:00)
Installation et configuration de l’environnement Python : installation de Python, choix d’un éditeur de code, et configuration des outils de développement et de l’assistant de codage.
Les nombres (00:30)
Les types numériques en Python : entiers, nombres flottants, nombres complexes et les opérations arithmétiques fondamentales.
✨ Fil rouge : application robot
Utiliser une IA pour construire une application Python/Tkinter qui permet de contrôler un robot sur une grille 10x12 :
sur cette grille il y a des obstacles et des récompenses ;
le robot peut se déplacer dans les quatre directions cardinales, mais ne peut pas traverser les obstacles ;
l’objectif est de collecter un maximum de récompenses en un nombre limité de déplacements ;
l’application doit permettre de visualiser la grille, le robot, les obstacles et les récompenses, ainsi que d’afficher le score du joueur ;
on commande le robot depuis une fenêtre de contrôle, qui permet de saisir les commandes de déplacement du robot : avancer, droite, gauche ;
l’application doit être construite uniquement avec des fonctions (aucune classe).
le code doit être logé dans un seul fichier
main.py.
A faire :
vérifier le fonctionnement correct de l’application ;
utiliser une approche top-down pour comprendre l’architecture du code ;
recenser les fonctions qui composent l’application ;
recenser tous les types d’objets utilisés dans le code ;
comprendre les éléments principaux de l’interface graphique.
Contrôle de l’exécution d’un programme (03:00)
Structures de contrôle en Python : conditions (if, elif, else), boucles (for, while) et gestion du flux d’exécution des programmes.
✨ Fil rouge : application robot
A faire :
identifier les portions de code qui mettent en oeuvre :
la répétition d’instructions, les objets concernés, l’objectif de cette répétition ;
le branchement conditionnel, les expressions booléennes associées, la signification des différentes alternatives ;
insérer une variable vitesse qui permet de contrôler la rapidité du robot sur la grille. Où cette variable doit elle être définie ? A quelles fonctions doit elle être passée en paramètre ?
passer les dimensions de la grille en ligne de commande avec
argparseanalyser le code produit ;
vérifier son bon fonctionnement.
Fonctions et modules (03:00)
Définition et utilisation des fonctions : paramètres, valeurs de retour, portée des variables et documentation des fonctions.
🟢 Faire le lab e2-python-labs-student/python_lab_01_primes. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
🟢 Faire le lab e2-python-labs-student/python_lab_02_theorie_des_nombres. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
✨ Fil rouge : application robot
A faire :
découper l’application en plusieurs modules en respectant le principe de responsabilité ;
importer les fonctions depuis le module principal
main.pyvérifier le fonctionnement correct après cette refactorisation.
analyser le code produit ;
vérifier son bon fonctionnement.
Les chaines de caractères (03:00)
Manipulation des chaînes de caractères : création, formatage, méthodes de traitement et opérations sur les strings.
🟢 Faire le lab e2-python-labs-student/python_lab_03_palindromes. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
🟢 Faire le lab e2-python-labs-student/python_lab_08_password. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
✨ Fil rouge : application robot
A faire :
ajouter la possibilité d’insérer une instruction « REPETE n » au début d’une ligne de commande. Ainsi
REPETE 3 AVANCEfait avancer le robot de 3 cases ;paramétrer les obstacles non plus pierre par pierre pour former un mur, mais mur par mur, chaque mur possédant un nombre de pierres et une orientation (V)erticale ou (H)orizontale.
analyser le code produit ;
vérifier son bon fonctionnement.
Les listes (03:00)
Les listes Python : création, indexation, modification, méthodes et compréhensions de listes pour gérer des collections d’éléments.
🟢 Faire le lab e2-python-labs-student/python_lab_11_syracuse. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
🟢 Faire le lab e2-python-labs-student/python_lab_15_guess_langage. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
✨ Fil rouge : application robot
A faire :
ajouter un historique permettant au robot de faire demi tour avec l’instruction « RECULE ».
analyser le code produit ;
vérifier son bon fonctionnement.
Les tuples (03:00)
Les tuples : structures de données immutables, création, indexation et différences avec les listes pour organiser des données ordonnées.
🟢 Faire le lab e2-python-labs-student/python_lab_17_asciiart. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
✨ Fil rouge : application robot
A faire :
identifier les tuples utilisés dans le code ;
implémenter un caractère aléatoire pour définir la dimension des murs, à leur orientation et à leur position. Ces caractérristiques doivent tenir compte de la taille de la grille.
analyser le code produit ;
vérifier son bon fonctionnement.
Les fichiers (03:00)
Gestion des fichiers : lecture, écriture, modes d’ouverture et traitement des données textuelles stockées dans des fichiers.
🟢 Faire le lab e2-python-labs-student/python_lab_18_lecture_donnees. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
✨ Fil rouge : application robot
A faire :
ajouter une fonctionnalité « Sauvegarder » qui écrit sur le disque l’état de la grille. S’il y a une une sauvegarde, le jeu doit restaurer l’état enregistré à son prochain démarrage.
analyser le code produit ;
vérifier son bon fonctionnement.
Les sets (02:00)
Les ensembles (sets) : création, opérations mathématiques sur les ensembles, élimination des doublons et cas d’usage pratiques.
🟢 Faire le lab e2-python-labs-student/python_lab_20_langue_francaise. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
✨ Fil rouge : application robot
A faire :
introduire un algorithme de recherche de parcours minimal ;
l’identifier graphiquement sur la grille ;
analyser le code produit ;
vérifier son bon fonctionnement.
Les dictionnaires (04:00)
Les dictionnaires Python : association clé-valeur, méthodes et utilisations pratiques
🟢 Faire le lab e2-python-labs-student/python_lab_21_lecture_donnees_meteo_1. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
✨ Fil rouge : application robot
A faire :
identifier les dictionnaires présents dans le code. Ajouter la possibilité de commander le robot avec des instructions réduites. Ainsi
R3ADR2A(à adapter en fonction de votre grille) doit :faire avancer le robot de 3 cases ;
le faire tourner à droite ;
le faire avancer de 2 cases ;
analyser le code produit ;
vérifier son bon fonctionnement.
Les exceptions (01:00)
Gestion des erreurs avec les exceptions : try, except, finally pour un code robuste
🟢 Faire le lab e2-python-labs-student/python_lab_23_conversion. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
Les classes (03:00)
Programmation orientée objet : définition de classes, attributs et méthodes
🟢 Faire le lab e2-python-labs-student/python_lab_24_2d. N’oubliez pas de synchroniser avec le repo distant pour l’évaluation.
✨ Fil rouge : application robot
A faire :
effectuer une refactorisation importante du code pour utiliser la Programmation Orientée Objet (OOP). Demander explicitement que les principes suivants soient respectés :
composition plutôt qu’héritage : privilégier l’assemblage d’objets ;
SOLID : Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion
faible couplage / forte cohésion entre les classes
analyser le code produit ;
vérifier son bon fonctionnement.