--- 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↔Démontrer : Documentation↔Énoncé, Test↔Exemple, Code↔Démonstration +++ {"slideshow": {"slide_type": "fragment"}} :::{hint} Bonne pratique : modularité - Découpage d'un programme en fonctions : [**cours 4**](../Semaine4/cours.md) - 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"}} <div class="alert alert-success"> **Ce n'est que le début de l'aventure !** </div>