Session BRE05 Help

Exercices IA et Code

Dans cette série d'exercices, vous allez utiliser les IA "grand public" (ChatGPT, Claude, Gemini, ...) pour analyser et produire du code.

Sur ces exercices, testez plusieurs IA et confrontez leurs réponses.

Exercice 1 : comprendre du code simple

Transmettez le code suivant à une IA grand public et tentez de lui faire analyser ce que fait le code :

export default function initMap(rows, cols){ let $main = null; let $box = null; let $id = 0; for(var i = 0; i < rows; ++i) { for(var j = 0; j < cols; ++j) { $main = document.querySelector("main"); $box = document.createElement("section"); $box.classList.add("col-start-" + (j + 1)); $box.classList.add("col-end-" + (j + 1)); $box.classList.add("row-start-" + (i + 1)); $box.classList.add("row-end-" + (i + 1)); $box.setAttribute("id", $id); $main.appendChild($box); $id++; } } }

Exercice 2 : comprendre du code un peu plus complexe

Transmettez le code suivant à une IA grand public et tentez de lui faire analyser ce que fait le code :

trait Debug { public function print() : void { // ici on récupère toutes les méthodes d'une classe $methods = get_class_methods($this); // je parcours toutes les méthodes foreach($methods as $method) { // je vérifie si le nom de la méthode contient le mot get if(str_contains($method, "get")) { // j'echo le retour de la méthode echo $this->$method() . "<br>"; } } } } class Test { // j'utilise mon trait use Debug; public function __construct(private string $firstName, private string $lastName) { } public function getFirstName() : string { return $this->firstName; } public function setFirstName(string $firstName) : void { $this->firstName = $firstName; } public function getLastName() : string { return $this->lastName; } public function setLastName(string $lastName) : void { $this->lastName = $lastName; } }

Exercice 3 : comprendre du code dans un langage que vous ne maitrisez pas forcément

Transmettez le code suivant à une IA grand public et tentez de lui faire analyser ce que fait le code :

Game::Game() { this->levels = std::list<Level *>(); this->player = new Player(2, 2, UP); this->loadLevels(); if ( SDL_Init( SDL_INIT_EVERYTHING ) < 0 ) { std::cout << "Error initializing SDL: " << SDL_GetError() << std::endl; system("pause"); return; } this->window = SDL_CreateWindow( "Example", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 320, 320, SDL_WINDOW_SHOWN ); if ( !this->window ) { std::cout << "Error creating window: " << SDL_GetError() << std::endl; return; } this->winSurface = SDL_GetWindowSurface( this->window ); if ( !this->winSurface ) { std::cout << "Error getting surface: " << SDL_GetError() << std::endl; return; } SDL_FillRect( this->winSurface, NULL, SDL_MapRGB( this->winSurface->format, 255, 255, 255 ) ); SDL_UpdateWindowSurface( this->window ); }

Exercice 4 : trouver une erreur de logique simple

Le code suivant comporte une erreur de logique simple, utilisez une IA grand public pour trouver laquelle :

<?php class User { public function __construct(private string $username) { } } $user = new User("Gaston"); echo $user->username;

Exercice 5 : repérer un problème de conception

Le code suivant comporte un problème de conception, utilisez une IA pour trouver lequel :

class Controller extends AbstractController { // ... public function home() : void { $query = $this->db->prepare('SELECT * FROM users'); $parameters = [ ]; $query->execute($parameters); $result = $query->fetchAll(PDO::FETCH_ASSOC); } // ... }

Exercice 6 : trouver une erreur de syntaxe simple

Le code suivant comporte un problème de conception, utilisez une IA pour trouver lequel :

#include <stdio.h> int main(int argc, char **argv, char **envp) { if(argc < 5); { printf("Not enough arguments.\n"); } return 0; }

Exercice 7 : trouver une erreur plus complexe

export class ContentForm { #searchInput; #contentInput; #form; constructor() { this.#form = document.querySelector("#content-form"); this.#searchInput = document.querySelector("#seo-search"); this.#contentInput = document.querySelector("#content"); this.#form.addEventListener("submit", (event) => this.#submit(event)); } async #request(terms){ const response = await ai.models.generateContent({ model: "gemini-2.5-flash", contents: terms, }); let modal = document.querySelector("div.modal"); modal.style.display = "none"; let section = document.querySelector("#gemini-answer"); section.scrollIntoView(); section.innerHTML = marked.parse(response.text); } #submit(event) { event.preventDefault(); let modal = document.querySelector("div.modal"); modal.style.display = "grid"; let search = this.#searchInput.value; let content = this.#contentInput.value; let terms = `Bonjour, pourrais-tu me calculer un score SEO pour un contenu que je vais t'envoyer en format Markdown. Les termes de recherches pour lesquels calculer sont les suivants : ${search}. Le contenu est le suivant : ${content}. J'aurais besoin d'une réponse synthétique au format Markdown avec un score sur 20. Merci !`; this.#request(terms); } }

Exercice 8 : générer un script simple

Demandez à une IA de générer un script shell qui permet d'afficher la liste de ses paramètres par ordre alphabétique.

Exercice 9 : générer une fonction simple

Demander à une IA de générer une fonction PHP qui prend un nombre inconnu et illimité d'arguments et les affiche.

Exercice 10 : générer des classes

Demander à une IA de vous créer une solution en PHP qui permet de générer des utilisateurs aléatoires pour peupler une application.

13 January 2026