C++

C++ programming

Description: The purpose of this course is to cover the main concepts of programming in C++ (C++20 and later). We will introduce the advantages of strong typing, the object-oriented approach (encapsulation and inheritance, operator overloading, etc.), generic programming (templates, concepts), and the functional approach (function manipulation and lambda functions). All of this will be illustrated using the STL (iterators, ranges) during practical work.

Learning outcomes: By the end of this course, students will have acquired more advanced skills in C++, based on object-oriented programming, functional programming, and generic programming, with the various features offered by the latest versions of the language (ranges, concepts, etc.).

Evaluation methods: 3-hour individual computer test, can be retaken.

Evaluated skills:

  • Development
  • Modelling
  • Certification

Course supervisor:

  • Hervé Frezza-Buet
  • Frédéric Pennerath

Geode ID: SPM-INF-007

External resources:


CM:

  1. Types et mémoire (1.5 h)
  2. Syntaxe (1.5 h)
  3. Goodies (1.5 h)
  4. Heritage (1.5 h)
  5. Fonctions (1.5 h)
  6. Exceptions (1.5 h)
  7. Templates 1/4 (1.5 h)
  8. Templates 2/4 (1.5 h)
  9. Templates 3/4 (1.5 h)
  10. Templates 4/4 (1.5 h)

TP:

  1. Heritage (4.0 h)
  2. Fonctions (4.0 h)
  3. Finalisation (4.0 h)
  4. Templates 1/3 (4.0 h)
  5. Templates 2/3 (4.0 h)
  6. Templates 3/3 (4.0 h)