Bulletin Vert n°504
mai — juin 2013
Apprendre la programmation par le jeu À la découverte du langage Python
par Vincent Maille
Ellipses, février 2013
240 p. en 16,5 × 24, prix : 19,95 €, ISBN 978-2-7298-77828
L’objectif du livre est de faire découvrir la programmation à travers la construction de jeux. Il est destiné à des débutants et non à des professionnels débordant d’imagination pour mettre au point de nouveaux algorithmes d’intelligence artificielle ou d’affichage.
Il a été mis au point et expérimenté avec des élèves de seconde durant l’année 2011-2012 : les élèves ont découvert progressivement le langage Python durant cinq mois puis ont travaillé en équipes sur un projet de jeu, en complétant leurs connaissances au fur et à mesure de leurs besoins. Ce travail est visible avec toutes ses ressources et ses codes, à l’adresse :http://prototheque.free.fr/ellipse/
Le langage Python a été choisi parce qu’il est clair et puissant, mais surtout parce qu’il est libre et gratuit. Il est vrai que nombreux sont aujourd’hui les élèves passionnés de jeux, et donc a priori motivés par une initiation dans ce domaine.
Chacun des 16 chapitres énumérés ci-dessous contient de 2 à 12 énoncés d’exercices, applications directes du cours, suivis de leur solution plus ou moins détaillée.
- A Prendre un bon départ (quelques algorithmes).
- B Premiers pas (fonctions Python).
- C Types d’objets (entiers, flottants, booléens) et modules (math, random).
- D Les chaines de caractères (extraire et transformer, rechercher et remplacer).
- E Les fichiers (ouverture et fermeture, traitement, lecture et écriture).
- F Les fonctions (variables locales et globales, paramètres, commentaires et pseudofonctions).
- G Des fenêtres ! (widgets, Label, Button, Entry).
- H Gestion des images (Canvas, dessiner, placer des images, modifier les items).
- I Couleurs, polices et formats d’images (formats BMP, GIF, JPG et PNG).
- J Gestion du temps (date et heure).
- K Déplacements d’un personnage (rebonds et collisions).
- L Les listes (opérations, listes d’items, d’images, de boutons).
- M Gestion du clavier (touches spéciales, touches multiples).
- N Les listes 2D (motivations et pratique).
- O Gestion de la souris (types d’événements, changer le curseur, drag & drop).
- P Le son (bruitage, musique de fond, couper le son).
Les projets proposés, dont le développement a été le principal travail des élèves une fois acquis les éléments du langage, sont d’une grande variété et témoignent d’une créativité et d’une originalité certaines dans la conception et les graphismes : Le juste prix (2 versions), Motus, Pendu (2), La leçon de piano (2), Les allumettes, Hungry Birds, Bataille de boules de neige, La toile, Bulles de savon, Joe&Joey, Attila, Move it, Bomber.
L’intérêt de ce livre réside dans sa démarche progressive, motivée par un projet laissant l’initiative aux élèves et leur permettant d’acquérir la maîtrise d’un concept quand ils en ressentent la nécessité pour franchir ou contourner un obstacle.
L’ouvrage est bien échelonné, le texte est clair et direct, les exercices très accessibles.
La possibilité d’expérimenter directement sur la toile donne sans fin au lecteur des possibilités et des idées nouvelles, et permet de bénéficier de la couleur.
Je formule toutefois quelques réserves : l’index final est très insuffisant par rapport à tous les mots utilisés et en particulier ceux du langage Python, et ceux qui sont donnés en bas de page sont mal repérés. Quelques coquilles, par exemple dans les numéros de page de la liste des projets, dans la caractérisation des années non bissextiles p. 21, des imprécisions sur la règle du jeu, par exemple dans LE JUSTE PRIX p. 129, le joueur connaît-il ou non le prix des objets de la page 130 ?
Par ailleurs, on est frappé de l’utilisation dans les listes ci-dessus d’un vocabulaire mélangeant anglais, français et néologismes (boutton p. 219, elif, …), il y a effectivement cinquante ans qu’on enseigne la programmation en se permettant ces abus de langage et l’auteur ne fait que suivre un usage qui ne tient aucun compte des recommandations de l’Académie française.
Dans l’apprentissage d’un langage, il faut développer ses compétences dans deux domaines : l’écriture en utilisant au mieux certaines des facilités ou subtilités qu’il offre pour écrire un programme sans erreur réalisant dans l’ordre les tâches fixées et la lecture d’un programme dont l’auteur a, sans doute, utilisé d’autres possibilités. Il me semble que l’ouvrage privilégie avec raison l’acquisition de l’écriture mais quelques exercices de lecture le compléteraient avantageusement.
Ces critiques sont mineures et pourraient être facilement prises en compte au moins sur la toile.
Ce qui fait l’intérêt du livre, c’est son expérimentation par des élèves de seconde dans un cadre de travail en équipe aboutissant à l’achèvement d’un projet motivant. Le lecteur qui souhaite s’approprier le langage Python y trouvera l’outil nécessaire et pourra contrôler son savoir en réalisant des images animées et sonorisées ; le professeur de mathématiques y puisera des idées pour pratiquer avec ses élèves une démarche de projet.