Programmation et automatisation
Scripts métier
Rédigé par l'équipe éditoriale de RévisionBac d'après le programme officiel · Mis à jour le · Méthodologie
En clair. Programmer, c'est décrire une suite d'instructions pour automatiser une tâche répétitive.
Ce qu'on te demande au bac STMG : lire un algorithme simple, repérer conditions et boucles, corriger une erreur.
Exemple simple. Une boucle calcule le total d'un panier sans additionner à la main.
Introduction
En spécialité Systèmes d'Information de Gestion, la programmation n'est pas une fin en soi : elle sert à automatiser un traitement de gestion (contrôler une saisie, calculer une remise, produire un indicateur) et à comprendre comment une application dialogue avec une base de données. Le programme s'appuie sur Python côté traitement, SQL côté données et HTML/CSS/JavaScript côté interface.
1. Notions fondamentales
Algorithme : suite finie et ordonnée d'instructions permettant de résoudre un problème. Un programme est la traduction d'un algorithme dans un langage exécutable.
- Variable : espace mémoire nommé contenant une valeur d'un certain type (entier, flottant, chaîne, booléen).
- Structures de contrôle : séquence, condition (
if / elif / else), boucles (forbornée,whileconditionnelle). - Fonction : bloc réutilisable avec paramètres d'entrée et valeur de retour ; elle évite la duplication de code.
- Structures de données : liste (ordonnée, modifiable), dictionnaire (paires clé-valeur), tuple (immuable).
2. Exemple de gestion : calculer une remise
def prix_remise(montant, fidele):
"""Retourne le prix TTC après remise commerciale."""
if montant >= 500:
taux = 0.10
elif montant >= 200:
taux = 0.05
else:
taux = 0.0
if fidele:
taux += 0.02
net_ht = montant * (1 - taux)
return round(net_ht * 1.20, 2)
print(prix_remise(600, True)) # 600 * 0,88 = 528 HT -> 633.60 TTC
Ce programme illustre trois bonnes pratiques : une fonction documentée, des conditions ordonnées de la plus restrictive à la plus large, et un arrondi monétaire final.
3. Parcourir des données de gestion
ventes = [
{"client": "Durand", "montant": 120.0},
{"client": "Nguyen", "montant": 540.0},
{"client": "Lopez", "montant": 260.0},
]
total = 0
for v in ventes:
total += v["montant"]
moyenne = total / len(ventes)
gros_clients = [v["client"] for v in ventes if v["montant"] > 250]
print(total, round(moyenne, 2), gros_clients)
# 920.0 306.67 ['Nguyen', 'Lopez']
La liste de dictionnaires est la représentation naturelle d'un résultat de requête SQL : chaque dictionnaire est un enregistrement, chaque clé une colonne.
4. Programmation et base de données
Le schéma type d'une application de gestion est en trois couches :
| Couche | Rôle | Technologie |
|---|---|---|
| Présentation | afficher, saisir, contrôler la forme | HTML, CSS, JavaScript |
| Traitement | règles de gestion, calculs, contrôles | Python (ou PHP) |
| Données | stockage persistant, intégrité | SGBD relationnel, SQL |
Extrait de traitement côté données :
SELECT c.nom, SUM(l.quantite * l.prix_unitaire) AS ca
FROM client c
JOIN commande cd ON cd.id_client = c.id_client
JOIN ligne l ON l.id_commande = cd.id_commande
GROUP BY c.nom
HAVING SUM(l.quantite * l.prix_unitaire) > 1000
ORDER BY ca DESC;
Règle essentielle : les paramètres saisis par l'utilisateur ne sont jamais concaténés dans la requête ; on utilise des requêtes préparées pour éviter l'injection SQL.
5. Qualité et tests
- Jeu d'essai : tester les cas normaux, les cas limites (montant = 200, = 500) et les cas d'erreur (montant négatif, champ vide).
- Traçabilité : commenter, nommer les variables en français métier (
montant_ht,taux_remise). - Robustesse : contrôler les types et gérer les exceptions (
try / except). - Sécurité et RGPD : ne pas stocker de données personnelles inutiles, limiter les droits d'accès selon le profil utilisateur.
Tableau de tests de prix_remise
| montant | fidèle | taux attendu | prix TTC attendu |
|---|---|---|---|
| 100 | non | 0 % | 120,00 |
| 200 | non | 5 % | 228,00 |
| 500 | oui | 12 % | 528,00 |
Ce qu'il faut retenir
- Un programme de gestion traduit des règles métier en conditions et boucles.
- Les données de gestion se manipulent en listes de dictionnaires, image d'une table relationnelle.
- L'architecture trois couches sépare présentation, traitement et données.
- Requêtes préparées, jeux d'essai et respect du RGPD conditionnent la fiabilité d'une application.
Quiz de révision
- Question 1.
Dans la fonction
prix_remise, quel est le taux appliqué pour un montant de 250 € à un client fidèle ? - Question 2.
Quelle structure Python correspond le mieux à un enregistrement d'une table (colonnes nommées) ?
- Question 3.
Pourquoi utiliser des requêtes préparées ?
Sources et références
Ce cours est rédigé par l'équipe RévisionBac à partir du programme officiel et des sources institutionnelles ci-dessous. Elles permettent de vérifier les définitions, les chiffres et les normes citées.
- 1.Programmes et ressources du lycée général et technologique — Éduscol — Ministère de l'Éducation nationale
- 2.Bulletin officiel de l'Éducation nationale (programmes du baccalauréat) — education.gouv.fr
- 3.Protection des données personnelles (RGPD) — CNIL
- 4.Bonnes pratiques de cybersécurité — ANSSI
- 5.Textes de loi et jurisprudence — Légifrance
- 6.Archives et ressources documentaires — Archives nationales
Contenu vérifié et mis à jour le 09/09/2026. Les liens renvoient vers les sites officiels des éditeurs cités.
Historique éditorial
Ce chapitre est rédigé et relu par l'équipe RévisionBac, puis enrichi par les contributions validées.
- — Dernière mise à jour du cours (relecture et enrichissement)
- — Première publication de la fiche de cours