« Enseigner la programmation : Scheme ou Python ? »
Résumé
Si pour enseigner la programmation il convient d’être agnostique en matière de langage, ce n’est pas pour cela qu’il faut renoncer à en choisir un qui soit bien adapté : niveau d’abstraction ni trop élevé ni trop bas, encouragement des bonnes pratiques reconnues, facilité d’apprentissage. Et sur ces points le style de la programmation fonctionnelle semble présenter des avantages décisifs. Des exemples seront exhibés.
Informations
Jeudi 30 janvier 2020, 14h-16h
Salle 15-16/101 du LIP6 (rotonde 15, 1er étage)
4 place Jussieu, 75005 Paris métro Jussieu (lignes 7 et 10)
« Mall&t’ Algo en Main/AccessiDVScratch – Manipulate Learn Look&Touch : l’algo pour tous grâce à la manipulation »
Vidéo
Résumé
Mall&t’ Algo en Main est un dispositif pédagogique inclusif.
L’écran d’ordinateur est remplacé par un support réel et dynamique (épingles et élastiques sur support en relief) ; toutes les instructions sont adaptées en gros caractères et en braille sur des briques de type Lego ; les couleurs et formes géométriques saillantes permettent d’identifier rapidement les instructions.
Pour créer un algorithme, il suffit de le construire en emboîtant les différentes instructions.
Cet outil permet de faciliter l’acquisition de nouveaux concepts mathématiques (variables, priorités de calculs…) et de la pensée algorithmique en s’appuyant sur la manipulation. Il offre la possibilité de travailler de façon individuelle ou collaborative, de lire un script de façon linéaire ou séquentielle rapide, de découper, conserver, comparer ou échanger des morceaux d’algorithme. Ce
dispositif a été conçu pour des personnes aveugles ou mal-voyantes et leur est donc parfaitement accessible. Cela permet un travail commun entre personnes dites valides et personnes en situations de handicap.
Il s’agit de traiter un même programme en plusieurs langages de niveaux différents (du genre Python, C, assembleur MIPS), en prêtant attention aux changements de perspective induits par ces transitions.
On présentera une réalisation de cette idée pour le programme du calcul itératif de la suite de Fibonacci sans limitation de la taille du résultat, en Python, C et MIPS. (Évidemment, le point essentiel est l’exigence de valeurs illimitées, rendue « naturelle » par Python.)
Outre l’augmentation spectaculaire de la taille du code, on voit apparaître des problèmes imprévus de divers ordres, comme une particularité de l’addition fib(n-1)+fib(n), ou du nombre de zéros qui apparaissent au début d’un quotient. Loin d’être un simple exercice de réécriture, l’expérience devient un projet logiciel complet, avec plusieurs tours de spirale, où Python joue un rôle précieux de boîte à outils pour la modélisation, où l’écriture en C a sa propre problématique, et où la réalisation en assembleur MIPS exige une démarche d’une rigueur de fer.
On discutera des vertus pédagogiques attendues de ce dispositif.