Deux écoles de pensée s’affrontent pour ce qui est de la façon dont le cerveau appréhende les programmes informatiques. L’une suggère qu’être bon en programmation requiert de l’être d’abord en mathématiques. L’autre soutient qu’en raison des parallèles entre le codage informatique et le langage naturel, la programmation informatique fait plus appel à des qualités linguistiques. « La compréhension du code informatique est un univers à part : rien à voir avec celle du langage naturel ou des mathématiques et la logique », indique l’équipe de chercheurs.
Les deux langages de programmation sur lesquels les chercheurs se sont concentrés dans cette étude sont connus pour leur lisibilité - Python et ScratchJr, un langage de programmation visuel conçu pour les enfants de 5 ans et plus. Les sujets de l'étude étaient tous de jeunes adultes maîtrisant le langage sur lequel ils étaient testés. Alors que les programmeurs étaient allongés dans un scanner à résonance magnétique fonctionnelle, les chercheurs leur ont montré des bribes de code et leur ont demandé de prédire l'action que le code produirait.
Les chercheurs n'ont constaté que peu ou pas de réaction au code dans les régions du cerveau sollicitées pour le traitement du langage naturel. Au contraire, ils ont découvert que la tâche de lecture de code informatique activait principalement un réseau à usage général. Ce dernier, dont l'activité est répartie dans les lobes frontaux et pariétaux du cerveau, est généralement sollicité pour des tâches qui nécessitent de garder plusieurs informations à l'esprit en même temps et est responsable de notre capacité à effectuer une grande variété de tâches mentales. L’étude indique qu’un sous-ensemble dudit réseau du cerveau est utilisé pour le traitement des problèmes de mathématiques et de logique. Dans le cas de la lecture de code informatique, plus de zones de ce réseau sont sollicitées suggérant que la programmation et les mathématiques ne s’appuient pas sur les mêmes mécanismes cérébraux.
Pourtant, les travaux du célèbre informaticien néerlandais Edsger Dijkstra dans les années ‘80 mettent en avant que la compréhension du langage naturel joue un rôle central dans la programmation informatique. C’est ce qu’une équipe de chercheurs allemands est venue confirmer dans une étude parue à mi-parcours de l’année qui tire à son terme : « À notre surprise, nous n'avons observé aucune activité dans le sens du raisonnement mathématique ou logique, ce qui serait conforme à la perspective selon laquelle la programmation est un processus formel, logique et mathématique. Le résultat le plus frappant est une activation de certaines zones de l’hémisphère gauche du cerveau lors des activités de compréhension de programmes. »
L’équipe de chercheurs allemands s’est appuyée sur la méthode de soustraction qui a fait ses preuves en neurosciences. Tout en étant exposés à un dispositif d’imagerie par résonance magnétique fonctionnelle, les sujets ont travaillé sur une première tâche qui consistait en la compréhension d’un extrait de code informatique. Après une courte période de repos, on leur a demandé de vérifier un extrait de code pour détecter de simples erreurs de syntaxe – une tâche de routine pour les travailleurs de la filière programmation informatique. La procédure a fait l’objet de plusieurs répétitions. Par la suite, les images de l'activité cérébrale pendant le traitement de la tâche de routine ont été soustraites de celles du test de compréhension. Ne restaient alors que les régions du cerveau utilisées en particulier dans le cadre de la compréhension des programmes.
Si ces études retiennent l’attention, c’est parce qu’elles interviennent dans un contexte global où l’on ne dissocie pas la programmation informatique des aptitudes nécessaires en maths pour être un acteur de la filière. Elles font suite à une autre publication de recherche qui, pour sa part, dit : doué en apprentissage de langues donc doué en programmation informatique.
Les conclusions mises en avant par ces équipes de recherche sont à confronter avec celles d’intervenants de la filière pour lesquels programmer c’est mettre en oeuvre des concepts algorithmiques pour la résolution de problèmes dans divers domaines. C’est de la capacité d’abstraction de l’intervenant à user d’outils mathématiques plus ou moins avancés pour proposer des solutions informatiques dont on parle ici. Dans le processus de l’implémentation de la solution, la connaissance d’une langue, en l’occurrence l’anglais, peut être d’une précieuse aide, notamment, pour la maîtrise d’outils comme les EDI.
Source : MIT
Et vous ?
Quelle pertinence accordez-vous aux conclusions de cette étude ?
Les maths sont-elles inutiles ou centrales dans votre travail et votre parcours de travailleur de la filière programmation informatique ? Pourquoi ?
Faut-il être matheux pour être bon en programmation ?
Voir aussi :
Les professeurs des classes prépas alertent sur le faible niveau en sciences du bac S, une menace pour l'enseignement supérieur en informatique ?
Réforme du lycée : les maths ne sont-elles utiles que dans les domaines scientifiques et informatiques pour être reléguées au rang de spécialité ?
Que faire pour minimiser l'impact des interruptions sur l'activité de développement de logiciels ? Appliquer les méthodes Agile ?
Y a-t-il une corrélation entre diplôme et succès en tant que développeur de logiciels ? Un acteur de la sphère donne son avis
Pourquoi réécrire un projet en partant de zéro ? Parce que l'ancien code est un fatras ou qu'il est plus facile d'écrire que de lire un code ?
Que pensez-vous des formations intensives en programmation ? Sont-elles plus efficaces que les formations classiques en informatique ?