59 views
 owned this note
# Règles de rédaction Il ne s'agit pas de règles absolues : ni dans l'espace (elles ne valent pas hors de ce projet), ni dans le temps (il est possible de s'adapter dans des cas particulier) ## Les métadonnées du sujet (.md) et le titre ```markdown --- author: - Prénom Nom 1 - Prénom Nom 2 - etc hide: - navigation - toc title: Le titre ! difficulty: un entier entre 0 et 399 maj: 23/10/2024 (la date de mise en ligne de l'exo) tags: - tag 1 - tag 2 - etc --- ``` Pour avoir exactement le titre mis en métadonnée, commencer par : ```markdown # {{ title }} ``` ## L'énoncé (le sujet en .md) * Penser aux cas limites, aux *corner cases* : la liste est-elle vide ?, accepte-t-on les nombres négatifs ? Les valeurs sont-elles toutes entières ? * Ne pas hésiter à être très précis. L'élève aura toujours une question. * Une fonction ... prend en paramètres ... renvoie ... * Si deux versions de l'exercice, utiliser : ```md === "Version vide" {{ IDE('exoa') }} === "Version à compléter" {{ IDE('exob') }} ``` * Fournir les exemples dans une admonition repliable "example" déjà dépliée * Indiquer les interdictions dans une admonition "danger" ## Rédaction du code * Ne pas mettre de assert qui vérifient les préconditions dans les fonctions * Ne pas mettre de docstring * Ne pas *toujours* utiliser `a += 1` * Privilégier les noms de variables explicites * Les noms de variables courts sont à limiter à des cas très précis : indices `i` ou`j`, entier `n`, nombre `x` *etc* * Pour avoir la coloration du code : Ne pas écrire ```md `un peu de code in line` ``` Mais écrire : ```md `#!py un peu de code in line` ``` ## Le code des exercices * fournir des tests publics (repris dans les exemples) * fournir des tests privés (bien choisis et, si besoin, des tests aléatoires) ## Le tag difficulty * débutant [0; 100[ * facile [100; 200[ * moyen [200; 300[ * difficile [300; 400[