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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
|
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.
|
|
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.
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.