# C4-S06 — Recherche et statistiques

import { AssessmentGrid } from "../../src/components/AssessmentGrid";
import { Correction } from "../../src/components/Correction";
import { ExerciseCard } from "../../src/components/ExerciseCard";
import { LearningObjectives } from "../../src/components/LearningObjectives";
import { LessonHeader } from "../../src/components/LessonHeader";
import { LessonNavigation } from "../../src/components/LessonNavigation";
import { TeacherTip } from "../../src/components/TeacherTip";

<LessonHeader
  id="C4-S06"
  title="Recherche linéaire et calculs statistiques dans une collection de données"
  cycle="4"
  levels="5e, 4e, 3e"
  duration="55 minutes"
  tool="Scratch"
  grouping="Binômes"
  expressPrep={{
    objective: "Calculer la moyenne, le minimum et le maximum d'une liste de nombres avec un parcours borné.",
    material: "Jeu de données de températures ou de notes.",
    trap: "Oublier de réinitialiser la variable Somme à 0 avant le parcours de liste.",
    timing: "15' Algorithme de parcours • 25' Calculs statistiques • 15' Défi",
  }}
/>

<LearningObjectives
  objectives={[
    "Implémenter l'algorithme de recherche linéaire (Linear Search) dans une liste de valeurs.",
    "Calculer la somme, la moyenne arithmétique, le minimum et le maximum d'une série numérique.",
    "Traiter des données concrètes interdisciplinaires (relevés de températures ou notes scolaires).",
  ]}
/>

---

## 🎒 Matériel & Préparation

- Liste de 10 notes ou 10 relevés de températures météorologiques.

---

## ⏱️ Déroulé de la séance

### 1. Algorithme de recherche linéaire (15 min)

Comment savoir si une valeur V est présente dans une liste ?

- On démarre à l'index 1.
- On compare chaque case avec V.
- Si on trouve, on note la position et on s'arrête (`trouvé = vrai`).
- Si on arrive au bout sans trouver, `trouvé = faux`.

### 2. Atelier statistique (30 min)

<ExerciseCard title="Mission : Le calculateur de moyenne et de note maximale" difficulty="Moyen">
  À partir d'une liste `Notes` contenant 5 valeurs entières : 1. Calculer la **somme** des notes
  avec un accumulateur. 2. Déduire la **moyenne** (Moyenne = Somme / Nombre de notes). 3. Déterminer
  la **note maximale** de la série.
</ExerciseCard>

<Correction title="Architecture de l'algorithme de calcul de moyenne et maximum">

```text
[quand le drapeau vert est cliqué]
mettre [Somme v] à 0
mettre [Max v] à (élément (1) de [Notes v])
mettre [index v] à 1

répéter (longueur de [Notes v]) fois
    // 1. Accumulation pour la somme
    ajouter (élément (index) de [Notes v]) à [Somme v]

    // 2. Recherche du maximum
    si <(élément (index) de [Notes v]) > (Max)> alors
        mettre [Max v] à (élément (index) de [Notes v])

    ajouter (1) à [index v]

mettre [Moyenne v] à ((Somme) / (longueur de [Notes v]))

dire (regrouper [Moyenne : ] (regrouper (Moyenne) (regrouper [ | Meilleure note : ] (Max)))) pendant 4 secondes
```

</Correction>

### 3. Bilan mathématique & Complexité (10 min)

Le temps de calcul d'une recherche linéaire est proportionnel au nombre d'éléments dans la liste (complexité linéaire).

<TeacherTip title="Lien avec les Mathématiques 3e">
  Lien direct avec le programme de statistiques de 3e : effectif total, moyenne pondérée, étendue et
  valeurs extrêmes.
</TeacherTip>

---

## 📊 Grille d'évaluation

<AssessmentGrid
  criteria={[
    {
      label: "Utilise la variable d'accumulation pour calculer la somme",
      withHelp: "Additionne les éléments manuellement sans boucle",
      autonomous: "Initialise la somme à 0 et accumule dans une boucle",
      transfer: "Calcule une moyenne avec des coefficients",
    },
    {
      label: "Trouve la valeur maximale avec un comparateur",
      withHelp:
        "Initialise le maximum à 0 au lieu du premier élément (problème avec nombres négatifs)",
      autonomous: "Initialise Max avec l'élément 1 et compare à chaque itération",
      transfer: "Trouve également la valeur minimale et l'étendue de la série",
    },
  ]}
/>


<LessonNavigation
  prevUrl="/cycle-4/c4-s05-listes"
  prevId="C4-S05"
  prevTitle="Listes"
  nextUrl="/cycle-4/c4-s07-blocs-personnalises"
  nextId="C4-S07"
  nextTitle="Blocs personnalisés"
  cycleUrl="/cycle-4"
  cycleTitle="Vue d'ensemble du Cycle 4"
/>
