Stanford a beau être une université réputée et sélective, elle recrute en première année les étudiants qui sortent des high-schools (équivalent du lycée) dans lesquelles la plupart des élèves n'ont pas fait de programmation.
Java
JavaScript
C++
C
C#
Python
PHP
Scala
Perl
MATLAB
ARM Assembly
Visual Basic
Racket
R
Prolog
Ruby
Lisp
CSS
HTML
Haskell
Objective-C
Swift
TypeScript
Pascal
Pascal Objet / Delphi langage
Autres (précisez)
Stanford a beau être une université réputée et sélective, elle recrute en première année les étudiants qui sortent des high-schools (équivalent du lycée) dans lesquelles la plupart des élèves n'ont pas fait de programmation.
Oui. Tout comme quasiment toutes les formations bac+1 de france n'ont à peu près aucun pré-requis en programmation.
La différence, c'est que Stanford peut sélectionner des étudiants qui ont toutes les chances de réussir leurs études. En France les universités ne sélectionnent pas : si tu as un bac tu peux aller à la fac. D'un côté c'est bien car un bac pro boulanger peut finalement se révéler être un bon informaticien mais d'un autre côté "ça fait tache" car il y a proportionnellement moins de monde qui passe en 2e année que s'il y avait déjà une sélection en 1ere année.
ça dépend vraiment du point de vue: ayant un peu trainé mes guêtres dans les environs je peux affirmer que beaucoup de formations françaises n'ont pas à rougir au point de vue technique.... loin de là!
La qualité d'une université c'est à un moment donné la qualité d'une équipe. Quand l'équipe change on ne retrouve pas forcément les éléments qui ont fait la réputation à un moment donné (il y a , en plus, plusieurs aspects: qualité de la recherche, qualité de l'enseignement, impulsion professionnelle, etc... Il y a des tronches qui sont des pédagogues lamentables (et réciproquement)), une université peut aussi avoir une réputation méritée mais elle ne s'étend pas forcément à tous les sous-ensembles qui la compose: c'est particulièrement vrai dans des universités US qui peuvent donner un boost extraordinaire sur des bases techniques parfois curieusement faibles.
En bref: à l'instant T je ne considère pas qu'il y ait un grand rayonnement du département info concerné dans le domaine de la pédagogie de la programmation ... mais peut-être qu'à T+1 ... attendons de voir. Donc laissons tomber l'argument d'autorité pour discuter du fond.
Personnellement, j'ai eu une initiation au Pascal dans l'enseignement secondaire.
Et comme la programmation me plaisait plutôt bien, j'ai continué l'apprentissage en autodidacte, à l'aide de tutoriaux et surtout de forums de discussion tels que ceux proposés par Developpez.com.
Je trouve que le pascal, puis le pascal objet (delphi) est assez bien approprié pour débuter.
Personnellement, j'aimais bien le Pascal. C'est un langage structuré qui permet d'apprendre les notions importantes et qui ne nécessite pas l'installation d'outils compliqués par un débutant.
N'oublions pas la "motivation" de l'étudiant qui, avec un langage facile à mettre en œuvre mais néanmoins structuré, pourra créer ses petits programmes avec une certaine fierté et ainsi participer activement à sa formation.
Je trouve souvent les exercices "académiques" très artificiels et sans beaucoup de contact avec la réalité.
Dans cette optique, le JavaScript est possible mais son caractère brouillon et son association au HTML m'inquiète un peu.
Cela n'engage que moi!
Je pense pour ma part que la question doit être relativisée. C'est-à-dire tout depend de l'objectif final de l'école/université.
Néanmoins, JS semble le mieux adapté en ce sens qu'il est utilisé à la fois du côté client et du côté serveur. En plus il aborde des notions que l'on trouve dans presque tous les langages: P(O)O et autres. Il permet de créer des appli desktops, web et mobiles.
Pour moi, le meilleur langage reste Pascal pour apprendre les concepts de base de la programmation. Dans une autre mesure, il existe Ada,
langage génial, proche du Pascal, si on n'utilise pas la généricité, les threads, etc... Malheureusement aujourd'hui, Pascal est un peu désuet
et Ada a été surtout utilisé par le DoD (Department of Defense, USA).
Actuellement, on a le choix entre C/C++, Java, Python.
- le C est difficile, notamment en raison des nombreux symboles utilisés qui ont parfois plusieurs significations (comme & = adresse, référence, et-binaire)
et de la maîtrise qu'il demande pour ne pas commettre d'erreur (cf le livre de Jacquelin Charbonnel : Langage c les finesses d'un langage redoutable)
- le C++, qui se base sur le C, est devenu très complexe et pour l'apprentissage il faut rester à une niveau C + <iostream> + éventuellement <array>
- le Java est très intéressant mais la distinction entre "int" et "Integer", le fait qu'il faille faire un "new Integer" pour créer un nouvel entier alors que ce n'est pas
le cas avec int, et qu'on peut créer un ArrayList<Integer> mais pas un ArrayList<int> pose des questions qui sont liées à l'implantation du langage qui 'cache'
l'allocation mémoire des objets. Néanmoins la syntaxe est claire et les nombreuses bibliothèques permettent de réaliser tout ce qu'on veut.
- reste Python, langage que je n'apprécie pas particulièrement et qui est porté aux nues par certains. Pour l'avoir utilisé avec des étudiants qui ni connaissent
rien en programmation, le retour est que c'est un langage difficile à appréhender et l'absence de typage peut conduire à écrire des choses qui ont un sens
pour le programmeur mais qui en ont un autre pour le langage. La syntaxe est horripilante (indentation, ':' après if, else, while, qui me parait totalement inutile).
L'intérêt du Python est, à mon sens, que celui qui ne sait pas programmer peut faire aussi bien que celui qui sait programmer puisqu'il suffit d'utiliser les
bibliothèques / classes / fonctions adéquates.
Enfin, concernant Javascript, je trouve ce langage totalement déplorable et surement pas adapté à un public qui doit apprendre les concepts de base de
l'informatique. Tout dépend bien sûr à qui on s'adresse : futurs étudiants informatique ou biologistes ou littéraires ?
Non, c'est 1 gros +. Le HTML étant 1 langage déclaratif (comme le CSS), ils s'apprennent très très rapidement.
parce que faire des algos avec 1 affichage très facilement, c'est autre chose que le C/ C++ en ligne de commande, avec 1 formatage à coup de % ... sans parler des problèmes d'encodage (ASCII seulement)
Sans parler de l'aspect script du JavaScript : beaucoup de choses se font directement dans le butineur (Chrome, IE, Opera, Firefox, ...)
Ce ne sont pas les 15 Go au minimum de Visual C++ ou Netbeans à installer et qu'il te manque toujours quelque chose... même si tu auras toujours besoin d'1 bon éditeur.
Et nonparce que pour toi, quel est le paradigme à apprendre ? procédural ? objet ? fonctionnel ?
Apprendre la programmation procédurale avec le Pascal ou le C, ne te seras utile que dans 10% des emplois (<- chiffre à la louche de mon cru)
La programmation objet, malgré son aspect "réel - on manipule des objets "avion, carré, personne, ..." et pas stricto sensus des données informatiques" semble poser des problèmes à des débutants
Et justement JavaScript, c'est 1 langage qui a 1 paradigme spécifique: la programmation orientée prototype (<- lien wiki en français), et donc tu as nettement moins ces notions d'héritage, de typage, de surcharge, de programmation générique et j'en passe qu'avec les langages orienté objet comme C++ ou Java.
Et pour la programmation fonctionnelle, tous les langages s'y mettent: avec les fermetures, les lamddas ... donc, cela peut s'apprendre après coup, après le JavaScript.
Partager