Terminale NSIProjets

Mini-projets de synthèse

Mobiliser plusieurs notions du programme sur des projets courts

Mini-projets de synthèse

Le but de ces quatre mini-projets est de réinvestir plusieurs chapitres du programme sur un travail de 2 à 6 heures. Chaque sujet ci-dessous se suit comme un projet : données de départ, fonctions à écrire, exemple chiffré, puis fichier à rendre.

On en choisit un. Le programme principal affiche l'exemple du sujet, pour qu'on puisse contrôler le résultat sans tout retaper.

1. Réseau de villes

Un graphe pondéré relie des villes. Le poids d'une arête est une distance en kilomètres. On calcule un plus court chemin avec l'algorithme de Dijkstra, puis on affiche le trajet et son coût.

Graphe de départ. Les arêtes ne sont pas orientées : Lyon-Paris vaut aussi Paris-Lyon.

ArêteDistance (km)
Lyon-Paris460
Lyon-Marseille310
Paris-Lille220
Paris-Marseille770
Marseille-Lille1000

Le plus court chemin de Lyon à Lille passe par Paris : 460 + 220 = 680 km. Lyon-Marseille-Lille vaut 1310 km. Paris-Marseille-Lille n'est pas un chemin de Lyon vers Lille au départ.

graphe = {
    "Lyon": {"Paris": 460, "Marseille": 310},
    "Paris": {"Lyon": 460, "Lille": 220, "Marseille": 770},
    "Marseille": {"Lyon": 310, "Paris": 770, "Lille": 1000},
    "Lille": {"Paris": 220, "Marseille": 1000},
}

Choisir un exercice

Cliquer sur un exercice de la liste pour afficher son sujet.

Ce qu'on rend. Un fichier villes.py : le graphe de l'exemple, voisins, ajouter_route, plus_court_chemin, et un affichage du trajet Lyon-Lille. Commentaire d'en-tête avec le nom et la classe. En quelques lignes sous le résultat, dire pourquoi 680 est meilleur que 1310 : on compare des sommes de poids, pas le nombre de villes.

2. Catalogue de véhicules

Une petite base SQL décrit des véhicules. Une route d'API renvoie du JSON. Une page, ou un script, consulte ce catalogue.

Trois lignes de départ :

immatmarquemodeleprix_jourplacesetat
AB-123-CDPeugeot208355disponible
EF-456-GHYamahaMT-07452maintenance
IJ-789-KLFiatDucato1204disponible

Choisir un exercice

Cliquer sur un exercice de la liste pour afficher son sujet.

Ce qu'on rend. Le script SQL (schema.sql avec la création, les trois insertions et la requête), le code de la route GET /vehicules, et la page ou le script qui affiche la Peugeot et le Ducato. Commentaire d'en-tête avec le nom et la classe.

3. Analyse de logs

Un fichier de logs du système est lu ligne à ligne. On en tire des indicateurs, puis on compare deux façons de les calculer.

Les lignes ont cette forme, une par événement :

2026-03-12 08:01:02 INFO demarrage
2026-03-12 08:01:05 WARN disque
2026-03-12 08:02:10 ERROR reseau
2026-03-12 08:02:11 INFO requete
2026-03-12 08:03:40 ERROR disque
2026-03-12 08:04:00 INFO arret

Indicateurs attendus sur ce fichier : 6 lignes, 3 INFO, 1 WARN, 2 ERROR. Le mot disque apparaît 2 fois. La première erreur est à 08:02:10.

Choisir un exercice

Cliquer sur un exercice de la liste pour afficher son sujet.

Ce qu'on rend. logs.py, le fichier systeme.log de l'exemple, les fonctions, l'affichage des indicateurs (6, 3, 1, 2 et le mot disque), et le commentaire qui compare les deux stratégies. Commentaire d'en-tête avec le nom et la classe.

4. Simulateur d'épreuve pratique

Une banque de questions est tirée au sort. Un test simple dit si la réponse proposée est celle attendue. Le sujet ne corrige pas une copie entière : il vérifie une réponse contre le jeu d'essai de la question.

Banque minimale, à écrire dans le fichier :

banque = [
    {
        "id": "q1",
        "enonce": "Que renvoie len([1, 2, 2]) ?",
        "reponse": "3",
    },
    {
        "id": "q2",
        "enonce": "Quel algorithme de plus court chemin sur un graphe à poids positifs ?",
        "reponse": "Dijkstra",
    },
    {
        "id": "q3",
        "enonce": "Une clé primaire peut-elle être répétée ? (oui/non)",
        "reponse": "non",
    },
]

Choisir un exercice

Cliquer sur un exercice de la liste pour afficher son sujet.

Ce qu'on rend. epreuve.py : la banque d'au moins trois questions, ajouter_question, tirer, valider, le bloc de tests, et le dialogue. Commentaire d'en-tête avec le nom et la classe.

5. Ce qui est regardé sur les quatre sujets

  1. Le résultat de l'exemple est celui annoncé (680 km, les deux véhicules disponibles, les compteurs du log, ou les trois valider).
  2. Les fonctions se relisent : noms stables, cas refusé qui ne modifie pas les données.
  3. Le choix d'algorithme est justifié sur l'exemple, pas seulement nommé.
  4. Le déroulement peut s'expliquer à l'oral, sur son jeu d'essai.