Volumes horaires
- CM 2.0
- Projet 84.0
- TD -
- Stage -
- TP -
- DS -
Crédits ECTS
Cré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)
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 (AP2 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
Evaluation : Projet (rendu du code et des résultats) + soutenance
SESSION NORMALE :
Des soutenances ont lieu à la fin de la partie "projet". Ces soutenances portent sur le projet effectué en trinôme, en fin de semestre. Elles sont organisées directement par les membres de l'équipe pédagogique, sur les créneaux et salles du projet (pas besoin d'organisation particulière).
La note de session normale correspond à la note de la soutenance.
SESSION DE RATTRAPAGE :
pas de rattrapage
Le cours est programmé dans ces filières :
- Cursus ingénieur - Tronc Commun - Semestre 6
Code de l'enseignement : 3MMPLC1
Langue(s) d'enseignement :
Vous pouvez retrouver ce cours dans la liste de tous les cours.
B. Cassagne : Introduction au langage C, polycopié ENSIMAG.