Montréal-Python, la communauté montréalaise des utilisateurs de Python a traduit le matériel de formation originalement en anglais. Davin Baragiotta, et David Cormier, assistés par Mouhamadou Sall ont donné cet atelier auquel ont participé une quarantaine de filles et garçons de 12 à 18 ans.
Le texte ci-dessous accompagné d’une couret vidéo relate les principales étapes de cette journée de formation des jeunes codeurs : l’A, B, C de la programmation en Python
Les ordinateurs mis à la disposition des jeunes codeurs, des Rapsberry Pi, ne sont pas reliés à Internet, pour éviter à ces derniers la tentation de s’évader vers d’autres univers. Par contre, Python et Minecraft y sont installés.
On débute par vérifier auprès des participants si leur matériel est fonctionnel. On clarifie ce qu’est un ordinateur. On précise que le but de la journée est de leur apprendre à donner des instructions à l’ordinateur afin qu’il accomplisse certaines tâches, en bref apprendre à programmer.
L’algorithme est la suite d’instructions précises que l’on donne à l’ordinateur, c’est le pas à pas de l’action à accomplir. Malgré toutes les merveilles accomplies par ces fantastiques machines qui envahissent nos vies, jusqu’à maintenant c’est nous qui leur disons quoi faire : c’est la programmation.
L’étape « Parlons Python » explique qu’il s’agit d’un langage de programmation parmi d’autres. Il existe un logiciel qui interprète ce langage pour que l’ordinateur le comprenne, l’interpréteur Python. Les jeunes codeurs sont invités à ouvrir IDLE pour accéder à l’interpréteur Python.
IDLE présente le prompt ≻≻≻ nommé « invite de commandes » en français. Derrière IDLE, Python écoute et nous invite à lui parler. On écrit des commandes dans IDLE et Python va les exécuter. Python nous demande une commande. Après avoir écrit la commande on appuie sur la bouton de retour de chariot (entrée) pour l’exécuter.
Ce qu’on écrit se nomme un Script, et ce script sera exécuté par l’ordinateur de haut en bas. Pour une question de style, pour faciliter la lecture du programme on sépare les éléments de la commande par un espace. On lit ce qui est écrit par d’autres programmeurs et d’autres programmeurs liront peut-être nos programmes. C’est important que ça soit facile à lire.
On commence par faire de simples opérations mathématiques dans l’interpréteur : des additions (+) et des soustractions(-).
>>> 3 + 2
5
>>> 7 – 3
4
Pour les multiplications il faut utiliser l’étoile *, car si on utilise le «x» comme opérateur de multiplication, Python répondra par un message d’erreur.
>>> 2 * 4
8
>>> 2 x 4
« SyntaxError : invalid syntax » sera la réponse de Python.
Le slash / o’est l’opérateur utilisé pour la division.
>>> 10 / 2
5
Python reconnaît deux types de nombres : les nombres entiers ou integer et les nombres décimaux ou float.
Lorsqu’on demande à Python :
>>> 7 / 2
3
sera la réponse reçue. On a donné à Python des integer, il répond avec un integer.
Pour que le reste de la division soit donné par Python, il faut le questionner en float.
>>> 7.0 / 2
3.5
Python est anglophone et utilise le point au lieu de la virgule pour indiquer la décimale.
Les opérateurs de comparaisons utilisés en langage Python sont :
== Est égal à
!= N’est pas égal à
< Plus petit que
> Plus grand que
<= Plus petit ou égal à
>= Plus grand ou égal à
Le signe égal = simple sera utilisé ailleurs à d’autres fins. Il faut donc utiliser un double égal == pour demander à Python si les deux valeurs comparées sont égales.
Quelques exemples d’usage des opérateurs de comparaison avec la réponse de Python :
>>> 12 / 4 == 3
True
>>> 12 / 4 != 3
False
>>> 12 / 4 == 6
False
>>> 12 / 4 ≺= 6
True
True (vrai) ou False (faux) sont les réponses données par Python aux questions qu’on lui a posé.
Les chaînes de caractères ou string
Tout ensemble de lettres, chiffres et espaces sera considéré comme une chaîne de caractères à condition d’être encerclé par de doubles ou simples guillemets anglophones (double quote : “ ou single quote : ‘.
“Bonjour“
“Il n’y a pas d’amour heureux“
“ Le code secret de cet espion est 36 / 6 + la date de naissance de sa mère auquel on ajoute son mois de naissance en cyrillique“
En bref, n’importe quoi entouré de doubles (ou simples) guillemets.
Par contre l’apostrophe (ou guillemet simple) peut créer problème. L’exemple donné lors de la formation est la suivante : ‘Bonjour, aujourd’hui, c’est l’atelier!’
≻≻≻ “Bonjour, aujourd’hui, c’est l’atelier”
‘Bonjour, aujourd’hui, c’est l’atelier’
≻≻≻ ‘Bonjour, aujourd’hui, c’est l’atelier’
SyntaxError : invalid syntax
Pour Python cette formule signifie : ‘Bonjour, aujour’ comme une première chaîne de caractère, il ne comprend pas hui,c et l’imprime en noir pour indiquer qu’il la sépare de la chaîne de caractère. Il considère ‘est l’atelier’ comme une seconde chaîne de caractères dans la même commande. Il est perdu et ne sait pas quoi faire d’où le message d’erreur.
La concaténation consiste à mettre bout à bout deux ou plusieurs chaînes de caractères grâce à l’opérateur + .
J’écris :
>>> “Ninon” + “Louise“ + “LePage”
NinonLouiseLePage
Il faut tout dire à l’ordinateur, donc écrire aussi les espaces
>>> “Ninon“ + “ ” + “Louise” + “ ” + “LePage”
Ninon Louise LePage
Les variables
Une variable c’est un nom qui pointe vers des informations que Python garde en mémoire. Python crée la variable automatiquement dès qu’on l’utilise pour la première fois.
Pour créer une variable on lui donne un nom, un mot qui a du sens dans notre programme. Le simple signe égal = est l’opérateur d’affectation. il sera suivi de la valeur donnée à la variable. La valeur donnée à la variable peut être changée n’importe quand, c’est pourquoi on la nomme variable.
nom_de_la_variable = valeur
Imaginons une variable nommée : beignes à la quelle j’affecte la valeur de la multiplication de deux entiers, 12 * 12.
>>> beignes = 12 * 12
>>> beignes
144
>>> # La variable stocke l’information
>>> # je n’ai qu’à taper son nom pour que Python me donne
>>> # la valeur assignée à la variable.
En Python, le dièse ou croisillon # (hahstag) indique à l’ordinateur que cette ligne est un commentaire et non une commande. Le commentaire commence par le dièse # et se termine par le saut de ligne.
>>> beignes = “bons gâteaux que j’aime manger”
>>> beignes
bons gâteaux que j’aime manger
>>> # Je peux changer la valeur que j’ai donné à ma variable.
Nous avons donné un nom français à la variable, mais lorsqu’on écrit des programmes qui seront lus un peu partout au monde, car Python est un logiciel ouvert ou libre (open source), la convention est d’utiliser des mots anglais. Dans les variables on utilise généralement que des minuscules et on unit les mots par des tirets bas.
( _ under-score)
Quelques types de variables
“Bonjour!” chaîne string
27 entier integer
15.238 décimal float
Les listes ou List
Une liste est un autre type de variable. C’est un ensemble d’objets entourés de crochets ouvrants et de crochets fermants : Square Brackets [ ]
>>> fruits = [ ”pomme”, “banane″, ″raisins‶ ]
>>> fruits
[ ‘pomme’, ‘banane’, ‘raisins’ ]
En général, en informatique le premier élément porte le chiffre 0, le deuxième 1, le troisième 2 et ainsi de suite. Pour faire ressortir un seul élément de la liste, on écrit le nom de la liste suivi du numéro d’ordre (index) de l’élément recherché.
>>> fruits[ 0 ]
‘pomme’
Les conditions ou structures conditionnelles
Python exécute les instructions de la première à la dernière ligne dans l’ordre écrit à l’intérieur du script sauf lorsqu’il rencontre une instruction conditionnelle. Ces instructions indiquent au programme de suivre différentes routes selon la valeur apportée à l’évaluation de la condition.
Les conditions sont un concept fondamental en programmation.
If qui signifie -si- en français.
Par exemple, s’il fait beau marche jusqu’à l’école.
Elif signifie -sinon si – en français.
Par exemple, si: il fait beau marche jusqu’à l’école.
sinon si: il pleut, prend le bus.
Else signifie -autre- en français.
Par exemple, si: il fait beau marche jusqu’à l’école.
si: il pleut prend ton parapluie.
si: il grêle prend le bus.
autre: reste à la maison
>>> if: 5 > 2
print ″Bravo!″
print ″cinq est plus grand que deux″
Bravo!
Cinq plus grand que deux
>>> # Ceci est du code. La première ligne est une ligne de code.
>>> # Les 2 lignes d’instructions suivantes se nomment – blocs de code-
>>> if: 5 < 2
print ″Bravo!″
print ″cinq est plus petit que deux″
else:
print ″cinq est plus grand que deux″
‘cinq est plus grand que deux’
>>>
Ne pas oublier d’écrire les deux points – : – à la suite de la condition pour indiquer à Python qu’on commence à écrire un bloc de code. Les lignes de code d’un bloc de code sont «indentés», c’est-à-dire qu’ils sont en retrait par rapport à la ligne précédente (en général, en Python on indente les blocs de code avec 4 espaces).
and (et)
Si les deux parties de l’équation sont vraies :
>>> 2 == 2 and 3==3
True
Si seulement une des deux comparaisons est vraie :
>>> 2 == 1 + 1 and 3 == 1 + 1
False
Si les deux comparaisons sont fausses :
>>> 1 == 2 and 2 == 3
False
Les erreurs ou . . .Error
Si Python ne comprend pas, il donne un message d’erreur et indique la nature de l’erreur.
>>>″ami″ * 5
‘amiamiamiamiami’
>>> ″ami″ + 5
Traceback (most recent call last) :
File ″≺pysbell#55≻‶, line 1, in ≺module≻
″ami″ + 5
TypeError: cannot concatenate ‘str’ and ‘int’ objects
>>> ″ami″ + ″5″
‘ami5’
>>> nom de famille
SyntaxError: invalid syntax
>>> fleurs
Traceback (most recent call last) :
File ″≺pyshell#59≻‶, line 1, in ≺module≻
fleurs
NameError: name ″fleurs‶ is not defined
Ce ne sont quelques uns des principes de programmation Python présentés aux jeunes codeurs pendant ce samedi qu’il leur était consacré.
Puis vint le moment de « hacker ». Contrairement au sens donné au terme en culture populaire, le hacker n’est pas nécessairement un pirate informatique. Il s’agit plutôt d’usagers qui préfèrent fouiller les entrailles des programmes informatiques afin de les transformer, les améliorer ou leur commander de réaliser des actions différentes de celles conçus par le programmeur d’origine.
Nos jeunes hackers se sont pratiqués à la transformation de deux jeux disponibles sur le nano-ordinateur Raspberry Pi qui leur a été offert gracieusement dans le cadre de cette journée d’activité jeunes codeurs : Squirrel eat Squirrel et Wormy. La fondation Raspberry Pi est une fondation caritative d’Angleterre soutenue par le laboratoire d’informatique de l’université de Cambridge et de Broadcom qui a pour but la promotion de la programmation dans les écoles.
Raspberry Pi est l’oeuvre de David Braben, créateur de jeux vidéos et membre de la Fondation. La courte vidéo qui accompagne mon texte présente quelques unes des activités de transformations de programme réalisées par les jeunes codeurs en ce samedi après-midi.
La dernière activité de la journée a été de hacker le très populaire jeu Minecraft.
Une entente a été réalisée avec Minecraft . Dans Raspberry Pi, on trouve Mincecraft disponible au menu jeu et qui, une fois lancé, montre un premier écran où on peut lire MINECRAFT PI EDITION.
On peut parler en Python à ce très gros logiciel de jeu programmé en JAVA grâce à une API ou Application programming interface. L’interface permet d’écrire des lignes de code en Python qui permettent de modifier et interagir avec MINECRAFT.
Les instructeurs guident les jeunes codeurs dans le processus d’arrimage et leur apprend à s’inscrire au «Chat» à la grande surprise des usagers du MINECRAFT régulier où il n’y a pas d’option Chat. Puis tous ont réalisé une diversité d’activité dans MINECRAFT.
Vers 16 heures, graduellement les parents sont venus chercher leurs enfants qui ont quitté le Centre des Congrès les uns à la suite des autres avec leur petite boîte Raspberry Pi sous le bras.
Conclusions de la pédagogue
L’étude de la programmation par les jeunes de 13 à 17 ans, tel que recommandé par les experts, permet l’acquisition des plusieurs compétences.
Le travail d’un programmeur consiste en la résolution de problèmes informatiques donc,
compétence : résolution de problèmes.
Pour résoudre un problème informatique, il faut accomplir des actions dans un ordre précis, les algorithmes,
compétence : discipline
Pour réussir à écrire un programme fonctionnel, il faut persévérer,
compétence : persistance
J’aime . . . la rigueur, la logique exigée par le processus.
J’aime . . . que l’activité «programmation» forme le caractère de l’étudiant.
J’aime . . . l’évident plaisir des jeunes codeurs à hacker.
J’aime . . . la confiance en lui-même que le jeune codeur acquière lorsqu’il transforme des commandes de jeux, par exemple .
N’oublions pas que l’attrait de la programmation ne sera pas le même pour tous, certains comme moi, préfèreront utiliser les créations des autres.
>>> at_the_end = ″À la prochaine, bon Pythonage!″
>>> at_the_end
‘À la prochaine, bon Pythonage!’
11000011 10000000 00100000 01101100 01100001 00100000 01110000 01110010 01101111 01100011 01101000 01100001 01101001 01101110 01100101 00100001
01000010 01101111 01101110 00100000 01010000 01111001 01110100 01101000 01101111 01101110 01100001 01100111 01100101 00100001