Programmation : Psychologie cognitive du code

Explorez la programmation informatique sous le prisme de la psychologie cognitive : architectures mentales, neurosciences du code et processus d’apprentissage.

Dr. Mohammed Looti Universitaire et chercheur spécialisé en psychologie
PUBLIÉ
Révisé scientifiquement · Dr. Marwa Abd-Alazim · novembre 1, 2026
Revu médicalement et scientifiquement Vérifié le : novembre 1, 2026
Dr. Marwa Abd-Alazim PhD in Psychology
Faculty Member • University of Kerbala
Critères d'évaluation et normes cliniques

Ce contenu fait l'objet d'un examen scientifique rigoureux et de normes éditoriales médicales afin de garantir l'exactitude clinique et la conformité aux directives fondées sur des preuves (APA / OMS).

La programmation informatique constitue l’une des activités cognitives les plus complexes et sophistiquées élaborées par l’esprit humain, engageant de manière intensive la mémoire de travail, le raisonnement logique et la métacognition. Loin de se limiter à la simple transcription de commandes syntaxiques à destination d’une machine, elle représente un processus continu d’abstraction, de modélisation mentale et de résolution créative de problèmes. L’exploration de cette discipline sous l’angle de la psychologie cognitive met en lumière les mécanismes fondamentaux par lesquels la pensée humaine conceptualise, structure et délègue des opérations déterministes à des systèmes artificiels.

Programmation informatique

1. Définition concise

En psychologie cognitive et en sciences ergonomiques, la programmation informatique se définit comme l’activité intellectuelle consistant à concevoir, modéliser, exprimer, tester et optimiser des algorithmes formalisés sous la forme de code source pour instruire un système computationnel. Cette activité transcende la seule connaissance linguistique d’un idiome artificiel ; elle exige la transformation d’un problème mal défini du monde réel en une séquence déterministe, logique et calculable d’opérations exécutables.

Au-delà de sa dimension technique, la programmation représente un acte d’externalisation de la pensée humaine dans un système symbolique formel. Elle mobilise des processus de haut niveau, tels que la planification stratégique, la simulation mentale de flux d’exécution dynamiques et l’autorégulation métacognitive. L’étude psychologique de la programmation examine comment les développeurs élaborent des représentations internes du problème et du système, gèrent leur charge cognitive face à des architectures logiques denses et orchestrent leurs ressources attentionnelles pour diagnostiquer et corriger les anomalies d’exécution.

2. Étymologie et origines linguistiques

Le substantif « programmation » découle du verbe « programmer », formé à partir du mot « programme ». Ce terme trouve son origine étymologique dans le grec ancien programma (πρόγραμμα), composé du préfixe pro- (πρό, « avant », « publiquement ») et du radical gramma (γράμμα, « écrit », « lettre », dérivé du verbe graphein, écrire). Historiquement, un programme désignait une annonce écrite, un ordre du jour ou un descriptif préalable d’actions ordonnées destinées à être exécutées dans le temps.

L’adjectif « informatique » est un néologisme français forgé en 1962 par l’ingénieur Philippe Dreyfus, issu de la contraction des vocables « information » et « automatique ». Dans le contexte des sciences computationnelles, la notion de programmation s’est progressivement émancipée de sa signification purement procédurale d’« ordonnancement temporel de tâches » pour désigner la spécification sémiotique formelle des transitions d’états d’une machine abstraite de Turing. L’introduction du terme au sein des sciences humaines et de la psychologie cognitive s’est effectuée dès les années 1960 avec l’essor du paradigme du traitement de l’information, assimilant le fonctionnement de l’esprit humain à un ensemble d’instructions programmées.

3. Prononciation et forme grammaticale

Sur le plan phonétique, le syntagme s’articule en français standard sous la transcription internationale suivante : /pʁɔ.ɡʁa.ma.sjɔ̃ ɛ̃.fɔʁ.ma.tik/. Il s’agit d’une locution nominale féminine indissociable, généralement employée au singulier lorsqu’elle renvoie au domaine conceptuel, scientifique ou professionnel global, bien que l’usage admette son pluriel pour dénoter des séquences programmées spécifiques dans des dispositifs distincts.

Dans la littérature scientifique en ergonomie cognitive et en linguistique appliquée, on rencontre des déclinaisons terminologiques telles que « comportement de programmation », « cognition du programmeur » ou le verbe « programmer » (transitif ou intransitif). Les chercheurs distinguent souvent le terme générique « programmation » du vocable familier « codage » (ou coding), ce dernier désignant de manière réductrice la phase spécifique de transcription typographique de la solution dans un langage particulier, alors que la programmation englobe la totalité du cycle épistémique et analytique de résolution du problème.

4. Explication conceptuelle détaillée

L’analyse cognitive de la programmation informatique dévoile une activité articulée autour de la manipulation de plusieurs espaces de représentations complexes. Pour écrire un programme, le praticien doit continuellement faire communiquer l’espace du problème (la réalité contextuelle, ses contraintes sémantiques et fonctionnelles) et l’espace de la solution (les structures de données formelles, la gestion des ressources mémoire, les paradigmes syntaxiques). Ce passage exige la construction d’un modèle mental dynamique : le programmeur doit imaginer les états futurs et invisibles que prendra l’ordinateur lors du passage des données au sein des algorithmes conçus.

La compréhension et l’écriture de code reposent sur deux directions majeures d’inférence : l’analyse ascendante (bottom-up) et la déduction descendante (top-down). Lors de l’approche descendante, le programmeur utilise des connaissances schématiques préalables (des « plans de programmation » ou patrons de conception) pour décomposer un but général en sous-buts algorithmiques hiérarchisés. À l’inverse, lors de la lecture ou de l’analyse corrective de code inconnu (processus ascendant), l’individu examine ligne par ligne les instructions élémentaires pour agréger ces unités d’information en fragments sémantiques cohérents (ou chunks), reconstituant ainsi l’intention initiale de l’auteur du système.

Un aspect distinctif de cette activité réside dans la nature asynchrone et impitoyable de la rétroaction machine. Contrairement à la communication humaine naturelle régie par le principe de coopération de Grice et tolérante aux ambiguïtés sémantiques, le compilateur ou l’interpréteur applique une sémantique formelle absolue. Le moindre écart syntaxique, logique ou contextuel engendre une rupture d’exécution ou une déviation comportementale du système. Cette rigidité impose au système cognitif de l’opérateur une rigueur métacognitive continue, où l’évaluation des hypothèses doit être d’une précision totale, générant ce que les psychologues appellent une charge cognitive intrinsèque particulièrement soutenue.

Enfin, la programmation implique une navigation récursive entre l’abstraction et la concrétude. Un développeur expérimenté doit être capable de raisonner au niveau macroscopique de l’architecture logicielle tout en restant conscient des implications microscopiques de l’allocation d’une variable ou du coût temporel d’une sous-routine. Cette double focalisation attentionnelle, alternant entre la vue d’ensemble et le détail opérationnel immédiat, constitue une compétence d’expertise rare, nécessitant des fonctions exécutives d’inhibition et de flexibilité mentale particulièrement développées.

5. Développement historique

L’histoire de la programmation sous le prisme de la cognition débute au XIXe siècle avec la mathématicienne Ada Lovelace. En annotant en 1843 les mémoires de Luigi Menabrea sur la machine analytique de Charles Babbage, Lovelace comprend que la programmation dépasse le calcul arithmétique élémentaire : elle entrevoit la manipulation de symboles arbitraires selon des règles formelles, posant la première réflexion sur la logique procédurale externalisée.

Au milieu du XXe siècle, avec l’avènement des architectures de Von Neumann et les travaux fondateurs d’Alan Turing, la programmation nécessite d’abord la manipulation laborieuse de commutateurs physiques et de cartes perforées en langage machine ou en assembleur. Ce fardeau cognitif colossal limite l’accès à la programmation à un cercle restreint d’experts mathématiciens. L’invention par Grace Hopper des premiers compilateurs dans les années 1950 et l’émergence de langages de haut niveau tels que FORTRAN, LISP et COBOL marquent une rupture épistémologique : elles libèrent la mémoire humaine des contingences architecturales immédiates de la machine pour lui permettre d’opérer à un niveau d’abstraction sémantique supérieur.

L’étude systématique de la programmation par la psychologie émerge véritablement dans les années 1970 avec la publication monumentale de Gerald M. Weinberg, The Psychology of Computer Programming (1971). Cet ouvrage pionnier démontre que le développement logiciel doit être analysé comme une activité humaine collective, tributaire de dynamiques interpersonnelles, de biais de raisonnement et de limites perceptives. Dans les années 1980, sous l’impulsion de chercheurs comme Ben Shneiderman, Elliot Soloway et James C. Spohrer, la recherche se structure autour de la modélisation des schémas mentaux, décortiquant les erreurs systématiques commises par les novices lors de l’apprentissage de la programmation.

Le tournant des années 1990 et 2000 voit l’avènement des cadres théoriques de l’interaction humain-machine (IHM) et de l’ergonomie des notations (notamment le cadre des Cognitive Dimensions of Notations de Thomas Green). Avec les progrès contemporains de la neuroimagerie fonctionnelle (IRMf, fNIRS, EEG) depuis le début des années 2010, l’étude de la programmation s’est ancrée dans les neurosciences cognitives, explorant les corrélats cérébraux du décodage du code source et bousculant les hypothèses traditionnelles quant à sa parenté exclusive avec les facultés mathématiques.

6. Fondements théoriques

Plusieurs cadres théoriques cardinaux de la psychologie et des sciences de l’éducation sous-tendent l’analyse contemporaine de l’activité de programmation :

La théorie de la charge cognitive, formulée par John Sweller, fournit une grille de lecture déterminante. La programmation sollicite conjointement : la charge intrinsèque (inévitable, liée à la complexité algorithmique et au nombre d’éléments à interconnecter), la charge extrinsèque (induite par une syntaxe cryptique, une mauvaise ergonomie des outils d’édition ou une documentation déficiente) et la charge essentielle ou germane (l’effort cognitif dédié à la construction et à l’automatisation de schémas mentaux durables). Lorsque la charge extrinsèque est excessive, la capacité de la mémoire de travail est saturée, empêchant tout apprentissage profond ou résolution efficace.

La théorie des modèles mentaux de Philip Johnson-Laird explique comment le programmeur appréhende les systèmes invisibles. L’esprit ne traite pas le code comme une simple chaîne syntaxique, mais construit un modèle structurel et causal de la « machine virtuelle » sous-jacente. Si le modèle mental de la machine est erroné (par exemple, une incompréhension de la manière dont la récursivité empile les contextes d’exécution), des erreurs logiques systématiques surgissent inévitablement lors de l’implémentation.

Le constructionnisme, élaboré par Seymour Papert dans le prolongement de la théorie du développement cognitif de Jean Piaget, postule que la programmation est un instrument intellectuel émancipateur. À travers le développement du langage Logo, Papert soutient que coder fournit aux apprenants des « objets pour penser » (objects-to-think-with). En programmant l’ordinateur, l’individu apprend à réfléchir sur sa propre pensée (métacognition) et formalise des intuitions abstraites par une manipulation concrète du monde numérique.

La théorie de la cognition distribuée d’Edwin Hutchins vient compléter ces approches individuelles en concevant la programmation comme une interaction continue entre le cerveau humain et des artefacts externes. Le code affiché à l’écran, les systèmes de contrôle de versions, les compilateurs et les débogueurs agissent comme des extensions directes de l’appareil cognitif, déchargeant la mémoire de travail et matérialisant des états intermédiaires de traitement.

7. Composantes clés, typologies et dimensions

Sur le plan des processus psychologiques impliqués, la programmation s’articule autour de plusieurs dimensions et opérations fondamentales :

  • Représentation et spécification du problème : Capacité à extraire la substantifique moelle d’un énoncé fonctionnel flou, à identifier les états initiaux et finaux, et à délimiter les cas limites et contraintes opérationnelles.
  • Conception algorithmique : Formulation abstraite d’une succession finie d’étapes déterministes indépendantes d’un langage spécifique pour résoudre le problème posé.
  • Implémentation syntaxique : Traduction formelle de l’algorithme abstrait dans un lexique et une grammaire stricts (respect de la typographie, des portées de variables, des types de données).
  • Compréhension de programme (Tracing) : Capacité à simuler mentalement le comportement du pointeur d’instruction pas à pas sans exécuter le code, en traçant l’évolution de la valeur des variables au fil du temps.
  • Débogage (Hypothèse et déduction) : Processus quasi scientifique d’investigation consistant à formuler des conjectures explicatives face à une divergence entre le comportement attendu et le comportement observé, suivi de la conception d’expériences ciblées pour isoler la cause racine.
  • Refactorisation et modularisation : Restructuration interne du code source sans modification de son comportement externe, visant à réduire la complexité cognitive pour les futurs lecteurs humains en améliorant la lisibilité et la cohérence sémantique.

8. Exemples et cas illustratifs

L’observation empirique des novices confrontés à l’apprentissage de la programmation illustre avec force ces mécanismes cognitifs. Prenons l’exemple classique de l’échange de la valeur de deux variables (inverser les contenus de A et B). Un individu dépourvu d’un modèle mental adéquat de l’affectation en mémoire écrira intuitivement : A = B; B = A;. Sur le plan cognitif, cette erreur découle du transfert inadéquat de la sémantique de l’égalité mathématique transitive vers la sémantique d’écrasement destructif de la mémoire informatique. L’apprenant doit surmonter ce conflit cognitif pour intégrer la nécessité d’une variable temporaire tierce comme réceptacle transitoire.

Un autre cas paradigmatique concerne la compréhension de la récursivité. La récursivité exige de concevoir une fonction qui s’appelle elle-même jusqu’à atteindre une condition d’arrêt. Sur le plan de la simulation mentale, ce paradigme met en échec les représentations linéaires habituelles du déroulement temporel. Les novices visualisent souvent la récursivité comme une boucle itérative circulaire plutôt que comme un empilement arborescent de cadres d’activation distincts possédant chacun leurs propres variables locales. Lorsque la condition d’arrêt est omise, le débordement de pile qui en résulte constitue un choc cognitif révélant la discordance entre le modèle mental de l’utilisateur et le fonctionnement physique de la mémoire machine.

Chez les développeurs seniors au sein des organisations d’ingénierie logicielle, la lecture d’un bloc de code complexe ne s’effectue pas séquentiellement de haut en bas. Un expert applique une stratégie de reconnaissance de formes (pattern recognition) : en quelques secondes, son regard repère un accumulateur, une clause de garde et un filtre fonctionnel. Cette catégorisation globale lui permet de court-circuiter l’analyse détaillée des instructions et de déduire immédiatement l’intention sémantique globale du sous-système, libérant ainsi des ressources cognitives pour l’évaluation de la robustesse architecturale globale.

9. Mesure et évaluation psychologique

L’évaluation des compétences de programmation et de l’effort cognitif sous-jacent s’appuie sur une panoplie d’instruments méthodologiques diversifiés, issus de la psychométrie, de l’ergonomie et des neurosciences comportementales :

Les protocoles de verbalisation continue (think-aloud protocols), théorisés par Herbert Simon et K. Anders Ericsson, demeurent une référence historique. En demandant à un sujet de verbaliser sans discontinuer ses pensées, ses doutes et ses déductions au cours de l’écriture ou de la correction de code, les chercheurs identifient la granularité des plans mentaux, les impasses déductives et les stratégies d’exploration adoptées.

L’oculométrie (eye-tracking) fournit des données objectives à haute résolution temporelle sur la répartition de l’attention visuelle. L’analyse des fixations, des saccades de retour et des mouvements de balayage entre le corps d’une fonction et la signature de ses paramètres révèle les zones de surcharge cognitive, l’incompréhension de structures syntaxiques denses ou la complexité excessive de notations imbriquées.

L’évaluation de la pensée computationnelle (Computational Thinking) fait l’objet de tests psychométriques standardisés, à l’instar du Computational Thinking Test (CTt) développé par Román-González et ses collaborateurs. Ces batteries psychométriques mesurent les aptitudes d’abstraction, de décomposition, de reconnaissance de régularités logiques et d’ordonnancement algorithmique indépendamment de la connaissance préalable d’une syntaxe commerciale particulière.

Dans le domaine des neurosciences, les chercheurs exploitent l’électroencéphalographie (mesurant la désynchronisation des rythmes thêta et alpha pour évaluer la charge mentale) et l’imagerie par résonance magnétique fonctionnelle (IRMf). Ces technologies permettent d’observer avec exactitude quelles aires cérébrales sont mobilisées lors de la tâche de compréhension de code chez des programmeurs de différents niveaux d’expertise.

10. Applications et pertinence pratique

L’éclairage apporté par la psychologie sur la programmation produit des retombées tangibles dans de multiples secteurs d’application :

Dans l’éducation et la pédagogie, la compréhension des barrières cognitives a révolutionné l’enseignement précoce du code. Les environnements visuels par blocs (comme Scratch ou Blockly) éliminent délibérément la charge extrinsèque liée aux erreurs typographiques ou de ponctuation pour concentrer l’effort attentionnel de l’enfant uniquement sur la logique procédurale. Dans l’enseignement supérieur, l’introduction de la méthode des « exercices à compléter » (problèmes de Parsons) permet aux étudiants d’ordonner des fragments algorithmiques pré-rédigés, allégeant la mémoire de travail par rapport à la rédaction ex nihilo d’une solution complexe.

Au sein de la psychologie organisationnelle et du génie logiciel, l’ergonomie cognitive oriente directement la conception des interfaces de développement (IDE), la structuration des revues de code entre pairs et l’organisation du travail en équipe (par exemple, la programmation en binôme ou pair programming). Le pair programming illustre la réduction de la charge mentale par répartition coopérative : un individu assume le rôle de pilote (gestion de la syntaxe et de l’implémentation immédiate), tandis que le second agit comme navigateur (évaluation stratégique, anticipation des effets de bord et détection précoce d’incohérences logiques).

En matière d’accessibilité et de remédiation cognitive, la manipulation de concepts programmatiques est aujourd’hui employée comme outil d’entraînement des fonctions exécutives auprès d’enfants présentant des troubles spécifiques des apprentissages ou un trouble du déficit de l’attention avec ou sans hyperactivité (TDAH), favorisant le développement de capacités de planification séquentielle et de résistance à l’impulsivité.

11. Recherche empirique et données scientifiques

Les investigations contemporaines en neurocognition ont profondément renouvelé la compréhension des soubassements biologiques de la programmation. Pendant des décennies, le consensus implicite assimilait la programmation à une activité purement mathématique et symbolique, postulant une sollicitation préférentielle de l’hémisphère cérébral gauche au sein des régions intrapariétales associées au calcul numérique.

Toutefois, les travaux majeurs menés en IRMf par Janet Siegmund et son équipe (2014, 2020), ainsi que les recherches coordonnées par Evelina Fedorenko au MIT (2020), ont démontré que la lecture et la compréhension de code source n’activent pas prioritairement le réseau pariétal mathématique. Au contraire, cette activité sollicite de manière prédominante le système du réseau linguistique (comprenant l’aire de Broca et l’aire de Wernicke dans l’hémisphère gauche) conjointement au réseau à demande multiple (Multiple Demand Network), un ensemble bilatéral de structures préfrontales et pariétales mobilisé lors de la résolution de problèmes abstraits généraux et de la gestion exécutive de la mémoire de travail.

Ces données empiriques indiquent que le cerveau humain traite le code informatique non pas comme un calcul arithmétique formel, mais fondamentalement comme une forme singulière de discours linguistique structuré imposant de lourdes exigences de traitement logique contextuel. Les travaux longitudinaux sur l’expertise ont par ailleurs confirmé que le cerveau des développeurs chevronnés optimise son activité par une réduction drastique de l’activation métabolique préfrontale lors des tâches de lecture de routine, témoignant d’une automatisation neurocognitive poussée et d’un regroupement efficace des représentations conceptuelles.

12. Considérations socioculturelles et diversité

La pratique de la programmation ne s’exécute pas dans un vacuum culturel ou social ; elle est tributaire de normes, de conventions langagières et de barrières institutionnelles spécifiques :

L’hégémonie linguistique anglo-saxonne constitue une dimension socioculturelle majeure. La quasi-totalité des langages de programmation standardisés (C, Python, Java, Rust) utilisent un lexique fondé sur la langue anglaise (mots-clés tels que if, while, return, class). Pour les apprenants non anglophones, l’effort cognitif initial est doublé : ils doivent simultanément décoder un vocabulaire étranger et appréhender les règles logiques formelles que ces termes véhiculent, générant une asymétrie d’apprentissage documentée par la recherche transculturelle.

La fracture de genre et les stéréotypes sociologiques influencent significativement le sentiment d’auto-efficacité (au sens d’Albert Bandura) dans l’apprentissage de la programmation. Les recherches en psychologie sociale montrent que la menace du stéréotype et la persistance de représentations caricaturales de la discipline (perçue comme asociale, isolée et hyper-techniciste) entravent l’engagement des femmes et de certains groupes minoritaires, réduisant leur sentiment d’appartenance et modifiant leur trajectoire d’orientation professionnelle en dépit de compétences analytiques initiales parfaitement équivalentes.

À l’échelle internationale, les disparités d’accès à l’infrastructure matérielle façonnent des styles cognitifs distincts de développement. Dans les environnements caractérisés par une connectivité intermittente ou un matériel limité, les développeurs tendent à affiner leurs capacités de simulation mentale et de contrôle manuel préventif du code, réduisant leur dépendance aux outils automatisés de test en continu prévalant dans les écosystèmes technologiques occidentaux.

13. Critiques, controverses et limites conceptuelles

L’un des débats scientifiques les plus vifs concerne l’hypothèse du transfert cognitif lointain (far transfer). Depuis les déclarations pionnières de Papert dans les années 1980 affirmant que l’apprentissage de la programmation décuple l’intelligence générale, l’esprit critique et les aptitudes mathématiques globales des individus, la communauté scientifique a cherché à valider ces assertions. De nombreuses méta-analyses contemporaines (notamment celles conduites par Ronny Scherer et ses collègues en 2019) ont tempéré cet enthousiasme : si l’apprentissage de la programmation induit un transfert cognitif proche et moyen solide (vers le raisonnement algorithmique, la métacognition procédurale et la logique spatiale), les preuves empiriques d’un transfert lointain vers la créativité globale ou les performances mathématiques décontextualisées demeurent faibles et hautement conditionnées par les méthodes pédagogiques employées.

Une seconde controverse critique a émergé avec l’avènement des assistants de programmation adossés aux grands modèles de langage (intelligence artificielle générative). L’automatisation de la génération de code modifie radicalement la structure de l’effort intellectuel : le programmeur passe d’une posture de concepteur-rédacteur à une posture d’évaluateur-auditeur. Cette transition soulève des inquiétudes sérieuses en psychologie ergonomique quant au risque d’atrophie cognitive des compétences de base, à l’illusion de compréhension et à l’altération de la vigilance attentionnelle face à des solutions générées artificiellement mais truffées de biais ou d’erreurs logiques subtiles.

Enfin, la psychologie du travail s’alarme des effets délétères de l’hyperfocalisation prolongée et du sentiment d’urgence technique propre aux environnements de développement agiles, pointant une prévalence croissante du syndrome d’épuisement professionnel (burnout), du syndrome de l’imposteur et de la fatigue cognitive chronique chez les professionnels de la programmation.

14. Termes connexes et distinctions conceptuelles

Afin de dissiper toute ambiguïté théorique, il convient de distinguer précisément la programmation de plusieurs notions connexes :

  • Pensée computationnelle (Computational Thinking) : Cadre conceptuel et ensemble d’habiletés cognitives (abstraction, décomposition, modélisation) mobilisables pour résoudre des problèmes complexes, indépendamment de toute utilisation d’un ordinateur physique ou de l’écriture d’une quelconque ligne de code. La programmation est le moyen d’expression technique le plus abouti de la pensée computationnelle, mais elle n’en est qu’une instanciation parmi d’autres.
  • Codage (Coding) : Processus purement instrumental de saisie et de transcription d’un algorithme préconçu dans la syntaxe formelle d’un langage de programmation. Alors que le codage est une phase mécanique d’exécution, la programmation englobe la conception globale de l’architecture, l’analyse des besoins, la validation empirique et la maintenance du système.
  • Algorithmique : Domaine formel et mathématique dédié à l’étude théorique, à la conception et à la preuve de validité et d’efficacité temporelle ou spatiale des algorithmes, faisant abstraction des contraintes physiques de matériel ou de syntaxe logicielle contingente.
  • Génie logiciel (Software Engineering) : Discipline industrielle et managériale intégrant l’ensemble des méthodes, méthodologies agiles, normes de qualité organisationnelle et cycles de vie nécessaires à la production et au déploiement de systèmes logiciels à grande échelle au sein d’organisations humaines.

15. Synthèse et points clés à retenir

  • La programmation informatique est une activité cognitive multidisciplinaire complexe consistant à résoudre des problèmes par l’élaboration de modèles mentaux et leur transcription dans des notations formelles exécutables.
  • Elle repose sur des fonctions exécutives supérieures, sollicitant intensément la mémoire de travail, le contrôle inhibiteur et des capacités métacognitives poussées pour la simulation d’états dynamiques invisibles.
  • Les neurosciences cognitives ont démontré que la lecture de code mobilise préférentiellement les réseaux cérébraux du langage et les réseaux à demande multiple, contredisant le mythe d’une activité strictement mathématique.
  • L’efficacité de la programmation est tributaire de l’équilibre entre la charge cognitive intrinsèque du problème et la charge extrinsèque induite par les notations et outils d’interaction logicielle.
  • Le transfert des bénéfices cognitifs de la programmation vers d’autres domaines intellectuels est mesuré et dépend étroitement d’une médiation pédagogique explicite favorisant la métacognition.

Références

  • Ericsson, K. A., & Simon, H. A. (1993). Protocol analysis: Verbal reports as data (Rev. ed.). MIT Press.
  • Fedorenko, E., Ivanova, A. A., Dhamala, R., & Bers, M. U. (2020). The language of programming: A cognitive perspective. Trends in Cognitive Sciences, 23(7), 525-528.
  • Green, T. R. G. (1989). Cognitive dimensions of notations. In A. Sutcliffe & L. Macaulay (Eds.), People and computers V (pp. 443-460). Cambridge University Press.
  • Papert, S. (1980). Mindstorms: Children, computers, and powerful ideas. Basic Books.
  • Scherer, R., Siddiq, F., & Sánchez-Viveros, B. S. (2019). The review of cognitive transfer from computer programming: A meta-analysis. Journal of Educational Psychology, 111(5), 764-789.
  • Siegmund, J., Kästner, C., Apel, S., Parnin, C., Bethmann, A., Leich, T., Saake, G., & Brechmann, A. (2014). Understanding understanding source code with functional magnetic resonance imaging. Proceedings of the 36th International Conference on Software Engineering, 378-389.
  • Sweller, J. (2011). Cognitive load theory. In J. P. Mestre & B. H. Ross (Eds.), The psychology of learning and motivation: Cognition in education (Vol. 55, pp. 37-76). Academic Press.
  • Weinberg, G. M. (1971). The psychology of computer programming. Van Nostrand Reinhold.

Citer cet article

Looti, M. (2026, novembre 1). Programmation : Psychologie cognitive du code. Base de données de psychologie en français. https://french.arabpsychology.com/?psych_term=programmation-informatique-psychologie-cognitive
Looti, Mohammed. “Programmation : Psychologie cognitive du code.” Base de données de psychologie en français, 1 novembre 2026, https://french.arabpsychology.com/?psych_term=programmation-informatique-psychologie-cognitive.
Looti, Mohammed. “Programmation : Psychologie cognitive du code.” Base de données de psychologie en français. novembre 1, 2026. https://french.arabpsychology.com/?psych_term=programmation-informatique-psychologie-cognitive.