Les paradigmes de la programmation, début d’un cycle



A l’initiative de Guillaume Hannachi (qui pilotera le cycle qui s’amorce) et de Cyril Charignon (référent pôle informatique du LMB), s’ouvre une fenêtre sur les nouveaux programmes informatiques qui voient le jour en Classes Préparatoires aux Grandes écoles (CPGE) au sein de notre laboratoire.

L’idée est simple et féconde: s’appuyer sur les riches compétences locales pour construire un parcours de formation au service de tous. L’évolution récente des programmes du secondaire, l’ouverture de l’ambitieuse spécialité NSI, la proposition de voie MPI en CPGE, l’émergence de nouveautés informatiques en CPGE, ont stimulé les envies d’une formation interne.

Il n’y a pas de plan totalement achevé ; mais le terrain est déjà débroussaillé et un premier ordre apparaît.

Nous avons assisté à une première séance [1] Vendredi 22 Janvier 2021 autour des paradigmes de la programmation qui a été proposée par François Pantigny.

Un moment fort!

Fort car les organisateurs ont su, malgré les difficultés actuelles, réunir un public conséquent … qui pouvait respecter … les « mesures barrières » dans la grande salle K92, bien pratique. Avec une belle biodiversité des profils de l’écosystème local: professeurs de Mathématiques du Secondaire et de CPGE, professeurs de SI, professeurs de Sc. Phys., professeurs enseignant la NSI, professeurs de Mathématiques du Lycée Paul Rey de Nay, partenaires, pour ne pas dire membres à part entière, du LMB.

Fort aussi pour le plaisir humain de se retrouver, d’apprendre en présence les uns des autres, luxes devenus rares. Moment fort enfin par le sujet et le conférencier. François nous a présenté avec la maîtrise, la clarté, l’expertise, et le sens de l’anecdote qu’on lui connaît, un paysage de la programmation qui nous a permis de prendre de la hauteur. Pour les moins avancés (j’en fais partie), deux ou trois langages seulement sont connus, on tente de coder dans l’ignorance des structures et des grands paradigmes de programmation sous-jacents. Et c’est bien normal, car il faut connaître plusieurs manières de faire pour élaborer des comparaisons, voire des préférences…

Programmation structurée (on n’utilise que trois structures: les conditionnelles, les boucles, les séquences d’instructions), programmation impérative (ordres donnés à la machine), programmation itérative (boucles), programmation fonctionnelle (fonctions pures), programmation récursive.

En programmation fonctionnelle, on peut se passer de boucles. L’exemple donné est la programmation du calcul des termes de la suite de Fibonacci sous Python en version itérative et en version récursive.

François nous apprend que les Mathématiques permettent de démontrer que tout ce qui peut se programmer avec des boucles peut aussi se programmer avec des fonctions récursives, et réciproquement, tout ce qui peut se programmer avec des fonctions récursives peut se programmer sans récursivité en utilisant uniquement des boucles. Les techniques de conversion ont été explicitées à l’analyse de Fibonacci.

Ont été aussi exposés les avantages et inconvénients de la programmation récursive. De mettre en regard les différents styles permet d’ouvrir les horizons et de questionner didactiquement les pratiques. Merci infiniment à François. Et à Guillaume Hannachi qui a initié le mouvement et pilote le cycle. A Cyril qui va prendre le relais. Nous laissons en notes le support écrit par François Pantigny, ainsi que la carte mentale dépliée au fur et à mesure de l’exposé.

Dans le cadre de ce cycle, la prochaine séance aura lieu le Mardi 2 Février 2021 (autour des dictionnaires) et sera proposée par Cyril Charignon. L’idée est de s’approprier en amont le document laissé en notes pour attaquer questions et exercices de manière plus efficace pendant la séance.

Pour accéder au blog du LMB, cliquez ici.