Instructions Codility – Stages

Instructions

– Quatre exercices vous sont proposés avec une durée totale de 3 heures. On attend du candidat qu’il complète au moins 3 exercices de son choix. Bien évidemment, s’il vous reste du temps, n’hésitez pas à compléter les 4 exercices.

– La gestion avancée des exceptions/erreurs ne fait pas partie du cadre de ces exercices. L’énoncé de chaque exercice indique les valeurs possibles reçues en entrée, il est inutile de gérer les autres cas.

– Privilégiez l’utilisation du C++ si celui-ci fait partie de vos compétences.

– Utilisez les ressources disponibles sur Internet (documentation, etc), mais ne recevez pas l’aide d’une autre personne. Ce test est destiné à évaluer vos aptitudes personnelles.

 

Critères d’évaluation

– Exactitude des résultats : Codility évaluera votre code selon plusieurs test-cases. Pensez aux cas extrêmes.

– Performance : Privilégiez les algorithmes en O(1), O(log n), O(n) ou O(n.log n). Évitez si possible O(n2) ou pire.

– Lisibilité du code : Structure, indentation, création de sous fonctions lorsque c’est approprié, etc.

– Commentaires. N’hésitez pas à commenter, particulièrement dans les cas suivants : opérations non triviales (pourquoi faites-vous ça?), opportunités d’amélioration que vous n’avez pas le temps de faire, etc. Vous pouvez aussi commenter un exercice non-résolu pour indiquer quelle aurait été votre approche.

 

Conseils

– Si nécessaire, privilégiez la qualité plutôt que la quantité. Vous devriez prendre le temps de lire tous les énoncés et choisir quels exercices vous préférez résoudre.

– Avant de démarrer, préparez une solution de test afin de pouvoir débugger les problèmes difficiles à cerner seulement en lisant le code. Codility ne permet pas d’exécuter votre programme étape par étape ou de placer des breakpoints.

– Vous pouvez utiliser la librairie standard C++ (ou C), mais n’oubliez pas que le but de ce test est de prouver vos habiletés. Trouver un bon équilibre entre le code fait « à la main » et l’utilisation de fonctions de haut-niveau est à votre discrétion. Dans ce dernier cas, le candidat est encouragé à commenter son choix de fonction.

Raison: Dans un environnement de travail réel et multiplateforme, les fonctions haut-niveau de la librairie standard ne sont pas toujours disponibles ou appropriées.

Note: Utiliser qsort (C) ou std ::sort (C++) est acceptable.

– Utilisez la fonction « add test case » en bas à gauche de l’écran. Cependant, n’oubliez pas que le résultat indique seulement l’absence des run-time errors (crash/exception) et indique le résultat. Ça n’indique pas si ce résultat est bon.

– Vous pouvez créer des fonctions pour améliorer la lisibilité ou éviter la duplication de code.

– Nous vous conseillons de vous familiariser avec l’environnement Codility en utilisant l’option « TRY DEMO » avant de démarrer le test.