Tous les cours : remplacement des tirets cadratins

This commit is contained in:
2026-06-18 19:03:42 +02:00
parent 8bbb7f7800
commit 5f1bc7e838
49 changed files with 167 additions and 167 deletions

View File

@@ -120,9 +120,9 @@ Recherche de 7 dans l'ABR :
### Complexité
- **Meilleur cas** : O(1) la valeur est à la racine
- **Cas moyen** (arbre équilibré) : **O(log n)** on divise par 2 à chaque étape
- **Pire cas** (arbre dégénéré/filiforme) : O(n) l'arbre ressemble à une liste
- **Meilleur cas** : O(1) - la valeur est à la racine
- **Cas moyen** (arbre équilibré) : **O(log n)** - on divise par 2 à chaque étape
- **Pire cas** (arbre dégénéré/filiforme) : O(n) - l'arbre ressemble à une liste
---
@@ -181,7 +181,7 @@ Insertion successive de : 8, 3, 10, 1, 6, 14, 4, 7, 13
### Complexité
- **Cas moyen** : **O(log n)**
- **Pire cas** : O(n) si on insère des valeurs déjà triées, l'arbre devient filiforme
- **Pire cas** : O(n) - si on insère des valeurs déjà triées, l'arbre devient filiforme
---

View File

@@ -1,4 +1,4 @@
# TP : L'algorithme de recommandation Comment TikTok/YouTube vous connaît
# TP : L'algorithme de recommandation - Comment TikTok/YouTube vous connaît
> **Thème** : Arbres de décision et algorithmes de recommandation

View File

@@ -194,7 +194,7 @@ Sa démonstration repose sur un **raisonnement par l'absurde** : on suppose qu'u
#### Le programme qui détermine l'arrêt est lui-même indécidable
On peut même dire *absurde* et c'est justement le mot qu'on va utiliser.
On peut même dire *absurde* - et c'est justement le mot qu'on va utiliser.
En raisonnement par l'absurde, on suppose vraie la chose qu'on veut réfuter, puis on montre que cette hypothèse aboutit à une contradiction logique.
@@ -255,7 +255,7 @@ Nous venons donc de prouver l'impossible. Pas mal non ?
Turing prouve donc qu'il n'est pas possible d'écrire une fonction capable de dire, dans tous les cas, si un programme quelconque s'arrête ou non.
Si une telle fonction existait, on pourrait l'utiliser pour résoudre `absurde(absurde)` et on vient de montrer que c'est impossible. Le problème de l'arrêt est donc **indécidable** : aucun algorithme ne peut le résoudre.
Si une telle fonction existait, on pourrait l'utiliser pour résoudre `absurde(absurde)` - et on vient de montrer que c'est impossible. Le problème de l'arrêt est donc **indécidable** : aucun algorithme ne peut le résoudre.
Si la machine ne peut pas nous aider ici, il vous faudra toujours, en tant que programmeur, vérifier vous-même que votre code se termine.
@@ -263,11 +263,11 @@ Si la machine ne peut pas nous aider ici, il vous faudra toujours, en tant que p
### À retenir
**Gödel (1931) Incomplétude des systèmes formels**
**Gödel (1931) - Incomplétude des systèmes formels**
Dans tout système logique suffisamment puissant pour décrire l'arithmétique, il existe des énoncés **vrais mais indémontrables** dans ce système. Autrement dit, les mathématiques ont des limites intrinsèques : certaines vérités échappent à toute preuve formelle.
**Turing (1936) Indécidabilité du problème de l'arrêt**
**Turing (1936) - Indécidabilité du problème de l'arrêt**
Il n'existe **aucun algorithme** capable de déterminer, pour tout programme et toute entrée, si ce programme s'arrête ou tourne indéfiniment. Le problème de l'arrêt est indécidable.
@@ -299,7 +299,7 @@ Autrement dit : les mathématiques ne peuvent pas tout prouver. Certaines vérit
Gödel travaille sur la notion d'**axiome** : une proposition qu'on accepte comme vraie sans la démontrer, et qui sert de point de départ à un raisonnement.
Par exemple, en géométrie euclidienne : "par deux points distincts, il passe une droite et une seule" est un axiome. On ne le prouve pas on le pose.
Par exemple, en géométrie euclidienne : "par deux points distincts, il passe une droite et une seule" est un axiome. On ne le prouve pas - on le pose.
Gödel montre que quel que soit l'ensemble d'axiomes choisi, il restera toujours des énoncés que ce système ne peut ni prouver ni réfuter.
@@ -310,7 +310,7 @@ Gödel (1931) et Turing (1936) arrivent indépendamment à des conclusions simil
- Gödel montre les **limites de la démonstration mathématique**
- Turing montre les **limites du calcul algorithmique**
Les deux résultats disent, chacun à leur manière, qu'il existe des questions auxquelles ni les mathématiques ni les ordinateurs ne peuvent répondre non par manque de puissance, mais par nature.
Les deux résultats disent, chacun à leur manière, qu'il existe des questions auxquelles ni les mathématiques ni les ordinateurs ne peuvent répondre - non par manque de puissance, mais par nature.
--------

View File

@@ -1,4 +1,4 @@
# TP : Le Barbier, le Menteur et la Machine Paradoxes et Indécidabilité
# TP : Le Barbier, le Menteur et la Machine - Paradoxes et Indécidabilité
> **Thème** : Comprendre l'indécidabilité à travers les paradoxes logiques

View File

@@ -1,4 +1,4 @@
# TP : Les 6 degrés de Kevin Bacon Le petit monde des réseaux
# TP : Les 6 degrés de Kevin Bacon - Le petit monde des réseaux
> **Thème** : Parcours de graphes et théorie des réseaux sociaux
@@ -222,7 +222,7 @@ def visualiser_graphe(graphe, acteur_central="Kevin Bacon"):
---
## Partie 5 : Extension Votre propre réseau
## Partie 5 : Extension - Votre propre réseau
### Exercice 6 : Réseau social de la classe

View File

@@ -1,4 +1,4 @@
# TP : Créer son premier package Python MathTools
# TP : Créer son premier package Python - MathTools
> **Thème** : Modularité, documentation et tests

View File

@@ -311,7 +311,7 @@ Ici `super().__repr__()` appelle la version de la classe parent pour ne pas dupl
### isinstance()
La fonction native `isinstance()` permet de vérifier si un objet est une instance d'une classe donnée y compris via l'héritage :
La fonction native `isinstance()` permet de vérifier si un objet est une instance d'une classe donnée - y compris via l'héritage :
```python
>>> eb = EtudiantBoursier('Martin', 'Léa', 'NSI', 17, 250)

View File

@@ -1,4 +1,4 @@
# TP : Pokémon Arena Programmation Orientée Objet
# TP : Pokémon Arena - Programmation Orientée Objet
> **Thème** : Classes, attributs, méthodes, interactions entre objets
@@ -20,7 +20,7 @@ Créez une classe `Pokemon` avec les caractéristiques suivantes :
**Attributs :**
- `nom` : nom du Pokémon (str)
- `type_pokemon` : type élémentaire (str) "Feu", "Eau", "Plante", "Electrik", etc.
- `type_pokemon` : type élémentaire (str) - "Feu", "Eau", "Plante", "Electrik", etc.
- `niveau` : niveau du Pokémon (int, par défaut 1)
- `pv_max` : points de vie maximum (int, par défaut 100)
- `pv` : points de vie actuels (int, initialisé à `pv_max`)
@@ -398,7 +398,7 @@ Modifiez la classe `Pokemon` pour qu'un Pokémon possède une liste de capacité
---
## Partie 5 : Héritage Spécialiser les Pokémon
## Partie 5 : Héritage - Spécialiser les Pokémon
> ⚠️ Cette section est hors programme NSI.
>
@@ -494,13 +494,13 @@ Relisez le dictionnaire `FAIBLESSES` de l'exercice 3. Maintenant que vous avez d
| Classe | Hérite de | Attributs supplémentaires | Méthodes modifiées |
|--------|-----------|---------------------------|--------------------|
| `Pokemon` | | nom, type, niveau, pv, attaque | attaquer(), subir_degats(), est_ko() |
| `PokemonFeu` | `Pokemon` | | attaquer() |
| `PokemonEau` | `Pokemon` | | attaquer() |
| `PokemonPlante` | `Pokemon` | | attaquer() |
| `Dresseur` | | nom, equipe | ajouter_pokemon(), tous_ko() |
| `Combat` | | dresseur1, dresseur2, tour | lancer_combat() |
| `CentrePokemon` | | ville | soigner_equipe() |
| `Pokemon` | - | nom, type, niveau, pv, attaque | attaquer(), subir_degats(), est_ko() |
| `PokemonFeu` | `Pokemon` | - | attaquer() |
| `PokemonEau` | `Pokemon` | - | attaquer() |
| `PokemonPlante` | `Pokemon` | - | attaquer() |
| `Dresseur` | - | nom, equipe | ajouter_pokemon(), tous_ko() |
| `Combat` | - | dresseur1, dresseur2, tour | lancer_combat() |
| `CentrePokemon` | - | ville | soigner_equipe() |
---

View File

@@ -309,7 +309,7 @@ Top 5 artistes : ['The Weeknd', 'Michael Jackson', 'Metallica', 'Queen', 'Billie
---
## Partie 5 : Bonus Récursivité
## Partie 5 : Bonus - Récursivité
### Exercice 7 : Implémenter reduce sans boucle

View File

@@ -1,4 +1,4 @@
# TP : Créer son Spotify Wrapped Programmation Fonctionnelle
# TP : Créer son Spotify Wrapped - Programmation Fonctionnelle
> **Thème** : Paradigmes de programmation, fonctions lambda, map, filter, reduce
@@ -355,7 +355,7 @@ print("=" * 40)
---
## Partie 5 : Bonus Récursivité
## Partie 5 : Bonus - Récursivité
### Exercice 7 : Implémenter reduce sans boucle

View File

@@ -1,4 +1,4 @@
# Corrigé des exercices Gestion des processus
# Corrigé des exercices - Gestion des processus
---

View File

@@ -1,4 +1,4 @@
# Exercices Gestion des processus
# Exercices - Gestion des processus
## 1. QCM

View File

@@ -1,4 +1,4 @@
# TP : Simulateur d'Ordonnanceur Gestion des Processus
# TP : Simulateur d'Ordonnanceur - Gestion des Processus
> **Thème** : Processus, états, ordonnancement, interblocage
@@ -23,7 +23,7 @@ Créez une classe `Processus` représentant un processus avec ses caractéristiq
- `nom` : nom du processus (str)
- `duree_totale` : durée d'exécution totale nécessaire (int, en unités de temps)
- `duree_restante` : durée restant à exécuter (int)
- `etat` : état actuel du processus (str) "nouveau", "pret", "elu", "bloque", "termine"
- `etat` : état actuel du processus (str) - "nouveau", "pret", "elu", "bloque", "termine"
- `priorite` : niveau de priorité (int, optionnel, par défaut 0)
**Méthodes :**

View File

@@ -1,6 +1,6 @@
# Exercices Programmation Dynamique
# Exercices - Programmation Dynamique
## Exercice 1 L'escalier
## Exercice 1 - L'escalier
Vous souhaitez monter un escalier de `n` marches. À chaque étape, vous pouvez monter **1 marche** ou **2 marches**. Combien existe-t-il de façons différentes d'atteindre la n-ième marche ?
@@ -24,7 +24,7 @@ Vous souhaitez monter un escalier de `n` marches. À chaque étape, vous pouvez
---
## Exercice 2 Rendu de monnaie revisité
## Exercice 2 - Rendu de monnaie revisité
On dispose de pièces de valeurs **[2, 5, 10]** (en centimes).
@@ -41,7 +41,7 @@ On dispose de pièces de valeurs **[2, 5, 10]** (en centimes).
---
## Exercice 3 Sac à dos : à la main et en code
## Exercice 3 - Sac à dos : à la main et en code
On dispose des objets suivants, avec un sac de capacité **6 kg** :
@@ -62,7 +62,7 @@ On dispose des objets suivants, avec un sac de capacité **6 kg** :
---
## Exercice 4 Triangle de Pascal ★
## Exercice 4 - Triangle de Pascal ★
Le **triangle de Pascal** est construit selon la règle suivante :
- Les bords valent toujours 1

View File

@@ -189,7 +189,7 @@ print(f"Objets choisis : {choix}")
Avec n = nombre d'objets, W = capacité du sac.
> **Attention :** si W est très grand, cette complexité peut devenir prohibitive. Le sac à dos 0/1 est un problème NP-difficile la programmation dynamique le résout efficacement pour des valeurs raisonnables de W.
> **Attention :** si W est très grand, cette complexité peut devenir prohibitive. Le sac à dos 0/1 est un problème NP-difficile - la programmation dynamique le résout efficacement pour des valeurs raisonnables de W.
---

View File

@@ -1,4 +1,4 @@
# TP Le Donjon du Dragon
# TP - Le Donjon du Dragon
## Contexte
@@ -26,7 +26,7 @@ Un chemin possible : (0,0)→(1,0)→(1,1)→(1,2)→(2,2)→(2,3) → or = 3+5+
Est-ce le meilleur chemin ? C'est ce que vous allez découvrir.
## Partie 1 Comprendre le problème
## Partie 1 - Comprendre le problème
**Question 1.** Sur la grille ci-dessus, listez tous les chemins possibles de `(0,0)` à `(2,3)` en ne se déplaçant que vers la droite ou vers le bas. Combien y en a-t-il ?
@@ -34,7 +34,7 @@ Est-ce le meilleur chemin ? C'est ce que vous allez découvrir.
**Question 3.** Pour une grille de dimensions `n × m`, combien y a-t-il de chemins possibles en tout ? *(Indice : c'est une formule combinatoire.)*
## Partie 2 Formulation récursive
## Partie 2 - Formulation récursive
Notons `donjon(i, j)` l'or maximum qu'on peut ramasser depuis `(0, 0)` jusqu'à `(i, j)`.
@@ -59,7 +59,7 @@ n, m = len(grille), len(grille[0])
print(donjon_naif(grille, n-1, m-1)) # doit afficher 22
```
## Partie 3 Version Top-Down (mémoïsation)
## Partie 3 - Version Top-Down (mémoïsation)
**Question 7.** La version naïve recalcule-t-elle des sous-problèmes plusieurs fois ? Pour répondre, ajoutez un compteur d'appels et testez sur la grille ci-dessus.
@@ -80,7 +80,7 @@ def donjon_memo(grille):
**Question 9.** Vérifiez que vous obtenez le même résultat que la version naïve.
## Partie 4 Version Bottom-Up (tableau)
## Partie 4 - Version Bottom-Up (tableau)
**Question 10.** Remplissez à la main le tableau `t[i][j]` représentant l'or maximum qu'on peut ramasser **depuis `(0,0)` jusqu'à `(i,j)`** pour la grille de l'exemple.
@@ -103,7 +103,7 @@ def donjon_bottom_up(grille):
**Question 12.** Vérifiez que vous obtenez le même résultat que les versions précédentes.
## Partie 5 Bonus : retrouver le chemin optimal
## Partie 5 - Bonus : retrouver le chemin optimal
**Question 13.** *(Bonus)* Modifiez `donjon_bottom_up` pour qu'elle retourne non seulement la valeur optimale, mais aussi **la liste des cases du chemin optimal**.

View File

@@ -1,4 +1,4 @@
# TP L'Algorithme du Vaccin
# TP - L'Algorithme du Vaccin
## Contexte
@@ -26,7 +26,7 @@ Temps disponible : **10 heures**
---
## Partie 1 Comprendre le problème
## Partie 1 - Comprendre le problème
**Question 1.** En utilisant l'algorithme glouton (trier par ratio efficacité/temps décroissant), quels anticorps choisissez-vous ? Quelle est l'efficacité totale obtenue ?
@@ -36,7 +36,7 @@ Temps disponible : **10 heures**
---
## Partie 2 Formulation récursive
## Partie 2 - Formulation récursive
Notons `vaccin(i, t)` l'efficacité maximale qu'on peut atteindre en choisissant parmi les `i` premiers anticorps avec un temps restant de `t` heures.
@@ -60,7 +60,7 @@ print(vaccin_naif(anticorps, n, 10)) # doit afficher 140
---
## Partie 3 Version Top-Down (mémoïsation)
## Partie 3 - Version Top-Down (mémoïsation)
**Question 7.** Pourquoi la version naïve recalcule-t-elle des sous-problèmes ? Donnez un exemple de sous-problème qui serait recalculé plusieurs fois.
@@ -81,7 +81,7 @@ def vaccin_memo(anticorps, temps_total):
---
## Partie 4 Version Bottom-Up (tableau)
## Partie 4 - Version Bottom-Up (tableau)
**Question 10.** Remplissez à la main le tableau `tableau[i][t]` pour les **3 premiers anticorps** (Alpha, Bêta, Gamma) avec un temps total de **6 heures** :
@@ -113,7 +113,7 @@ def vaccin_bottom_up(anticorps, temps_total):
---
## Partie 5 Reconstruction de la solution
## Partie 5 - Reconstruction de la solution
**Question 13.** Modifiez `vaccin_bottom_up` pour qu'elle retourne non seulement l'efficacité maximale, mais aussi la **liste des anticorps sélectionnés** :
@@ -144,7 +144,7 @@ def vaccin_reconstruction(anticorps, temps_total):
---
## Partie 6 Bonus : contraintes supplémentaires
## Partie 6 - Bonus : contraintes supplémentaires
**Question 16.** *(Bonus)* En réalité, certains anticorps sont **incompatibles** entre eux (ils réagissent chimiquement). Supposez que les anticorps Alpha et Gamma ne peuvent pas être produits ensemble.

View File

@@ -5,8 +5,8 @@
| 2 - b | Diviser pour régner : tri fusion, dichotomie récursive | Exercices diviser pour régner |
| 3 - a | POO : classes, attributs, méthodes, encapsulation | TP Pokémon |
| 3 - b | Paradigmes : fonctionnel, impératif, orienté objet | TP SpotifyWrapped |
| 4 - a | Structures linéaires : Listes chaînées maillon, insertion, suppression, récursivité | TP Playlist |
| 4 - b | Structures linéaires : Pile, File implémentation et usages | TP Pile, TP File, TP Navigateur |
| 4 - a | Structures linéaires : Listes chaînées - maillon, insertion, suppression, récursivité | TP Playlist |
| 4 - b | Structures linéaires : Pile, File - implémentation et usages | TP Pile, TP File, TP Navigateur |
| 5 - a | Bases de données : modèle relationnel, conception, clés | TP StreamFlix |
| 5 - b | SQL : requêtes, jointures, agrégation | TP Streaming Musical |
| 6 | Arbres : arbres binaires, ABR, parcours, applications | TP Livre Dont Vous Êtes le Héros, TP Recommandation |

View File

@@ -1,4 +1,4 @@
# Suivi de projet [Nom du projet]
# Suivi de projet - [Nom du projet]
**Élève(s) :**
**Classe :**
@@ -11,7 +11,7 @@
*Compléter après chaque séance.*
### Séance 1 [Date]
### Séance 1 - [Date]
**Objectif de la séance :**
@@ -25,7 +25,7 @@
---
### Séance 2 [Date]
### Séance 2 - [Date]
**Objectif de la séance :**

View File

@@ -1,10 +1,10 @@
# Jalons Le Jeu de la Vie
# Jalons - Le Jeu de la Vie
> Progression suggérée sur ~10 séances (septembre → février)
---
## Phase 1 Analyse et modélisation (Séances 1-2)
## Phase 1 - Analyse et modélisation (Séances 1-2)
**Objectif :** Comprendre le problème et choisir les structures de données.
@@ -20,7 +20,7 @@
---
## Phase 2 Règles du jeu (Séances 3-4)
## Phase 2 - Règles du jeu (Séances 3-4)
**Objectif :** Implémenter le cœur de la simulation.
@@ -29,11 +29,11 @@
- Écrire `generation_suivante(grille)` → calcule la grille à l'étape suivante
- Tester manuellement sur un petit exemple (3×3)
**Point d'attention :** la prochaine génération doit être calculée **simultanément** pour toutes les cellules on ne modifie pas la grille en cours de calcul.
**Point d'attention :** la prochaine génération doit être calculée **simultanément** pour toutes les cellules - on ne modifie pas la grille en cours de calcul.
---
## Phase 3 Simulation et configurations (Séances 5-6)
## Phase 3 - Simulation et configurations (Séances 5-6)
**Objectif :** Lancer une simulation complète et observer des comportements.
@@ -46,7 +46,7 @@
---
## Phase 4 Affichage graphique (Séances 7-8)
## Phase 4 - Affichage graphique (Séances 7-8)
**Objectif :** Rendre la simulation visuelle et interactive.
@@ -57,7 +57,7 @@
---
## Phase 5 Finitions et documentation (Séances 9-10)
## Phase 5 - Finitions et documentation (Séances 9-10)
**Objectif :** Préparer le rendu et le Grand Oral.
@@ -77,4 +77,4 @@
---
Auteur : Florian Mathieu Licence CC BY NC
Auteur : Florian Mathieu - Licence CC BY NC

View File

@@ -1,4 +1,4 @@
# Projet Le Jeu de la Vie
# Projet - Le Jeu de la Vie
> En 1970, le mathématicien John Horton Conway invente un automate cellulaire capable de générer une vie artificielle à partir de quatre règles simples. Cinquante ans plus tard, des chercheurs utilisent encore ce modèle pour simuler des phénomènes biologiques, sociaux et physiques.
@@ -21,7 +21,7 @@ Ces règles font émerger des comportements complexes : structures stables, osci
| Fonctions pures | Paradigmes |
| Classes et objets | POO |
| Récursivité / itération | Récursivité |
| Visualisation (matplotlib / Pyxel) | |
| Visualisation (matplotlib / Pyxel) | - |
## Cahier des charges
@@ -44,11 +44,11 @@ Ces règles font émerger des comportements complexes : structures stables, osci
## Ressources
- `5_projet_le_jeu_de_la_vie.pdf` consignes détaillées (dans le dossier parent)
- [Conway's Game of Life Wikipedia](https://fr.wikipedia.org/wiki/Jeu_de_la_vie)
- [LifeWiki patterns célèbres](https://conwaylife.com/wiki/)
- [Pyxel moteur graphique Python](https://github.com/kitao/pyxel)
- `5_projet_le_jeu_de_la_vie.pdf` - consignes détaillées (dans le dossier parent)
- [Conway's Game of Life - Wikipedia](https://fr.wikipedia.org/wiki/Jeu_de_la_vie)
- [LifeWiki - patterns célèbres](https://conwaylife.com/wiki/)
- [Pyxel - moteur graphique Python](https://github.com/kitao/pyxel)
---
Auteur : Florian Mathieu Licence CC BY NC
Auteur : Florian Mathieu - Licence CC BY NC

View File

@@ -1,4 +1,4 @@
# Suivi de projet [Nom du projet]
# Suivi de projet - [Nom du projet]
**Élève(s) :**
**Classe :**
@@ -11,7 +11,7 @@
*Compléter après chaque séance.*
### Séance 1 [Date]
### Séance 1 - [Date]
**Objectif de la séance :**
@@ -25,7 +25,7 @@
---
### Séance 2 [Date]
### Séance 2 - [Date]
**Objectif de la séance :**

View File

@@ -1,10 +1,10 @@
# Jalons Labyrinthe
# Jalons - Labyrinthe
> Progression suggérée sur ~10 séances (septembre → février)
---
## Phase 1 Modélisation (Séances 1-2)
## Phase 1 - Modélisation (Séances 1-2)
**Objectif :** Représenter un labyrinthe en Python.
@@ -24,7 +24,7 @@
---
## Phase 2 Génération (Séances 3-4)
## Phase 2 - Génération (Séances 3-4)
**Objectif :** Générer un labyrinthe parfait aléatoirement.
@@ -41,7 +41,7 @@
---
## Phase 3 Résolution (Séances 5-6)
## Phase 3 - Résolution (Séances 5-6)
**Objectif :** Trouver le chemin de l'entrée à la sortie.
@@ -54,7 +54,7 @@
---
## Phase 4 Affichage graphique (Séances 7-8)
## Phase 4 - Affichage graphique (Séances 7-8)
**Objectif :** Visualiser la génération et la résolution.
@@ -65,7 +65,7 @@
---
## Phase 5 Finitions et documentation (Séances 9-10)
## Phase 5 - Finitions et documentation (Séances 9-10)
**Objectif :** Préparer le rendu et le Grand Oral.
@@ -85,4 +85,4 @@
---
Auteur : Florian Mathieu Licence CC BY NC
Auteur : Florian Mathieu - Licence CC BY NC

View File

@@ -1,6 +1,6 @@
# Projet Labyrinthe
# Projet - Labyrinthe
> Générer un labyrinthe parfait (sans boucles, avec un unique chemin entre deux cases) et le résoudre automatiquement un problème classique qui mobilise graphes, récursivité et algorithmique de recherche.
> Générer un labyrinthe parfait (sans boucles, avec un unique chemin entre deux cases) et le résoudre automatiquement - un problème classique qui mobilise graphes, récursivité et algorithmique de recherche.
## Contexte
@@ -41,11 +41,11 @@ Une base de code est disponible dans `../src/maze.py` : la classe `Maze` lit un
## Ressources
- `../src/maze.py` classe `Maze` de base (lecture depuis fichier texte)
- `../src/maze.zip` archive complète avec exemples de labyrinthes
- [Maze generation algorithms Wikipedia](https://en.wikipedia.org/wiki/Maze_generation_algorithm)
- [Algorithme A* Wikipedia](https://fr.wikipedia.org/wiki/Algorithme_A*)
- `../src/maze.py` - classe `Maze` de base (lecture depuis fichier texte)
- `../src/maze.zip` - archive complète avec exemples de labyrinthes
- [Maze generation algorithms - Wikipedia](https://en.wikipedia.org/wiki/Maze_generation_algorithm)
- [Algorithme A* - Wikipedia](https://fr.wikipedia.org/wiki/Algorithme_A*)
---
Auteur : Florian Mathieu Licence CC BY NC
Auteur : Florian Mathieu - Licence CC BY NC

View File

@@ -1,4 +1,4 @@
# Suivi de projet [Nom du projet]
# Suivi de projet - [Nom du projet]
**Élève(s) :**
**Classe :**
@@ -11,7 +11,7 @@
*Compléter après chaque séance.*
### Séance 1 [Date]
### Séance 1 - [Date]
**Objectif de la séance :**
@@ -25,7 +25,7 @@
---
### Séance 2 [Date]
### Séance 2 - [Date]
**Objectif de la séance :**

View File

@@ -1,10 +1,10 @@
# Jalons Mastermind & Algorithmes Génétiques
# Jalons - Mastermind & Algorithmes Génétiques
> Progression suggérée sur ~10 séances (septembre → février)
---
## Phase 1 Comprendre les algorithmes génétiques (Séances 1-2)
## Phase 1 - Comprendre les algorithmes génétiques (Séances 1-2)
**Objectif :** Saisir l'analogie entre évolution biologique et optimisation.
@@ -18,7 +18,7 @@
---
## Phase 2 L'individu : la classe Combinaison (Séances 3-4)
## Phase 2 - L'individu : la classe Combinaison (Séances 3-4)
**Objectif :** Implémenter la brique de base.
@@ -31,7 +31,7 @@
---
## Phase 3 Le problème : la classe Mastermind (Séances 5-6)
## Phase 3 - Le problème : la classe Mastermind (Séances 5-6)
**Objectif :** Définir comment évaluer une combinaison.
@@ -43,7 +43,7 @@
---
## Phase 4 L'algorithme : la classe AlgoGen (Séances 7-8)
## Phase 4 - L'algorithme : la classe AlgoGen (Séances 7-8)
**Objectif :** Assembler toutes les briques.
@@ -56,7 +56,7 @@
---
## Phase 5 Tests, ajustement et documentation (Séances 9-10)
## Phase 5 - Tests, ajustement et documentation (Séances 9-10)
**Objectif :** Valider et optimiser.
@@ -77,4 +77,4 @@
---
Auteur : Florian Mathieu Licence CC BY NC
Auteur : Florian Mathieu - Licence CC BY NC

View File

@@ -1,6 +1,6 @@
# Projet Mastermind & Algorithmes Génétiques
# Projet - Mastermind & Algorithmes Génétiques
> Darwin rencontre la programmation : faire évoluer une population de combinaisons pour qu'elle converge vers la solution cachée du Mastermind sans jamais la connaître à l'avance.
> Darwin rencontre la programmation : faire évoluer une population de combinaisons pour qu'elle converge vers la solution cachée du Mastermind - sans jamais la connaître à l'avance.
## Contexte
@@ -9,9 +9,9 @@ Le **Mastermind** est un jeu de déduction : un joueur choisit une combinaison s
Plutôt que de coder une IA par force brute, ce projet applique un **algorithme génétique** : on fait évoluer une population de combinaisons candidates en s'inspirant de la sélection naturelle (tournoi, croisement, mutation) jusqu'à trouver la solution.
Une base de code complète est disponible dans `../src/` :
- `algo_gen.py` framework de l'algorithme génétique
- `combinaison.py` représentation d'un individu (une combinaison)
- `src_mastermind_fiche.md` fiche TP détaillée avec toutes les consignes
- `algo_gen.py` - framework de l'algorithme génétique
- `combinaison.py` - représentation d'un individu (une combinaison)
- `src_mastermind_fiche.md` - fiche TP détaillée avec toutes les consignes
## Compétences mobilisées
@@ -21,7 +21,7 @@ Une base de code complète est disponible dans `../src/` :
| Paradigme fonctionnel (fonctions pures) | Paradigmes |
| Algorithmes d'optimisation | Algorithmique |
| Listes, compréhensions de listes | Programmation |
| Probabilités appliquées | |
| Probabilités appliquées | - |
## Cahier des charges
@@ -42,12 +42,12 @@ Une base de code complète est disponible dans `../src/` :
## Ressources
- `../src/src_mastermind_fiche.md` fiche TP complète avec toutes les consignes
- `../src/algo_gen.py` squelette du framework générique
- `../src/combinaison.py` classe individu à compléter
- [Algorithme génétique Wikipedia](https://fr.wikipedia.org/wiki/Algorithme_génétique)
- [Mastermind Wikipedia](https://fr.wikipedia.org/wiki/Mastermind)
- `../src/src_mastermind_fiche.md` - fiche TP complète avec toutes les consignes
- `../src/algo_gen.py` - squelette du framework générique
- `../src/combinaison.py` - classe individu à compléter
- [Algorithme génétique - Wikipedia](https://fr.wikipedia.org/wiki/Algorithme_génétique)
- [Mastermind - Wikipedia](https://fr.wikipedia.org/wiki/Mastermind)
---
Auteur : Florian Mathieu Licence CC BY NC
Auteur : Florian Mathieu - Licence CC BY NC

View File

@@ -1,4 +1,4 @@
# Suivi de projet [Nom du projet]
# Suivi de projet - [Nom du projet]
**Élève(s) :**
**Classe :**
@@ -11,7 +11,7 @@
*Compléter après chaque séance.*
### Séance 1 [Date]
### Séance 1 - [Date]
**Objectif de la séance :**
@@ -25,7 +25,7 @@
---
### Séance 2 [Date]
### Séance 2 - [Date]
**Objectif de la séance :**

View File

@@ -1,15 +1,15 @@
# Jalons Wa-Tor
# Jalons - Wa-Tor
> Progression suggérée sur ~10 séances (septembre → février)
---
## Phase 1 Modélisation (Séances 1-2)
## Phase 1 - Modélisation (Séances 1-2)
**Objectif :** Comprendre le système proie-prédateur et choisir les structures de données.
- Lire le `README.md` et les règles du Wa-Tor
- Identifier les entités : grille, thon, requin quels attributs ont-ils ?
- Identifier les entités : grille, thon, requin - quels attributs ont-ils ?
- Choisir une représentation de la grille : liste 2D, dictionnaire `{(i,j): animal}` ?
- Écrire `creer_grille(n, m, nb_thons, nb_requins)` → grille initialisée aléatoirement
- Écrire `afficher(grille)` → affichage terminal (ex. `T` thon, `R` requin, `.` vide)
@@ -21,7 +21,7 @@
---
## Phase 2 Les thons (Séances 3-4)
## Phase 2 - Les thons (Séances 3-4)
**Objectif :** Implémenter le comportement des proies.
@@ -32,7 +32,7 @@
---
## Phase 3 Les requins (Séances 5-6)
## Phase 3 - Les requins (Séances 5-6)
**Objectif :** Implémenter les prédateurs.
@@ -46,7 +46,7 @@
---
## Phase 4 Simulation complète (Séances 7-8)
## Phase 4 - Simulation complète (Séances 7-8)
**Objectif :** Assembler et observer.
@@ -55,11 +55,11 @@
- Observer les dynamiques : les populations oscillent-elles ? L'une disparaît-elle ?
- Faire varier les paramètres et noter les effets
**Point d'attention :** chaque animal ne doit agir qu'une seule fois par étape utiliser un marqueur "déjà déplacé" pour éviter qu'un animal soit traité deux fois.
**Point d'attention :** chaque animal ne doit agir qu'une seule fois par étape - utiliser un marqueur "déjà déplacé" pour éviter qu'un animal soit traité deux fois.
---
## Phase 5 Visualisation et finitions (Séances 9-10)
## Phase 5 - Visualisation et finitions (Séances 9-10)
**Objectif :** Affichage graphique et préparation du Grand Oral.
@@ -79,4 +79,4 @@
---
Auteur : Florian Mathieu Licence CC BY NC
Auteur : Florian Mathieu - Licence CC BY NC

View File

@@ -1,4 +1,4 @@
# Suivi de projet [Nom du projet]
# Suivi de projet - [Nom du projet]
**Élève(s) :**
**Classe :**
@@ -11,7 +11,7 @@
*Compléter après chaque séance.*
### Séance 1 [Date]
### Séance 1 - [Date]
**Objectif de la séance :**
@@ -25,7 +25,7 @@
---
### Séance 2 [Date]
### Séance 2 - [Date]
**Objectif de la séance :**

View File

@@ -1,4 +1,4 @@
# Corrigé des exercices Recherche textuelle
# Corrigé des exercices - Recherche textuelle
---

View File

@@ -1,4 +1,4 @@
# Exercices Recherche textuelle
# Exercices - Recherche textuelle
## 1. QCM

View File

@@ -1,4 +1,4 @@
# Corrigé des exercices Routage
# Corrigé des exercices - Routage
---

View File

@@ -1,4 +1,4 @@
# Exercices Routage
# Exercices - Routage
---
@@ -46,7 +46,7 @@ Soit le réseau suivant :
## Exercice 2 : Protocole RIP
### Question 1 Mise à jour des tables
### Question 1 - Mise à jour des tables
Un routeur R reçoit de son voisin V la table suivante :
@@ -58,11 +58,11 @@ Un routeur R reçoit de son voisin V la table suivante :
R est à distance **1 saut** de V. Quelles seront les nouvelles distances que R pourrait enregistrer pour X, Y et Z ? Dans quel cas R mettra-t-il à jour sa propre table ?
### Question 2 Limite de RIP
### Question 2 - Limite de RIP
Pourquoi RIP est-il limité à 15 sauts maximum ? Quelle conséquence cela a-t-il sur les réseaux pouvant utiliser RIP ?
### Question 3 Convergence
### Question 3 - Convergence
Combien de temps faut-il au minimum pour qu'une information de routage traverse 5 routeurs avec RIP ? Justifier.
@@ -86,7 +86,7 @@ Soit le graphe pondéré suivant (les poids représentent des coûts de liaison)
| Étape | Sommet traité | d(A) | d(B) | d(C) | d(D) | d(E) |
|-------|---------------|------|------|------|------|------|
| Init | | 0 | ∞ | ∞ | ∞ | ∞ |
| Init | - | 0 | ∞ | ∞ | ∞ | ∞ |
| 1 | | | | | | |
| 2 | | | | | | |
| 3 | | | | | | |
@@ -105,7 +105,7 @@ $$\text{coût} = \frac{10^8}{d}$$
où $d$ est le débit de la liaison en bits/seconde.
### Question 1 Calcul de coûts
### Question 1 - Calcul de coûts
Calculer le coût OSPF des liaisons suivantes :
@@ -116,7 +116,7 @@ Calculer le coût OSPF des liaisons suivantes :
| Gigabit Ethernet | 10⁹ bps | |
| Liaison série 2 Mbps | 2 × 10⁶ bps | |
### Question 2 Choix du meilleur chemin
### Question 2 - Choix du meilleur chemin
Un réseau propose deux chemins de A vers Z :
- **Chemin 1** : A → B → Z, avec une liaison à 100 Mbps puis une liaison à 10 Mbps

View File

@@ -1,4 +1,4 @@
# TP : GPS Navigator Itinéraires optimaux
# TP : GPS Navigator - Itinéraires optimaux
## Contexte

View File

@@ -1,4 +1,4 @@
# Corrigé des exercices Réseau
# Corrigé des exercices - Réseau
---

View File

@@ -1,4 +1,4 @@
# Exercices Réseau
# Exercices - Réseau
---
@@ -34,13 +34,13 @@ Pour chacun des usages suivants, indiquer le protocole recommandé (TCP ou UDP)
*D'après le cours dns/*
### Partie A Anatomie d'une URL
### Partie A - Anatomie d'une URL
1. De combien de parties est composée une URL ?
2. Pour chacune des parties suivantes, donner votre propre définition : protocole, sous-domaine, domaine principal, domaine de deuxième niveau, répertoire.
3. Si une partie de l'URL est incorrecte, que se passe-t-il ?
### Partie B Analyser des URL
### Partie B - Analyser des URL
Compléter le tableau pour l'URL : `https://fr.wikipedia.org/wiki/Ada_Lovelace`
@@ -56,7 +56,7 @@ Quelles informations sont visibles en un coup d'œil dans l'URL suivante ?
`https://www.lyc-thierry-maulnier.ac-nice.fr`
### Partie C Manipulation nslookup
### Partie C - Manipulation nslookup
Dans un terminal :

View File

@@ -37,20 +37,20 @@ Le modèle TCP/IP est le modèle **réellement utilisé sur Internet**. Il regro
| Modèle OSI | Couches OSI | Modèle TCP/IP |
|------------|-------------|---------------|
| 7 Application | Interfaces utilisateur (HTTP, FTP…) | Application |
| 6 Présentation | Format, chiffrement | Application |
| 5 Session | Gestion des connexions | Application |
| 4 Transport | TCP, UDP | Transport |
| 3 Réseau | IP, routage | Internet |
| 2 Liaison | Ethernet, Wi-Fi, adresses MAC | Accès réseau |
| 1 Physique | Câbles, ondes | Accès réseau |
| 7 - Application | Interfaces utilisateur (HTTP, FTP…) | Application |
| 6 - Présentation | Format, chiffrement | Application |
| 5 - Session | Gestion des connexions | Application |
| 4 - Transport | TCP, UDP | Transport |
| 3 - Réseau | IP, routage | Internet |
| 2 - Liaison | Ethernet, Wi-Fi, adresses MAC | Accès réseau |
| 1 - Physique | Câbles, ondes | Accès réseau |
### Quel modèle utiliser ?
| Situation | Modèle recommandé |
|-----------|-------------------|
| Raisonner sur le rôle de chaque couche | OSI plus précis, bon pour l'analyse |
| Décrire des protocoles réels (HTTP, TCP, IP…) | TCP/IP c'est ce qu'on utilise en pratique |
| Raisonner sur le rôle de chaque couche | OSI - plus précis, bon pour l'analyse |
| Décrire des protocoles réels (HTTP, TCP, IP…) | TCP/IP - c'est ce qu'on utilise en pratique |
| Situer un protocole dans la pile réseau | Les deux sont utiles en parallèle |
> En NSI, vous utiliserez surtout le modèle TCP/IP. Le modèle OSI sert de référence pour comprendre ce qui se passe à chaque étape d'une communication.

View File

@@ -1,4 +1,4 @@
# Corrigé des exercices SQL
# Corrigé des exercices - SQL
---

View File

@@ -1,4 +1,4 @@
# Exercices SQL
# Exercices - SQL
---

View File

@@ -266,7 +266,7 @@ VALUES
## Activité 3.5 : Fonctions d'agrégation
> **Prérequis** : utiliser la base `db_livres.db` créée à l'activité 3.4 (avec la table LIVRES simple, avant les suppressions de la question 16 si vous avez supprimé des lignes, réinsérez les données avec le `INSERT INTO` de l'activité 3.4).
> **Prérequis** : utiliser la base `db_livres.db` créée à l'activité 3.4 (avec la table LIVRES simple, avant les suppressions de la question 16 - si vous avez supprimé des lignes, réinsérez les données avec le `INSERT INTO` de l'activité 3.4).
Les fonctions d'agrégation effectuent un calcul sur un ensemble de lignes et renvoient **une seule valeur**.

View File

@@ -1,4 +1,4 @@
# Corrigé des exercices Circuits intégrés et SoC
# Corrigé des exercices - Circuits intégrés et SoC
---

View File

@@ -1,4 +1,4 @@
# Exercices Circuits intégrés et SoC
# Exercices - Circuits intégrés et SoC
---

View File

@@ -2,7 +2,7 @@
<img src="assets/bo.png" alt="bo" style="zoom:50%;" />
> Comment fait-on tenir la puissance d'un ordinateur de 30 tonnes dans une puce de quelques millimètres carrés ? Ce chapitre explore l'évolution des circuits intégrés, des architectures de processeurs et des systèmes embarqués jusqu'aux puces d'intelligence artificielle de 2026.
> Comment fait-on tenir la puissance d'un ordinateur de 30 tonnes dans une puce de quelques millimètres carrés ? Ce chapitre explore l'évolution des circuits intégrés, des architectures de processeurs et des systèmes embarqués - jusqu'aux puces d'intelligence artificielle de 2026.
## Programme
@@ -17,7 +17,7 @@ Ce chapitre couvre les notions suivantes du programme de Terminale NSI :
| Fichier | Description |
|---------|-------------|
| [Exercices](EXERCICES.md) | 10 exercices (QCM, calculs, analyse de specs réelles) |
| [TP Station météo IoT](TP_Station_Meteo_IoT.md) | Programmer un SoC embarqué pour collecter et transmettre des données |
| [TP - Station météo IoT](TP_Station_Meteo_IoT.md) | Programmer un SoC embarqué pour collecter et transmettre des données |
| [Corrigé](CORRIGE.md) | Corrigés des exercices |
---
@@ -241,13 +241,13 @@ Annoncé au Computex 2026, le **Nvidia RTX Spark** est un superchip qui illustre
| Composant | Détail |
|-----------|--------|
| CPU | 20 cœurs ARM Grace (Neoverse V2), co-développé avec MediaTek |
| GPU | Blackwell 6 144 CUDA cores, Tensor Cores Gen 5 |
| GPU | Blackwell - 6 144 CUDA cores, Tensor Cores Gen 5 |
| Mémoire | Jusqu'à 128 Go de LPDDR5X **unifiée** (partagée CPU/GPU) |
| Bande passante | ~300 Go/s |
| Interconnexion | NVLink-C2C (technologie issue des serveurs Nvidia) |
| Performances IA | 1 petaflop en FP4, modèles jusqu'à 120 milliards de paramètres |
> **Lien avec le cours :** Le RTX Spark est un SoC au sens strict CPU, GPU et mémoire sur la même puce, reliés par un bus interne ultra-rapide (NVLink-C2C). La mémoire unifiée signifie que CPU et GPU accèdent aux mêmes données sans copie, ce qui élimine un goulot d'étranglement classique.
> **Lien avec le cours :** Le RTX Spark est un SoC au sens strict - CPU, GPU et mémoire sur la même puce, reliés par un bus interne ultra-rapide (NVLink-C2C). La mémoire unifiée signifie que CPU et GPU accèdent aux mêmes données sans copie, ce qui élimine un goulot d'étranglement classique.
**Ce qui est nouveau :**

View File

@@ -1,4 +1,4 @@
# TP : Station Météo IoT Simulation d'un système embarqué
# TP : Station Météo IoT - Simulation d'un système embarqué
## Contexte

View File

@@ -240,7 +240,7 @@ Peu importe qu'il y ait 3 ou 3 000 entrées : l'accès est toujours **O(1)**.
| | Liste chaînée | Dictionnaire |
|---|---|---|
| Recherche d'une valeur | O(n) parcours maillon par maillon | O(1) accès direct par clé |
| Recherche d'une valeur | O(n) - parcours maillon par maillon | O(1) - accès direct par clé |
| Ordre des éléments | Conservé (chaîne de maillons) | Non garanti |
| Usage naturel | Séquence à modifier souvent | Recherche rapide par identifiant |

View File

@@ -1,4 +1,4 @@
# TP : Simulateur de Navigateur Web Piles et Files en action
# TP : Simulateur de Navigateur Web - Piles et Files en action
> **Thème** : Structures de données linéaires (Pile, File)

View File

@@ -1,4 +1,4 @@
# Corrigé des exercices Sécurité
# Corrigé des exercices - Sécurité
---

View File

@@ -147,7 +147,7 @@ Ces protocoles agissent au niveau de la couche 5 du modèle OSI
### 6. Le hachage
Le chiffrement protège la **confidentialité** des données seul le destinataire peut lire le message. Mais il ne garantit pas l'**intégrité** : comment savoir si le fichier que vous téléchargez n'a pas été altéré en route ? Comment un site web peut-il vérifier votre mot de passe sans le stocker en clair ?
Le chiffrement protège la **confidentialité** des données - seul le destinataire peut lire le message. Mais il ne garantit pas l'**intégrité** : comment savoir si le fichier que vous téléchargez n'a pas été altéré en route ? Comment un site web peut-il vérifier votre mot de passe sans le stocker en clair ?
C'est le rôle du **hachage**.
@@ -185,8 +185,8 @@ Et surtout : le hachage est une **fonction à sens unique**. On ne peut pas retr
| Algorithme | Taille du hash | État actuel |
|------------|----------------|-------------|
| MD5 | 128 bits | ⚠️ Cassé ne pas utiliser pour la sécurité |
| SHA-1 | 160 bits | ⚠️ Cassé déprécié |
| MD5 | 128 bits | ⚠️ Cassé - ne pas utiliser pour la sécurité |
| SHA-1 | 160 bits | ⚠️ Cassé - déprécié |
| **SHA-256** | 256 bits | ✅ Standard actuel |
| bcrypt | variable | ✅ Recommandé pour les mots de passe |