Skip to content

Object-oriented programming in Python

PDF icon Download in PDF


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

  1. Test your functions and classes with different test scenarios described and performed in a notebook
  2. Use a virtual environment and version control software (git)
  3. Document a function or class using docstrings
  4. Find and use the right function or class for your needs within a package
  5. Moving from a statement that shows classes and attributes to a UML class diagram
  6. Moving from a simple UML diagram (a single class) to the corresponding program, and vice versa
  7. Moving from a complex UML diagram (several classes, relationships, inheritance, abstraction) to the corresponding program, and vice versa
  8. 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%

Logo SDI Date of generation of this unit description: 14/01/2026 Logo SDI