Hum... Ne faut-il pas apprendre l'algorithmie AVANT d'apprendre à coder ?
Comme ça a déjà été dit, à mon époque on faisait ça en pseudo code sur papier...
Ca force à réfléchir à l'algo plus que de taper du code un peu au pif en intervertissant des lignes jusqu'à ce que ça marche comme attendu par le prof.
C'est sur que c'est plus facile pour les profs de corriger sur un ordi que sur papier... ils lancent le prog et si c'est le bon résultat, 20/20...
Mais bon... il faut savoir si on veut des gens qui savent bricoler des maths sur ordi ou des gens avec de vraies notions en informatique.
Combien se prennent pour des cadors parce qu'ils savent faire quelques trucs en python et quand il faut un vrai algo robuste qui gère masse de données il n'y a plus personne parce qu'ils ne font pas attention à la mémoire ni à la vitesse qu'il faut pour que ça prenne pas 2j...
Et puis c'est quoi l'intérêt du python pour des littéraires par ex ? Au bac il y aura du python aussi sur une machine ? Sur papier ?
Bonjour
De ce que l'on m'a expliqué (source venant d'un directeur d'établissement), la nouvelle réforme du bac prévoit un socle commun jusqu'en terminale. L'élève devra définir dès la seconde ses options et les choisira définitivement pour le bac en terminale. De mon point de vue, c'est un bac "à la carte".
Du coup, si le littéraire veut faire de la programmation, et bien, il choisit l'option dès la seconde et voit si cela lui plait.
@++
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.
Pas sûr que Python suscite beaucoup de vocations pour les métiers de l'informatique, je m'interroge !!
Un language plus ludique serait plus apprécié des lycéens je pense 😬
Je faisais mumuse à pyplot et ipython ce matin et il faut quand même avouer que c'est bien pour faire coder des lycéens simplement avec des applications concrètes et rapides :
Et hop ! Des courbes avec les fonctions dont on leur parle en mathématiques.
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 In [1]: import matplotlib.pyplot as plt In [2]: import numpy as np In [12]: x = np.array(range(-10, 10)) In [13]: x Out[13]: array([-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) In [14]: plt.plot(x, x**2) Out[14]: [<matplotlib.lines.Line2D at 0x5f52d50>] In [15]: plt.plot(x, x**3) Out[15]: [<matplotlib.lines.Line2D at 0xb06e7f0>] In [16]: plt.show()
J'aime bien Python, je connais ces travers. Je maîtrise aussi plusieurs autres langages. Et clairement, faire ce genre de choses en C... Il faut être réaliste, on parle de faire coder des p'tits jeunes imberbes, pas des barbus aguerris comme le sont beaucoup d'entre nous. Il faut faire simple et Python répond à ce challenge. Ils auront bien le temps de se faire du mal avec C++ après
Les gens qui font ce genre de commentaire ont l'air de fonctionner comme des correcteurs orthographiques incapables de comprendre tout mot qui lui est inconnu, et comme des personnes qui pensent que les autre fonctionnent comme eux.
Ne t'en déplaise, les gens sont capables d'inférer le sens de néologismes à partir de celui des mots dont ils sont issus.
Par ailleurs, au cas où tu ne l'aurais pas remarqué une foule de mots de la langue française sont des anglicismes et des pseudo-anglicismes, et tu es ici sur un site s'adressant à des développeurs, où les anglicismes abondent encore davantage.
De plus, les anglicismes d'aujourd'hui sont les mots français de demain : si on n'avait pas accepté packet boat ou riding coat, on n'aurait pas de paquebots ou de redingotes.
Et si tu veux remplacer le bulldozer "dépourvu de sens" par un bouteur (recommandation officielle) bien français et qui lui, mystérieusement, aurait du sens parce que "français", vas-y, mais ne t'attends pas à être compris quand tu demanderas à un travailleur de chantier de déplacer son bouteur bouchant la rue pour que tu puisses passer avec ta voiture.
Enfin, le verbe designer (ou désigner) n'a pas le même sens que concevoir : concevoir un jeu vidéo, une charte graphique, une voiture, etc. n'est pas désigner un jeu vidéo, une charte graphique, une voiture, etc. :
https://www.commitstrip.com/fr/2018/06/26/psd-vs-css/?
Bonne journée fertile en interpellations, cher Policier de la Langue Française.
Je ne partage pas ton avis. Beaucoup de jeunes ont besoin de concret pour comprendre. Fair un pseudo algo, ne serait ce que de la dichotomie par exemple, ou la division euclidienne par soustraction succesive ou du PGCD, tu le fais sur papier tu as 50% de la classe qui ne se donne pas la peine de comprendre, et dans les 50% qui reste tu en a encore que la moitié qui comprenne. En ayant la pratique directement, tu captes déjà l'attention de bien plus de monde, car tu as quelque chose de concret auquel les élèves se raccrochent.
Il faut développer l'apprentissage de l'algorithmique en même temps que celle de Python. La réforme vaut ce qu'elle vaut et je la critique sur bien des points (comme la formation des enseignants notamment), mais sur le point de l'apprentissage concomitant de l'algorithmique et de la programmation, je pense que ca va dans le bon sens.
J'ai dit que Python était le plus simple en première approche. Sa syntaxe est proche du langage naturel (english of course). Le plus compliqué c'est de faire des algos et une première initiation par organigramme devrait être un préalable.
Les enseignants doivent maitriser les fondamentaux avant d'enseigner Python car en Python tout est objet et on peut vite se contredire si on est pas initié.
L'avantage de Python est son écosystème. Pour un collégien, le module Sympy permet de faire du calcul formel (développement, factorisation, résolution d'équation...). Pour un lycéen les modules Matplotlib, Scipy, Numpy, Panda et StatsModels permettent de ne pas réinventer la roue.
Pour les études supérieures, des modules en biologie, traitement de signal, mécanique, finances, graphes... sont dispo et éprouvés (sans bug). Les modules d'IA sont encore jeunes mais peuvent être abordés également.
Alors certes, Python n'est pas le meilleur en tout. C'est un couteau suisse, pas un scalpel, un couteau de chasse et de lancer.
Après, il peut s'avérer très pertinent en développement informatique pour valider une solution informatique avant l'engagement en Java (qui est le plus employé semble t-il en client et/ou serveur en France) et peut même parfois se suffire notamment dans l'industrie où il est très employé.
Entièrement d'accord, c'est ce qu'on fait en classe prépa.
Pour ce qui est de la formation, il y a eu des choses prévues pour les cpge (perso, j'ai fait 2 jours mais je m'étais préparé avant) mais pour le lycée, je ne sais pas. Je suis allé animer une mini-initiation pour les profs de maths mais c'était à la demande de ceux-ci, "payée" sur les fonds de l'établissement. Malheureusement, en 3h, on ne fait pas grand-chose.
Pas d'aide par mp.
Euh... Le verbe to design en anglais signifie bien concevoir. Ou alors on veut créer du franglais... et c'est là que commencent les ennuis.
Et parfois c'est bien de rappeler que certains anglicisme induise en erreur.
Utiliser manager, deadlines ou d'autres termes sans ambiguïté ne me dérange pas.
Il existe ensuite des faux-amis qui à eux seuls peuvent fausser le sens d'un terme : to design, silicon, consistent, etc...
Oui le français évolue mais si on pouvait éviter de dire que des micro-processeurs sont fait en silicone à cause d'une utilisation faussée du terme ça serait bien.
Je pense que Python est intéressant comme introduction a la programmation pour les personnes qui ne souhaitent pas en faire leur metier, car la barrière d'entrée est assez faible et ca permet de faire plus ou moins tout ce que l'on veut.
Après pour les fillières specialisés, je pense qu'il est indispensable d'apprendre a coté un langage qui soit plus strict et verbeux (Java/Kotlin/C#) afins d'aborder certains concepts qui sont absent de Python (Generiques, Dependency Injection, Inversion of Control, Interfaces (Certes il y a ABC c'est pas commun))
Jedema, je suis déçu. Vous avez oublié le meilleur des faux-amis utilisé n'importe comment dans la sphère francophone des marketeux : digital ! Il y a de quoi s'amuser avec les exemples absurdes de nos chers commerciaux.
Si j'en reviens au sujet, ne pouvant ne donner qu'un avis subjectif, je trouve que c'est une bonne chose d'apprendre un vrai langage de programmation aux jeunes. En soit, le langage importe peu tant qu'il n'est pas dépassé ou inutile (coucou scratch (même si c'est rigolo)).
Par contre, je vois une bonne et une mauvaise nouvelle dans le future. D'un côté, nous aurions des décideurs comprenant un peu plus ce qu'on fait et donc feront un peu plus preuve de raison sur la faisabilité de leurs demandes (je suis naïf ?). Et de l'autre côté, nous aurions des décideurs croyant tout savoir et pensant que comme ils ont fait de la programmation à l'école, ce que nous faisons est facile. Ils nous demanderont donc encore plus l'impossible avec l'argument : "je sais coder donc je peux dire que c'est faisable".
Le gros point d'interrogation si il n'est pas déjà noir, c'est effectivement la formation des enseignants. Oseront-ils créer un nouveau CAPES et une nouvelle agrégation ? Si oui, je serais un potentiel candidat. Si non, je crains le pire sur la qualité de l'enseignement de cette matière par des enseignants de Mathématiques, de physique ou de SI. Pourquoi la philosophie aurait le droit à ses concours mais pas l'informatique ? Ils pourraient mettre des enseignants de Français et d'Histoire-Géo en Philosophie (si n'est pas déjà fait ?). Personnellement, je pense que c'est absurde. Il faudrait des concours pour chaque matière; la philosophie étant tout aussi important que l'informatique et les autres matières.
Cependant, encore une fois, les politiques avorte d'un foetus : un nouveau programme sans formation des enseignants et sans augmenter les salaires afin de plus encore dégoutter les potentiels candidats dans les matières scientifiques. Ce n'est que du marketing de façade.
Peu importe le coût, on parle de nos futurs citoyens. L'école ne peut pas être rentable capitalistement parlant (je n'ai pas trouver de synonyme français). Alors rendons-là rentable humainement, socialement et dans la qualité de la formation. Mais je crains que mes idées soient trop en retard sur notre temps (je ne l'espère pas) ou trop en avance
Mais soyons optimiste, attendons de voir la version définitive. Peut-être seront nous surpris
«Le management, tel qu’on l’apprend dans les écoles et tel qu’on l’applique ensuite, sous prétexte de «motivation du personnel», organise exactement le contraire, à savoir la démotivation organisée.» - Bernard Stiegler
Certes, mais le sens d'un mot ne peut se réduire au meilleur équivalent disponible dans une autre langue.
Si je m'en réfère au Wiktionnaire, concevoir, entre autres sens qui n'ont rien à voir ici, c'est :
"(Figuré) Créer, inventer, imaginer, par une opération de l'esprit."
https://fr.wiktionary.org/wiki/concevoir
En langue française, en tout cas, le concepteur est donc quelqu'un qui travaille avec des concepts, qui pense, qui conçoit abstraitement les choses.
Par exemple, Albert Einstein est incontestablement le concepteur de la théorie de la Relativité, mais il ne peut absolument pas être qualifié de designer.
À l'opposé, selon la Wikipedia anglophone, "A designer is a person who makes designs for objects", une personne qui fait concrètement les choses.
Il me semble que le dessin de Commitstrip que j'ai inséré dans mon commentaire précédent traduit bien la différence entre les deux.
Et, bien sûr, les personnes qualifiées de designers peuvent être la fois concepteurs et faiseurs.
Ensuite, en passant d'une langue à l'autre, le sens d'un mot peut changer, et de fait, change souvent. Le packet boat anglais cité plus haut, ne transportait pas que des passagers, d'où son nom, au contraire du paquebot; un webdesigner (graphie française), est, en français et en France et en Belgique francophone (je ne sais pas ce qu'il en est dans d'autres contrées francophones), un graphiste web, tandis que dans les pays anglophones, un web designer (graphie anglaise) est un intégrateur web, tandis qu'un graphiste web y est appelé graphic designer.
Croyez bien qu'en tant qu'intégrateur, je serais personnellement ravi qu'on nous appelle, mes pareils et moi, des web designers et que ceux qu'on appelle en français (en France et en Belgique francophone, en tout cas) des "webdesigners" soient appelés des graphistes, mais, en passant de l'anglais au français (en France et en Belgique francophone, en tout cas), web designer est devenu webdesigner et a changé de sens. Je n'y peux rien, c'est comme ça.
Sinon, nous utilisons constamment des mots issus d'autres langues de manière tout à fait impropre. Pour un italien, parler d'un spaghetti (singulier: spaghetto), et pour un Afghan ou un Pakistanais, parler d'un taliban ou taleban (singulier: talib ou taleb) sont des contresens. Mais c'est comme ça et nous n'y pouvons rien.
Sinon, entièrement d'accord avec vous sur silicon et silicium et sur bien d'autres cas où des mots issus d'autres langues sont utilisés improprement en français ou y voient leur graphie modifiée au point de perdre leur sens dans leur langue originale (corned beef (en) > corned-beef (fr), trade union (en) > trade-union (fr) - pourquoi mettre un trait d'union dans trade union ?)
Bien à vous.
Chers autres lecteurs de ce fil, veuillez m'excuser pour ces hors-sujet.
Tu n'as pas choisi les bons exemples.
- La programmation générique est présente en Python. Voir ici et PEP 484.
- L'injection de dépendance et l'inversion de contrôle, en programmation orientée objet, on peut toujours faire ça de manière propre avec le patron de conception stratégie.
- Pour les interfaces, tu as déjà cité le module abc.
Cela dit, même pas rapport à des langages assez communs, Python n'a pas tout.
- Comparé aux langages objets, l'encapsulation est mal gérée en Python. On peut la simuler, mais c'est lourd.
- Python n'offre pas les fonctionnalités bas niveau comme C et C++.
- En Python, les lambdas ne peuvent avoir qu'une instruction, contrairement aux autres langages qui supportent les lambdas.
À part ça, si on veut enseigner aux étudiants des langages pour la richesse conceptuelle, à la place de Java, il vaut mieux se tourner vers des langages comme Haskell, Rust et la famille Lisp. Si, à la place, on privilégie Java, c'est pour que les étudiants trouvent plus facilement du boulot plus tard.
Bonjour à tous,
Si vous estimez que ce post n'est pas à sa place, déplacez-le, pas de pb !
A la lecture de vos échanges, je me suis dit que ledit sujet, entrait dans le cadre de cette Actualité et serait probablement de nature à susciter des réactions positives ou négatives...
Donc, voici le lien vers le sujet :
http://irem.univ-reunion.fr/IMG/pdf/2017-ep1_info.pdf
Je serais curieux de lire ce que ce sujet vous inspire.
N-B : c'est un écrit, sans accès à Python.
Bye
Je sais bien, j'utilise la PEP484 dans tout mes codes Python mais j'ai très rarement vu des bibliothèques qui l'utilisent de façon correct (Car ca exige une version très récente de Python quand on voit encore tout ce qui doit être compatible Python 2...
DI et IOC ca existe aussi mais comme c'est un typage dynamique ce n'est pas vraiment courant comme pattern sur Python, pareil pour les interfaces avec ABC (Que j'utilise dans mes codes mais que je n'ai jamais vu ailleurs)
En général les interfaces en Python sont implicite (comme dans Django), tu "suppose" que l'objet que tu reçois en argument implemente bien ce qu'il faut et si non ça casse tout au runtime
C'est la philosophie officielle
https://docs.python.org/3.4/glossary.html#term-eafp
Les calculatrices programmables sont des atouts pour l'apprentissage de la programmation et de l'algorithmique. Plusieurs calculatrices compatibles Python existent aujourd'hui:
- Numworks: https://www.numworks.com/fr/
- Casio FX90+E à flasher: https://www.casio-education.fr/artic...20GRAPH%2090+E
- TI83 Premium CE dès 2019: https://education.ti.com/fr/products...-83-premium-ce
Imposer Python comme langage dans le programme du lycée forcera les fabricants à migrer vers un langage commun.
A part escroquer tous les lycéens de 80 euros, je ne vois pas vraiment l'intéret de ce genre de calculatrice. Déjà programmer sans clavier, c'est de la torture et au pire il doit exister des applis équivalentes pour n'importe quel smartphone. Pourquoi ne pas plutot installer quelques ordi pour tout le lycée ? Même quelques vieilles machines de récup avec linux, ça peut faire l'affaire pour plusieurs années.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager