Laboratoires Gradients

Module 1 | 10% | La Montagne et l'Essaim | 100% JavaScript (p5.js)

🗂️ Votre dépôt GitHub de remise

📍 OÙ : https://github.com/orgs/cegepmatane/repositories?q=intelligence-

🏷️ NOM : intelligence-laboratoires-gradient-2026-usergithub

📦 QUOI : https://github.com/cegepmatane/starter-intelligence-gradients (utiliser en template ou copier le README) - pas à pas plus bas

🗃️ COPIE DE SAUVEGARDE : le README du starter est aussi gardé sur ce site, à lire ou à télécharger, au cas où GitHub disparaîtrait.

La concentration algorithmique

Le module est 100% Web : tout se code en JavaScript avec p5.js, la planche à dessin. Rien à installer, aucune friction d'outil : tout le processeur mental va aux mathématiques. Et ces mathématiques tiennent dans un seul objet : le vecteur.

⛰️ La Montagne : l'optimisation
Le vecteur indique la pente à descendre : c'est la descente de gradient et le recuit simulé, le cœur de l'apprentissage automatique.
🐦 L'Essaim : l'émergence
Les vecteurs pilotent le comportement de chaque oiseau (séparation, alignement, cohésion) et l'intelligence émerge du groupe.

Deux algorithmes, un seul objet mathématique, un environnement léger où chaque ligne de code se lit, se tord et s'expérimente en direct dans le navigateur.

Les activités du laboratoire

⛰️ La Montagne 5%
Descente de gradient et recuit simulé | p5.js | réalisation semaine 1
🐦 L'Essaim 5%
Boids et flocking | p5.js | réalisation semaine 2

Les dates exactes de réalisation et de remise sont annoncées dans le calendrier des rencontres. Cet énoncé existe aussi en version diaporama pour la classe.

🗂️ Votre dépôt GitHub de remise

Toutes les remises du module se font dans un seul dépôt GitHub, créé dans l'organisation cegepmatane à partir du dépôt de départ (template) cegepmatane/starter-intelligence-gradients. Votre dépôt part ainsi avec un README de remise déjà structuré : il reste à remplir les liens au fil des laboratoires.

Créer le dépôt (une seule fois)

  1. Se connecter à GitHub, puis ouvrir la page de création de dépôt de l'organisation : github.com/organizations/cegepmatane/repositories/new (il faut être membre de l'organisation cegepmatane - sinon, le signaler à la prof).
  2. Owner : choisir cegepmatane, pas votre compte personnel.
  3. Repository name : intelligence-laboratoires-gradient-2026-usergithub, en remplaçant usergithub par votre nom d'utilisateur GitHub.
  4. Choose visibility : Private.
  5. Start with a template : choisir cegepmatane/starter-intelligence-gradients - c'est cette étape qui apporte le README de remise dans votre dépôt.
  6. Include all branches : laisser à Off.
  7. Cliquer sur Create repository. C'est fait : remplir ensuite les liens du README au fil des laboratoires.
Formulaire de création de dépôt GitHub dans l'organisation cegepmatane avec le template nadineprofesseur/starter-gradients

⛰️ La Montagne 5%

On affiche une courbe et on cherche son minimum pas à pas, comme un skieur qui cherche le fond de la vallée. C'est la descente de gradient, l'idée qui fait apprendre presque toutes les IA modernes.

Prépa Cherche-Minimum (avant la séance de labo)

  1. Explorer différentes librairies JavaScript qui permettent d'afficher une courbe dans le canvas et de connaître ses points.
  2. Afficher une courbe avec au moins 2 minimums (une courbe par défaut sera fournie en classe).
  3. Programmer la fonction calculerPoint( x ) qui retourne y en fonction de x.
  4. D'ici la prochaine séance, penser à une stratégie pour trouver le minimum itérativement, point par point.

En laboratoire

À remettre : 3 versions de cherche-minimum (5 points)

La montagne se descend par versions successives, de la force brute jusqu'à la vraie descente de gradient :

Remettre les 3 versions : COMPLÈTE, VOISINS et HASARD - les 3 liens p5.js ou les 3 projets complets, dans le README de votre dépôt GitHub de remise. Le détail de chaque version est dans le diaporama Simulated annealing.

🐦 L'Essaim 5%

Avec le JS, on initie un exemple minimaliste de boid et de flocking sur une planche à dessin, puis on déconstruit une vraie simulation. Trois petites règles vectorielles, et une intelligence collective émerge.

Code Boid

  1. Récupérer le Code de départ Boid (p5.js) et le cloner (File -> Duplicate) : le Code de départ Boid sur l'éditeur p5.js (le même lien est sur la page d'accueil, dans la zone d'évaluation du Module 1).
  2. Introduire, en codant en français, les 3 règles du flocking : règle d'alignement, règle de cohésion, règle de séparation - en s'inspirant de sa version EN du code sur l'éditeur p5.js ou du tutoriel Flocking Simulation de The Coding Train.
  3. Remettre votre URL dans le README de votre dépôt GitHub de remise.

Tuto-Flock : déconstruire une simulation

🎓 Le cadrage de ce tuto : vous ne « faites pas des renommages », vous transformez ce code en tutoriel pour un débutant - quelqu'un qui n'a jamais entendu parler de flocking et qui ouvrira votre fichier sans vous à côté. Commencez par l'épreuve des 30 secondes et le guide « Écrire un tutoriel pour débutants » : vous y verrez pourquoi un bon nom remplace un paragraphe, et vous y trouverez le gabarit de README et la grille de relecture.

  1. Choisir un petit projet de flocking parmi les exemples présentés (JS ou Python - certains demandent un serveur Apache, Nginx ou Node).
  2. Exécuter le code dans son ordinateur. COMMIT
  3. Déconstruire (analyser) le code et identifier les lignes qui calculent l'alignement, la cohésion et la séparation.
  4. Renommer en français, avec un verbe, les fonctions qui calculent : calculerAlignement(), calculerCohesion(), calculerSeparation() - le code doit toujours marcher.
  5. Expliquer les opérations mathématiques avec des commentaires // dans le code de ces fonctions. COMMIT
  6. Remplacer les valeurs paramétrables par des valeurs codées en dur dans votre code. COMMIT
  7. TESTER, TESTER, TESTER + lien dans le README.

🔗 Liens utiles

Rappel des modalités : les laboratoires se réalisent d'abord en classe et se complètent en devoir. La présence active (programmer et faire des commits tout au long de la séance) est obligatoire pour recevoir les points. Toute absence non justifiée à un laboratoire entraîne la note de 0. La remise se fait dans les 7 jours suivant la séance, ou avant la séance suivante si les activités se suivent.