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

Découpage pédagogique

Séances

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 argparse

  • analyser 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.py

  • vé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 AVANCE fait 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.