Année: 2021-2022
Projet
Objectifs
L'objectif de projet est de comprendre les différents aspects de programmation en C. Suite à l'accomplissement du projet, vous serez captable de
- créer, compiler et exécuter un projet C
- comprendre la chaine de compilation en utilisant GCC (GNU compilation chain) : prétraitement jusqu’à l’exécution
- travailler avec les bibliothèques standards et les appels de système d’exploitation (fichiers, les sockets réseau etc.)
- comprendre les pointeurs et manipuler les buffers en utilisant les pointeurs
- travailler avec les différents formats de données comme BMP et les structures de données
- utilisation des structures de données et des algorithmes
- créer un simple programme client-serveur pour le transfert de fichiers et messages
- exécuter les applications existantes sur la machine (e.g. GNU plot)
- documenter et tester une application
Instructions
- Travaillez en binôme.
- Il est obligatoire de citer tous les sources (e.g. internet, groupes)
- Les séances sont encadrées par 1-2 enseignants.
- Ne pas utilisez des bibliothèques externes.
Environnement de programmation:
- Système d'exploitation: Linux
- Ubuntu
- Machine virtuelle (VirtualBox) + Ubuntu
- Compilateur: gcc
- Logiciels: gnuplot
- Installation:
sudo apt install gnuplot
- Installation:
Évaluation
- Le projet correspond à 40% de votre note finale
- Total points: 20
- Rendu en ligne.
Rendus
- Il y a deux parties de rendu: rapport d’auto-évaluation et les sources
- Votre dossier de rendu doit contenir les fichiers suivants:
- README: rapport d’auto-évaluation
- INSTALL: Description de la compilation et l’exécution de votre application
- Makefile
- CONTRIBUTORS: Noms et prénoms de contributeurs
- src/ : les sources
- Votre rendu doit renommer comme groupe_N1_N2, où N1 et N2 sont les noms (e.g., groupe_DUPONT_SMITH.).
- Ecrivez README, INSTALL et CONTRIBUTORS en format markdown.
- Le contenu de README rapport d’auto-évaluation :
- Objectif: Quel est l’objectif de votre projet?
- Fichiers: Noms de fichiers
- Bibliothèques: les bibliothèques standards
- Références: les URLs, les numéros de groupes
- Difficulté: niveau de difficulté (facile, moyenne, difficile)
- Commentaires (optionnels): remarques etc.