💻sciences

Éthique numérique NSI : coder les enjeux en Python

2 septembre 2026 7 min de lecture

L'éthique du numérique, c'est un peu le mode d'emploi de notre société numérique : comment utiliser les technologies sans nuire aux autres, en respectant les libertés et en évitant les discriminations. En spécialité NSI, tu n'es pas seulement là pour coder, mais aussi pour réfléchir à ce que ton code peut provoquer. Bonne nouvelle : on peut coder des situations éthiques en Python pour mieux les comprendre. Dans cet article, on va décortiquer ensemble des exemples concrets liés à la vie privée, au RGPD et aux biais algorithmiques.

Pourquoi l'éthique numérique est au programme de NSI ?

Le programme de NSI (Numérique et Sciences Informatiques) en Terminale insiste sur un point crucial : l'informatique n'est pas neutre. Chaque algorithme, chaque base de données, chaque site web a des impacts sur la société : sur les gens, sur leurs droits, sur l'équité. L'éthique numérique, c'est l'ensemble des questions morales qui se posent quand on conçoit ou utilise ces technologies. Par exemple :

  • La vie privée : quelles données personnelles collecte ton application ? Est-ce vraiment nécessaire ?
  • La transparence : les utilisateurs comprennent-ils ce que fait ton algorithme ?
  • L'équité : ton algorithme traite-t-il tout le monde de la même manière, sans discrimination ?
  • La responsabilité : qui est responsable si un système prend une mauvaise décision ?

En NSI, tu n'étudies pas seulement la théorie, mais tu passes à la pratique en codant des mini-simulations pour visualiser ces enjeux. C'est ce qu'on va faire ensemble, étape par étape.

Comprendre la notion de données personnelles et le RGPD

Le RGPD (Règlement Général sur la Protection des Données) est une loi européenne qui encadre la collecte et l'utilisation des données personnelles. Une donnée personnelle, c'est toute information qui permet d'identifier une personne : nom, email, adresse IP, etc. Le RGPD impose des règles comme le consentement explicite et le droit à l'oubli.

Quand tu développes un programme qui manipule des données, il faut que tu te poses ces questions :

  • Est-ce que je collecte le minimum nécessaire ?
  • Est-ce que j'informe clairement l'utilisateur ?
  • Est-ce que je permets à l'utilisateur de supprimer ses données ?

Exemple : simuler un consentement éclairé en Python

Imaginons que tu crées une petite application qui demande le nom et l'email de l'utilisateur. Un bon programme éthique doit expliquer pourquoi il collecte ces données et demander l'accord. Voici un exemple simple :

def recueillir_consentement():
    print("Bienvenue dans notre application !")
    print("Nous collectons votre nom et votre email pour vous envoyer notre newsletter.")
    print("Vous pouvez vous désinscrire à tout moment.")
    reponse = input("Acceptez-vous ? (oui/non) : ").strip().lower()
    if reponse == "oui":
        nom = input("Quel est votre nom ? ")
        email = input("Quel est votre email ? ")
        return {"nom": nom, "email": email}
    else:
        print("Dommage, à bientôt !")
        return None

donnees = recueillir_consentement()
if donnees:
    print(f"Merci {donnees['nom']} ! Vos données sont enregistrées.")
else:
    print("Aucune donnée collectée.")

Ce code illustre le consentement explicite : l'utilisateur doit clairement accepter avant que ses données soient enregistrées. C'est une base du RGPD.

Le droit à l'oubli : implémenter la suppression de données

Le RGPD donne le droit à toute personne de demander la suppression de ses données. En Python, tu peux simuler cela avec une liste de dictionnaires :

utilisateurs = [
    {"nom": "Alice", "email": "alice@example.com"},
    {"nom": "Bob", "email": "bob@example.com"}
]

def supprimer_utilisateur(email):
    for i, user in enumerate(utilisateurs):
        if user["email"] == email:
            del utilisateurs[i]
            print(f"Utilisateur {email} supprimé.")
            return True
    print("Utilisateur non trouvé.")
    return False

# Exemple d'utilisation
supprimer_utilisateur("alice@example.com")
print(utilisateurs)

Ce mécanisme simple montre comment tu peux respecter le droit à l'oubli dans tes programmes.

Les biais algorithmiques : quand le code discrimine

Un biais algorithmique, c'est lorsqu'un algorithme produit des résultats injustes ou discriminatoires, souvent parce que les données d'entraînement contenaient des préjugés. Par exemple, un système de recrutement qui favorise les hommes parce qu'il a été entraîné sur des CV d'hommes. En NSI, tu dois comprendre que le code n'est pas neutre : il reflète les données qu'on lui donne.

Exemple : détecter un biais dans une décision automatique

On va écrire un programme qui simule un système d'approbation de prêt basé sur l'âge et le revenu. Si on code une règle arbitraire, on peut créer un biais. Par exemple :

def approuve_pret(age, revenu, categorie):
    # Règle arbitraire : refuse les personnes de plus de 60 ans
    if age > 60:
        return False
    # Exige un revenu plus élevé pour certaines catégories (biais)
    if categorie == "etudiant" and revenu < 2000:
        return False
    return True

# Test
print(approuve_pret(25, 2500, "salarie"))  # True
print(approuve_pret(65, 5000, "retraite")) # False (biais d'âge)
print(approuve_pret(22, 1500, "etudiant")) # False (biais de catégorie)

Ce code est clairement biaisé : il refuse les personnes âgées même si elles ont un bon revenu. Un algorithme éthique devrait se baser sur des critères objectifs et vérifiables, sans discrimination.

Comment corriger un biais : l'importance des données

Pour éviter les biais, il faut analyser les données et vérifier si certaines catégories sont désavantagées. On peut écrire un script qui calcule le taux d'approbation par catégorie :

def taux_approbation(demandes):
    stats = {}
    for demande in demandes:
        categorie = demande["categorie"]
        if categorie not in stats:
            stats[categorie] = {"total": 0, "acceptes": 0}
        stats[categorie]["total"] += 1
        if demande["accepte"]:
            stats[categorie]["acceptes"] += 1
    for cat, val in stats.items():
        taux = val["acceptes"] / val["total"] * 100
        print(f"{cat}: {taux:.1f}% d'acceptation")

# Exemple de données
demandes = [
    {"categorie": "etudiant", "accepte": True},
    {"categorie": "etudiant", "accepte": False},
    {"categorie": "retraite", "accepte": True},
    {"categorie": "retraite", "accepte": True},
]
taux_approbation(demandes)

Ce genre d'analyse est essentiel pour repérer les inégalités et les corriger.

Cas d'usage : un mini-système de notation éthique

Pour mettre en pratique tout ça, on va créer un programme qui simule une plateforme de notation (comme un système de recommandation). On va intégrer des règles éthiques : pas de collecte inutile, transparence, et possibilité de supprimer ses données. On va également vérifier qu'il n'y a pas de biais dans les notes attribuées.

class Plateforme:
    def __init__(self):
        self.utilisateurs = []
        self.notes = []

    def inscrire(self, nom, email):
        # Consentement
        accord = input(f"{nom}, acceptez-vous la collecte de votre email pour la notation ? (oui/non) ")
        if accord.lower() == "oui":
            self.utilisateurs.append({"nom": nom, "email": email})
            print("Inscription réussie !")
        else:
            print("Inscription annulée.")

    def noter(self, email, note):
        # Vérifie que l'utilisateur existe
        for user in self.utilisateurs:
            if user["email"] == email:
                self.notes.append({"email": email, "note": note})
                print("Note enregistrée.")
                return
        print("Utilisateur inconnu.")

    def supprimer_compte(self, email):
        # Droit à l'oubli
        for i, user in enumerate(self.utilisateurs):
            if user["email"] == email:
                del self.utilisateurs[i]
                # Supprime aussi ses notes
                self.notes = [n for n in self.notes if n["email"] != email]
                print("Compte et données supprimés.")
                return
        print("Utilisateur non trouvé.")

# Utilisation
plateforme = Plateforme()
plateforme.inscrire("Alice", "alice@example.com")
plateforme.noter("alice@example.com", 4)
plateforme.supprimer_compte("alice@example.com")

Ce petit système respecte les principes de base du RGPD : consentement, minimisation des données, droit à l'oubli. Tu peux l'améliorer en ajoutant une vérification de biais : par exemple, comparer les notes moyennes selon le genre ou l'âge (si tu les collectes, mais attention à la minimisation !).

Conseils pour réviser et préparer le bac NSI

L'éthique numérique est un thème transverse au programme de NSI, mais il peut apparaître dans les questions de cours ou les sujets de réflexion à l'écrit. Voici comment bien te préparer :

  • Connaître les définitions clés : RGPD, données personnelles, vie privée, biais algorithmique, liberté d'expression, propriété intellectuelle.
  • Savoir citer des exemples concrets : scandale Cambridge Analytica, reconnaissance faciale, algorithmes de recommandation.
  • Pratiquer le code éthique : écris de petits scripts qui simulent des situations (comme ceux de cet article) pour montrer que tu sais appliquer les concepts.
  • Relire le programme officiel : la partie "Traitement de données en tables" et "Algorithmique" peut être liée à des questions d'éthique.

Pour t'entraîner, n'hésite pas à consulter nos exercices interactifs et à revoir les cours complets sur le site. Si tu veux approfondir les bases de données et la gestion des données, jette un œil à notre article sur le langage SQL : c'est là que tout commence en matière de données !

Et si tu as besoin d'aide en maths ou en physique pour compléter ta préparation, va faire un tour sur AlloBac ou AlloLycée : tu y trouveras des ressources adaptées à ton niveau.

Conclusion

Voilà, tu as maintenant des outils concrets pour coder des enjeux éthiques en Python. Tu as vu comment simuler un consentement éclairé, respecter le droit à l'oubli, et détecter des biais algorithmiques. Ces exemples te montrent que l'éthique n'est pas une option, mais une compétence de développeur essentielle. Continue à t'entraîner, à poser des questions, et n'oublie pas : la technologie doit servir l'humain, pas l'inverse. Bon courage pour tes révisions !

📚 Pour aller plus loin

Questions fréquentes

Qu'est-ce que l'éthique numérique en NSI ?

L'éthique numérique en NSI est l'étude des questions morales liées à l'informatique : respect de la vie privée, transparence des algorithmes, équité, responsabilité. Le programme de Terminale NSI inclut une réflexion sur ces enjeux, et on peut les illustrer avec des exemples en Python.

Comment coder un consentement éclairé en Python ?

On peut simuler un consentement éclairé en demandant à l'utilisateur de taper 'oui' ou 'non' avant de collecter ses données. Par exemple, on utilise input() pour poser la question et on n'enregistre les données que si la réponse est 'oui'.

Qu'est-ce qu'un biais algorithmique et comment le détecter en Python ?

Un biais algorithmique est une erreur systématique qui produit des résultats injustes, souvent due à des données d'entraînement biaisées. En Python, on peut le détecter en écrivant un script qui calcule des statistiques (par exemple, le taux d'acceptation) pour différentes catégories de personnes, afin de repérer des disparités.

Quel est le lien entre Python et le RGPD ?

Le RGPD impose des règles sur la collecte et le traitement des données personnelles. En Python, on peut implémenter des fonctionnalités comme le consentement explicite, le droit à l'oubli (suppression des données), et la minimisation des données (collecter uniquement ce qui est nécessaire).

L'éthique numérique est-elle évaluée au bac NSI ?

Oui, l'éthique numérique peut être abordée dans les questions de cours de l'épreuve écrite de NSI. Il est important de connaître les définitions et d'être capable de citer des exemples concrets. Les compétences de programmation liées à l'éthique (comme la gestion des données) peuvent aussi être évaluées dans les exercices pratiques.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
éthique numérique NSIsociété numériquePythonRGPDbiais algorithmiquevie privée
Pixel