Skip to content
Snippets Groups Projects
jupytext:
  text_representation:
    extension: .md
    format_name: myst
    format_version: 0.13
kernelspec:
  display_name: C++17
  language: C++17
  name: xcpp17
rise:
  auto_select: first
  autolaunch: false
  centered: false
  controls: false
  enable_chalkboard: true
  height: 100%
  margin: 0
  maxScale: 1
  minScale: 1
  scroll: true
  slideNumber: true
  start_slideshow_at: selected
  transition: none
  width: 90%

+++ {"slideshow": {"slide_type": "slide"}}

Conclusion

+++ {"slideshow": {"slide_type": "fragment"}}

Résumé de la séance

:::{admonition} Programmes et compilation

  • Algorithme, programme, sources, binaire, assembleur
  • Interpréteur, compilateur
  • Cycle de vie d'un programme :::

+++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Compilation séparée pour la modularité

  • Découper un programme non seulement en fonctions, mais en fichiers
  • Définir des bibliothèque de fonctions réutilisables entre programmes :
    • fichier d'entêtes : max.hpp
    • fichier source : max.cpp
    • fichier de tests : maxTest.cpp :::

+++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Digressions

  • Surcharge : un nom, plusieurs fonctions
  • Templates : une fonction, plusieurs types
  • Espaces de noms : pour éviter les conflits de noms :::

+++ {"slideshow": {"slide_type": "slide"}}

Résumé des bonnes pratiques vues ce semestre (méthodologie de développement)

+++ {"slideshow": {"slide_type": "fragment"}}

:::{hint} Bonne pratique : développement incrémental

  • Toujours être «proche de quelque chose qui marche»
  • Gestion de version (git, mercurial, ...) :::

+++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Bonnes pratiques : spécifications et tests

  • Spécification : définir précisément la sémantique des fonctions :
    qu'est-ce qu'elles doivent faire?
  • Test : vérifier que la sémantique est respectée sur des exemples
  • Analogie Programmer:left_right_arrow:Démontrer : Documentation:left_right_arrow:Énoncé, Test:left_right_arrow:Exemple, Code:left_right_arrow:Démonstration

+++ {"slideshow": {"slide_type": "fragment"}}

:::{hint} Bonne pratique : modularité

  • Découpage d'un programme en fonctions : cours 4
  • Découpage d'un programme en modules : aujourd'hui !
  • Découpage d'un programme en espaces de noms : plus tard :::

+++ {"slideshow": {"slide_type": "slide"}}

Conclusion : qu'avons nous vu ce semestre?

+++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Les bases de la programmation

  • Contrôle du flot d'exécution : instructions conditionnelles et itératives, fonctions
  • Gestion des données : variables, tableaux, collections, entrées et sorties, fichiers :::

+++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Méthodologie de développement

  • Développement incrémental
  • Spécifications et tests
  • Modularité :::

+++ {"slideshow": {"slide_type": "fragment"}}

:::{admonition} Une esquisse de quelques thèmes de l'informatique

  • Programmation modulaire (S2)
  • Algorithmes et structures de données, complexité (S2)
  • Science des données (S2)
  • Web, graphisme, architecture, réseau, ... :::

+++ {"slideshow": {"slide_type": "fragment"}}

Ce n'est que le début de l'aventure !