Labo IA · 100% JavaScript · 420-565-MT

GRADIENTS & FOULES

Les laboratoires du Module 1 · 10%

La concentration algorithmique

Le module est 100% Web : tout se code en JavaScript avec p5.js, la planche à dessin. Rien à installer, aucune friction.

⛰️ La Montagne : le vecteur indique la pente, c'est la descente de gradient et le recuit simulé.

🐦 L'Essaim : les vecteurs pilotent le comportement, et l'intelligence émerge de la nuée.

100% du processeur mental pour les mathématiques

Les activités

avec le JS & p5.js !

⛰️ La Montagne 5%

Descente de gradient : le cœur mathématique

Réalisation : semaine 1

Remise : 7 jours après la séance (avant le cours suivant)

(remise de la prépa en classe)

avec le JS & p5.js !

🐦 L'Essaim 5%

Boids et flocking : l'intelligence émergente

Réalisation : semaine 2

Remise : 7 jours après la dernière séance

(remise de la prépa en classe)

Les dates exactes sont dans le calendrier des rencontres

🗂️ Votre dépôt GitHub de remise

  1. 🌐 Ouvrir github.com/organizations/cegepmatane/repositories/new
  2. 🏫 Owner : cegepmatane (pas votre compte personnel)
  3. ✏️ Repository name : intelligence-laboratoires-gradient-2026-prenom
  4. 🔒 Choose visibility : Private
  5. 📦 Start with a template : nadineprofesseur/starter-gradients
  6. ✅ Create repository, puis remplir le README au fil des labos
Le tutoriel avec capture d'écran est sur la page du labo

⛰️ La Montagne

En JavaScript, on va afficher une courbe et chercher le minimum pas à pas.

Prépa Cherche-Minimum

  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.
À suivre en laboratoire...

⛰️ La Montagne : en labo

  • 👀 Observer le comportement de l'algorithme dans l'animation Simulated annealing.
  • 🎞️ Voir en classe le diaporama et la présentation sur le refroidissement simulé.
  • 🎿 Se familiariser avec le code de départ de Skieur et de Montagne dans p5.js.

Remettre 3 versions de cherche-min

  • 🔍 VERSION COMPLÈTE : tout vérifier (1 point) - systématique, ce n'est pas de l'IA
  • 👣 VERSION VOISINS : le point d'à côté (2 points) - au choix :
  • ↘️ s'arrêter quand ça remonte - pris dans le premier creux
  • ↘️ tolérer une petite remontée - pris dans un minimum local
  • 🎲 VERSION HASARD : le refroidissement simulé (2 points) - la convergence !
  • 🎰 OU le hasard seul (compte pour 1 point sur 2)
Remettre COMPLÈTE + VOISINS + HASARD · le détail : diaporama Simulated annealing

🐦 L'Essaim

Code Boid : avec le JS, on initie un exemple minimaliste de boid et de flocking avec une planche à dessin.

Tuto-Flock : avec le JS, on regarde ensemble une simulation de flocking et on tente de la déconstruire.

Pourquoi renommer ? 🤔

fn(boids) { ... sum.add(other.vel); ... } fn(boids) { ... sum.add(other.pos); ... }

Ces deux fonctions sont presque identiques. Trois lettres les séparent, et pourtant l'une fait l'alignement et l'autre la cohésion.

sommeDesVitesses ou sommeDesPositions : le bon nom remplace un paragraphe d'explication.

L'épreuve des 30 secondes : intelligence.projet.autos/labo-gradients/ecrire-un-tutoriel

VOUS ÉCRIVEZ UN
TUTORIEL POUR DÉBUTANTS

Votre lecteur est un étudiant de première session. Il n'a jamais entendu parler de flocking, de boid, ni de vecteur. Il ouvre votre fichier tout seul, sans vous à côté. Il doit comprendre.

🔑 Le test : si vous devez expliquer une ligne à l'oral pour qu'on la comprenne, le code n'est pas fini. Votre voix n'est pas dans le fichier remis.

Tuto-Flock : déconstruire

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

Code Boid : à toi de coder

  1. 1️⃣ Récupérer le code de départ et le cloner (File -> Duplicate) :
    🐑 editor.p5js.org/nadineducegep : le point de départ
  2. 2️⃣ Introduire, en codant en français, les 3 règles du flocking en s'inspirant de sa version EN ou du tutoriel :
    règle d'alignement · règle de cohésion · règle de séparation
  3. 3️⃣ Remettre votre URL dans le README de GitHub.

À VOS LABOS !

L'énoncé complet et les liens : intelligence.projet.autos/labo-gradients