Projet#

Instructions et recommandations#

Le projet conclut l’UE Programmation Impérative. L’objectif pédagogique est de mettre en œuvre et combiner entre elles les notions vues tout au long du semestre, afin de renforcer leur apprentissage et de réaliser l’étendue de ce que vous êtes en mesure d’accomplir avec elles.

Le projet est à réaliser en C++, avec les notions, idiomes, bonne pratiques et bibliothèques (par ex SDL) présentées en cours, TD, TP ou dans le sujet du projet. Toute réutilisation de code préalablement existant sortant de ce cadre doit être motivée et soumise à autorisation préalable de votre chargé de TP. À terme, l’objectif sera d’apprendre à réutiliser un maximum de code existant, mais pour un premier projet, il est important de tout réimplanter depuis la base.

Il est très fortement recommandé de travailler en binôme (mais pas de trinômes!). Autant que possible, votre binôme devrai être choisi avant la première séance de TP consacrée au projet, en Semaine 9. Il est beaucoup plus pratique (travail commun entre TP, soutenances) que votre binôme soit dans le même groupe de TP; si vous souhaitez quand-même un binôme d’un autre groupe, demandez au préalable l’autorisation de vos deux enseignants.

Il est prévu que vous y consacriez chacun une vingtaine d’heures de travail intense, dont six en TP et le reste en autonomie. Votre travail sera évalué lors de la dernière séance de TD/TP (semaine du 11 au 15 décembre) sous la forme d’une soutenance orale avec votre binôme, composée de quatre minutes de présentation de votre réalisation, suivie de quelques minutes de questions individuelles. Vous devrez démontrer, durant la présentation orale, de votre maîtrise de l’ensemble du projet. Il vous sera aussi demandé de rendre un rapport. Voir ci-dessous pour les détails.

Les séances en TP seront les seuls moments où vous pourrez vous faire aider efficacement par votre chargé de TP. Il est donc indispensable d’avoir commencé à travailler sur le projet en amont, et d’avancer au maximum entre les séances.

L’examen aura lieu quelques jours après la soutenance du projet. Faire sérieusement votre projet vous permettra à la fois de faire une bonne soutenance de projet et de réviser pour l’examen.

Entraide, réutilisation et plagiat#

Il est recommandé de s’entraider entre binômes, en particulier pour discuter de la conception, ou si vous bloquez sur un bogue. En revanche, si vous copiez une fonction d’un autre binôme, cela devra être mentionné dans le rapport ET dans le code. La fonction ne sera alors pas comptabilisée dans la note.

Nous utilisons des outils de détection de plagiat. Les plagiats détectés seront sanctionnés d’un zéro à la note de projet et seront signalés auprès de la direction des études.

Sujets 2023-2024#

Vous avez le choix entre deux projets. Le premier porte sur le traitement automatique d’image . Il est très cadré, avec des squelettes de fichiers fournis qui incluent de la documentation et des tests. Le deuxième projet est beaucoup plus ouvert. Au final, la difficulté est similaire. Le choix n’a pas d’influence sur la notation.

Les sujets seront annoncés lors du premier amphi après les vacances :

Comment démarrer#

Attention

05/11/2023: les sujets ne seront disponibles au téléchargement que dans quelques jours.

Téléchargez comme pour les TP les fichiers du projet. Pour cela, vous pouvez utiliser le tableau de bord, ou bien la ligne de commande :

cd ~/ProgImperative
info-111 fetch Projet-Image

ou:

cd ~/ProgImperative
info-111 fetch Projet-Jarnac

(presque vide dans ce deuxième cas).

Suivez ensuite les instructions dans le document index.md.

Note: nous ferons probablement quelques retouches cosmétiques aux sujets en fonction de vos retours; n’hésitez pas à télécharger régulièrement la dernière version, ou à consulter les sujets sur la page web.

Recommandations#

Testez bien vos programmes au fur et à mesure que vous les écrivez.

Afin d’éviter de perdre votre travail en cas de fausse manipulation, déposez le très régulièrement sur GitLab avec le tableau de bord ou via les commandes usuelles:

cd ~/ProgImperative
info-111 submit Projet-Image

ou:

cd ~/ProgImperative
info-111 submit Projet-MixMoEnDuplicata

Note

Comme d’habitude, lors du premier dépôt, vous devrez indiquer en complément le nom de votre groupe de TD.

L’ensemble des fichiers devra être déposé sur GitLab avant la soutenance.

Travailler en binôme#

Rapport de projet#

Vous devez, avant la soutenance, rédiger en commun avec votre binôme un mini-rapport sur votre projet. Un squelette à compléter et les instructions vous sont fournies dans le fichier rapport.md que vous trouverez dans le dossier téléchargé pour le projet. Vous pouvez aussi consulter ces squelettes ici :

Chaque fois que vous déposerez votre travail sur GitLab (avec submit), le rapport sera déposé avec; vous n’avez donc pas besoin de le soumettre séparément.

Soutenances#

Les soutenances de projet ont lieu la semaine du 11 au 15 décembre. Comme vous êtes nombreux, elles s’étalent typiquement sur quatre heures; parfois un peu plus. Les créneaux et salles de soutenance sont indiqués sur vos emplois du temps.

Les heures de convocations vous seront communiquées ultérieurement.

Déroulement#

L’enseignant vient voir les binômes à tour de rôle pour qu’ils présentent leur travail sur leur poste de travail ou ordinateur personnel. Sauf instruction spécifique de votre enseignant, venez en salle informatique à l’heure où vous êtes convoqué ou plus tôt. Installez vous avec votre binôme et préparez votre démonstration pour qu’elle soit prête à lancer (rapport et programmes ouverts, terminal avec commandes de compilation et de lancement préécrites, etc).

Contenu#

La présentation orale durera quatre minutes et devra inclure:

  • Une description précise des fonctionnalités implantées;

  • Une mini démonstration d’une sélection judicieuse de ces fonctionnalités;

  • Quelques éléments pour étayer la robustesse de l’implantation (jeux de tests utilisés, …);

  • Les difficultés rencontrées;

  • Une discussion sur quelques extraits de code bien choisis.

Cette présentation pourra typiquement s’appuyer sur le rapport.

Elle sera suivi d’une séance de questions. Les deux membres du binôme devront participer à part égale à la présentation, ainsi qu’aux questions réponses.

Il faut bien préparer les quatre minutes de présentation pour être efficace et donner les meilleures informations possibles durant ce temps limité. Il est notamment essentiel d’avoir répété plusieurs fois. Il est inutile de redonner des informations qui se trouvent déjà dans le sujet du projet.

Vous aurez au préalable déposé votre projet (code + rapport) sur GitLab (comme d’habitude, par exemple avec info-111 submit). C’est sur cette version que vous serez évalués.