IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Python au collège et au lycée : choix réfléchi ou effet de mode ?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2025
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2025
    Messages : 25
    Par défaut Python au collège et au lycée : choix réfléchi ou effet de mode ?
    Bonjour à toutes et tous,

    Je pose la question d'un choix pédagogique devenu quasi standard dans l’enseignement secondaire : l’usage de Python comme langage d’initiation à la programmation, dès le collège (via Scratch puis Python) et surtout au lycée (SNT, NSI, mathématiques, physique…).

    Ce choix est-il le fruit d’une réflexion approfondie de l’Éducation nationale sur les paradigmes d’apprentissage ? Ou bien s’agit-il d’un glissement opportuniste, dicté par des considérations pratiques (abondance de ressources, compatibilité matérielle, popularité académique, logiciel libre) ?




    Une architecture non-objet… pour un langage objet ?


    L’ordinateur, dans son architecture fondamentale (CPU, mémoire, jeu d’instructions), n’est pas orienté objet. Le paradigme natif est impératif, séquentiel, typé. Les instructions machine ne connaissent ni classes, ni méthodes, ni héritage.

    Or Python, bien qu’il permette une programmation impérative, est un langage orienté objet. Même les types de base (`int`, `str`, `list`) sont des objets. Cela pose une question pédagogique :
    Est-il pertinent d’initier les élèves à la programmation via un langage qui repose sur une abstraction non native à la machine ?


    Jadis, des langages non-objet ont historiquement suffi



    - BASIC (Plan Informatique pour Tous, initiation dès le primaire) : langage textuel accessible dès le primaire, avec une syntaxe directe et impérative.
    - Pascal : langage structuré, typé, conçu pour l’enseignement, utilisé au lycée dans les années 1990–2000.
    - Logo, Caml, Ada : autres langages pédagogiques, chacun avec ses forces, souvent non-objets.

    Ces langages disposaient déjà de bibliothèques scientifiques abondantes, notamment en mathématiques et physique. L’argument souvent avancé pour Python — “il y a plein de bibliothèques” — semble donc anachronique : ce n’est pas une nouveauté propre à Python.

    La pré initiation aux concepts algorithmiques pouvaient se faire dès le primaire hors cadre de l'activité informatique, par exemple la capacité à exécuter une recette de cuisine :
    - Recette = algorithme narratif :
    - Ingrédients → variables initialisées
    - Étapes → instructions séquentielles
    - Conditions → “jusqu’à ce que ce soit doré” = boucle avec condition d’arrêt
    - Répétitions → “remuer pendant 5 minutes” = boucle bornée
    Cette analogie, très utilisée dans les années 1980-90, permettait une acculturation implicite à la logique algorithmique, bien avant l’introduction de langages formels.


    Risques pédagogiques d’un glissement trop rapide


    - Effet boîte noire : les élèves manipulent des objets sans comprendre leur structure interne ni leur traduction en instructions machine.
    - Perte de rigueur algorithmique : typage faible, syntaxe permissive, absence de compilation explicite.
    - Dépendance à des abstractions : on appelle des méthodes (`.append()`, `.sort()`) sans comprendre les algorithmes sous-jacents.



    Que dit l’Éducation nationale ?


    Le document officiel sur éduscol ( https://eduscol.education.fr/document/16078/download ) présente Python comme un langage procédural, adapté à l’enseignement scientifique. Il met en avant :
    - Sa syntaxe simple
    - Son interprétation directe
    - Son intégration dans les calculatrices
    - Et surtout… l’abondance de bibliothèques scientifiques

    Mais ce dernier point mérite débat : les langages non-objets disposaient eux aussi de bibliothèques riches, et l’argument semble davantage relever de l’écosystème que du paradigme pédagogique.


    - Le choix de Python a-t-il été pensé en termes de paradigme d’apprentissage, ou dicté par des considérations pratiques ?
    - Ne faudrait-il réintroduire une étape intermédiaire, avec un langage impératif pur, pour mieux comprendre la machine ?
    - Comment éviter que les élèves deviennent des “utilisateurs de bibliothèques” plutôt que des “concepteurs d’algorithmes” ?

    Je serais curieux d’avoir vos retours, notamment si vous êtes enseignants.
    Ce n’est pas une critique dogmatique, mais une invitation à réfléchir collectivement à ce que nous transmettons quand nous enseignons un langage.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 412
    Par défaut
    Hello,

    Je pense que par rapport à mon expérience, je suis dans les clous pour répondre à vos arguments (enseignement et dev python pro).
    J'ai connu des enseignants en mathématiques qui ont dû se former et découvrir python pour leur nouveau programme.

    Ce n’est pas une critique dogmatique, mais une invitation à réfléchir collectivement à ce que nous transmettons quand nous enseignons un langage.
    Vous savez que vous ne referez pas le monde et que collectivement ce genre de choix a déjà été réfléchis ?

    - Comment éviter que les élèves deviennent des “utilisateurs de bibliothèques” plutôt que des “concepteurs d’algorithmes” ?
    Je ne sais pas qui vous a mis "un pouce vers le bas", mais je pense que c'est lié à cette question ! Dommage que ça ne soit pas étayé...

    Vous êtes tout simplement en train de dire indirectement que les développeurs python sont des "utilisateurs de librairies", ce qui est totalement faux, car vous ne connaissez pas leurs bagages techniques, mais montre aussi une totale méconnaissance du langage python. Cette question n'a pas lieu d'être, et vous devriez là retirer, elle est hors sol, et vous discrédite totalement !

    L'utilisation de bibliothèques est la norme dans le développement professionnel, quel que soit le langage (C++, Java, etc.). L'objectif de l'enseignement n'est pas d'interdire les outils performants, mais d'enseigner l'algorithmique fondamentale et la pensée critique avant de montrer comment l'accélérer avec des bibliothèques.

    Le document officiel sur éduscol ( https://eduscol.education.fr/document/16078/download ) présente Python comme un langage procédural, adapté à l’enseignement scientifique. Il met en avant :
    - Sa syntaxe simple
    - Son interprétation directe
    - Son intégration dans les calculatrices
    - Et surtout… l’abondance de bibliothèques scientifiques

    Mais ce dernier point mérite débat : les langages non-objets disposaient eux aussi de bibliothèques riches, et l’argument semble davantage relever de l’écosystème que du paradigme pédagogique.
    C'est certains, cependant certains langages enseignés avant n'avaient peut-être pas les trois premiers avantages que vous citiez.
    Je ne vois pas ce que vous appelez "paradigme pédagogique" et "écosystème", mais ça devrait être plus clair et surtout plus détaillé !
    Je parlerai plutôt de paradigme algorithmique ou l'outil est le langage python et dont on se fou complètement de gérer la mémoire pour résoudre un problème concret.

    Ce choix est-il le fruit d’une réflexion approfondie de l’Éducation nationale sur les paradigmes d’apprentissage ?
    Déjà répondu plus haut, on ne change pas un programme qui impose formations et coût budgétaire en un claquement de doigt, c'est du bon sens !

    Ou bien s’agit-il d’un glissement opportuniste, dicté par des considérations pratiques (abondance de ressources, compatibilité matérielle, popularité académique, logiciel libre) ?
    Les programmes ont toujours été décidés entre responsables pédagogiques et responsables de l'industrie, et il se trouve que python était en pleine expansion industriellement parlant.

    Est-il pertinent d’initier les élèves à la programmation via un langage qui repose sur une abstraction non native à la machine ?
    Oui, car ce n'est pas l'objectif, comme je l'ai dis précédemment, se sont des enseignements scientifiques, dont le but est de tester via un langage un résultat tout en découvrant l'algorithmie.
    Le but aussi est de leur faire apprécier le développement informatique (comme un outil pratique), et si on y arrive, d'apprendre à gérer des choses plus complexes en université par ex.
    L'objectif n'est pas de former des ingénieurs en systèmes bas niveau, mais d'utiliser la programmation comme un outil puissant pour modéliser, simuler et résoudre des problèmes scientifiques.

    Est-il pertinent d’initier les élèves à la programmation via un langage qui repose sur une abstraction non native à la machine ?
    Je vous retourne la question, si vous étiez enseignant, et qu'on vous demandait d'utiliser ce langage comme support pour vos cours et TP à vos élèves (relisez le programme), pourriez vous appliquer le programme ?
    Est-ce que l'objectif est d'apprendre un langage ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2025
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2025
    Messages : 25
    Par défaut
    que collectivement ce genre de choix a déjà été réfléchis ?
    C'est justement la motivation de ma demande, qui a tout lieu d'être, ne trouvant pas autre que le document "marketing" de l'éducation nationale, quant à ce choix là.
    Sans compter l'appui de l'interrogation sur la pertinence de bien consolider la programmation impérative, avant d'aborder la programmation orientée objets, qui est un concept bien particulier, avec ses avantages et ses inconvénients.

    Quant à l'enseignement de la programmation, cela a toujours été un débat hors orientation professionnelle, dès le plan informatique pour tous, avant même les choix de langage à enseigner, à savoir à partir de quel âge et y en a il l'utilité, surtout primaire et une partie du collège, au détriment des matières fondamentales à consolider, et privilégier ; je ne sais où en est contemporainement ce débat surtout au devant d'un métier ou d'une compétence qui va devenir obsolète.

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 412
    Par défaut
    Le texte le plus direct et explicite justifiant le choix de Python se trouve dans le projet de programme de SNT, sous la section « Notions transversales de programmation »

    https://www.snes.edu/IMG/pdf/snt_annexe_2e_bo.pdf

    Vous avez aussi cet article sur developpez.net : https://www.developpez.com/actu/2338...c-et-du-lycee/

    Bien que la SIF ait co-publié par la suite un manuel utilisant Python pour l'ancienne spécialité ISN, montrant une acceptation pragmatique du langage , il n'existe pas de preuve, durant la période 2018-2019, d'une prise de position forte pour ou contre Python dans le cadre spécifique de la réforme NSI.

    La communauté scientifique a probablement considéré le choix du langage comme un détail tactique dans une bataille stratégique bien plus vaste. Ayant finalement obtenu la reconnaissance de l'informatique comme une spécialité à part entière, elle a pu juger contre-productif de critiquer publiquement le choix de l'outil par le ministère, au risque de fragiliser le consensus encore précaire autour de l'existence même de cette nouvelle discipline.

    En gros le langage on s'en fou, l'éducation nationale a choisi de privilégié l'apprentissage des matières scientifiques via un outil informatique dans son état général au collège et au lycée.
    Je me souviens de ma fille à qui l'on enseignait Scratch alors qu'il y avait la possibilité de choisir Python.

    J'ai l'impression que le choix du langage est surtout une décision de l'enseignant, et que l'éducation nationale propose et conseille Python.
    Tant que l'objectif pédagogique est atteint, le choix de l'outil semble peu important.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Invité de passage
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2025
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2025
    Messages : 25
    Par défaut
    Je vous remercie pour la fourniture du B.O. qui répond déjà bien mieux à mon interrogation et à mes inquiétudes.

    En classe de seconde générale et technologique, dans "notions transversales de programmation",

    je note, dans les motivations de choix de python 3 :

    - que le langage doit être "interprété". Cela m'est néanmoins difficile à mettre en corrélation avec l'objectif : "les machines, et leurs systèmes d’exploitation, qui permettent d’exécuter des
    programmes en enchaînant un grand nombre d’instructions simples,
    " où visiblement la notion de langage machine, compilation, doit être vulgarisée, abordée.

    - le langage doit être "libre" : cela semble plutôt un choix politique que technique. J'aurais préféré, en lieu d'un choix de licence, lire en place "normé" ce qui sous entend une pérennité (réalisation des supports pédagogiques, documentation élaborée et abondante existante : livres...) et une réflexion profondément mature du langage.

    La section "Capacités attendues : Affectations, variables Séquences Instructions conditionnelles Boucles bornées et non bornées Définitions et appels de fonctions" semble correspondre dans mon message initial à : "Or Python, bien qu’il permette une programmation impérative, est un langage orienté objet" donc à une demande évidente d'en rester à de l'impératif même si le langage supporte l'objet. Néanmoins, on peut soupçonner une contradiction avec : "riche de bibliothèques adaptées aux thématiques étudiées" ce qui semble alors nécessiter d'avoir recours aux notions d'objets, sauf bibliothèque ou interfaçage spécialement développé par le corps enseignant, donc introduction à la notion d'objet, qui bien que le programme demande une réalisation d'"appels de fonctions" est néanmoins dans un concept (propriété/méthode) assez différent et nécessite une introduction pédagogique au concept objet, ce qui, pour le tout, en lisant l'indication "Chacun des thèmes a vocation à être enseigné sur une durée d’environ quatre semaines." paraît un objectif difficile pour l'enseignant et encore plus pour les élèves.

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    3 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 018
    Par défaut
    "Affectations, variables Séquences Instructions conditionnelles Boucles bornées et non bornées Définitions et appels de fonctions."
    Rien de tout cela n'oblige à faire de l'objet.
    Et tout cela est également possible lorsqu'on fait de l'objet.

    Ce n'est pas forcément incompatible avec "riche de bibliothèques adaptées aux thématiques étudiées".
    Car toutes les librairies n'imposent pas de faire de l'objet.
    Beaucoup proposent simplement des routines (donc de simples appels de fonctions).


    En ce qui concerne le "Chacun des thèmes a vocation à être enseigné sur une durée d’environ quatre semaines.".
    Si ces thèmes sont "Affectations, variables Séquences Instructions conditionnelles Boucles bornées et non bornées Définitions et appels de fonctions.".
    Alors quatre semaines pour les maitriser, cela me parait pas trop insurmontable.

    Personnellement, je n'enseignerai pas l'objet avec Python qui est, selon moi, trop permissif sur certains points.

    Mais c'est le langage parfait pour les thèmes Affectations, variables Séquences Instructions conditionnelles Boucles bornées et non bornées Définitions et appels de fonctions..
    La syntaxe est simple, elle impose de prendre la bonne habitude d'indenter son code et les messages en cas d'erreurs sont généralement très précis.

Discussions similaires

  1. Choix de langage C++ ou python ?
    Par boosted dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 18/06/2009, 10h00
  2. python et la liste de choix multiple
    Par ghadroud dans le forum Réseau/Web
    Réponses: 11
    Dernier message: 09/03/2009, 21h37
  3. choix server web python embarqué + ajax
    Par geekrider dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 12/01/2009, 14h51
  4. Choix : Java vs Python
    Par Jiyuu dans le forum Langages de programmation
    Réponses: 15
    Dernier message: 08/12/2008, 20h21
  5. Choix d'une technologie : J2EE ou PHP ou Python ?
    Par LeCogiteur dans le forum Général Conception Web
    Réponses: 10
    Dernier message: 27/03/2007, 23h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo