I. Présentation

L'équipe Développement Web vous souhaite la bienvenue sur la page du deuxième défi Web.

Les défis Web sont des petits exercices à faire soi-même ou en équipe sur un sujet précis, à la manière des examens ou des exercices de livres. La programmation Web se distingue par sa richesse, avec le HTML qui n'a cessé d'évoluer pour arriver au HTML5 - encore peu utilisé dans son ensemble - auquel il faut ajouter le Style c'est-à-dire le CSS, puis le JavaScript : ces trois éléments constituent la base d'une page HTML classique. Au-dessus, on compte une multitude de bibliothèques (framework) qui constituent des couches supplémentaires pour faciliter l'écriture de pages Web telles que jQuery, Dojo, MooTools, Prototype... sans compter le langage serveur. Le Web est donc la technologie la plus riche mais aussi la plus complexe dans le domaine de la programmation.

II. Les algorithmes

Un algorithme est une méthode, souvent utilisée pour résoudre des problèmes de type mathématique.
On les utilise très souvent en programmation, même sans le savoir. Ils peuvent se caractériser par quelques phrases expliquant pas à pas, comment résoudre un problème. Ils peuvent alors être traduits dans n'importe quel langage de programmation. Ils sont généralement assez courts, et sont regroupés en catégories comme par exemple les algorithmes de tri qui servent à trier une liste de nombres. Chacun a ses inconvénients et ses avantages.

III. Consignes

Vous devez écrire une page Web qui illustre l'exécution de trois algorithmes décrits ci-dessous :

  • l'algorithme d'Euclide ;
  • l'algorithme glouton ;
  • le tri à bulle.

La suite de la section est extraite des articles Wikipédia sur le sujet.

L'algorithme d'Euclide est un algorithme permettant de déterminer le plus grand diviseur commun de deux nombres entiers.
L'algorithme glouton est un algorithme qui suit le principe de faire, étape par étape, un choix optimum local, dans l'espoir d'obtenir un résultat optimum global. Par exemple, dans le problème du rendu de monnaie (donner une somme avec le moins de pièces possible), l'algorithme consistant à répéter le choix de la pièce de plus grande valeur qui ne dépasse pas la somme restante est un algorithme glouton. Dans les cas où l'algorithme ne fournit pas systématiquement la solution optimale, il est appelé une heuristique gloutonne.
Le tri à bulles ou tri par propagation est un algorithme de tri qui consiste à faire remonter progressivement les plus grands éléments d'un tableau, comme les bulles d'air remontent à la surface d'un liquide.

Votre code sera présentable : c'est-à-dire lisible, bien présenté, aéré, indenté d'une manière homogène, commenté en suffisance pour une compréhension rapide du code.

Le défi débute le vendredi 23 mars 2012 et se termine le Dimanche 20 mai 2012 à minuit. Les dernières participations pourront être rendues jusque'au 20 mai 2012 à minuit.

Les règles générales des défis sont d'application, mais, le cas échéant, seront supplantées par les règles précises de ce défi.

IV. Fichier à rendre

Un dossier à votre nom comportant :

  • l'index du site (cela peut être la seule page de votre site) ;
  • un dossier web pour y mettre vos pages Web ;
  • un dossier stylesheet pour y mettre vos fichiers .css ;
  • un dossier javascript pour y mettre vos fichiers .js ;
  • un dossier images pour vos images ;
  • un fichier de type README, dans lequel vous marquerez votre accord pour une éventuelle diffusion sur les pages Sources de Developpez.com. Vos sources seront libres de droits (open source). Vous y marquerez aussi votre environnement de développement ;
  • un autre fichier, ou vous décrirez brièvement votre projet et comment vous l'avez mené à bien (problèmes rencontrés, difficultés surmontées sans problème, recherche d'idées, idées abandonnées, le temps approximatif de développement).

V. Environnements cibles

Un affichage correct sur toutes les dernières versions des navigateurs : FireFox, Chrome, IE, Safari et Opéra. La compatibilité avec IE6 n'est pas demandée mais si vous avez le temps et l'immense envie de faire un truc compatible IE6, on pourra en tenir compte.

Faire apparaître la validation W3C sur vos pages est un plus que le jury appréciera.

VI. Grille de cotation

Critère Points à accumuler (40 au total)
Fonctionnement minimal du programme. Total : 12
Respect des règles 8
Bon fonctionnement du programme 4
Code Total : 16
Qualité du code (performances, modularité...) 6
Lisibilité, structuration du code 5
Optimisation de la taille des fichiers CSS et images 5
Design et ergonomie Total : 8
Le côté esthétique, le choix des couleurs et l'ergonomie de l'interface 4
Pertinence des méthodes utilisées pour la mise en forme 4
Accessibilité et sémantique Total : 4
Le bon choix des éléments HTML pour la structuration 2
Navigation tabulaire, lecture d'écran, pertinence des alternatives textuelles (en cas d'utilisations des images), zoom textuel, petites résolutions. Bref, s'assurer que le document est accessible quel que soit le type d'accès 2