Ah ils utilisent certaines bibliothèques avec Maple ? Certes, alors.
@ Adolorante : Super pour la première question de la moitié des sujets, style « Coder un tri en n log n »
J’en connais pas beaucoup que ça a passionné, les tris de listes.
(C’est d’ailleurs la raison pour laquelle je connais certaines personnes qui aimaient beaucoup programmer et qui ont choisi l’option SI…)
C’était une image. A priori toutes les questions « classiques », comme il y en a dans toutes les matières (notamment en SI), font partie d’une bibliothèque paumée quelque part. Ca veut dire qu’il faut les supprimer pour que les gens qui ne sont pas à l’aise mais ont fait l’effort d’être au point sur leur cours soient dans la merde ?
Bah justement, tu peux modifier en partie le cours, non ?
Par exemple en cours de simulation de variables aléatoires, on n’allait pas passer notre temps à simuler des uniformes, des Poissons, des normales ou des exponentielles pour lesquelles on a une commande. De même, s’il y a une commande dans une bibliothèque qui permet de trier une liste, bah on l’utilise et on peut se débrouiller pour poser d’autres questions (en restant dans les tris, on peut demander d’expliquer les principes de tri par inversion, de tri fusion ou de tri rapide en explicitant des temps de calculs plus précis).
Je me dis qu’en pratique, un ingénieur ne va pas chercher à coder un algorithme de tri s’il en existe déjà un qui est performant. Il va faire quelque chose de plus intéressant dessus.
En pratique, l’ingénieur a d’abord été taupin, et a montré qu’il savait coder les bases de ce qu’il utilise de façon effective dans son boulot. Il est aussi évident qu’un ingénieur ne re-codera pas un tri à chaque qu’il en a besoin, qu’un taupin n’est pas à ce stade.
Adolorante a écrit:
expliquer les principes de tri par inversion, de tri fusion ou de tri rapide
Perso - surtout en Caml - je les code plus vite que je ne les explique (c’est une sorte de pseudo-code très bien conçu, je trouve). Mais oui si tu veux « expliquer le principe », puis utiliser la fonction de la bibliothèque, pourquoi pas. N’empêche que la recoder ne me choque pas, au contraire, et permet de garder cette distinction naturelle dans Caml Light entre ce que l’on peut utiliser (accès au données, traitement basique) et le reste.
Autre point au débat : apprendre le Caml Light en prépa ne me semble pas si aberrant. Le OCaml, ça se code vaguement comme du Caml Light avec sur une autre page la lib sur tous les modules pour manipuler tout ce qu’on veut. Facile à apprendre une fois en école et beaucoup trop axé technicité - à mon avis - pour faire de la bête algorithmique de prépa.
Arky a écrit:
Ah ils utilisent certaines bibliothèques avec Maple ? Certes, alors.
A Centrale oui, mais pas à X-ENS.
Cet exemple démontre qu’il est possible de faire des sujets de concours sur l’algorithmique de base avec un langage moderne ayant de nombreuses bibliothèques. C’est un faux problème les bibliothèques. Rien n’interdit de demander aux concours de reprogrammer une fonction de bibliothèque.
Je trouve que Caml-light a de gros défauts :
- Sur le principe, enseigner un langage qui n’est plus maintenu n’est pas très sain. On devrait enseigner un langage moderne.
- Les élèves ne peuvent pas utiliser directement toute la documentation sur Ocaml (c’est un très gros point noir à mon avis, il n’est pas normal que les élèves soient « limités » à de la doc écrite pour les prépas).
- Les élèves ne bénéficient pas de la syntaxe améliorée de Ocaml, exempli gratia :
[list]
[*]les noms plus clairs des fonctions sur les tableaux/listes,
- la fonction ignore
- le « let rec » sans restriction (pratique pour faire la memoization de 1ère année).
- Les opérateurs « fold » : Caml Light utilise des noms non-standards (do au lieu de fold, par exemple do_list est le nom du fold sur les listes en Caml Light). Est-il normal d’enseigner des notations non-standards que personne d’autre n’utilise ?
- …
[/:m]
[]La partie du programme sur l’utilisation de bibliothèques est à mon avis mieux adaptée à Ocaml.[/*:m][/list:u]