EPIGEP-E3-S1-UT1-E02-python-c

Renseignements pratiques

Découpage pédagogique 2025-2026

EIG-2205 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.

🟢 Nombres premiers

Fonctions et modules (03:00)

Définition et utilisation des fonctions : paramètres, valeurs de retour, portée des variables et documentation des fonctions.

🟩 Nombres premiers

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

🟢 Suites de Syracuse

🟢 Algorithmique

🟢 Théorie des nombres

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.

🟩 Palindromes

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

🟢 Sans les voyelles

🟢 Robustesse d’un mot de passe

🟢 Nombre cyclope

🟢 Nombre de Lychrel

🟢 Nombres magiques

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.

🟩 Liste de Syracuse

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

🟢 Contenu d’un répertoire

🟢 Recherche de langue

🟢 Liste des extensions

🟢 Nombre de Harshad

🟢 Nombre heureux

🟢 Aplatir une liste

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.

🟩 ASCII Art - Encodage

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

🟢 ASCII Art - Décodage

Les fichiers (03:00)

Gestion des fichiers : lecture, écriture, modes d’ouverture et traitement des données textuelles stockées dans des fichiers.

🟩 Lecture de données

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

🟢 Lecture d’un fichier texte structuré

🟢 Lecture d’un fichier binaire

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 mots de la langue française

🟢 Propriété des set

Les dictionnaires (04:00)

Les dictionnaires Python : association clé-valeur, méthodes et utilisations pratiques

🟢 Les données météo

🟢 Les stations d’observation météo

Les exceptions (01:00)

Gestion des erreurs avec les exceptions : try, except, finally pour un code robuste

🟢 Conversion de type

Les classes (03:00)

Programmation orientée objet : définition de classes, attributs et méthodes

🟢 Le point cartésien 2D

🟢 Le vecteur cartésien 2D

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