---
title: "Cours"
description: "Cours"
---




#### Cours 0 : Introduction de l'UE

* [Télécharger les transparents du cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAPCD_CM0_OrganisationUE.pdf)
* [Visionner la vidéo du cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/videosCM.html#CM0)  


#### Cours 1 : Conception et gestion de projet

* [Télécharger les transparents du cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAPCD_CM1_ConceptionGestionProjet.pdf)
* [Visionner la vidéo du cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/videosCM.html#CM1)
* Méthodes de conception
* Cahier des charges
* Diagramme de Gantt  


#### Cours 2 : Programmation modulaire

* [Télécharger les transparents du cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAPCD_CM2_ProgrammationModulaire.pdf)
* [Visionner la vidéo du cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/videosCM.html#CM2)
* Diagramme des classes (UML)
* Règle d'intégrité
* Règles de programmation  


#### Cours 3 : Outils pour la programmation

* [Télécharger les transparents du cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/LIFAPCD_CM3_OutilsProgrammation.pdf)
* [Visionner la vidéo du cours](http://liris.cnrs.fr/~npronost/UCBL/LIFAP4/videosCM.html#CM3)
* Compilation de fichier (GCC)
* Compilation de projet (Makefile)
* Débogage (gdb)  


#### Cours 4 : Gestion du code

* [Télécharger les transparents du cours](doc/LIFAPCD_C4_GestionCode.pdf)
* Règles d'écriture de code en C/C++
* Gestionnaire de code (Git)
* Doxygen
* [Des règles de bonnes pratiques de la programmation](http://perso.univ-lyon1.fr/thierry.excoffier/COURS/COURS/TRANS_COMP_IMAGE/prog.html)  


#### Cours 5 : Notions de programmation C++ "avancée"

* [Télécharger les transparents du cours](doc/LIFAPCD_C5_BibliothequeIntroPOO.pdf)
* Test de régression
* Valgrind : debug mémoire + profiler
* Arguments de main
* Introduction aux operator et aux template en C++
* Introduction à la STL : string, vector, list, etc.
* Notion de POO/héritage pour pouvoir introduire les frameworks gérant une interface (Qt)  

#### Cours 6 : Interface Graphique (Graphical User Interface)

* [Télécharger les transparents du cours](doc/LIFAPCD_C6_GUI.pdf)
* Une interface, qu'est-*ce que cela change ?
* Notion de callback/pointeurs de fonctions
* Principe d'organisation du code (introduction rapide à la notion de MVC)
* Interface en mode texte (un menu)
* Avec SDL2 + 2 mots sur SFML
* Avec "Dear ImGui"
* Avec un framework plus conséquent : Qt  


## Évaluation (les différentes notes)

* Un contrôle mi-parcours de 1h30 (40%) avant la phase de réalisation du projet
  * [Sujet 2018](doc/examens/2018_LIFAP4_CC_conception.pdf) /  [Sujet QCM 2018](doc/examens/2018_LIFAP4_CC_QCM.pdf)
  * [Sujet 2019](doc/examens/2019_LIFAP4_CC_conception.pdf) /  [Sujet QCM 2019](doc/examens/2019_LIFAP4_CC_QCM.pdf)
  * [Sujet 2020](doc/examens/2020_LIFAP4_CC_conception.pdf) /  [Sujet QCM 2020](doc/examens/2020_LIFAP4_CC_QCM.pdf)
* Évaluation du module "Image" (TDs outils) (10%) 
* Projet (50%) :
  * Cahier des charges (2%)
  * Démo mi-*projet (3%), 
  * 3 notes finales "Technique", "Conception" et "Organisation" (3×15%). Regardez dans la [section Projet](../projet/) pour le détail des notes.