Projet logiciel - 3MMPLC1

Informations générales

  • 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)

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.

Prérequis

  • 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 :

cf. l'emploi du temps 2026/2027

Informations complémentaires

Code de l'enseignement : 3MMPLC1
Langue(s) d'enseignement : FR

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.