Programmation (E3)
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.
15/10/2026 18:44 : CONTAINER VERSION 1.4
Le container a été mis à jourpour inclure le package Plotly. Le contenu du fichier .devcontainer/devcontainer.json du repo doit être strictement le suivant :
{ "name": "ESIEE E3 Programmation", "image": "dancou/esiee-e3-programmation:1.4", "postCreateCommand": "echo container started" }Une fois le fichier modifié, dans un terminal de la machine hôte, à la racine du repo
$ git add . $ git commit -m "container updated to version 1.4" $ git push
12/10/2026 17:14 : des fichiers du master repo ont été mis à jour. Une opération de synchronisation est nécessaire.
Vérifier que upstream est bien configuré
$ git remote -v
origin git@git.esiee.fr:<student name>/e3-programmation-labs-student.git (fetch)
origin git@git.esiee.fr:<student name>/e3-programmation-labs-student.git (push)
upstream git@git.esiee.fr:esiee-cs/e3-programmation-labs-student.git (fetch)
upstream git@git.esiee.fr:esiee-cs/e3-programmation-labs-student.git (push)
Récupérer les modifications du master repo
$ git fetch upstream
Remplacer les fichiers du repo local par ceux du master repo
$ git restore --source=upstream/main --staged --worktree -- runlinter.py
$ git restore --source=upstream/main --staged --worktree -- lab_python_palindromes/test_.py
Publier les modifications sur votre repo distant
$ git commit -m "Sync#1 with teacher repository"
$ git push
Contenu des séances de TD
lundi 19 octobre 2026
Le programme :
Paragraphe : Les sets + Lab : langue française
Paragraphe : Les dictionnaires + Lab : météo
Si le travail ci dessus n’est pas terminé en séance, il faut le terminer avant la prochaine classe virtuelle. En particulier, les labs devront être sur votre repo distant avant le jeudi 22 octobre 23:59.
lundi 12 octobre 2026
Le programme :
Paragraphe : Les chaines de caractères + Lab : palindromes
Paragraphe : Les listes + Lab : conjecture de Syracuse
Si le travail ci dessus n’est pas terminé en séance, il faut le terminer avant la prochaine classe virtuelle. En particulier, les labs devront être sur votre repo distant avant le dimanche 18 octobre 23:59.
Renseignements pratiques
Microsoft Teams pour les classes virtuelles ;
- le planning, dans la barre de recherche :
E3-P1-S1pour le groupe 1 ;E3-P2-S1pour le groupe 2 ;E3-P3-S1pour le groupe 3 ;E3-P4-S1pour le groupe 4 ;E3-P5-S1pour le groupe 5 ;
Découpage pédagogique
Le découpage pédagogique est donné à titre indicatif. Il peut être modifié en fonction de l’avancement du cours. D = distanciel
jour
début
durée
type
sujet
lundi 14/09/2026
13:00
03:00
CM
Introduction, Installation et premiers pas
vendredi 18/09/2026
09:00
03:00
CM (D)
Langages, comparaison des langages, C
lundi 21/09/2026
13:00
03:00
CM
Références, gestion des erreurs
vendredi 25/09/2026
09:00
03:00
CM (D)
Intelligence artificielle, contrôle de flux
lundi 28/09/2026
13:00
03:00
TD
Structures de données
vendredi 02/10/2026
09:00
03:00
CM (D)
Structures de données
lundi 05/10/2026
13:00
03:00
TD
Structures de données en C
vendredi 09/10/2026
09:00
03:00
CM (D)
Structures de données en C
lundi 12/10/2026
13:00
03:00
TD
Structures de données en Python
vendredi 16/10/2026
09:00
03:00
CM (D)
Structures de données en Python
lundi 19/10/2026
13:00
03:00
TD
Structures de données en Python
vendredi 23/10/2026
09:00
03:00
CM (D)
Fonctions
lundi 02/11/2026
13:00
03:00
TD
Fichiers
Prérequis
Pour ce cours, il est nécessaire d’avoir suivi une introduction à l’informatique et à la programmation, et d’avoir une certaine familiarité avec les concepts de base de la programmation (variables, types de données, structures de contrôle, fonctions, etc.). Une expérience préalable avec Python ou C, les langages de programmation utilisés dans le cours, est un plus, mais pas obligatoire.
Méthodologie d’apprentissage
Pour chaque chapitre du cours :
lire attentivement le contenu, visionner la vidéo si elle est présente ;
reproduire les exemples présentés ;
faire les quiz qui permettent de vérifier la compréhension des notions abordées (ils sont représentatifs de l’évaluation) ;
faire les exercices d’application ;
faire les labs éventuels.
La totalité du contenu est disponible en ligne. Rester attentif au séquencement pédagogique pour ne pas prendre de retard.
Acquisition de connaissances
L’acquisition de connaissances est un processus cognitif qui n’est pas instantané. Il mobilise plusieurs échelles de temps.
Le temps court (une notion abordée dans une séance) permet à l’élève de mobiliser sa mémoire de travail pour comprendre (en profondeur) une proposition ou un énoncé. La mémoire de travail étant limitée, la charge cognitive est élevée, l’effort de concentration est important. Il est cependant fondamental de ne pas laisser de zones d’incertitude.
Le temps moyen (d’une semaine sur l’autre) permet de construire des schémas plutôt que de retenir des détails isolés. Le cerveau commence à organiser les connaissances. Il permet de reconnaitre une situation parmi d’autres. Cette reconnaissance réduit énormément la charge cognitive.
Le temps long (le semestre) permet d’automatiser les tâches, certaines connaissances sont acquises. Ces opérations ne mobilisent presque plus la mémoire de travail. Des problèmes plus complexes peuvent être abordés.
L’apprentissage n’est pas linéaire, il y a un aller-retour permanent. La découverte d’une nouvelle notion nécessite de revenir temporairement dans le temps court. Tout redevient coûteux cognitivement. Avec la pratique, cette nouvelle compétence migre progressivement vers le temps long.
Assistance
Dans le temps court, l’utilisation d’une IA peut se révéler extrémement bénéfique lorsqu’elle est sollicitée pour comprendre (pas pour déléguer). Elle est toujours disponible et possède un volume de connaissances supérieur à celui d’un humain. Dans le cadre des notions abordées dans ce cours, le corpus de connaissance est fourni et bien stabilisé. L’hallucination (un phénomène où l’IA produit des informations fausses ou inexactes) est rare. Elle produit une information structurée et illustrée par des exemplesdans un temps très court. Plus de détails sur l’utilisation de l’IA sont disponibles dans le chapitre Intelligence artificielle.
Le recours à l’humain est précieux lorsque la formulation de la question à poser à l’IA n’est pas claire. L’humain connait le contexte d’apprentissage, les difficultés systémiques.
Vous êtes invités à déclencher l’assistance lorsqu’après avoir étudié une notion, vous éprouvez des difficultés à reformuler cette notion.
Lors d’un exercice ou d’un lab, il est impératif d’essayer 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 porter le problème sur une machine éventuellementdifférente. Souvent cette démarche est suffisante pour cerner le problème et y apporter une solution.
Conventions
Dans ce cours, les conventions suivantes sont utilisées.
Les exercices sont encapsulés dans un cadre orange. Ce sont des activités à réaliser par l’élève. Ils sont obligatoires et réputés compris et maitrisés en aval du déroulement du cours. A l’exception des exercices étiquetés IA, les exercices doivent pouvoir être refaits sans l’aide de l’IA.
Certains de ces exercices sont des labs qui doivent être faits sur la machine locale puis pushés sur le serveur. Le lab qui fait foi est celui qui est pushé sur le serveur, pas celui que vous avez sur votre machine locale. Les labs ne sont pas notés mais mais une faible complétude sera considéré comme une faible implication dans les apprentissages lors du jury.
Dans ce cours deux langages sont utilisés : Python et C. Le code est présenté dans des cadres de couleurs différentes pour chaque langage.
Le code Python est encapsulé dans un cadre vert.
Le code C est encapsulé dans un cadre bleu.
Les quiz permettent à l’élève de vérifier les connaissances acquises. Ils sont représentatifs de l’évaluation de l’unité.
Le code Python est encapsulé dans un cadre
Le code C est encapsulé dans un cadre .
Les notes
Student ID |
QCM 1 |
|---|---|
278528 |
18 |
290153 |
15 |
22000028 |
11 |
23000004 |
18 |
23000015 |
9 |
23000573 |
11,5 |
24000601 |
18 |
24000657 |
15,5 |
24000663 |
15 |
24000725 |
12 |
25003855 |
11,5 |
25004708 |
18 |
25004830 |
14 |
25005136 |
15 |
25005140 |
14 |
25005450 |
14 |
25005714 |
11,5 |
26000598 |
19 |
26000600 |
12 |
26000601 |
16,5 |
26000608 |
17,5 |
26000612 |
16,5 |
26000638 |
13,5 |
26000676 |
7 |
26000678 |
10,5 |
26000702 |
18,5 |
26000710 |
19 |
26000735 |
10 |
26000737 |
14,5 |
26000773 |
12 |
26000802 |
15,5 |
26000858 |
12,5 |
26005147 |
18,5 |
26005185 |
14,5 |
26005186 |
14,5 |
26005188 |
12 |
26005891 |
11,5 |
26005892 |
12,5 |
26005894 |
14,5 |
26005895 |
13 |
26005896 |
7,5 |
26005897 |
17,5 |
26005898 |
12 |
26005900 |
9,5 |
26005901 |
12 |
26005903 |
11,5 |
26005904 |
16 |
26005906 |
16,5 |
26005907 |
16 |
26005908 |
19,5 |
26005909 |
|
26005910 |
15 |
26005911 |
6 |
26005913 |
17 |
26005916 |
18,5 |
26005919 |
14 |
26005920 |
|
26005921 |
12,5 |
26005923 |
8 |
26005924 |
8 |
26005925 |
18,5 |
26005926 |
17,5 |
26005928 |
15 |
26005935 |
17 |
26005937 |
13 |
26005938 |
13,5 |
26005940 |
14,5 |
26005941 |
10 |
26005942 |
16,5 |
26005943 |
15,5 |
26005949 |
17,5 |
26005955 |
|
26005956 |
11 |
26005957 |
9 |
26005967 |
14 |
26005969 |
7,5 |
26005974 |
17 |
26005975 |
5,5 |
26005976 |
11 |
26005977 |
13 |
26005980 |
8,5 |
26005981 |
9,5 |
26005987 |
18 |
26005988 |
12 |
26005991 |
10 |
26005997 |
12,5 |
26006004 |
8,5 |
26006005 |
10 |
26006006 |
9,5 |
26006009 |
13,5 |
26006010 |
13,5 |
26006012 |
18 |
26006014 |
14,5 |
26006015 |
15,5 |
26006017 |
14,5 |
26006020 |
17,5 |
26006021 |
14 |
26006023 |
12 |
26006026 |
16,5 |
26006028 |
17 |
26006133 |
11,5 |
26006142 |
13,5 |
26006189 |
8 |
26006204 |
16 |
26006349 |
11 |
26006352 |
13,5 |
26006412 |
11 |
26006413 |
14 |
26006539 |
17,5 |
26006660 |
10 |
26006683 |
13,5 |
26006862 |
10 |
26007078 |
12,5 |