L'informatique en prépa

Répondre

Messages : 0

Inscription : 07 mars 2016 12:43

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

L'informatique en prépa

Message par Koppnayw » 18 août 2017 20:12

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

Messages : 0

Inscription : 27 juil. 2017 13:37

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

Re: L'informatique en prépa

Message par Quentin Fortier » 18 août 2017 20:42

Bonjour,
Koppnayw a écrit :
18 août 2017 20:12
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 :
18 août 2017 20:12
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 :
18 août 2017 20:12
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/

Messages : 2427

Inscription : 27 juil. 2016 19:38

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

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

Message par U46406 » 18 août 2017 20:47

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:

Messages : 0

Inscription : 07 mars 2016 12:43

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

Re: L'informatique en prépa

Message par Koppnayw » 18 août 2017 21:04

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

Messages : 2427

Inscription : 27 juil. 2016 19:38

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

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

Message par U46406 » 18 août 2017 21:12

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:

Messages : 9679

Inscription : 30 juil. 2008 16:59

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

Re: L'informatique en prépa

Message par fakbill » 19 août 2017 23:14

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é.

Messages : 0

Inscription : 25 avr. 2017 11:25

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

Re: L'informatique en prépa

Message par Zehir » 08 sept. 2017 11:28

Bonjour,
Je vais essayer d'apporter quelques informations supplémentaires :
Koppnayw a écrit :
18 août 2017 20:12
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 :
18 août 2017 20:12
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).

Messages : 9679

Inscription : 30 juil. 2008 16:59

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

Re: L'informatique en prépa

Message par fakbill » 08 sept. 2017 18:02

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é.

Messages : 0

Inscription : 22 nov. 2017 08:37

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

Re: L'informatique en prépa

Message par paul1233 » 23 nov. 2017 11:51

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

Messages : 0

Inscription : 01 mai 2016 20:09

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

Re: L'informatique en prépa

Message par siro » 23 nov. 2017 12:19

@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