# C4-S12 — Projet final et soutenance

import { AssessmentGrid } from "../../src/components/AssessmentGrid";
import { DownloadCard } from "../../src/components/DownloadCard";
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-S12"
  title="Projet final de Cycle 4, soutenance orale et ouverture Python"
  cycle="4"
  levels="5e, 4e, 3e"
  duration="3 séances de 55 minutes"
  tool="Scratch avancé & Initiation Python"
  grouping="Équipes de 3 ou 4 élèves"
  expressPrep={{
    objective: "Présenter son projet oralement et transcrire un algorithme clé en Python 3.",
    material: "Grille d'évaluation de soutenance + éditeur Python (IDLE / Thonny).",
    trap: "Lire ses notes sans regarder l'auditoire ni démontrer le fonctionnement du jeu.",
    timing: "15' Préparation passage • 30' Soutenances orales • 10' Bilan de cycle",
  }}
  studentUrl="/activites/cycle-4/c4-a06-projet-libre"
  studentId="C4-A06"
  pdfUrl="/downloads/c4-s12-fiche-transition-python-v1.pdf"
/>

<LearningObjectives
  objectives={[
    "Mener à terme un projet informatique d'envergure mobilisant listes, blocs personnalisés, clones et machines à états.",
    "Présenter et soutenir oralement son projet devant un auditoire (démonstration, choix techniques, difficultés surmontées).",
    "Réaliser une première ouverture vers le langage textuel Python en traduisant un algorithme clé du projet.",
  ]}
/>

---

## 🎒 Les 4 grands thèmes de projets Cycle 4

1. **Le jeu d'arcade multi-niveaux :** Machine à états complète, tirs par clones, tableau des meilleurs scores avec listes.
2. **L'Escape Game interactif :** Énigmes logiques imbriquées (opérateurs booléens), inventaire dynamique, gestion de pièces et codes secrets.
3. **Le simulateur d'écosystème / biologique :** Interactions proies-prédateurs avec graphiques statistiques d'évolution de population.
4. **Le quiz intelligent avec banque de données :** Deux listes de 20 questions et réponses aléatoires, chronomètre et score pondéré.

---

## ⏱️ Déroulé de la séquence de soutenance

### Séances 1 & 2 : Finalisation, optimisation et tests

- Intégration des modules, chasse aux bugs résiduels et polissage graphique/sonore.
- Rédaction du diaporama de présentation ou de la fiche de soutenance.

### Séance 3 : La soutenance devant la classe (10 min par équipe)

- **3 min :** Démonstration en direct du jeu/programme.
- **4 min :** Explication d'une partie remarquable du code (procédure personnalisée, gestion des clones ou liste).
- **3 min :** Questions du jury (enseignant et camarades) et autoévaluation.

---

## 🐍 Ouverture : Traduction d'un algorithme en Python

À l'issue de la soutenance, les élèves de 3e découvrent la correspondance textuelle de leur algorithme le plus important :

```python
# Exemple de transcription de la gestion du score et du seuil de victoire
score = 0
vies = 3
joueur_actif = True

def verifier_partie(score_actuel, vies_restantes):
    if score_actuel >= 20:
        print("VICTOIRE ! Niveau complété.")
        return False
    elif vies_restantes <= 0:
        print("GAME OVER ! Réessayez.")
        return False
    return True

# Simulation d'un tour de jeu
score += 5
joueur_actif = verifier_partie(score, vies)
```

<TeacherTip title="Préparation à l'épreuve du Brevet">
  Cette séance prépare directement l'exercice d'algorithmique et de programmation de l'épreuve de
  Mathématiques du Diplôme National du Brevet (DNB).
</TeacherTip>

---

## 📊 Grille d'évaluation de la soutenance

<AssessmentGrid
  criteria={[
    {
      label: "Maîtrise technique et complexité algorithmique",
      withHelp: "Le programme reste basique sans listes ni procédures",
      autonomous: "Intègre listes, blocs personnalisés ou clones avec rigueur",
      transfer: "Optimise l'algorithme et justifie ses choix d'architecture",
    },
    {
      label: "Qualité de la prestation orale",
      withHelp: "Lit ses notes sans regarder l'auditoire",
      autonomous: "Présente clairement la démonstration et le rôle des scripts",
      transfer: "Répond avec aisance et esprit critique aux questions techniques",
    },
    {
      label: "Transition vers les langages textuels",
      withHelp: "Ne fait pas le lien entre le bloc et la ligne de code",
      autonomous: "Identifie les structures équivalentes en Python (if, while, def)",
      transfer: "Rédige un script Python court autonome",
    },
  ]}
/>

---

## 📥 Téléchargements

<DownloadCard
  title="Fiche mémo : Comparatif syntaxique Scratch vs Python (Cycle 4)"
  filename="c4-s12-fiche-transition-python-v1.pdf"
  format="pdf"
  size="1.2 KB"
  version="1.0"
  license="CC-BY-SA 4.0"
  href="/downloads/c4-s12-fiche-transition-python-v1.pdf"
/>

<DownloadCard
  title="Projet Scratch avancé : Jeu d'arcade complet avec clones et listes (.sb3)"
  filename="c4-s12-projet-avance-final.sb3"
  format="sb3"
  size="0.5 KB"
  version="1.0"
  license="CC-BY-SA 4.0"
  href="/projects/c4-s12-projet-avance-final.sb3"
/>


<LessonNavigation
  prevUrl="/cycle-4/c4-s11-conception-collaborative"
  prevId="C4-S11"
  prevTitle="Conception collaborative"
  cycleUrl="/cycle-4"
  cycleTitle="Vue d'ensemble du Cycle 4"
/>
