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

  1. #1
    Chroniqueur Actualités

    Éducation : Python bientôt langage officiel de programmation en France ?
    Éducation : Python bientôt langage officiel de programmation en France ?
    Un projet dans le cadre de la réforme du Bac et du lycée

    À la mi-février, le ministre français de l'Éducation a dévoilé la tant débattue réforme du bac qui, comme on s'y attendait, a marqué la fin des séries au lycée, du moins pour la voie générale. Pour les partisans de cette réforme, il s'agit de repenser le lycée afin de mieux accompagner les élèves dans la conception de leur projet et dans l'acquisition des connaissances et des compétences nécessaires à leur poursuite d'études.

    Mais cette réforme du baccalauréat et du lycée général et technologique nécessite l'élaboration de nouveaux contenus d'enseignement. Le Conseil supérieur des programmes (CSP) a donc été saisi par le ministre en février 2018 afin de concevoir les projets de programmes du futur lycée. Depuis la mi-octobre, le CSP rend publics ses projets pour les classes de seconde et de première générale et technologique. Pour certains enseignements, le projet de programme de terminale est également disponible.

    Ces programmes seront présentés devant le Conseil supérieur de l'éducation à la fin décembre puis publiés au début de l'année 2019. Ils entreront en vigueur, pour les classes de seconde et de première, à la rentrée prochaine. Mais avant cela, le ministre a souhaité engager, du 5 novembre au 20 novembre 2018, une large consultation pour recueillir l'avis et les suggestions de la communauté éducative.

    En parcourant les différents programmes, on découvre que le CSP a décidé de faire de Python le langage officiel de l'enseignement de la programmation en France. Dans les programmes de Sciences numériques et technologie (classe de seconde, enseignement commun) et Numérique et sciences informatiques (classe de première, enseignement de spécialité, voie générale), on peut en effet lire la note suivante :

    « Un langage de programmation est nécessaire pour l’écriture des programmes : un langage simple d’usage, interprété, concis, libre et gratuit, multiplateforme, largement répandu, riche de bibliothèques adaptées aux thématiques étudiées et bénéficiant d’une vaste communauté d’auteurs dans le monde éducatif est nécessaire. Au moment de la conception de ce programme, le langage choisi est Python version 3 (ou supérieure). » Dans les programmes de Physique-chimie et de Mathématiques de première (enseignement de spécialité), il est également fait allusion au langage de Guido van Rossum comme « langage de programmation conseillé. »


    C'est peut-être trop tôt pour dire que Python est le langage officiel de l'enseignement de la programmation au lycée vu que c'est un projet, mais ça sera difficile de montrer ou défendre que le langage ne mérite pas cette place. Cela dit, utiliser Python pour l'enseignement de la programmation en France va certainement donner un coup de supplémentaire au langage qui ne fait que gagner du terrain. TIOBE, PyPL, IEEE, RedMonk, etc. Presque tous les indicateurs de popularité des langages s'accordent sur ce point. Python est reconnu pour sa simplicité (donc propice pour les débutants) et sa polyvalence (donc un langage sûr). Est-ce donc une bonne idée de faire de Python le langage officiel d'enseignement de la programmation en France ?

    Sources : Eduscol, Programmes (Sciences numériques et technologie, Numérique et sciences informatiques)

    Et vous ?

    Qu'en pensez-vous ?
    Est-ce une bonne idée de faire de Python le langage officiel d'enseignement de la programmation en France ?
    Sinon, qu’auriez-vous préféré ?

    Voir aussi :

    Rubrique Python (Actualités, Forums, FAQ, Tutoriels, Sources, Outils, Livres)
    Calibre, le gestionnaire open source de livres numériques, ne va pas migrer à Python 3, car l'auteur s'estime capable de maintenir Python 2
    Programmation : Python gagne de plus en plus en popularité, et Swift fait à nouveau son entrée dans le top 10 de l'index TIOBE d'octobre 2018
    Réforme du bac : Blanquer supprime les séries au lycée pour la voie générale, quelles conséquences sur l'enseignement supérieur en informatique ?
    Le Stanford CS choisit le JavaScript comme langage d'initiation à la programmation en 2017, cela aux dépens de Java
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre expérimenté
    pourquoi imposer un langage ? je ne comprends pas ! Quand j'étais à l'ecole, on faisait de l'algo avec les mots en francais : si..alors, tant que, pour, etc... et ca marchait parfaitement bien.
    Pourquoi faire simple quand on peut faire compliqué ?
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


  3. #3
    Expert éminent sénior
    Faire de l'algo sur papier et utiliser un langage de programmation sur un ordi c'est pas la même chose.
    Python était déjà leader de fait sur l'éducation , mais ça sert de normaliser officiellement ça évite les disputes entre profs et ça permet d’utiliser les mêmes support pour tous.

    Après je pense qu'on parles du lycée la, pour les études supérieures évidement qu'il vont rapprendre autre chose que seulement Python, comme Java, C++ etc...
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  4. #4
    Modérateur

    Je trouve ça assez étrange de choisir un langage à la syntaxe "particulière". Python est quand même assez éloigné des langages plus traditionnels (c,c++,java ). Je suis sans doute un peu vielle école sur le sujet , mais c'est sa syntaxe qui m'a fait arreter python assez rapidement , j'ai jamais réussi à me faire au concept.

    Dans tous les cas je suis pas certains qu'il y'est de bon ou mauvais candidat pour l'apprentissage , il faut surtout apprendre à raisonner et utiliser le bon outil au bon moment.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Expert éminent sénior
    Tout à fait, ça serait plus formateur d'apprendre Java ou C# , mais ici on parles de former des jeunes qui deviendrons pas forcément informaticiens, et sur cette cible la même si Python c'est un peu un ovni informatique c'est plus facile que Java ou C#. Dans les universités US c'est le même système : dans les universités non informatique c'est une petite initiation de base avec Python et dans les universités informatique c'est Java ou autres.
    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  6. #6
    Membre à l'essai
    Bonne initiative, d'autant que Python est le langage de prédilection du Bigdata et du machine learning.
    La structuration du code par l'indentation c'est franchement agréable.

    La fin des horreurs comme algobox, scratch...

  7. #7
    Membre éprouvé
    Citation Envoyé par grunk Voir le message
    Je suis sans doute un peu vielle école sur le sujet , mais c'est sa syntaxe qui m'a fait arreter python assez rapidement , j'ai jamais réussi à me faire au concept.
    Python est utilisé comme langage de script dans de nombreux soft. Si on fait après le lycée des études qui ont peu de lien avec la programmation, c'est plus utile d'avoir d'avoir fait du python. Je l'ai vu avec des artistes CG qui comprennent rien au C++, java, … mais qui sont capables d'automatiser certaines de leur tâches lourdingues en python ou faire des petites extensions dans photoshop ou autre.

  8. #8
    Membre du Club
    Citation Envoyé par Cpt Anderson Voir le message
    pourquoi imposer un langage ? je ne comprends pas ! Quand j'étais à l'ecole, on faisait de l'algo avec les mots en francais : si..alors, tant que, pour, etc... et ca marchait parfaitement bien.
    Pourquoi faire simple quand on peut faire compliqué ?
    Il ne passerons pas outre l'algo. L'intérêt de leur faire toucher un langage de programmation c'est avant tout de leur permettre de ressentir le sentiment d'accomplissement propre au bon fonctionne de son logiciel. C'est toujours intéressant de mettre à exécution son algo.
    N'oublions pas qu'ils auraient pu choisir WinDEV.

    Citation Envoyé par Pierre Louis Chevalier Voir le message
    Faire de l'algo sur papier et utiliser un langage de programmation sur un ordi c'est pas la même chose.
    Python était déjà leader de fait sur l'éducation , mais ça sert de normaliser officiellement ça évite les disputes entre profs et ça permet d’utiliser les mêmes support pour tous.

    Après je pense qu'on parles du lycée la, pour les études supérieures évidement qu'il vont rapprendre autre chose que seulement Python, comme Java, C++ etc...
    Tout à fait d'accord. Je dirais même que des langage comme Java et C++ demandent des connaissances spécifiques préalables comme la POO avant de pouvoir faire quoi que ce soit. Apprendre la POO à des élèves de lycée qui ne souhaitent pas en faire leur métier, je ne suis pas certain du résultat. Autant leurs permettre de faire leur premiers pas sur des langages plus "accessibles"

  9. #9
    Responsable Arduino et Systèmes Embarqués

    « Un langage de programmation est nécessaire pour l’écriture des programmes : un langage simple d’usage, interprété, concis, libre et gratuit, multiplateforme, largement répandu, riche de bibliothèques adaptées aux thématiques étudiées et bénéficiant d’une vaste communauté d’auteurs dans le monde éducatif est nécessaire. »
    ... et dont le nom commence par "Py". Étant donné la liste des critères, quelles étaient les autres possibilités de langage ?

  10. #10
    Nouveau membre du Club
    Bonne idée
    C'est une assez bonne idée selon moi, lorsque j'étais au lycée on utilisait Algobox mais tu te retrouves assez vite limité. Python est un langage qui a une syntaxe simple et facile à lire et beaucoup de librairies pour faire un peu de tout "simplement" (numpy pour les matrices/scientifique.., PIL/Pillow pour faire du traitement d'images, Pandas pour faire de l'analyse de données, jupyter pour faire des documents avec du code live,...).

  11. #11
    Membre éclairé
    Je dirais même que des langage comme Java et C++ demandent des connaissances spécifiques préalables comme la POO avant de pouvoir faire quoi que ce soit
    Du tout, C++ peut être utilisé comme premier langage, il y a des conférences aux USA sur cela, sans parler de POO, juste en utilisant des classes existantes : string , vector, map ou des objets existans cout/cin (tout cela avec std bien sûr)...
    C'est d'ailleurs bien pour cela qu'Arduino a réussi, pour la partie logicielle, le hardware y faisant pour beaucoup aussi.

    Et même en utilisant cling on peut faire de l'interprété, elle est pas belle la vie ;-)

  12. #12
    Nouveau Candidat au Club
    Je suis en école d'ingénieur (prepa intégrée) et mes professeurs (docteurs) n'approuvent pas Python. Personnellement c'est un langage que j'apprécie mais je rejoins leur avis sur le fait que c'est un langage qui est un peu souple comparé à d'autres: déclaration des variables, initialisation du type d'une variable etc. Cela dit un apprentissage de la programmation en pseudo code permet, selon moi, une application pour tous languages

  13. #13
    Modérateur

    J'aurais approuvé le langage Python si la PEP 484 n'était pas facultative.


    Citation Envoyé par Paulhaha Voir le message
    Cela dit un apprentissage de la programmation en pseudo code permet, selon moi, une application pour tous languages
    Le pseudo-code, ou comment chaque enseignant utilise sa propre syntaxe pour écrire du code qui lui passe par la tête pour qu'ensuite l'étudiant se rende compte qu'il a peu de chance de fournir une implémentation à partir de ce qu'il a recopié du tableau Désolé, je n'ai jamais aimé le "pseudo-code"
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  14. #14
    Membre à l'essai
    C'est un très bon choix pour débuter car c'est le plus simple en première approche. Avec l'IDE Spider, on peut exécuter à la volée des lignes de code et tracer toutes sortes de graphiques. L'écosystème est probablement le plus riche qui soit et les rapports fait avec Jupyter permettent de de collaborer facilement entre élèves ou de rendre un devoir propre. On peut regretter toutefois la notation matricielle et préférer R pour les stats.
    Et pour ceux qui veulent se lancer dans l'informatique, c'est le langage le plus rapide et un des plus concis pour faire du prototypage, et quand on sait que plus de moitié des projets sont des échecs avec les méthodes agiles, c'est un gage de sécurité. Alors bien sûr, il devient parfois compliqué avec des calculs lourds où le passage en C multithreadé ou par GPU (réseaux de neurones...) est nécessaire, mais cela reste à la marge.

  15. #15
    Expert confirmé
    Citation Envoyé par Gugelhupf Voir le message
    J'aurais approuvé le langage Python si la PEP 484 n'était pas facultative.
    Je traduis pour que tout le monde comprenne : PEP 484 permet de standardiser l'utilisation des annotations pour faire du typage statique. Ces annotations sont optionnelles. Quand elles sont présentes, on peut vérifier le typage sans exécuter le code, par exemple avec un outil comme mypy.

    Rq : PEP 484 n'est pas la seule PEP sur le typage statique. Le code de démo ci-dessous s'appuie aussi sur PEP 526 à propos des annotations des variables locales.

    Démo :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    from typing import Iterable, List, Sequence
     
    listeQuelconque: List[object] = [10, 20, 30]
    listeQuelconque.append(42)
    listeQuelconque.append('test')
    monObjet = listeQuelconque[0]
    monObjet += 1 # Erreur selon mypy, car object n'a pas l'opération +=.
     
    listeDEntiers: List[int] = [10, 20, 30]
    listeDEntiers.append(42)
    listeDEntiers.append('test') # Erreur selon mypy, car une chaîne n'est pas un entier.
    monEntier = listeDEntiers[0]
    monEntier += 1
    listeDEntiers = (10, 20, 30) # Erreur selon mypy, car un tuple n'est pas une liste.
     
    sequenceDEntiers: Sequence[int] = [10, 20, 30]
    sequenceDEntiers.append(42) # Erreur selon mypy, car Sequence n'a pas l'opération append.
    monEntier = sequenceDEntiers[0]
    monEntier += 1
    sequenceDEntiers = (10, 20, 30)
    sequenceDEntiers = {10, 20, 30} # Erreur selon mypy, car un ensemble n'est pas une séquence.
     
    iterableDEntiers: Iterable[int] = [10, 20, 30]
    monEntier = iterableDEntiers[0] # Erreur selon mypy, car Iterable n'est pas indexable.
    monEntier += 1
    iterableDEntiers = (10, 20, 30)
    iterableDEntiers = {10, 20, 30}

    Remarque : ce typage n'est pas vérifié au runtime. Le code ci-dessus s'exécute sans erreur.

  16. #16
    Membre expérimenté
    Avoir un langage de script dans sa boite à outil sera utile à la plupart des gens qui auront un job dans un bureau. Pas besoin de devenir une brute, durant mes années dans le milieu de la finance/marketing c'est incroyable le nombre de taches répétitives, joliment appelées procédures, qui sont faites chaque jour à l'identique. Ça peut être du rapport journalier, la liste des clients qui n'ont pas étés contactés depuis x mois, etc. largement automatisable par un simple script.

    Python est simple et permissif mais introduit tout de même les concepts de base de la programmation, conditions, boucles, ainsi que quelques structures "complexes" comme les listes, tuples ou dictionnaires. On peut même s'en servir pour introduire au différents paradigmes mais je ne sais pas si les programmes veulent aller jusque là.

    Et puis c'est un langage en gain de popularité donc même pour les élèves qui veulent poursuivre dans l'informatique ça ouvre des portes.


    [troll]
    Reste plus qu'a devenir un boss en django pour rattraper les merdes que nombres de wannabe web devs vont pondre dans les 10 prochaines années
    [/troll]

  17. #17
    Modérateur

    @Pyramidev, la PEP 526 n'a pas vraiment de grand intérêt, par contre la PEP 484

    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  18. #18
    Nouveau Candidat au Club
    Pourquoi le python
    Python est très utilisé par des logiciels, et extension. Mais il serait plus préférable de faire apprendre deux language le python et le C comme ça l'élève aura déjà un petit ou bon niveau avec c'est deux language et ça lui évitera de payer une école à 10000€ l'année

  19. #19
    Membre expert
    Bonjour

    J'ai fait parti de la génération Informatique Pour Tous (plan IPT de 1984) avec l'initiation sur Thomson TO7 et des langages comme LOGO (si, si, la tortue itself) et/ou BASIC... où finalement, c'est plus votre serviteur qui enseignait à la maîtresse.
    Alors, le fait de choisir Python plutôt qu'un autre langage plus usité ne me dérange pas. Oui, python a une syntaxe particulière mais incite à fortement bien présenter son code, une bonne habitude à prendre. Je dirais aussi que python est suffisamment généraliste et les élèves motivés s'orienteront vers sa librairie conséquente pour des projets personnels plus importants.
    Non, ma question est plus concernant la formation des enseignants. J'espère que les enseignants seront correctement formés avec une priorité sur les profs de physique-chimie et mathématiques.
    Questions à vous, chers cofilaires, cet enseignement est obligatoire ou optionnel?
    Conclusion: je suis favorable, pourvu que les enseignants soient formés et que l'élève y voit un intérêt pour plus tard,

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  20. #20
    Nouveau Candidat au Club
    Une belle nouvelle pour @edu_blocks
    Il faudra que le collège s adapte avec scratch