Informations générales
Volumes horaires
- CM 2.0
- Projet 84.0
- TD -
- Stage -
- TP -
- DS -
Crédits ECTSCrédits ECTS
4.0
Objectif(s)
- Approfondir les connaissances dans un langage de programmation proche de la machine (langage C)
- Répondre à des spécifications
- Réaliser un projet logiciel important à temps plein en équipe
- Découvrir des outils et les bonnes pratiques pour le travail collaboratif (planning, distribution des tâches, gestion des priorités)
Responsable(s)
Julie DUMAS
Contenu(s)
Le projet se décline en deux sujets proposés aux étudiants qui travaillent en trinôme. Quelque que soit le projet traité par les étudiants les objectifs du cours sont les suivants :
- Approfondir les connaissances dans un langage de programmation proche de la machine (langage C)
- Répondre à des spécifications
- Réaliser un projet logiciel important à temps plein en équipe
- Découvrir des outils et les bonnes pratiques pour le travail collaboratif (planning, distribution des tâches, gestion des priorités)
Les deux thématiques de projet sont le développement d'une interface graphique (sujet IG) et le développement d'un encodeur ou décodeur JPEG (sujet JPEG). Pour chacun des deux sujets, nous proposons deux déclinaisons permettant une alternance en fonction des années paires ou impaires.
Les projets proposés sont les suivants :
- Interface graphique : développement d'une bibliothèque de programmation des interfaces utilisateur graphiques
- Dessin optimisé de primitives graphiques (lignes, polygones pleins, clipping)
- Classes d'interacteur : mécanismes de polymorphisme pour les structures et fonctions
- Calculs de géométrie à partir de contraintes
- Programmation par événements, routage d'évènements, picking
- JPEG : développement d'un encodeur ou d'un décodeur respectant la norme JPEG
- Respect de la norme
- Algorithme de traitement du signal
- Lecture bit-à-bit dans un fichier
- Gestion des arguments de la ligne de commande
- Analyse des performances : temps d'exécution et empreinte mémoire.
- Base de la programmation impérative (AP1)
- Base du langage C (AP1 et ILM) :
- savoir compiler et exécuter un programme C composé de plusieurs modules
- savoir utiliser une bibliothèque
- pointeurs
- connaître les différents outils de debug (options du compilateur, gdb, valgrind)
- Utilisation de git
- Utilisation du terminal (Système libre)
Contrôle des connaissances
Evaluation : Projet (rendu du code et des résultats) + soutenance (45 min)
SESSION NORMALE :
Le projet est évalué avec le rendu code, une soutenance, un suivi et un test technique.
Le projet est réalisé en groupe, le test technique peut avoir lieu en groupe ou individuellement.
SESSION DE RATTRAPAGE :
pas de rattrapage
Calendrier
Le cours est programmé dans ces filières :
- Cursus ingénieur - Tronc Commun - Semestre 6
Informations complémentaires
Code de l'enseignement : 3MMPLC1
Langue(s) d'enseignement : 
Le cours est rattaché aux structures d'enseignement suivantes :
- Equipe Programmation-logiciel
Vous pouvez retrouver ce cours dans la liste de tous les cours.
Bibliographie
B. Cassagne : Introduction au langage C, polycopié ENSIMAG.