A propos du choix du langage de programmation : Différence entre versions

De Sciencinfolycee
Aller à : navigation, rechercher
m (A propos du choix du langage de programmation)
m (A propos du choix du langage de programmation)
Ligne 20 : Ligne 20 :
 
* [http://www.canal-u.tv/producteurs/fuscia/dossier_programmes/science_info_lycee_profs_conferences_de_formation_des_professeurs_du_secondaire_en_science_informatique/premiers_principes_des_langages_de_programmation Premiers principes des langages de programmation, Gilles Dowek]
 
* [http://www.canal-u.tv/producteurs/fuscia/dossier_programmes/science_info_lycee_profs_conferences_de_formation_des_professeurs_du_secondaire_en_science_informatique/premiers_principes_des_langages_de_programmation Premiers principes des langages de programmation, Gilles Dowek]
 
* [http://www.epi.asso.fr/revue/itic23som.htm Algorithmique, programmation, langages] catalogues de belles ressources sur le sujet.
 
* [http://www.epi.asso.fr/revue/itic23som.htm Algorithmique, programmation, langages] catalogues de belles ressources sur le sujet.
 +
 +
Voir aussi :
 +
* [[Pour préparer, illustrer des cours :Langages et programmation]]

Version du 11 février 2012 à 15:43

A propos du choix du langage de programmation

« Quel[s] langage[s] les profs vont utiliser pour les TP de programmation ? » voilà peut-être la première et la plus fréquente question que nous nous posons y compris sur notre forum et c'est un sujet qui peut alimenter de longs débats (à juste titre).

Paradoxalement, il y une réponse assez simple à cette question:
« Nous pouvons rester agnostiques (position de ceux qui affirment ne pas savoir quelle est la bonne réponse) mais choisir un langage standard et ouvert, bien supporté et avec une base impérative »:

  • Choisir un langage avec une base impérative, c'est à dire avec les ingrédients usuels des algorithmes (séquence d'instruction, instruction conditionnelle, affectation de variables et boucles).
  • Choisir un langage standard, ouvert et bien supporté (ex: Java ou Python ou Ruby ou encore JavaScript), quitte à utiliser une version simplifiée de ces langages pour démarrer.
  • Donner aux élèves quelque chose qui pourra leur servir par la suite (études, univers professionnels, loisirs, etc.).

Un autre point clé est Avec quel-le logiciel/plateforme travailler ?: Au delà du langage c'est bien évidemment le choix de l'outil qui permet de l'utiliser qui fait levier. Tandis que Python vient avec son utilitaire de développement et que Java'sCool permet de programmer en Java, la plateforme IOI est un bel exemple d'agnosticisme (mais nécessite de tout faire en ligne). Le confort, cela compte énormément !

Que faut-il éviter alors au niveau de l'ISN ?

  1. Les langages non impératifs, par exemple les langages fonctionnels, qui correspondent à des abstractions vraiment fondamentales, mais scientifiquement différentes des fondements algorithmiques qui sont à faire partager
  2. D'autres outils logiciels (calculateurs symboliques, calculettes programmables, environnement graphiques de programmation, etc.) qui certes permettent de programmer et d'apprendre à programmer mais
    • – comportent des bizarreries (ex: la sémantique de l'affectation n'est pas la même dans un calculateur symbolique puisqu'il a d'autres fins; une affectation du genre x:=x+1 produit des effets assez étranges suivant le contexte, ce qui est un obstacle conceptuel important pour les débutants).
    • – ne permettent pas de relier la notion de langage à celle de programmation (ex: dans le cas d'outils de programmation graphique, la syntaxe est "gommée" donc ne peut être appréhendée)
  3. Les langages "exotiques" et les "bricolages géniaux" : on va trouver sur le Web beaucoup de plateformes artisanales qui n'ont que de petites communautés d'utilisateurs et risquent de ne pas survivre, donc risquent de faire perdre beaucoup de temps.

En savoir plus:

Voir aussi :