Programmation objet en Python
- Responsable de l'UE : Louis Annabi Occelli (annabi@isir.upmc.fr)
- Code UE : UM4RBT10-Python
- Volumes horaires / étu : 8 h Cours, 6 h TD, 14 h TP
- Nombre de crédits de l'UE/EC : 3 ECTS
- Parcours-type : ROBOT SI MeDH
- Semestre où l'enseignement est proposé : S1 S2 S3 S4
- Langue d'enseignement : Français Anglais
- Public concerné : Département SDI Autre (préciser) :
- Localisation : Campus PMC Autre (préciser) :
Thématique
Cette UE vise à former les étudiants et étudiantes à la programmation orientée objet, en se basant sur le langage Python. Après des rappels sur la syntaxe Python, l'enseignement se concentre sur la présentation et la pratique des concepts de POO (classes, objets, encapsulation, relations, héritage, abstraction).
Mots-clés : Programmation orientée objet, Python, classes, objets, encapsulation, relations, héritage, abstraction
Prérequis
Afin de suivre cette UE, doivent être acquis précédemment :
- Ecrire un programme utilisant des variables, opérateurs, structures de contrôles (if/else) et boucles (for/while)
- Ecrire un programme définissant et manipulant des listes et des fonctions
- Appeler une fonction d'un package existant à partir d'une documentation fournie
- Préparer un environnement de travail pour la programmation (interpréteur, IDE, lancer un script)
Acquis d'apprentissage visés (AAV)
À l'issue de cette UE, les étudiantes ou étudiants seront capables de :
- Tester ses fonctions et classes avec différents scénarios de tests décrits et effectués dans un notebook
- Utiliser un environnement virtuel et un logiciel de gestion de version (git)
- Documenter une fonction ou une classe en utilisant des docstrings
- Trouver et utiliser la fonction ou la classe adaptée à son besoin au sein d'un package
- Passer d'un énoncé faisant apparaître des classes et des attributs à un diagramme de classes UML
- Passer d'un diagramme UML simple (une seule classe) au programme correspondant, et inversement
- Passer d'un diagramme UML complexe (plusieurs classes, relations, héritage, abstraction) au programme correspondant, et inversement
- Passer d'un code "non-objet" à un code "objet" en regroupant données et traitements
Séquencement et modalités de l'enseignement (indicatif)
| Semaine | C/TD/TP | Contenu | Préparation | AAV associé(s) |
|---|---|---|---|---|
| S3 | C1/TD1/TP1 | Classes et objets | AAV4, AAV5, AAV6, AAV8 | |
| S4 | C2/TP2 | Environnement de travail (git, venv) Tests et documentation | AAV1, AAV2, AAV3 | |
| S5 | TP3 ER | TP noté portant sur le cours C1 et les fondamentaux de Python | AAV3, AAV5, AAV6, AAV8 | |
| S6 | C3/TD2/TP4 | Encapsulation et méthodes magiques | AAV5, AAV6, AAV8 | |
| S7 | C4/TD3/TP5 | Relation entre les classes Héritage et abstraction | AAV3, AAV4, AAV5, AAV6, AAV7, AAV8 | |
| S8 | TP6 | Lancement du projet | AAV1, AAV2, AAV3, AAV4, AAV5, AAV6, AAV7, AAV8 | |
| S13 | TP6 | TP de soutenance de projet | AAV1, AAV2, AAV3, AAV4, AAV5, AAV6, AAV7, AAV8 |
Déroulement de l'UE
L’UE se déroule en 2 séquences successives :
-
Séquence 1 : mise en place de bonnes pratiques (environnement, tests, doc) et bases de la POO
-
Séquence 2 : notions plus avancées de POO (encapsulation, relations, héritage et abstraction)
Modalités d'évaluation des acquis d'apprentissage (1ère session)
| Semaine | Indiv/collectif | Présentiel/distanciel | Type d'examen | AAV évalué(s) | Barème % |
|---|---|---|---|---|---|
| S5 | Individuel | Présentiel | TP | 3, 5, 6, 8 | 20% |
| S13 | Individuel | Présentiel | Autre | 1, 2, 3, 4, 5, 6, 7, 8 | 40% |
| S15 | Individuel | Présentiel | Écrit | 3, 5, 6, 7, 8 | 40% |
2nde session
| Session | Indiv/collectif | Présentiel/distanciel | Type d'examen | AAV évalué(s) | Barème % |
|---|---|---|---|---|---|
| 2 | Individuel | Présentiel | Écrit | 3, 5, 6, 7, 8 | 40% |
| 1 | Individuel | Présentiel | TP | 3, 5, 6, 8 | 20% |
| 1 | Individuel | Présentiel | Autre | 1, 2, 3, 4, 5, 6, 7, 8 | 40% |

