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 A3F7 → 0xA3 ^ 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 →