Flame Maker – Etape 10 – Etape libre (bonus)

Introduction

Le but de cette dernière étape est de permettre aux groupes ayant terminé la totalité des étapes précédentes d'essayer d'obtenir un bonus en améliorant librement leur programme.

Travail à réaliser

L'obtention d'un bonus implique l'ajout d'une amélioration non triviale au programme Flame Maker. Le choix de cette amélioration est libre mais la liste suivante donne quelques exemples classés par ordre croissant de difficulté :

  • Ajouter la possibilité de changer le cadre de dessin de la fractale de manière interactive, en permettant le zoom et le déplacement du centre du cadre.
  • Ajouter le calcul incrémental de la fractale, c-à-d la possibilité de calculer et d'afficher la fractale petit-à-petit plutôt qu'en une fois comme actuellement. L'idée est d'utiliser des minuteurs (timers) Swing pour périodiquement calculer un petit nombre de points supplémentaires et de redessiner ensuite la fractale. Si le nombre de points est choisi judicieusement, cela permet de ne jamais bloquer trop longtemps l'interface utilisateur et offre une alternative intéressante et plus simple au calcul concurrent de la fractale décrit ci-dessous.
  • Ajouter le calcul concurrent de la fractale, en utilisant les structures de données concurrentes de Java (du paquetage java.util.concurrent) pour représenter, entre autres, l'accumulateur. Attention, cette amélioration est très difficile à mettre en œuvre correctement et réservée aux personnes ayant déjà de bonnes connaissances de programmation concurrente.

En plus du code mettant en œuvre l'amélioration, un petit rapport la décrivant doit également être rendu. Ce rapport, 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.

Adaptation des points

Le résultat de cette étape sera jugé lors du rendu final et recevra l'une des trois évaluations suivantes :

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

En fonction de ce bonus, le nombre de points de la seconde partie du projet sera 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 second rendu avant et après ajustement, \(m_2\) est le nombre de points maximum du second rendu 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.

images/bonus.png

Courbes d'adaptation des points en fonction du bonus obtenu

Michel Schinz – 2013-05-22 11:01