Object-oriented programming in Python
- Lecturer: Louis Annabi (annabi@isir.upmc.fr)
- Course code: UM4RBT10-Python
- Student workload: 8h of lectures, 6h of tutorials, 12h of labs
- Credits: 3 ECTS
- Specialization tracks:
- Semester offered: S1 S2 S3 S4
- Language of instruction: French English
- Targeted audience: Eng. Sc. department Other :
- Localization : PMC Campus Other :
Course Overview
This course aims to train students in object-oriented programming, based on the Python language. After reminders on Python syntax, the teaching focuses on the presentation and practice of OOP concepts (classes, objects, encapsulation, relationships, inheritance, abstraction).
Mots-clés : Object-oriented programming, Python, classes, objects, encapsulation, relationships, inheritance, abstraction
Prerequisites
Students should have previously acquired the following prerequisites to follow this course:
- Write a program using variables, operators, control structures (if/else) and loops (for/while)
- Write a program that defines and manipulates lists and functions
- Call a function in an existing package from provided documentation
- Prepare a working environment for programming (interpreter, IDE, launch a script)
Intended Learning Outcomes
By the end of this course, students will be able to:
- Test your functions and classes with different test scenarios described and performed in a notebook
- Use a virtual environment and version control software (git)
- Document a function or class using docstrings
- Find and use the right function or class for your needs within a package
- Moving from a statement that shows classes and attributes to a UML class diagram
- Moving from a simple UML diagram (a single class) to the corresponding program, and vice versa
- Moving from a complex UML diagram (several classes, relationships, inheritance, abstraction) to the corresponding program, and vice versa
- Moving from a "non-object" code to an "object" code by grouping data and processing
Indicative Teaching Sequence and Methods
| Week | C/TD/TP* | Content | Preparation | Learn.\ outc. |
|---|---|---|---|---|
| S5 | C1 | Work environment (git, venv). Testing and Documentation | AAV1, AAV2, AAV3 | |
| S6 | TP1 | Practical work on the C1 course + python reminders | Review the fundamentals of python (resources will be made available) | AAV1, AAV2, AAV3 |
| S7 | C2 | Classes and Items. List and str methods | AAV5, AAV6, AAV8 | |
| S8 | TD1 + TP2 | Tutorials and practical work on the C2 course | AAV3, AAV5, AAV6, AAV8 | |
| S9 | C3 + TP3 | Encapsulation and magic methods. Graded practical work for courses C1/C2 | AAV3, AAV5, AAV6, AAV8 | |
| S10 | TD2 + TP4 | Tutorials and practical work on the C3 course | AAV3, AAV5, AAV6, AAV8 | |
| S11 | C4 | Relationship between classes. Inheritance and abstraction | AAV5, AAV6, AAV7, AAV8 | |
| S12 | TD3 + TP5 | Tutorials and practical work on the C4 course + use of scientific packages (numpy, matplotlib) | AAV3, AAV4, AAV5, AAV6, AAV7, AAV8 | |
| S14 | TP6 | Project defense lab | AAV1, AAV2, AAV3, AAV4, AAV5, AAV6, AAV7, AAV8 |
- C/TD/TP respectively corresponds to lectures, tutorials and lab sessions.
Sequence of the unit
The UE takes place in 2 successive sequences:
-
Sequence 1: implementation of good practices (environment, tests, doc) and basics of OOP (C1/2 + TD1 + TP1/2 + TP3 graded)
-
Sequence 2: more advanced notions of OOP (encapsulation, relationships, inheritance and abstraction) (C3/4 + TD2/3 + TP 4/5 + TP6 defense)
Indicative Assessment of Intended Learning Outcomes (1st session)
| Week | Individ./group | In-person/remote | Type of exam | Evaluated outcomes | Scale % |
|---|---|---|---|---|---|
| S9 | Individual | In-person | Practical | 3, 5, 6, 8 | 20% |
| S14 | Individual | In-person | Other | 1, 2, 3, 4, 5, 6, 7, 8 | 40% |
| S15 | Individual | In-person | Written | 5, 6, 7, 8 | 40% |
2nde session
| Session | Individ./group | In-person/remote | Type of exam | Evaluated outcomes | Scale % |
|---|---|---|---|---|---|
| 2 | Individual | In-person | Written | 5, 6, 7, 8 | 40% |
| 1 | Individual | In-person | Practical | 3, 5, 6, 8 | 20% |
| 1 | Individual | In-person | Other | 1, 2, 3, 4, 5, 6, 7, 8 | 40% |

