Aller au contenu

Niveaux BAC1 à BAC5

Cette page présente en détail les cinq parcours du chaos pédagogique : leur thématique, leur volume d'étapes, leur durée cible et leur barème d'étoiles. Les catalogues sont définis côté backend dans les classes PedagogiqueEnigmeBac1 à PedagogiqueEnigmeBac5 (package com.perfshop.chaos), et la durée par défaut est retournée par la méthode PedagogiqueEnigme.defaultTimerSeconds(level).

Tableau récapitulatif

Niveau Id Nom interne Étapes Durée Produit-clé narratif Code agent Réponse DYNAMIC ⭐ max
BAC+1 bac1 Premier contact 10 30 min (1800 s) Câble USB-C 22 € 4 chiffres décimaux somme chiffres × 10 1
BAC+2 bac2 Décodeur 15 45 min (2700 s) Adaptateur CODE Pro 64 € 4 chiffres décimaux code ÷ somme chiffres 2
BAC+3 bac3 Analyste 20 60 min (3600 s) Clavier 29 € + souris 19 € 4 chars hex maj somme valeurs déc. des digits 3
BAC+4 bac4 Architecte 25 75 min (4500 s) SSD Lorem NVMe 255 € 4 chars hex maj code hex mod 256 4
BAC+5 bac5 Maître système 30 90 min (5400 s) Kit DDR4 16 Go 79 € 4 chars hex maj XOR des deux octets 5

Total : 100 énigmes réparties sur les cinq niveaux. Chaque niveau se termine par une étape DYNAMIC dont la réponse dépend du code agent (détail dans agent-code.md) ; toutes les autres étapes ont un hash statique pré-calculé à l'init par PedagogiqueEnigme.h().

Progression pédagogique

flowchart LR
    BAC1["🎓 BAC+1<br/>Premier contact<br/>10 étapes · 30 min"]
    BAC2["🎓 BAC+2<br/>Décodeur<br/>15 étapes · 45 min"]
    BAC3["🎓 BAC+3<br/>Analyste<br/>20 étapes · 60 min"]
    BAC4["🎓 BAC+4<br/>Architecte<br/>25 étapes · 75 min"]
    BAC5["🎓 BAC+5<br/>Maître système<br/>30 étapes · 90 min"]
    BAC1 -->|Maths pures<br/>commerce simple| BAC2
    BAC2 -->|Logique<br/>chiffrement classique| BAC3
    BAC3 -->|HTTP, Docker<br/>observabilité| BAC4
    BAC4 -->|Hexa, XOR, JWT<br/>algorithmique| BAC5
    BAC5 -->|Crypto, complexité<br/>Hamming, Dijkstra|DONE((✅))

Les parcours sont indépendants : l'étudiant n'est pas obligé de compléter bac1 pour accéder à bac2. Le formateur choisit le niveau à activer pour l'ensemble de la classe, ou l'étudiant peut se servir lui-même via POST /pedagogique/level si la licence l'autorise.

BAC+1 — Premier contact

  • Classe Java : PedagogiqueEnigmeBac1
  • Fichiers i18n : i18n/enigmes/bac1/enigmes_XX.json
  • 10 étapes — timer 30 minutes
  • Produit narratif : un câble USB-C basique à 22 € (stock 60)

Public visé : lycéens post-bac, étudiants primo-arrivants en BTS/DUT, public découverte. Le niveau ne suppose aucune notion informatique — uniquement mathématiques pures et logique : somme de chiffres, suites arithmétiques et géométriques, suite de Fibonacci, grilles à coordonnées, arithmétique commerciale (prix × quantité, calcul de total avec frais de port). Le code agent est un code 100 % numérique à 4 chiffres, choisi explicitement pour que l'étudiant n'ait pas à manipuler l'hexadécimal.

L'étudiant parcourt le tunnel e-commerce de bout en bout : filtre de prix, fiche produit, ajout au panier, passage en caisse, confirmation de commande. La dernière étape DYNAMIC est lue sur la page de confirmation d'ordre (voir agent-code.md).

BAC+2 — Décodeur

  • Classe Java : PedagogiqueEnigmeBac2
  • Fichiers i18n : i18n/enigmes/bac2/enigmes_XX.json
  • 15 étapes — timer 45 minutes
  • Produit narratif : un adaptateur « CODE Pro » USB-C à 64 € (commandé en 2 unités)

Public visé : BTS, DUT, première année de licence. Le niveau introduit des concepts légèrement plus abstraits tout en restant sur du pur calcul : chiffrement de César, chiffrement Atbash, anagrammes, suites de carrés parfaits, nombres premiers, combinatoire (compter des arrangements), arithmétique commerciale avec remises et TVA, notions de longueur d'IP (sans supposer la connaissance du protocole — le contexte est donné dans l'énoncé).

Le code agent reste numérique à 4 chiffres. La réponse DYNAMIC est une division entière du code par la somme de ses chiffres — accessible sans calculette avec un peu de prudence.

BAC+3 — Analyste

  • Classe Java : PedagogiqueEnigmeBac3
  • Fichiers i18n : i18n/enigmes/bac3/enigmes_XX.json
  • 20 étapes — timer 60 minutes
  • Produits narratifs : clavier USB basique 29 € + souris optique basique 19 €

Public visé : licence informatique, BUT, première année d'école d'ingénieur. Le niveau suppose les bases HTTP (codes de statut, verbes, headers), la connaissance de Docker (images, ports, commandes basiques), les fondamentaux de l'observabilité (Prometheus, logs, latence). Le niveau introduit aussi la lecture de l'hexadécimal — le code agent passe d'un format numérique à un format 4 chars hex majuscules, et la réponse DYNAMIC est la somme décimale des quatre digits hex (ex : A3F7 → 10+3+15+7 = 35).

Les énoncés alternent entre questions théoriques brèves et observations concrètes dans la boutique (filtre par plage de prix, consultation d'un stock, passage en caisse avec différents modes de livraison).

BAC+4 — Architecte

  • Classe Java : PedagogiqueEnigmeBac4
  • Fichiers i18n : i18n/enigmes/bac4/enigmes_XX.json
  • 25 étapes — timer 75 minutes
  • Produit narratif : SSD Lorem NVMe 1 To PCIe 4.0 à 255 €

Public visé : master, école d'ingénieur en fin de cursus. Le niveau approfondit l'hexadécimal et les opérations bit à bit (XOR explicite, conversion bases 2/10/16), introduit le décodage de payloads JWT Base64, utilise la logique combinatoire SQL-like (clauses AND/OR, négation), la combinatoire avancée (arrangements $A(n,p)$, permutations $P(n,p)$), l'arithmétique modulaire, et une énigme de plus court chemin type Dijkstra sur un petit graphe.

Les étapes commerciales manipulent plusieurs modes de livraison (Standard, Express, Premium) pour illustrer le calcul de total panier avec livraison variable. La réponse DYNAMIC est le code hex converti en décimal modulo 256 — classiquement le masquage d'un octet.

BAC+5 — Maître système

  • Classe Java : PedagogiqueEnigmeBac5
  • Fichiers i18n : i18n/enigmes/bac5/enigmes_XX.json
  • 30 étapes — timer 90 minutes
  • Produit narratif : Kit DDR4 16 Go (2×8 Go) à 79 € (commandé en 2 unités)

Public visé : fin de master, ingénieurs en formation continue, professionnels expérimentés cherchant à vérifier leur socle. Le niveau couvre tout le spectre :

  • Cryptographie : RSA simplifié (exponentiation modulaire sur petits nombres), nombres de Mersenne premiers, fonctions de hachage sommaires
  • Algorithmique avancée : Dijkstra sur graphes à 6+ nœuds, code de Hamming (distance minimale), complexité $O(n \log n)$ vs $O(n^2)$
  • Compression : run-length encoding
  • Crypto classique : ROT13, octal, RLE
  • Logique propositionnelle à 4 variables
  • Réseau : adresses RFC 822, conversion bit/s ↔ bit/o avec calcul de temps de transfert
  • Constantes mathématiques : décimales de π, logarithmes

La réponse DYNAMIC finale est un XOR entre les deux octets du code hex — par exemple A3F70xA3 ^ 0xF7 = 0x54 = 84. C'est la seule étape qui demande de raisonner sur des octets complets et pas juste sur des digits individuels.

Le parcours est nominalement faisable en 90 minutes pour un professionnel préparé ; un étudiant en fin de master peut largement dépasser ce délai sans démériter — le système d'étoiles (voir stars.md) pénalise d'une étoile en cas de dépassement.

Barème d'étoiles

Le nombre d'étoiles récompense à la fois la difficulté du niveau et la rapidité :

Niveau Dans les temps Hors temps
bac1 1 ⭐ 1 ⭐
bac2 2 ⭐ 1 ⭐
bac3 3 ⭐ 2 ⭐
bac4 4 ⭐ 3 ⭐
bac5 5 ⭐ 4 ⭐

Le minimum est 1 étoile (un étudiant bac1 hors temps reste à 1 ⭐ — aucune étoile n'est jamais retirée en dessous de 1). L'algorithme exact est computeStars(level, inTime) dans ChaosStudentController — détails dans stars.md.

Résumé des durées par défaut

La méthode PedagogiqueEnigme.defaultTimerSeconds(String level) renvoie :

case "bac1" -> 1800;   // 30 min
case "bac2" -> 2700;   // 45 min
case "bac3" -> 3600;   // 60 min
case "bac4" -> 4500;   // 75 min
case "bac5" -> 5400;   // 90 min
default     -> 2700;   // fallback 45 min

Le formateur peut surcharger cette durée à l'activation en passant un paramètre timerSeconds dans le body de POST /pedagogique/activate : par exemple {"level":"bac3","timerSeconds":2400} pour un parcours bac3 raccourci à 40 minutes en mode démo.


Pages suivantes : ← Concept · Système d'énigmes → · Code agent dynamique →