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 :
- soit de manière anticipée, avant le vendredi 23 mai à 18h00, pour les groupes qui désirent tenter d'obtenir un bonus,
- 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.
