Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Nul en maths ? Vous êtes peut-être plus doué que vous ne le pensez pour la programmation informatique, d'après une étude
Qui montre que la filière fait plus appel à des qualités linguistiques

Le , par Patrick Ruiz

31PARTAGES

7  0 
Depuis de nombreuses années, le niveau en maths des élèves de terminale S en France va décroissant. Le tableau n’a pas manqué de susciter des inquiétudes quant à la qualité des produits des formations de niveau universitaire de la filière informatique de ce pays. Mais, c’est un fait à l’échelle globale : qui dit programmation informatique ne dissocie en principe pas les aptitudes nécessaires en maths pour être un acteur de la filière. En d’autres termes, sans maths point de salut dans la filière programmation informatique ? C’est plutôt le contraire que semble suggérer une étude de chercheurs de l’université de Washington.

De façon brossée, la publication de recherche dit : doué en apprentissage de langues donc doué en programmation informatique. En substance, la programmation informatique ferait plus appel à des qualités linguistiques qu’aux compétences en mathématiques. L’aptitude à l'apprentissage des langues serait un meilleur paramètre de prédiction des capacités d’apprentissage de la programmation que des connaissances de base en mathématiques ou en calcul.

« C'est parce que l’écriture du code informatique implique également l'apprentissage d'une seconde langue, la capacité d'apprendre le vocabulaire et la grammaire de cette langue et la façon dont ils travaillent ensemble pour communiquer des idées et des intentions », expliquent les chercheurs.

« La recherche décrite ici est motivée par un changement de paradigme conceptuel, à savoir que l'apprentissage des langages de programmation modernes ressemble à l'apprentissage d'une langue naturelle, comme le français ou le chinois, à l'âge adulte. De façon plus précise, nous soutenons que la recherche sur les bases neurocognitives de l'aptitude à la programmation a largement omis le fait que les langages de programmation informatique sont conçus pour ressembler à la structure de communication du programmeur (les langages humains) », ajoutent-ils.

Cette série de conclusions est le résultat d’une batterie de tests centrés autour du langage Python. Les chercheurs y ont soumis une trentaine d’adultes n’ayant jamais appris à coder, ce, pour évaluer leurs compétences cognitives sur divers axes (compétences mathématiques, linguistiques, attention, résolution de problèmes, mémoire...). Il en est ressorti que ceux qui ont appris Python le plus rapidement et avec une grande précision sont ceux qui possèdent un mélange de fortes capacités de résolution de problèmes et d’apprentissage de langues étrangères. Dans les chiffres de la part de compétences nécessaires à l’apprentissage du langage Python et publiés par l’équipe de chercheurs, les mathématiques expliquent seulement 2 % de la capacité d’apprentissage.


Après, le choix du langage Python est peut-être pour beaucoup dans les résultats obtenus par l’équipe de recherche. En effet, explique-t-elle, ce langage a été retenu pour sa ressemblance avec la langue anglaise. « Python était un choix naturel, car ce langage fait usage de structures anglaises telles que l'indentation des paragraphes et utilise de nombreux mots réels plutôt que des symboles pour les fonctions », lit-on.

Du coup, doué en apprentissages de langues donc doué en apprentissage de langages de programmation serait plus admissible au vu des contenus de la publication, mais il y a que les chercheurs généralisent leurs résultats à la programmation informatique au sens le plus large : « De nombreux obstacles à l'entrée dans la filière de la programmation informatique, partant des prérequis aux stéréotypes sur ce à quoi ressemble un bon programmeur, sont centrés sur l'idée que la programmation repose fortement sur les aptitudes en mathématiques, mais cette idée ne se dégage pas de nos données. »

La conclusion mise en avant par l’équipe de recherche (doué en apprentissage de langues donc doué en programmation informatique) est à 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. Après, il semble qu’il n’y ait pas de lien avec la rigueur et la logique qui sont des qualités essentielles des acteurs de la filière. D’ailleurs, l’étude dissocie l’aspect aptitude à apprendre des langues à de celui de cognition…

Source : nature

Et vous ?

Doué en apprentissage de langues donc doué en programmation informatique : qu’en pensez-vous ?
Quelles sont les aptitudes en langues qui vous ont été les plus utiles en tant qu’acteur de la filière programmation informatique ?
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 ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Xioth
Nouveau membre du Club https://www.developpez.com
Le 09/03/2020 à 8:36
Faut-il être matheux pour être bon en programmation ?
De mon point de vue, il faut être bon en logique pour être bon en programmation.
Je trouve que la programmation, c'est plus souvent du bon sens, et de l'analyse de la situation, qu'une réelle utilisation des Mathématiques.

Après tout dépend du sujet traité. Et c'est là qu'un bon niveau en Maths peut avoir son intérêt.
13  0 
Avatar de Neckara
Expert éminent sénior https://www.developpez.com
Le 09/03/2020 à 12:36
Donc ils prennent un langage pour sa ressemblance avec l'anglais pour prouver que les compétences en programmation informatique dépendent surtout des capacités linguistiques… pas du tout biaisé comme démarche…

10 sessions de 45 minutes, ça reste quand même très court pour une formation. Avec seulement 36 participants, dont 21 femmes, et pas de gauchers.

Les sessions sont organisées sur des tests régurgitant le contenu du cours… donc surtout de ma mémoire à court terme, et a priori pas réellement d'exercices réellement pratiques ou de gros projets.

Le test final est un QCM et un test de codage. Bizarrement le QCM est très orienté sur le langage lui-même:
Following the ten session Python training, participants completed a 50-item multiple-choice test consisting of information presented in the first 14 lessons in Code cademy. Half of the questions queried semantic knowledge, or an understanding of the purpose of functions in Python, and the other half investigated syntactic knowledge including questions such as “Which line of code is formatted correctly?” Participants were given 30 minutes to complete this test.
Et pour le test final:
After completing the multiple choice portion of the post-test, participants were tasked with programming a Rock-Paper-Scissors (RPS) game that a user could play against the computer. This project was created by Codecademy, but participants did not complete it during learning. The programming test included instructions that partially broke down the larger problem into predefined steps. Participants were not allowed to use any additional resources (e.g., notes, forums, help buttons) to complete the project but were able to run and test their code. Participants were given 30 minutes to complete the project. The code they produced was scored by three independent raters using a rubric developed by Python experts that assigned points to each step of the project (ICC = 0.996, 95% confidence interval from 0.993–0.998, F(35,70) = 299.41, p < 0. 001). Programming accuracy was operationalized as each participant’s score out of 51 total points.

Bref, une grosse connerie, comment cela a-t-il pu être accepté dans un journal aussi prestigieux que Nature ???
Ils partent d'une conclusion, et organisent leur expérience de sorte à tomber dessus !
9  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 09/03/2020 à 10:48
ça dépend ce qu'on programme.

Pour des batches bancaires comme j'ai fait pendant des années, et ou on ne se sert que des 4 opérations(et encore, la division, c'est fort rare), aucun rapport. Pour calculer des écoulements de liquides visqueux ou l'influence de Jupiter sur la trajectoires des satellites, mieux vaut comprendre de quoi on parle.
6  0 
Avatar de olaxius
Membre averti https://www.developpez.com
Le 09/03/2020 à 10:40
Dire qu'il faut être bon en maths pour être bon programmeur, c'est comme dire qu'il faut être architecte pour être un bon maçon .
Le facteur CHEVAL n'était ni Architecte , ni maçon , il a quand même réussi à construire un palais .
Effectivement pour les domaines comme la Cryptologie ,la bio informatique , finances, ou d'autres domaines ou les mathématiques sont prépondérantes , mieux vaut être matheux.
En revanche pour faire de l'informatique dite de gestion (compta, base de donnes, sql ...), ou pour faire du développement web , il n'est pas nécessaire d'avoir la bosse des maths
5  0 
Avatar de Neckara
Expert éminent sénior https://www.developpez.com
Le 09/03/2020 à 13:21
Pour résumer simplement, ils testent des compétences principalement linguistiques, et trouvent que les résultats sont prédits par les compétences linguistiques de la personne.

Le problème est que la programmation ne se résume absolument pas à régurgiter des connaissances linguistique sur le langage, ou de pouvoir effectuer des tâches très simples lorsque très fortement guidés.

Cela ressemble un peu aux premiers TP que l'on pourrait faire en L1… mais il ne faut pas oublier que les formations durent de 2 à 5 ans, avec des travaux pratiques, et même après cela, tous les étudiants n'ont pas nécessairement un niveau satisfaisant.

Le problème c'est que la programmation informatique ne se base pas tant sur la connaissance des fonctions du langage (ce qu'on retrouve très facilement sur Internet), mais sur le respect bonnes pratiques/conventions du langage, la recherche d'information/lecture des documentations/autonomie, ainsi que de pouvoir modéliser les problèmes de sorte à pouvoir les résoudre facilement et d'écrire du code propre qui sera maintenable.

Or cela n'est absolument pas testé par l'étude qui nous est présentée.
5  0 
Avatar de BugFactory
Membre expérimenté https://www.developpez.com
Le 09/03/2020 à 14:42
Un informaticien, c'est beaucoup plus que quelqu'un qui sait écrire du code. C'est l'étude elle-même qui est hors sujet.
5  0 
Avatar de melka one
Membre éprouvé https://www.developpez.com
Le 09/03/2020 à 10:00
Doué en apprentissage de langues donc doué en programmation informatique : qu’en pensez-vous ?

c'est centré sur l'apprentissage du langage pas sur son utilisation, si certains mette plus de temps a apprendre le langage cela ne veut pas dire qu'ils sont moins bon que les autres.
4  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 09/03/2020 à 15:28
L'un n'empêche pas l'autre. Le fait d'avoir de bonnes connaissances langagière aide fortement à être un professionnel efficace...indépendamment de la profession. Après, l'étude pour le démontrer est plus que douteuse(36 personnes, ouah, la taille d'échantillon énorme!!! le QCM pour tester les capacités à programmer en Python, c'est énorme aussi...).

Mais bon, ce n'est pas comme si c'était la première fois qu'on lisait des âneries sur notre métier. Rien qu'en écoutant nos grands chefs parler....
4  0 
Avatar de Neckara
Expert éminent sénior https://www.developpez.com
Le 09/03/2020 à 14:58
Citation Envoyé par BugFactory Voir le message
Un informaticien, c'est beaucoup plus que quelqu'un qui sait écrire du code. C'est l'étude elle-même qui est hors sujet.
Sachant que l'étude n'évalue même pas la capacité à écrire du code.

Elle évalue la capacité à retenir certains éléments du langage, sans forcément garantir que la personne sera capable de lire du code ou de réellement les utiliser.

Derrière, ils évaluent quand même la capacité d'écrire des bouts de codes de manière très guidé, ce que je n’appellerais pas "écrire du code".

Mais je te rejoins sur le fait qu'être bon dans un langage de programmation ne se résume pas à être capable de pisser du code.
3  0 
Avatar de walfrat
Membre confirmé https://www.developpez.com
Le 09/03/2020 à 15:56
Citation Envoyé par Neckara Voir le message
Sachant que l'étude n'évalue même pas la capacité à écrire du code.

Elle évalue la capacité à retenir certains éléments du langage, sans forcément garantir que la personne sera capable de lire du code ou de réellement les utiliser.

Derrière, ils évaluent quand même la capacité d'écrire des bouts de codes de manière très guidé, ce que je n’appellerais pas "écrire du code".

Mais je te rejoins sur le fait qu'être bon dans un langage de programmation ne se résume pas à être capable de pisser du code.
Pour compléter, on pourrait dire qu'il font appel avant tout à leur capacité linguistique pour prendre en main leur premier langage en se raccrochant à ce qu'ils connaissent.

Après c'est clair qu'il en faut un minimum, a chaque fois qu'on rajoute une librairie, on a plein de nouvelle classe... en anglais, mais si t'es pas fichu de comprendre comment c'est censé fonctionner, ça ne te mènera pas plus loin que d'aller demander à google et faire un copier/coller (en n'oubliant pas de citer la source du code copié et la licence ).
2  0