NOUS AVONS LU Python pour un apprentissage actif Jean-Paul Roy, sous la direction de Paul de Laboulaye, mars 2020, Ellipses, 342 pages, 28 euros. L'EPI milite depuis plusieurs dizaines d'années pour l'enseignement de l'informatique et de la programmation en particulier. Les plus anciens d'entre nous ont commencé par former les élèves au langage BASIC, puis à Logo, LSE, Pascal, Scheme, Java, etc. La liste est longue qui conduit au sommet de la Tour de Babel des langages ! Le dernier-né, au moins pédagogiquement parlant, est sans doute Python, qui creuse son sillon pour plusieurs raisons. Je vous présente mon livre qui vient de sortir aux éditions Ellipses en mars 2020. Après avoir enseigné depuis 1980 tous les langages cités ci-dessus à des populations d'enseignants, d'élèves et d'étudiants, j'ai mis à profit mon départ à la retraite pour mûrir cet ouvrage paru dans la belle collection Références Sciences, en tenant compte des remarques reçues sur mon livre précédent dédié au langage Scheme (que je tiens aussi pour un très beau langage pédagogique). Sa structure repose sur une double articulation. La première partie est une présentation des principaux traits linguistiques du langage, sous la forme de courtes sections issues de mon expérience pédagogique, quelque chose qui pourrait ressembler à une FAQ (Frequently Asked Questions) sur Internet : les petits points précis les plus demandés. Inutile d'en faire une lecture linéaire, sauf si vous débutez complètement, ce qui n'est sans doute pas le cas. La seconde partie est un ensemble d'exercices et problèmes de toutes sortes, faciles ou plus délicats, il en faut pour tout le monde. Là aussi, j'ai essayé de rassembler des thèmes classiques d'algorithmique de base, sans faire l'impasse sur le graphisme, les animations, le calcul formel ou symbolique. Le système Processing, connu de nombreux enseignants en Java et destiné au multimédia, dispose maintenant d'un mode Python, j'en ai donc profité pour le présenter car il s'avère bien pratique pour construire à moindre frais une animation (voire la sonoriser, car le livre aborde aussi le domaine de l'audio numérique en Python). Du coup, je parle un peu des liens entre Java et Python dans un chapitre puisqu'il faudra utiliser une bibliothèque Java en Python. Enfin, je n'ai pas pu résister à parler du sujet du moment, les neurones formels pour l'IA, en traitant je l'espère précisément l'algorithme de rétro-propagation du gradient lors d'un apprentissage supervisé. Oups, ne vous effrayez pas, la terminologie est violente, mais il suffit de savoir dériver une fonction. À propos, les inévitables mathématiques sont réduites à un niveau de Bac S ou S+. Il ne s'agit donc pas d'un cours de programmation ni d'ailleurs d'algorithmique. D'abord je ne crois aux cours tout faits qu'il suffirait de lire pour tout comprendre, ce serait la négation du métier d'enseignant (On peut toujours fantasmer sur les progrès de l'Intelligence Artificielle, mais il faudra quelques centaines d'années pour obtenir un professeur de synthèse à peu près capable de répondre à des questions imprévues et de corriger des copies... Le Coronavirus poussera-t-il les efforts des MOOC dans ce sens ? Mais tout système de développement bien maîtrisé est compatible avec ce livre. Seul le système Processing joue un rôle particulier par endroits). Je suppose donc qu'il existe quelque part dans l'entourage du lecteur (lycéen, étudiant, (futur ?) enseignant) un cours proposé par une personne bien en chair qui pourra s'appuyer sur la partie 1 pour les éclaircissements et sur la partie 2 pour l'entraînement au codage, les exercices étant facilement généralisables et certains de véritables sources de projets. Tous les codes des exemples, ainsi que les solutions des exercices, sont disponibles sur ma page Web citée plus haut. J'ai utilisé et je conseille la distribution Anaconda pour faire du Python. Lors de la rédaction, j'ai codé avec l'éditeur Spyder mais leur équipe n'a plus les subventions de départ et sur MacOS, la maintenance m'a causé des soucis malgré la bonne volonté des développeurs, majoritairement sous Linux. Au final, je serais assez tenté de conseiller IDLE pour les grands débutants, pour migrer ensuite et assez vite vers Jupyter qui permet de coder directement sur une page Web, et qui devient un des éditeurs préférés des nouveaux data scientists. Son gros avantage est de faire saisir à l'élève qu'un programme n'est pas qu'un déluge de code, mais un document scientifique exécutable, contenant du code mais aussi du texte (en HTML, markdown ou LaTeX) et des graphiques pour sa documentation. Hands On ! comme disent les anglo-saxons. Mettez les mains sur le clavier... Jean Paul Roy, avril 2020 ___________________ |