Rendu final et bonus

ReCHor – étape 12

1. Introduction

Le rendu final du projet, qui concerne les étapes 1 à 11 uniquement, peut se faire à deux moments :

  1. soit de manière anticipée, avant le vendredi 23 mai à 18h00, pour les groupes qui désirent tenter d'obtenir un bonus,
  2. soit de manière normale, avant le vendredi 30 mai à 18h00, pour les autres groupes.

Le rendu final ne doit pas contenir de code lié à l'éventuel bonus, afin de ne pas compliquer inutilement l'évaluation des projets. Nous nous réservons le droit de supprimer des points aux groupes ne respectant pas cette règle.

Le rendu final se fait comme d'habitude au moyen du programme Submit fourni avec le squelette. Les groupes ayant ajouté d'autres classes à leur projet que celles mentionnées dans les énoncés des étapes 1 à 11 doivent mettre les chemins d'accès aux fichiers les contenant dans la liste ADDITIONAL_FILES définie au sommet du programme. Ces chemins doivent être exprimés à partir de la racine du projet, p.ex. src/ch/epfl/MyClass.java pour le fichier contenant la classe MyClass du paquetage ch.epfl.

2. Bonus

Les groupes désirant tenter d'obtenir un bonus doivent faire en sorte que leur dernier rendu anticipé accepté par notre serveur contienne le fichier Bonus.java dans le dossier src/ch/epfl. Ce fichier ne contient aucun code intéressant mais signale l'intention du groupe de tenter d'obtenir un bonus.

Attention : ces groupes n'auront plus la possibilité d'effectuer de rendu final de leur projet entre le 23 mai et le 30 mai, même s'ils trouvent un problème dans leur projet et décident de renoncer à leur bonus.

Durant la dernière semaine du semestre, ces groupes recevront de nouveaux jetons leur donnant la possibilité d'effectuer un rendu bonus comme décrit plus bas.

2.1. Travail à réaliser

L'obtention d'un bonus implique l'ajout d'une ou plusieurs améliorations non triviales au programme. Le choix de ces améliorations est libre mais la liste suivante donne quelques idées :

  • améliorer les performances de la recherche des voyages optimaux, en optimisant le code de manière significative,
  • calculer les voyages optimaux de manière paresseuse, en s'arrêtant à l'heure de voyage choisie et en ne calculant les voyages précédents que lorsque l'utilisateur désire les voir,
  • calculer les voyages optimaux dans un fil d'exécution (thread) différent du fil JavaFX principal, afin de ne pas bloquer l'interface utilisateur durant cette recherche,
  • améliorer l'interface graphique, p. ex. en représentant les voyages et leurs changements de différentes manières, en s'inspirant éventuellement de sites comme horaire.search.ch, bahn.com, etc.
  • afficher la carte du trajet directement dans l'interface de ReCHor plutôt qu'en utilisant un site Web externe,
  • etc.

Notez que ce ne sont là que des suggestions d'améliorations, et que le simple ajout de l'une ou l'autre d'entre elles ne garantit pas l'obtention d'un bonus.

Ces améliorations doivent se faire sans utilisation de bibliothèques autres que la bibliothèque standard Java et JavaFX.

En plus du code mettant en œuvre l'amélioration, un rapport la décrivant doit être rendu. Ce rapport, au format PDF et d'une longueur comprise entre 400 et 800 mots, décrit d'une part l'amélioration elle-même du point de vue de l'utilisateur et d'autre part sa mise en œuvre en Java.

2.2. Procédure de rendu

Le rendu du bonus se fera au travers d'une page Web dédiée, qui sera référencée ici-même durant la dernière semaine du semestre. Ce rendu devra être effectué avant le 30 mai à 18h00.

2.3. Adaptation des points

Les rendus bonus sont évalués et se voient attribués l'une des trois évaluations suivantes :

Inexistant / Insuffisant
Attribué aux groupes n'ayant pas fait de rendu bonus ou dont le travail est jugé indigne d'un bonus.
Bon
Attribué aux groupes ayant fait un rendu bonus et dont le résultat est jugé bon (mais sans plus).
Excellent
Attribué aux groupes ayant fait un rendu bonus et dont le résultat est jugé excellent.

En fonction de ce bonus, le nombre de points de la seconde partie du projet est ajusté au moyen de la formule suivante : \[ p_2^\prime = m_2\left(\frac{p_2}{m_2}\right)^{1/b} \] où \(p_2\) et \(p_2^\prime\) sont le nombre de points obtenus pour le rendu final avant et après ajustement, \(m_2\) est le nombre de points maximum du rendu final et \(b\) est le facteur lié au bonus, valant 1 pour Inexistant, 1.4 pour Bon et 1.8 pour Excellent. La figure ci-dessous montre les courbes d'adaptation en supposant que \(m_2\) vaut 1. La courbe bleue correspond à la valeur 1, la verte à 1.4 et la rouge à 1.8.

bonus;16.png
Figure 1 : Courbes d'adaptation des points en fonction du bonus obtenu