L'informatique en prépa

Modérateur : Michel Quercia

Répondre
Koppnayw
Messages : 135
Enregistré le : lun. mars 07, 2016 1:43 pm
Classe : MP

L'informatique en prépa

Message par Koppnayw » ven. août 18, 2017 8:12 pm

Bonjour,

Durant mes années de prépa MPSI/MP, je n'ai pas eu la chance de pouvoir faire option info (mon lycée ne la proposait pas).

J'aimerais savoir à quoi sert Caml et pourquoi ce serait plus adapté que Python pour certaines situations.

Aussi, j'ai remarqué en feuilletant quelques sujets de concours que l'informatique de prépa ressemblait beaucoup à des maths. Du coup est-ce que ça sert vraiment pour faire des programmes et si oui pourquoi ?

Merci
La prépa c'est résoudre des problèmes compliqués qui ont une solution, la vie c'est résoudre des problèmes simples qui n'ont pas de solution.
Ponts

Quentin Fortier
Messages : 10
Enregistré le : jeu. juil. 27, 2017 1:37 pm
Contact :

Re: L'informatique en prépa

Message par Quentin Fortier » ven. août 18, 2017 8:42 pm

Bonjour,
Koppnayw a écrit :
ven. août 18, 2017 8:12 pm
Durant mes années de prépa MPSI/MP, je n'ai pas eu la chance de pouvoir faire option info (mon lycée ne la proposait pas).
C'est le cas de beaucoup de personnes (dont moi). On pourrait se demander pourquoi l'option SI est systématique et pas l'info, mais, bref, passons...
Koppnayw a écrit :
ven. août 18, 2017 8:12 pm
J'aimerais savoir à quoi sert Caml et pourquoi ce serait plus adapté que Python pour certaines situations.
Voir http://ocaml.org/learn/tutorials/functi ... mming.html et https://ocaml.org/learn/tutorials/data_ ... ng.fr.html

Caml est un langage fortement typé, il est capable de détecter automatiquement le type des variables/fonctions ce qui permet d'éviter des bugs et de rendre les fonctions plus claires (on comprend souvent ce que la fonction fait en regardant son type). Il est plus facile de prouver des programmes écrit en Caml (cf http://why3.lri.fr/ qui peut être utilisé avec OCaml).
Python utilise le duck typing (https://fr.wikipedia.org/wiki/Duck_typing): le type d'un objet est "vérifié" seulement au moment de son utilisation (quand celui-ci est utilisé par un client?).
Caml est plus rapide que Python (http://roscidus.com/blog/blog/2014/02/1 ... -you-gain/).
Le pattern matching est très pratique, la définition de types et les applications partielles de fonctions aussi.
Koppnayw a écrit :
ven. août 18, 2017 8:12 pm
Aussi, j'ai remarqué en feuilletant quelques sujets de concours que l'informatique de prépa ressemblait beaucoup à des maths. Du coup est-ce que ça sert vraiment pour faire des programmes et si oui pourquoi ?
Il y a beaucoup d'algorithmique et de structures de données, indissociables de la programmation.
Professeur d'informatique en CPGE
http://quentinfortier.fr/

Avatar du membre
U46406
Messages : 7244
Enregistré le : mer. juil. 27, 2016 7:38 pm
Classe : shadow CCO nobo CMT
Contact :

Re: L'informatique en prépa vs l'informatique aux Ponts ?

Message par U46406 » ven. août 18, 2017 8:47 pm

Vu que tu indiques dans ta signature que tu vas aux Ponts,
à mon avis, autant que tu demandes à tes futurs profs d'informatique de ton école à ta rentrée.

En tant que visiteur de leur site, j'ai vu qu'ils ont un cours de Caml : http://cermics.enpc.fr/cours/info2/caml.html


Quant à l'option informatique, pour l'instant, y avait pas assez de profs capables de l'enseigner, ce qui explique sa rareté dans certaines prépas. Mais quelqu'un a dit récemment que ça change, que de plus en plus de petites prépas ont désormais des MPSI et MP option informatique.
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait) :mrgreen:

Koppnayw
Messages : 135
Enregistré le : lun. mars 07, 2016 1:43 pm
Classe : MP

Re: L'informatique en prépa

Message par Koppnayw » ven. août 18, 2017 9:04 pm

Merci à vous deux.

Le site que tu m'as donné U46464 date de 1998 ! :lol:
J'ai regardé les programmes et on apprend le C++ en première année.
La prépa c'est résoudre des problèmes compliqués qui ont une solution, la vie c'est résoudre des problèmes simples qui n'ont pas de solution.
Ponts

Avatar du membre
U46406
Messages : 7244
Enregistré le : mer. juil. 27, 2016 7:38 pm
Classe : shadow CCO nobo CMT
Contact :

Re: L'informatique en prépa et Caml ?

Message par U46406 » ven. août 18, 2017 9:12 pm

Oui, c'est un vieux support de cours, comme indiqué sur ces vieilles pages html,
donc comme déjà dit :
vois donc ça avec tes futurs profs d'informatique à la rentrée.
« Occupez-vous d’abord des choses qui sont à portée de main. Rangez votre chambre avant de sauver le monde. Ensuite, sauvez le monde. » (Ron Padgett, dans Comment devenir parfait) :mrgreen:

Avatar du membre
fakbill
Messages : 11166
Enregistré le : mer. juil. 30, 2008 4:59 pm
Classe : Dr.-Ing

Re: L'informatique en prépa

Message par fakbill » sam. août 19, 2017 11:14 pm

Caml est un langage fortement typé, il est capable de détecter automatiquement le type des variables/fonctions ce qui permet d'éviter des bugs et de rendre les fonctions plus claires (on comprend souvent ce que la fonction fait en regardant son type). Il est plus facile de prouver des programmes écrit en Caml (cf http://why3.lri.fr/ qui peut être utilisé avec OCaml).
Python utilise le duck typing (https://fr.wikipedia.org/wiki/Duck_typing): le type d'un objet est "vérifié" seulement au moment de son utilisation (quand celui-ci est utilisé par un client?).
Caml est plus rapide que Python (http://roscidus.com/blog/blog/2014/02/1 ... -you-gain/).
Le pattern matching est très pratique, la définition de types et les applications partielles de fonctions aussi.
Tout ça est aussi vrai que théorique.
En pratique, python vient avec un lib standard très très étendue. C'est à dire que tu peux faire plein de choses en python sans avoir à les coder car c'est déjà dans le langage. De plus, il existe la trilogie numpy/scipy/matplotlib. Ce sont des modules python qui, en gros, te permettent de faire du calcul scientifique. L'interface de ces modules est python mais sous le manteau c'est du C ou du fortran donc les perfs sont très correctes. Pour finir, il existe des centaines de modules en python. Si tu veux par exemple ouvrir un fichier au format machintruc, il est fort probable qu'il existe un module python pour le faire.

Caml...il faut bien dire que c'est plus pour apprendre l'info théorique. Ok ok il y des applications en caml ou basées sur caml...mais la plusfun que je connaisse c'est...un compilateur C dont ils ont prouvé la correction.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Zehir
Messages : 80
Enregistré le : mar. avr. 25, 2017 11:25 am
Classe : Mage
Localisation : 127.0.0.1
Contact :

Re: L'informatique en prépa

Message par Zehir » ven. sept. 08, 2017 11:28 am

Bonjour,
Je vais essayer d'apporter quelques informations supplémentaires :
Koppnayw a écrit :
ven. août 18, 2017 8:12 pm
J'aimerais savoir à quoi sert Caml et pourquoi ce serait plus adapté que Python pour certaines situations.
CamL est avant tout un langage fonctionnel et Python un langage impératif. Ça implique que tous les éléments sont des fonctions en Caml. De plus, on utilise beaucoup de récursivité en Caml (c'est spécialement optimisé pour ça). Python sait faire les fonctions récursives, mais ce n'est pas ce qu'il est naturel de faire dans ce langage.

Après, python est un peu obscur comme langage : on ne sait jamais vraiment comment c'est implémenté. Exemple : les array sont des tableaux de taille variables : donc tableau ou liste ? Est-ce que l'on a accès à un élément en temps constant ou linéaire ?
Ça simplifie grandement la vie de l'utilisateur, mais c'est un peu frustrant quand même.

La problématique du typage à déjà été soulevée, mais j'insiste un peu dessus : le système de typage de python peut créer des bugs de typage venus de l'espace et difficile à repérer. Par exemple : python ne fait pas du tout ce que l'on veut, simplement parce qu'il a interprété une erreur de typage comme quelque chose de totalement légal.

Par exemple, pour faire un compilateur, c'est beaucoup mieux de le faire dans un langage où l'on a un système de types forts comme Caml. Du coup ce n'est pas uniquement un langage éducatif, mais bien un langage très intéressant mais pour des applications spécifiques.

Koppnayw a écrit :
ven. août 18, 2017 8:12 pm
Aussi, j'ai remarqué en feuilletant quelques sujets de concours que l'informatique de prépa ressemblait beaucoup à des maths. Du coup est-ce que ça sert vraiment pour faire des programmes et si oui pourquoi ?
Les maths, c'est la vie ;) . En fait, en informatique, on a besoin d'un minimum de maths et d'algorithmique pour faire des programmes qui soient un tantinet optimisés (exemple : faire un tri en O(n log(n)) pour les gros tableaux même si c'est un brin plus difficile à implémenter). C'est la différence entre un informaticien (qui a fait une prépa) et un bouffeur de code (typiquement EPITECH et équivalents où on a abandonné les maths).

Avatar du membre
fakbill
Messages : 11166
Enregistré le : mer. juil. 30, 2008 4:59 pm
Classe : Dr.-Ing

Re: L'informatique en prépa

Message par fakbill » ven. sept. 08, 2017 6:02 pm

le système de typage de python peut créer des bugs de typage venus de l'espace et difficile à repérer :
oui et non. Python fait du duck typing et tout est dynamique. Quoi ça ??? C’est simple. Dynamique, ça veut dire qu’on peut faire x=’4’ puis x=’foo ‘ sans que python ne trouve rien à redire. Il change simplement le type de la variable x d’un entier à une chaine. Ca peut déplaire aux gens qui sont habitués au typage statique mais c’est très souple. C’est très souple grace au duck typing. Le duck typing est la chose suivante. En python, tout est objet. On applique le plus souvent des méthodes sur un objets ou on passe des objet en argument de fonctions. Python va gérer ces objets et en appeler les méthodes qu’on demande quand on code. Tant les objets ont les méthodes voulues alors python est heureux. On ne spécifie donc pas des types en disant « je définis une fonction qui prend deux entiers en arguments ». non. On code sa fonction et python va vérifier lors de l’exécution que les objets qu’ils manipulent proposent bien les bonnes méthodes. C’est de là que vient le nom duck : si ça marche comme un canard et que ça sait faire coincoin alors c’est un canard. Rien à secouer de la race exacte du canard ou du fait que ce soit un type qui imite un canard : Ca marche.
Par exemple, si le code demande à un moment une methode pop(), n'importe quel objet qui propose cette method sera accepté. C'est ultra souple. Pour ceux qui connaissent le C++, ce manque de souplesse est compensé (très mal) par les templates.

Tout ça pour dire que la notion de type statique traditionnel n'a pas de sens en python. duck typing for the win.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

paul1233
Messages : 5
Enregistré le : mer. nov. 22, 2017 9:37 am
Classe : huit

Re: L'informatique en prépa

Message par paul1233 » jeu. nov. 23, 2017 12:51 pm

Quel est le meilleur site web qui guide quel metier a choisir dans l'informatique apres BAC?

Avatar du membre
siro
Messages : 3224
Enregistré le : dim. mai 01, 2016 8:09 pm
Classe : Cassandre

Re: L'informatique en prépa

Message par siro » jeu. nov. 23, 2017 1:19 pm

@U46406 : je ne suis pas convaincu qu'il soit pertinent de répondre à ce paul1233, qui poste des messages sur des topics parfois sans trop de rapport, déterre les sujets et ne s'implique pas trop dans les réponses...
Chaque vénérable chêne a commencé par être un modeste gland. Si on a pensé à lui pisser dessus.

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités