EPIGEP-E3-S1-UT1-E02-python-c
Renseignements pratiques
Syllabus ;
- le planning :
P1-S1
P2-S1
P3-S1
P4-S1
P5-S1
Découpage pédagogique 2025-2026

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 tous les exercices d’application en utilisant les assistants de codage.
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 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 codageassurez 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 on transpose assez facilement les vers de Boileau :
Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément.
Si le contexte fourni ne cerne pas précisément le problème, l’assistant de codage peut ne pas être en mesure de fournir une solution pertinente, ou fournir une réponse pertinente que vous ne comprendrez pas.
Les exercices
Le cours ci dessous est accompagné d’exercices, pour lesquels les conventions suivantes sont utilisées :
🟩 Exercice obligatoire (environnement GitHub)
🟢 Exercice obligatoire (environnement local, décrit dans la partie Installation)
🟠 Si le temps le permet (environnement local)
Note
Dans un contexte de programmation assistée par un assistant de codage, tous les exercices sont obligatoires.
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.
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.
Fonctions et modules (03:00)
Définition et utilisation des fonctions : paramètres, valeurs de retour, portée des variables et documentation des fonctions.
Use this template Create a new repository 04-primes Create repository
Code Codespaces Create codespace on main
Pour plus de détails, relire attentivement L’environnement GitHub.
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.
Use this template Create a new repository 05-palindromes Create repository
Code Codespaces Create codespace on main
Pour plus de détails, relire attentivement L’environnement GitHub.
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.
Use this template Create a new repository 06-syracuse Create repository
Code Codespaces Create codespace on main
Pour plus de détails, relire attentivement L’environnement GitHub.
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.
Use this template Create a new repository 07-asciiart Create repository
Code Codespaces Create codespace on main
Pour plus de détails, relire attentivement L’environnement GitHub.
Les fichiers (03:00)
Gestion des fichiers : lecture, écriture, modes d’ouverture et traitement des données textuelles stockées dans des fichiers.
Use this template Create a new repository 08-lecture-donnees Create repository
Code Codespaces Create codespace on main
Pour plus de détails, relire attentivement L’environnement GitHub.
Les sets (02:00)
Les ensembles (sets) : création, opérations mathématiques sur les ensembles, élimination des doublons et cas d’usage pratiques.
Les dictionnaires (04:00)
Les dictionnaires Python : association clé-valeur, méthodes et utilisations pratiques
Les exceptions (01:00)
Gestion des erreurs avec les exceptions : try, except, finally pour un code robuste
Les classes (03:00)
Programmation orientée objet : définition de classes, attributs et méthodes
Le cours C
Le langage C est un langage de programmation bas niveau, qui permet de manipuler directement la mémoire. Il est très proche du langage machine, ce qui le rend très rapide. Son apprentissage est un peu plus difficile que celui de Python, mais il est très utile pour comprendre comment fonctionne un ordinateur. Il est aussi très utilisé dans le monde de l’embarqué, des systèmes d’exploitation et des applications nécessitant des performances élevées. Il est également nécessaire pour l’apprentissage de algorithmique puisqu’il permet de manipuler les pointeurs, les structures de données et la mémoire de manière plus directe que Python.
Premiers pas (01:00)
Premiers pas avec le langage C : historique, philosophie et environnement de développement
Processus de compilation (00:30)
Processus de compilation : du code source à l’exécutable via gcc
Comparaison avec Python (02:00)
Structure d’un programme C : #include, fonction main et premiers pas
Les opérateurs (00:30)
Les structures de contrôle (02:00)
Structures de contrôle : if/else, boucles while et for en langage C
Les pointeurs (02:00)
Les pointeurs : adresses mémoire, déréférencement et manipulation directe
Les fonctions (02:00)
Définition et utilisation des fonctions : paramètres, valeurs de retour
Les tableaux (02:00)
Les tableaux en C : déclaration, indexation et parcours
Les chaines de caractères (02:00)
Manipulation des chaînes de caractères : tableau de char et fonctions
Structures et alias (02:00)
Les structures : regroupement de données hétérogènes et typedef
Allocation dynamique (02:00)
Allocation dynamique de mémoire : malloc, free et gestion du tas
Listes chainées (02:00)
Structures de données avancées : listes chaînées et manipulation de nœuds
Le projet Text Based Adventure
Le jeu d’aventure textuel est un jeu très ancien, qui a connu son heure de gloire dans les années 80. Il est aujourd’hui un peu tombé en désuétude, mais il reste un excellent exercice de programmation. Il est aussi très facile à mettre en oeuvre, car il ne nécessite pas de graphisme, ni de son, ni de réseau, ni de base de données, ni de moteur physique, ni de moteur de rendu, etc. Il ne nécessite qu’un terminal et un langage de programmation. Il est donc idéal pour un premier projet de programmation.
Introduction (03:00)
Introduction aux jeux d’aventure textuels : conception et mécaniques de base
Une première version (03:00)
Création du premier jeu : structure de base et interaction utilisateur
Votre propre univers (03:00)
Conception et implémentation de la carte : espaces et navigation
Ajouter un historique (03:00)
Système de narration : gestion de l’histoire et des événements
Ajouter des objets (03:00)
Système d’objets : inventaire, collecte et utilisation d’items
Ajouter des personnages non joueurs (03:00)
Personnages non-joueurs : dialogues, interactions et quêtes
Evaluations
IGI-3008/P1 est évaluée en 2 parties :
un QCM Python, jusqu’au chapitre sur Les sets inclus : lundi 3 novembre 2025 (01:00)
un QCM C, jusqu’au chapitre sur Les chaines de caractères inclus: lundi 3 novembre 2025 (01:00)
IGI-3008/P2 est évaluée en 3 parties :
un QCM Python, du chapitre sur Les dictionnaires au chapitre sur Les classes inclus : mercredi 12 novembre 2025 (01:00)
un contrôle sur le projet Python : mercredi 21 janvier 2026
le projet proprement dit : dimanche 25 janvier 2026 23:59
1 point de bonus si le projet est rendu au moins 24:00 avant
1 point de malus par jour calendaire de retard
Les détails des coefficients sont donnés dans le Syllabus.
Les notes P1
Les notes P2
Intervenants
Daniel Courivaud, daniel.courivaud@esiee.fr, bureau 5454 ;
Cécile Pov, cecile.pov@esiee.fr ;
Daniel Ramos Vaz, daniel.ramosvaz@esiee.fr ;
Rostom Kachouri, rostom.kachouri@esiee.fr.