suppression de certains tirets
This commit is contained in:
@@ -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
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
--------
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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() |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Corrigé des exercices — Gestion des processus
|
||||
# Corrigé des exercices - Gestion des processus
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Exercices — Gestion des processus
|
||||
# Exercices - Gestion des processus
|
||||
|
||||
## 1. QCM
|
||||
|
||||
|
||||
@@ -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 :**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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**.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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 :**
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 :**
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 :**
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 :**
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 :**
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Corrigé des exercices — Recherche textuelle
|
||||
# Corrigé des exercices - Recherche textuelle
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Exercices — Recherche textuelle
|
||||
# Exercices - Recherche textuelle
|
||||
|
||||
## 1. QCM
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Corrigé des exercices — Routage
|
||||
# Corrigé des exercices - Routage
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# TP : GPS Navigator — Itinéraires optimaux
|
||||
# TP : GPS Navigator - Itinéraires optimaux
|
||||
|
||||
## Contexte
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Corrigé des exercices — Réseau
|
||||
# Corrigé des exercices - Réseau
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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 :
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Corrigé des exercices — SQL
|
||||
# Corrigé des exercices - SQL
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Exercices — SQL
|
||||
# Exercices - SQL
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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**.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Corrigé des exercices — Circuits intégrés et SoC
|
||||
# Corrigé des exercices - Circuits intégrés et SoC
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Exercices — Circuits intégrés et SoC
|
||||
# Exercices - Circuits intégrés et SoC
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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 :**
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 |
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Corrigé des exercices — Sécurité
|
||||
# Corrigé des exercices - Sécurité
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user