Programmation objet en Python
- Responsable de l'UE : Louis Annabi (annabi@isir.upmc.fr)
- Code UE : UM4RBT10-Python
- Volumes horaires / étu : 8 h Cours, 6 h TD, 12 h TP
- Nombre de crédits de l'UE/EC : 3 ECTS
- Parcours-type :
- 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) |
|---|---|---|---|---|
| S5 | C1 | Environnement de travail (git, venv). Tests et documentation | AAV1, AAV2, AAV3 | |
| S6 | TP1 | TP portant sur le cours C1 + rappels de python | Réviser les fondamentaux de python (des ressources seront mises à disposition) | AAV1, AAV2, AAV3 |
| S7 | C2 | Classes et objets. Méthodes sur les list, str, tuple, dict | AAV5, AAV6, AAV8 | |
| S8 | TD1 + TP2 | TD et TP portant sur le cours C2 | AAV3, AAV5, AAV6, AAV8 | |
| S9 | C3 + TP3 | Encapsulation, méthodes magiques, UML. TP noté portant sur les cours C1 et C2 | AAV3, AAV5, AAV6, AAV8 | |
| S10 | TD2 + TP4 | TD et TP portant sur le cours C3 | AAV3, AAV5, AAV6, AAV8 | |
| S11 | C4 | Relation entre classes. Héritage et abstraction | AAV5, AAV6, AAV7, AAV8 | |
| S12 | TD3 + TP5 | TD et TP portant sur le cours C4 + utilisation de package (numpy, matplotlib) | AAV3, AAV4, AAV5, AAV6, AAV7, AAV8 | |
| S14 | 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 (C1/2 + TD1 + TP1/2 + TP3 noté)
-
Séquence 2 : notions plus avancées de POO (encapsulation, relations, héritage et abstraction) (C3/4 + TD2/3 + TP 4/5 + TP6 soutenance)
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 % |
|---|---|---|---|---|---|
| S9 | Individuel | Présentiel | TP | 3, 5, 6, 8 | 20% |
| S14 | Individuel | Présentiel | Autre | 1, 2, 3, 4, 5, 6, 7, 8 | 40% |
| S15 | Individuel | Présentiel | Écrit | 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 | 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% |

