Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Messages : 4

Inscription : 25 sept. 2018 15:07

Profil de l'utilisateur : Élève de lycée

Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par Aubyn Kensington » 01 nov. 2018 22:40

Bonjour,
J'avais fais un peu de programmation en Python avant la prépa, et notre professeur nous a averti, les élèves qui ont déjà fait du Python avant la prépa, que les fonctions qui ont des propriétés « performantes » comme le tri ou le miroir dans une liste par exemple ne sont pas autorisés au concours, et il faut, si on en a besoin, les reécrire.

J'ai donc une question sur les propriétés du langage qui ne sont pas « performantes » mais qui ne sont pas enseignés en prépa non plus. Par exemple a-t-on le droit d'utiliser assert booléan, "message erreur" ou le fait que les listes peuvent être utilisés comme des booléens ?

Par exemple pour la question 8 de IPT X ENS PSI 2015 :https://info-llg.fr/commun-mp/prive/pdf ... enonce.pdf
On nous demande d'imprimer une liste d'autoroute du genre : 
Ce plan contient 4 route(s) : (1−2) (2−4) (2−5) (4−5)
Dans une correction que j'ai trouvé sur Internet, on a créé une chaîne de caractère vide et on a concaténé des parenthèses et des chiffres dans cette chaîne, et enfin on l'a mis en argument dans print.
Est-ce que par exemple, au concours, on ne peut pas écrire print("(",chiffre1,"-",chiffre2,")",end=" "), ce qui serait plus élégant ?

Les syntaxes de ce genre qui ne sont pas au programme risqueraient-ils d'énerver le correcteur ? Merci beaucoup.
모사재인 성사재천
MPSI -> MP -> CentraleSupélec

Messages : 294

Inscription : 27 oct. 2017 10:55

Profil de l'utilisateur : Professionnel

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par Hibiscus » 02 nov. 2018 01:29

Il est demandé aux élèves d'utiliser le socle de base du programme, et les questions sont toujours solvables en utilisant ce socle.
Le correcteur (même s'il n'est pas au singulier..) est de très loin plus "savant" que l'ensemble des candidats réunis, et connaît bien évidemment ces propriétés. Le but n'est pas de montrer que tu as dépassé le chouilla du programme, mais de montrer que tu sais raisonner avec les outils qui te sont donnés.
Cf, les rapports de concours.

En l'occurence, pour l'exemple que tu as donné, je doute qu'on puisse te le reprocher, c'est pas méchant. Mais typiquement, si une question te demande d'écrire un type de tri, et que tu réponds en une ligne "on utilise le tri machin, qui il se trouve existe déjà sous Python", bah c'est pas l'objectif.
Masséna (PC*) -- X15 -- Spatial.

YS1

Messages : 13

Inscription : 06 févr. 2005 11:50

Profil de l'utilisateur : Enseignant (CPGE)

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par YS1 » 02 nov. 2018 13:47

Comme indiqué ci-dessus, il ne faut pas "trivialiser les questions" et s'adapter à leur niveau (comme en math, du reste).

Concernant la maitrise des éléments avancés de Python par les correcteurs, je pense que c'est assez variable d'un correcteur et d'un concours à l'autre. Quand on lit l'annexe Python des sujets de modélisation du CCP PC, on se rend compte que la personne qui l'a rédigée n'est pas un utilisateur régulier de ce langage. Le sujet des Mines de 2015 a été pensé en C++ et mal recraché en Python.
Aubyn Kensington a écrit :
01 nov. 2018 22:40
J'ai donc une question sur les propriétés du langage qui ne sont pas « performantes » mais qui ne sont pas enseignés en prépa non plus. Par exemple a-t-on le droit d'utiliser assert booléan, "message erreur"
On ne pratique pas vraiment la programmation défensive, donc je ne vois pas dans quelle circonstance il est judicieux de faire cela (peut-être dans des questions qui manipulent des données brutes comme en modélisation ?).
ou le fait que les listes peuvent être utilisés comme des booléens ?
Ça, c'est juste crade.
Est-ce que par exemple, au concours, on ne peut pas écrire print("(",chiffre1,"-",chiffre2,")",end=" "), ce qui serait plus élégant ?
Oui.

Messages : 12

Inscription : 13 mai 2018 15:17

Profil de l'utilisateur : Enseignant (CPGE)

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par BAupetit » 02 nov. 2018 19:47

Chaque concours semble avoir sa politique.

Pour la banque PT, il a été annoncé lors de la dernière réunion bilan (sur la session 2018) que tout était accepté, du moment que ça marchait : si le correcteur à un doute, il lui suffit de tester.

D'autres concours peuvent être plus rigides sur ce sujet.
Professeur de SII & d'informatique, PTSI-PT* Jean-Baptiste Say

Messages : 4

Inscription : 25 sept. 2018 15:07

Profil de l'utilisateur : Élève de lycée

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par Aubyn Kensington » 02 nov. 2018 23:14

Hibiscus a écrit :
02 nov. 2018 01:29
Le correcteur (même s'il n'est pas au singulier..) est de très loin plus "savant" que l'ensemble des candidats réunis, et connaît bien évidemment ces propriétés.
Je sais bien que c'est le cas en maths, en physique, en Philo et en Langues vivantes. Je pose cette question pour Python parce que souvent ce sont les professeurs de Physique ou de Maths, qui ont fait l'agreg de Physique ou de Maths mais fléché en info pour l'enseignement qui enseignent l'IPT. (et même en Ocaml) :wink:
모사재인 성사재천
MPSI -> MP -> CentraleSupélec

Messages : 294

Inscription : 27 oct. 2017 10:55

Profil de l'utilisateur : Professionnel

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par Hibiscus » 03 nov. 2018 02:24

Pas sur le type de sujet que tu as cité ; les correcteurs 2016, par exemple étaient affiliés au LiX. (plus un physicien, qui fait des simulations python à grande échelle.)
Si on peut te laisser utiliser des trucs légèrement hors programme à l'IPT X-ENS, ça passera moins sur l'épreuve de CCP, pour laquelle, oui, les correcteurs sont peut-être plus tels que tu les décrits.
Masséna (PC*) -- X15 -- Spatial.

Messages : 12

Inscription : 13 mai 2018 15:17

Profil de l'utilisateur : Enseignant (CPGE)

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par BAupetit » 03 nov. 2018 20:15

Aubyn Kensington a écrit :
02 nov. 2018 23:14
Hibiscus a écrit :
02 nov. 2018 01:29
Le correcteur (même s'il n'est pas au singulier..) est de très loin plus "savant" que l'ensemble des candidats réunis, et connaît bien évidemment ces propriétés.
Je sais bien que c'est le cas en maths, en physique, en Philo et en Langues vivantes. Je pose cette question pour Python parce que souvent ce sont les professeurs de Physique ou de Maths, qui ont fait l'agreg de Physique ou de Maths mais fléché en info pour l'enseignement qui enseignent l'IPT. (et même en Ocaml) :wink:
N'oublions pas les collègues de SII, qui sont nombreux à enseigner l'IPT, et sont aussi présents dans les jurys d'épreuves d'informatique.
Professeur de SII & d'informatique, PTSI-PT* Jean-Baptiste Say

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par fakbill » 08 nov. 2018 14:58

Oui voila il faut s'adapter à l'exo.
Si on vous demander de coder un tri, .sort() n'est pas une réponse ;)

assert booléan, "message erreur" : aucun intéret de mettre des asserts dans un problème de concours. De plus, en python, le style est plutôt de laisser faire et de gérer l'exception si le code en lève une. bref, assert...on s'en tape (et les exceptions également au concours).

Pour ce qui est du formatage du print, on s'en fout totalement je pense. ce qui compte c'est l'algo pour caluler les données à afficher.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Messages : 62

Inscription : 18 juil. 2017 16:50

Profil de l'utilisateur : Professionnel

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par Puffin » 08 nov. 2018 22:20

BAupetit a écrit :
02 nov. 2018 19:47
Pour la banque PT, il a été annoncé lors de la dernière réunion bilan (sur la session 2018) que tout était accepté, du moment que ça marchait : si le correcteur à un doute, il lui suffit de tester.
Étant enseignant en programmation en école d'ingé, cette approche me semble être la seule valide quand on parle d'un langage donné.
Soit une fonctionnalité est dans le langage soit elle ne l'est pas.
En Python, la fonction sort() existe dans le langage y compris avec un critère arbitraire passé sous forme de lambda fonction. Ça n'a pas de sens de l'ignorer.
En C++, ça existe seulement dans la librairie standard et dans ce cas on pourrait l'ignorer en se limitant arbitrairement au langage de base (ce qui n'a aucun intérêt mais passons :mrgreen: )

Par ailleurs c'est un bon moyen de garder les correcteurs à niveau, perso j'apprends des trucs de temps en temps en lisant les codes que les étudiants soumettent et je ne me vois pas leur dire qu'ils n'ont droit d'utiliser que ce que moi je connais.

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Le correcteur au concours connaît-t-il les propriétés usuelles de Python ?

Message par fakbill » 09 nov. 2018 10:15

C'est tout le débat de "quel est le but du cours d'info en prépa".
Pour moi, il est double :
* donner les moyens aux taupins de traiter des données. Ca veut dire leur montrer un langage et leur inculquer une culture "traitement de données" : savoir se débrouiller pour lire un fichier, faire un plot, un tri, un traitement de base, savoir ce qu'est un *gros* problème et ce qui est un tout petit calcul, meme sur un laptop standard. L'inverse d'une matrice 10x10, c'est tout petit. Je ne suis pas sûr que tous les taupins en soit conscients. Bref, les choses qu'un ingé en contact avec des données fait au jour le jour.

* le second objectif est de savoir un peu ce qu'il y a sous le capot. La complexité. savoir un peu comment ça scale. Typiquement, comprendre pourquoi on peut avoir envie de lire cette page https://wiki.python.org/moin/TimeComplexity et la comprendre. Pour cela, il est utile de coder à la main des choses qui existent. Par exemple un tri simple. **cependant**, il faut absolument le faire en ayant conscience que c'est pour apprendre et que, dans la vraie vie, le plus souvent on ferait sort() sans réfléchir car les données ne seront pas bien grosses. C'est ce point qui pose problème. Certains on du mal à faire la part des choses. Oui on peut apprendre le C++ en recodant + et * sur un type matrice fait maison...mais il faut **aussi** connaitre les libs qui font ça bcp mieux :)
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Répondre