Aller au contenu principal

FarmAlgo · Niveau 01

FarmAlgo est le parcours privé d’automatismes algorithmiques de DEVLAB101. Il travaille une boucle courte et observable :

I → O → C → B → A → V

  • I — Inputs : types, taille, propriétés et cas particulier ;
  • O — Output : forme exacte du retour et comportement sans réponse ;
  • C — Contraintes : budget autorisé et règles à respecter ;
  • B — Brute force : première solution correcte ;
  • A — Amélioration : coût répété, information conservée et compromis ;
  • V — Vérification : cas limites, invariant et tests.

Périmètre pédagogique

Le niveau 01 couvre les tableaux, chaînes, parcours, compteurs, sommes, minimums, maximums, meilleurs courants, arrêts anticipés, Set, Map, tri et comparaison de voisins. Les 24 exercices obligatoires sont répartis entre diagnostic, rituel, parcours, structures, Set, Map, tri, problèmes mélangés, entretien et maîtrise.

Les 30 micro-prompts entraînent la reconnaissance du pattern, du coût répété, de la mémoire utile et de la complexité avant le code. Les modules ne bloquent pas l’accès : les prérequis servent à recommander un prochain travail, pas à punir un détour.

Exécution du code

Les exercices transpilent à la demande le TypeScript saisi (annotations, interfaces et assertions usuelles) avec le compilateur TypeScript déjà présent dans le projet, puis exécutent le JavaScript produit dans un Web Worker isolé. Le compilateur est chargé seulement lorsqu’une syntaxe TypeScript est détectée. Les tests visibles, tests de validation, comparaison profonde, capture de sortie et délai maximal réutilisent ensuite la politique d’exécution d’Algo XP, qui refuse les expressions hors périmètre.

Les brouillons, raisonnements, tests personnels, indices consultés, tentatives et dates de révision sont versionnés dans la progression FarmAlgo. La synchronisation réutilise la source de progression existante quand un compte DEVLAB101 est actif.

Accès et configuration

En local, l’accès privé est vérifié par empreinte et la session reste dans sessionStorage. En production, /api/farm-algo/auth vérifie FARM_ALGO_PASSWORD, délivre un cookie signé HttpOnly, Secure, SameSite=Lax, et applique une limitation basique par adresse. Le mot de passe n’est jamais écrit dans les logs ni envoyé au bundle client.

Configurer le secret de production avec FARM_ALGO_PASSWORD à partir de .env.example. Ne pas committer sa valeur. Si le secret n’est pas configuré en production, l’interface affiche une erreur d’accès générique.

Schéma et ajout d'un exercice

Le contenu source est dans src/data/farmAlgoCurriculum.js. Chaque exercice porte un identifiant stable, ses textes FR/EN, une signature TypeScript, exemples, contraintes, tests publics et de validation, code de départ, solution, complexités, invariant, erreurs fréquentes, six indices, trois approches, une reconstruction, un prompt de transfert et une variante. Pour en ajouter un, compléter le tableau source puis lancer npm run validate:farm-algo ; le validateur refuse un identifiant manquant, une locale incomplète, une preuve absente ou une complexité incohérente.

Maîtrise, révision et pédagogie

src/domain/farmAlgo.js calcule séparément le code, le raisonnement I/O/C/B/A/V, la structure et sa justification, les complexités, la vérification et l'explication, avec les pondérations 35/25/15/10/10/5. La maîtrise exige une réussite initiale, une variante, une récupération différée et un problème mélangé. La date de révision est planifiée après chaque tentative selon le score et le mode de travail ; l'accueil propose alors la prochaine action.

Le diagnostic calibre le point de départ sans bloquer l'accès. Les sessions 15/35/60 interleavent récupération, exercice inédit et transfert. Les six indices sont un scaffolding progressif ; la solution n'est disponible qu'après une tentative et la reconstruction est conservée comme action suivante. Les champs I/O/C/B/A/V, la checklist et le débrief déterministe rendent explicites la récupération active, la génération, le feedback et le transfert sans prétendre interpréter librement le texte.

Validation locale

npm run validate:farm-algo
npm test
npm run typecheck
npm run lint
npm run agent:audit
npm run build

Le parcours est disponible sur /parcours/farm-algo. Les routes /exercise, /micro, /diagnostic, /interview, /mastery et /progress partagent la même session protégée.