IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Les règles des défis Qt

Date de publication : 22/11/2009

Par Thibaut Cuvelier (Site web) (Blog)
 


            



I. Présentation

L'équipe Qt vous souhaite la bienvenue sur la page du premier défi Qt.

Les défis Qt 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. Ces codes à écrire sont étudiés de sorte que tous y trouvent leur compte : parfois de l'algorithmique, mais pas uniquement, car Qt ne fait pas que dans ce domaine spécifique. Il s'agit d'un framework complet : les défis essayent d'exploiter cette richesse. Ceci ne signifie pas qu'aucune réflexion n'est nécessaire : il faut connaître Qt, il ne s'agit pas d'écrire quelques lignes sans y réfléchir.


II. Règlement général


II-A. Les organisateurs et le jury


II-A-1. Les organisateurs

Le rôle des organisateurs est le suivant :

  • Mettre en place les défis, le règlement, les pages du site,
  • Animer les défis et veiller à leur bon déroulement,
  • Répondre aux questions des participants,
  • Participer au jury.
Vous pouvez les contacter par MP en cas de problèmes, litiges ou questions ainsi que pour des propositions de thèmes pour des défis futurs et également pour toutes propositions d'évolutions des défis en général.


II-A-2. Le jury

La composition du jury peut être différente pour chaque défi suivant les dispositions de chacun. Le jury peut être composé :

  • Du ou des organisateurs du défi,
  • De volontaires,
  • Éventuellement, du gagnant du défi précédent.
Une nouvelle liste des membres du jury est établie pour chaque défi. La liste des membres du jury est fournie avec l'énoncé de chaque défi. Le rôle du jury est le suivant :

  • Commenter les propositions des participants,
  • Tester les codes sources et veiller à ce qu'ils répondent au sujet,
  • Noter les codes sources selon la qualité du code, la robustesse, l'ingéniosité, etc,
  • Critiquer les codes sources afin de pouvoir vous améliorer et prendre de bonnes habitudes.
Les membres du jury et les organisateurs peuvent participer au défi, mais ne pourront recevoir de prix (le cas échéant), ni être classés avec les autres participants, et ce, à des fins d'équité.


II-B. Les participants

Aucune inscription aux défis n'est nécessaire, mis à part, bien sûr, d'être enregistré comme membre des forums. La simple soumission du travail effectué est suffisante pour s'ajouter à la liste des participants.

Les participants peuvent, s'il le souhaite, se constituer en équipe pour un défi. Ils doivent alors nommer un responsable d'équipe. C'est cette personne et elle seule qui doit soumettre le résultat du travail de l'équipe. Une personne membre d'une équipe ne peut être membre d'une autre équipe ni participer à titre individuel au défi.

Les modérateurs, rédacteurs, administrateurs, responsables peuvent aussi participer au défi de manière individuelle ou en équipes constituées avec un responsable identifié lors de la soumission. Leur travail sera alors classé dans la catégorie Responsables Developpez.com. Il suffit d'un seul modérateur, rédacteur, administrateur ou responsable dans l'équipe pour que toute l'équipe passe dans la catégorie Responsables Developpez.com. Les membres du jury et les organisateurs rentrent dans cette catégorie.

warning Une seule soumission par participant ou par équipe est autorisée : une fois faite, elle ne peut plus être modifiée.
Tous les participants ont le droit de poser des questions sur l'énoncé du problème, mais aussi sur la résolution du problème, sur les forums publics de la rubrique Qt. Les questions relatives à la compréhension du problème devront être posées sur le fil d'annonce du défi. Les réponses seront aussi portées de manière publique sur ce fil. Les organisateurs, les participants ayant moins de difficultés mais aussi les autres forumeurs peuvent également répondre sur ce fil.

idea Lors de l'analyse des soumissions, le jury donnant des critiques constructives à chaque soumission de code source dans le forum, les participants ont le droit, et cela est même recommandé, de participer aux discussions autour de leur travail.
Le gagnant d'un défi pourra s'il le souhaite, choisir le sujet du défi suivant. Dans cas, il devra obligatoirement fournir une solution parmi les mieux adaptées au problème proposé pour le défi. Il pourra aussi faire partie du jury. Cependant, les organisateurs se réservent le droit de refuser toute proposition de défi s'ils le jugent nécessaire.

warning Ne pas créer de topic sur le forum pour chaque soumission.

II-C. Les défis

Les défis sont suffisamment courts pour que les travaux ne demandent pas plus de quelques jours de travail mais cela peut varier d'un défi à l'autre et surtout d'un participant à l'autre. Pour cette raison, aucun temps imparti ne sera défini, à part date de fin du défi lui-même, qui sera donnée dans le message d'ouverture du défi.

La durée d'un défi est variable. Cette durée pourra être modifiée en fonction de certains impératifs ou de la complexité supposée du défi.

Les défis proposés sont des travaux personnels ou en équipe. Il est autorisé de demander de l'aide au sein des forums. Cependant, en ce cas, les participants sont tenus de décrire les problèmes rencontrés, ainsi que leur résolution, au moins dans le topic ouvert pour la question, de préférence aussi dans le fichier README livré avec la solution.

Les défis tiennent compte d'un certain niveau de connaissances de la programmation en général en C++. Ces exercices ne conviendront donc pas aux débutants qui sont en train d'étudier ce langage ou le framework Qt. Il est effectivement recommandé d'avoir acquis au moins les notions de base sur les divers sujets que traitent habituellement les livres et éventuellement avoir un minimum d'approche algorithmique.

Ceci dit, rien n'empêche de consulter les énoncés des défis pour voir ce qui est demandé, ainsi que, peut-être, pour y participer, si certains s'en sentent capables.


II-E. Présentation des codes sources

Les codes sources doivent suivrent les règles suivantes pour chaque défi mis en place :

  • Le code doit être écrit en C++, sauf mention contraire dans l'énoncé du défi ;
  • Le code doit rester maintenable, on doit pouvoir l'améliorer sans devoir le restructurer ;
  • Le code doit être présentable, ce qui implique donc de fournir un code relativement bien aéré (sans excès) et indenté d'une manière homogène ;
  • Des commentaires sur les zones critiques des codes sont vivement recommandés, cela permet de mieux comprendre l'implémentation de chacun.
Lors de la soumission du défi, c'est le projet complet qui doit être remis (à l'exception des fichiers binaires et objets). Ceci inclut le fichier .pro, ainsi que, selon votre environnement, d'autres fichiers de projet (pour Visual Studio, par exemple). Tout fichier supplémentaire pourra être sanctionné.


II-F. Écriture des codes sources

Tous les sujets doivent être écrits entièrement en C++, sauf mention contraire dans l'énoncé du défi en cours.

Les codes doivent également être assez optimisés en terme de vitesse d'exécution et en consommation mémoire, cela peut varier suivant les défis, des précisions seront données dans l'énoncé de chaque défi mis en place.

Les codes sources doivent être testés. Leur compilation ne doit pas laisser paraître d'erreurs ni d'avertissements. Toutefois, les avertissements peuvent pour certains être éventuellement tolérés si vous savez ce que vous faites et que vous le justifiez.

Pour ceux qui sont plus qu'à l'aise avec leur compilateur, vous pouvez faire des paramétrages plus fins que les paramètres par défaut si vous le souhaitez, pour autant que ceux-ci soient définis dans le fichier de projet.


II-G. Licence des codes sources

Les codes sources doivent obligatoirement être libres de droits, pour une éventuelle intégration dans la page Sources Qt. Cette mention doit être apportée explicitement dans tous les fichiers source du projet.

warning L'accord du participant devra être précisé dans le fichier README qui se trouvera dans l'archive du travail effectué.
De préférence, utilisez la licence MIT. Pour ce faire, vous pouvez mettre ce texte au début de chacun des fichiers de votre projet et dans votre fichier README :

Copyright (c) (Année) (Votre nom) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
warning Tout le code doit être écrit par le participant (ou un des membres de l'équipe le cas échéant). Tout code qui ne sera pas écrit par le(s) participant(s) pourra mener au refus pur et simple de la candidature.

II-H. Informations à fournir pour chaque soumission

Pour chaque soumission d'un projet, il faut fournir obligatoirement les informations suivantes :

  • Système d'exploitation sur lequel la compilation et les tests ont été effectués,
  • Type et fréquence du processeur utilisé,
  • Compilateur/EDI utilisé avec les options de compilation,
  • Version précise de Qt utilisée pour le projet,
  • Temps passé (approximativement) pour implémenter.
idea Les travaux des participants doivent obligatoirement être fournis sous la forme d'une archive (RAR, 7Z...). Il est obligatoire que l'archive contienne un fichier README ainsi que les fichiers nécessaires à la génération complète du projet, mais sans aucun binaire.
warning Le nom des archives doit obligatoirement avoir le format pseudo.ext, où pseudo est le pseudo du participant, et ext, l'extension de l'archive.
warning Les soumissions ne peuvent se faire que par le biais du formulaire de soumission. Cette soumission peut être confirmée par un petit MP à tous les membres du jury afin de les informer de la présence de votre travail.

II-I. Critères de notations

Les soumissions des participants aux défis sont notées selon les critères suivants :

  • Élégance de la solution proposée,
  • Présentation du code source,
  • Qualité de la documentation,
  • Respect de l'énoncé du défi et des règles en vigueur,
  • Design de l'interface graphique,
  • Ergonomie de l'interface graphique,
  • Facilité d'utilisation,
  • Facilité de regénération et de déploiement,
  • Bonne gestion de la mémoire dynamique.
Des critères supplémentaires peuvent être ajoutés suivant les défis. Dans tous les cas, les critères seront reprécisés à chaque défi.



            

Valid XHTML 1.0 TransitionalValid CSS!

Copyright © 2009 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.