Vous connaissez peut-être le Castor Informatique, organisé par France-ioi l’ENS Paris Saclay et Inria, il a réuni prés de 475 000 élèves du CM1 à la terminale en novembre 2016. Ce concours, avec pour objectif d’initier à la pensée algorithmique a une suite : Algoréa.
Le premier tour du concours Algoréa a débuté le 3 janvier 2017 et se déroule jusqu’au 17 janvier. L’objectif est d’encourager les jeunes français et françaises à progresser en programmation et algorithmique. Sa particularité est qu’il est ouvert à tous. Les élèves peuvent participer seuls de chez eux en s’entraînant avant sur la plateforme de France ioi ou participer en classe sous la responsabilité de leur professeurs.
A la différence du Castor Informatique, les participants commencent à utiliser un langage informatique.
Le premier tour est une épreuve de 45 minutes constituée d’exercices de programmation, dans les langages Scratch, Blockly et peut-être Python, mais accessible sans ou avec peu d’expérience en programmation.
De janvier à mai, les participants vont pouvoir résoudre des défis à la difficulté croissante. Les meilleurs de chaque catégorie auront la possibilité de se qualifier pour le stage final, et d’y remporter de nombreux lots.
Voici le Raspberry Pi ! Il coûte 35 euros et a été créé par une Fondation dont la mission est de promouvoir la programmation informatique dans les écoles par une meilleure accessibilité du matériel.
Lors du dernier colloque du CIRTA (Communauté pour l’Innovation et la Recherche sur les Technologies dans l’enseignement/Apprentissage), qui s’est tenu à l’Université Laval de Québec les 11 et 12 octobre, Christophe Reverd de la Vitrine Technologique Éducation (VTÉ) a présenté un atelier sur le Raspberry Pi :
Qu’est-ce qu’un Raspberry Pi ?
Raspberry Pi est un très, très petit ordinateur, un nano-ordinateur.
De la taille d’une carte de crédit, il a été conçu par David Braben, un créateur de jeux vidéos anglais et la Fondation Raspberry Pi. Cette association caritative, fondée en 2009 et soutenue par le laboratoire d’informatique de l’université Cambridge, a pour mission la promotion de la programmation informatique dans les écoles par une meilleure accessibilité du matériel. C’est ce qui a mené à la conception, la création, la fabrication et la diffusion du Raspberry Pi.
Cet ordinateur ne coûte pas cher mais il est vendu «tout nu», uniquement avec la carte mère. Pour le faire fonctionner, il faut rassembler les accessoires suivants :
1 – une carte mémoire SD de 8 Go et de classe 10 est recommandée par la Fondation ;
2- une alimentation micro USB externe d’une tension de 5 volts (V) et d’une intensité d’au moins 2A pour un Raspberry Pi et de 2.5A pour un Raspberry Pi 3. C’est moins pour un Raspberry Pi Zero mais la Fondation ne propose qu’un modèle de toutes façons. Qui peut le plus peut le moins en termes d’ampérage ;
3 – un écran, un clavier et une souris selon l’usage que l’on désire faire de l’ordinateur ;
4 – un cable HDMI ;
5- un boîtier pour le protéger.
On peut utiliser un plan de travail sans soudure (solderlessbreadboard).
La Fondation Raspberry Pi vend plusieurs périphériques compatibles. Vous pourrez aussi facilement vous procurer certains de ces accessoires dans des centres de récupération de matériel électronique. C’est la popularisation de l’informatique à son meilleur.
C’est pour qui ?
Ce tout petit ordinateur, par sa fragilité et celle de ses composantes, ne semble pas recommandé pour les jeunes élèves car il s’agit de manipuler des composants électroniques délicats. Il est donc principalement utilisé par les étudiants du lycée ou des universités.
En Grande-Bretagne, il s’agit d’un véritable phénomène. Le Raspberry Pi est utilisé dans un grand nombre d’écoles primaires et secondaires. À ce niveau scolaire, il peut servir à découvrir la musique avec Sonic Pi, s’initier à la logique informatique avec Scratch ou encore explorer et programmer dans l’univers Minecraft.
Au Québec, de plus en plus de jeunes de 4e et 5e secondaire expriment à leurs enseignants leur désir d’ajouter un volet électronique à leur projet intégrateur. Le réseau collégial le découvre également grâce aux fab labs, makerspaces et autres clubs de robotique.
Qu’est-ce qu’il permet de faire ?
Tout ce que vous voulez. Votre créativité et votre habileté en sont les limites. Dix millions de Raspberry Pi ont été vendus dans le monde.
Il existe une communauté internationale d’usagers du Raspberry PI qui est à la fois, créative, dynamique, très généreuse de son temps et du partage de ses connaissances. Il peut être programmé avec les langages Scratch ou Python, on peut y ajouter des capteurs visuels, auditifs, de température, etc On peut même l’utiliser pour créer des robots plus ou moins impressionnants selon vos talents. C’est un ordinateur, il fera de prodigieux calculs.
Une communauté d’usagers
The MagPi Magazine, le magazine officiel du Raspberry Pi est disponible gratuitement en ligne et est publié en anglais à chaque mois. On y trouve toute une collection de projets qui sont expliqués pas à pas.
Pour s’amuser ou s’inspirer, on lit Les projets les plus fous sur Raspberry Pi par Loic Duval sur tom’s HARDWARE
Grâce à la Fondation Raspberry Pi, on trouve un ordinateur « beau. bon, pas cher » qui permet d’utiliser des ressources éducatives libres. Les coûts généralement liés à l’apprentissage de l’informatique, la programmation ou la robotique peuvent être grandement diminués. Une bonne excuse pour installer un atelier de fabrication numérique dans votre établissement.
Merci à Christophe Reverd, de la Vitrine Technologique Éducation, pour ses conseils lors de la rédaction de cet article.
Divisé en six chapitres qui correspondent à six exercices, ce cahier d’activités va apprendre à l’enfant à créer son premier jeu vidéo (un jeu complet de tank).
Aucun savoir-faire préalable n’est demandé. Ce cahier est accompagné d’un site Internet qui l’accompagnera pendant tout son apprentissage :
c’est sur ce site qu’il pourra créer son jeu vidéo, en six étapes de difficulté croissante.
Il pourra ainsi mettre en exécution immédiatement ce qu’il lit et apprend. Il pourra ainsi tester son jeu vidéo au fur et à mesure de sa construction.
A propos de l’auteur : David Weinachter est un ingénieur informatique qui a toujours été passionné par la programmation : c’est pour transmettre sa passion à ses enfants qu’il a créé Kidscod.in, la première méthode en ligne pour apprendre aux enfants à coder en toute autonomie, dès qu’ils commencent à savoir lire.
Convaincu qu’on apprend mieux en s’amusant, David s’attache à faire découvrir le code aux enfants via des histoires interactives ou des jeux vidéo à créer.
[callout]Les élèves d’aujourd’hui seront les citoyens de demain. Les former au nouveau paradigme porté par la révolution numérique devient essentiel. Seront-ils des consommateurs asservis ou des utilisateurs conscients et éclairés des objets numériques ?[/callout]
Les projets que rend possible le Raspberry pi sont autant d’occasions d’ouvrir « la boîte noire », de découvrir que les objets numériques n’ont rien de magique. Percevoir l’immensité du champ des possibles.
Le numérique est envisagé dans sa potentialité à développer les apprentissages. Les éléments matériels sont destinés à être manipulés, assemblés. On se situe pour les aspects logiciels dans le monde du libre. La question est d’abord de définir le besoin pour ensuite identifier les éléments qui permettront de réaliser le produit envisagé.
C’est en bidouillant que l’on prend conscience que pour atteindre un même objectif, différents chemins sont envisageables.
Il s’agit de s’éveiller à ces différentes possibilités. Ainsi les choix dans l’achat de matériels ou d’utilisation de services sont plus à l’initiative de l’utilisateur. Il est plus acteur et moins consommateur. Ne tombons cependant pas dans un manichéisme naïf…
Présentation de la technologie utilisée : Ce que dit wikipédia :
Le Raspberry Pi est un nano-ordinateur monocarte à processeur ARM conçu par le créateur de jeux vidéo David Braben, dans le cadre de sa fondation Raspberry Pi2.
Cet ordinateur, qui a la taille d’une carte de crédit, est destiné à encourager l’apprentissage de la programmation informatique2 ; il permet l’exécution de plusieurs variantes du système d’exploitation libre GNU/Linux et des logiciels compatibles. Il est fourni nu (carte mère seule, sans boîtier, alimentation, clavier, souris ni écran) dans l’objectif de diminuer les coûts et de permettre l’utilisation de matériel de récupération.
Relation avec le thème de l’édition de #Ludovia12
Une profusion d’objets et de services nous sont proposés. Pour quoi faire ?
Faire fonctionner l’économie de marché ? Pour nous donner l’impression que l’on est en phase avec une société toujours plus »moderne » et numérique ? Ou bien pour nous permettre d’utiliser des outils qui rendent des services nouveaux et qui permettent donc des usages qui n’existaient pas auparavant ?
La révolution numérique est en marche et de nombreuses questions de cet ordre pourraient être posées. Comme dans bien d’autres domaines, le numérique est ce que l’on en fait ! Plus les utilisateurs seront conscients, plus ils seront acteurs. S’approprier des outils c’est bien, les détourner c’est mieux !
Usages en classe
Il ne s’agit pas d’un retour d’expérience mais plutôt de la présentation d’un projet de classe qui sera mené au cours de l’année 2015-2016.
Les élèves de CE1 assembleront des éléments matériels : carte électronique et carte micro SD dans un boîtier prévu à cet effet. Puis ils découvriront que plusieurs systèmes d’exploitation peuvent être associés à ce matériel en fonction du besoin, de ce que l’on veut faire.
Les boîtiers Raspberry pi assemblés serviront à remplacer les unités centrales de la classe qui sont vieillissantes.
Un autre groupe d’une dizaine d’élèves volontaires scolarisés du CE1 au CM2 travaillera une heure par semaine sur des projets spécifiques (construire un robot, une station météo…)
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.
1- une courte présentation du langage de programmation Python ;
2- un compte rendu de quelques-unes des présentations de « l’Education Summit » ;
3 (dans le prochain épisode) – un court film et un texte qui résume la journée « jeunes codeurs », cette journée de formation offerte aux jeunes francophones le samedi et aux jeunes anglophones le dimanche.
Quelques mots sur Python…
Guido van Rossum, un Néerlandais, est le créateur du langage de programmation Python. Il est un grand amateur des humoristes anglais « Monty Python » d’où vient le nom du langage de programmation qu’il a créé pendant ses vacances de Noël 1989 et dont il a poursuivi le développement dans ses temps libres.
Le langage de programmation Python est maintenant sous la responsabilité de la Python Software Foundation (PSF) dont la mission est de promouvoir, de protéger et de faire progresser le langage de programmation Python, et de soutenir et faciliter la croissance d’une communauté internationale de programmeurs Python (traduction libre à partir de la Mission Statement de la PSF) .
La Python Software Foundation (PSF) est une société à but non-lucratif qui détient la propriété intellectuelle du langage de programmation Python, et en assure l’accès gratuit à tous. Python est un langage « open source ». Le PSF protège les marques de commerce associées à Python, organise la conférence annuelle PyCon en Amérique du Nord et offre support aux autres conférences PyCon présentées ailleurs au monde.
Le langage de programmation Python
Comme vous le savez, l’ordinateur ne comprend que le langage binaire des 0 et des 1.
« 01000010 01101111 01101110 01101010 01101111 01110101 01110010 » signifie « bonjour » à ce que j’ai lu.
À ce rythme les conversations avec la machine risquent d’être longues et laborieuses. Le processus de communication « Homme /Machine » peut être schématisé ainsi : vous écrivez dans un langage quasi-humain un programme pour donner des ordres à la machine, en deuxième étape un programme de traduction change ce langage en binaire, le langage que la machine comprend.
Python est un langage de programmation parmi plusieurs autres. C’est un langage de haut-niveau, nommé ainsi parce qu’écrire et lire Python est facile car il ressemble beaucoup à de l’anglais.
Certains langages de programmation sont dits compilés et nécessitent l’usage d’un logiciel spécialisé pour transformer le code du programme en langage machine.
Python est un langage interprété, c’est-à-dire que chaque instruction du programme est directement traduite en langage machine au moment de sa lecture.
Les deux principales caractéristiques d’un langage interprété sont sa simplicité et sa portabilité. Un tel langage fonctionne aussi bien avec Windows, Linux ou Mac OS.
Le langage Python est orienté objet, il permet de manipuler des structures de données, les objets, pour modéliser et exécuter des programmes. On peut créer diverses applications à partir du langage Python, des jeux, des logiciels et il donne accès à quantité de bibliothèques logicielles, qui peuvent être utilisées sans avoir à réécrire le code qu’elles contiennent.
On dit que Python optimise la productivité des programmeurs. Il offre des outils de haut niveau dans une syntaxe simple. Il est apprécié des pédagogues car cette syntaxe permet une initiation facile aux concepts de base de la programmation.
Python 2.x is legacy, Python 3.x is the present and future of the language ou Python 2.x c’est le passé, Python 3.x est le présent et le futur du langage.
Les langages de programmation sont des entités très complexes et qui évoluent. Chaque nouvelle version du code du langage est identifiée par un chiffre : 1, 2, 3, . . . Les corrections et les changements mineurs d’une version seront indiqués par un point : 2.1, 2.2.3 . . . Malgré les variations apportées, chacune de ces versions améliorées du même groupe numérique demeurent compatibles les unes avec les autres.
La dernière version du groupe 2 de Python est le 2.7 sorti au milieu des années 2010. Guido van Rossum, le créateur original du langage Python a décidé de corriger Python sans s’attarder à la compatibilité entre les codes versions 2.x et 3.x. Quelle version utiliser se demandera le programmeur et la réponse donnée est : tout dépend de ce que vous voulez faire. Le site wiki.python.org répond aux questions de ceux qui désirent en connaître davantage à ce sujet.
Education Summit
Une journée entière, le neuf avril, était consacrée à l’Education Summit : une centaine de participants venus de tous les coins du monde, une douzaine de conférenciers et deux séances de Lightnings Talks (présentations éclairs de 5 minutes) auxquels se sont inscrits environ une vingtaine d’intervenants. J’ai échangé quelques mots avec des Russes, des Coréens, des Péruviens, des Allemands, quantité d’États-uniens et ai suivi les présentations d’universitaires d’Australie et de l’Inde, entre autres. Mon origine montréalaise me donnait un air quasiment exotique au sein de ce groupe.
À cette conférence j’étais toute ouïe, Alice dans ce pays des merveilles si différent de mon univers habituel. À ma consolation, un spécialiste de longue date de l’informatique et de la programmation m’avouait qu’il se sent maintenant dépassé tant le domaine s’est complexifié.
Charles R. Severance aussi surnommé Dr. Chuck a traité de quelques unes de ses expériences et en particulier du très célèbre MOOC : Programming for everybody with Python – La programmation pour tous (Python) offert sur la plate-forme Coursera et auquel on prévoit près de 220 000 inscriptions pour la présentation offerte du premier juin au neuf août 2015.
L’intérêt, la passion de Charles R. Sererance est la diffusion du savoir.
Programming for everybody with Python ne vise pas uniquement l’apprentissage de Python, mais veut initier l’étudiant au concept de la programmation afin qu’il puisse par la suite suivre les cours offerts par la Khan Academy, Codacademy et Code.org.
Le deuxième objectif de ce cours est d’apprendre à l’étudiant à enseigner la programmation car les besoins dans ce domaine sont immenses à notre époque où l’exploration de données (data mining) est un domaine en pleine croissance. Tout le matériel nécessaire pour suivre et donner le cours, le guide pédagogique, les diapositives, le matériel vidéo et audio est disponible gratuitement sur le site de l’université du Michigan.
Comme il croit que l’initiation à la programmation doit être faite dans la langue d’origine de l’étudiant, tous sont invités à traduire le cours et les ouvrages, à les réécrire sous la licence Creative Commons (CC). Une version braille de Programming for everybody with Python a même été créée. Plus qu’un cours, il désire créer un mouvement à travers le monde où la programmation sera vraiment accessible à tous.
L’âge idéal pour initier les jeunes à la programmation est selon son expérience de 13 à 17 ans environ.
Charles Severance est professeur agrégé à l’École des sciences de l’information de l’Université du Michigan. Il a été directeur exécutif de la Fondation Sakai dont il a été l’architecte en chef. Il enseigne deux MOOCs populaires partout au monde sur la plate-forme Coursera : Internet History, Technology and Security (L’histoire d’Internet, de la technologie et de la sécurité) et Programming for Everybodyin Python ( La programmation pour tout le monde). Il est un défenseur de longue date des ressources éducatives ouvertes et participe au IMS Global Learning Consortium. Il est l’éditeur de Computing Conversations dans IEEE Computer magazine.
Je suis un peu brouillonne, alors je n’ai pas bien noté le nom de tous les conférenciers qui se sont succédés pendant la journée. Si certains d’entre vous me lisent, excusez-moi s’il-vous-plaît. C’est en vrac que je livre quelques idées et faits qui ont particulièrement capté mon attention, mais les sujets discutés étaient beaucoup plus diversifiés que ce court compte-rendu:
un consensus relativement à l’âge idéal pour initier les écoliers à la programmation Python, entre 13 et 17 ans ;
le travail d’équipe est recommandé ;
les étudiants peuvent avoir un carton vert qu’ils soulèvent quand ils ont terminé une tâche et peuvent aller en aider d’autres qui ont des difficultés, par contre ils lèveront leur carton rouge pour recevoir de l’aide ; la coopération est encouragée et valorisée ;
la formation est plus difficile dans un contexte BYOD (AVAN en français) ;
il demeure évident que tous les écoliers doivent savoir utiliser les applications de bureautique de base ;
il est possible d’organiser des formations en programmation « hors murs » de type EdCamp pour les écoliers, il faut alors une équipe de bénévoles aux talents diversifiés, savoir faire appel aux compagnies locales, penser à offrir un lunch aux adolescents et savoir que la plupart d’entre eux ne lisent pas leurs courriels, donc trouver un moyen plus efficace pour les contacter ;
certains ont proposé une année entière d’école consacrée à la programmation (Python) à la fin du collège afin de permettre aux écoliers de devenir les créateurs de leurs technologies ;
d’autres suggèrent que tous les sujets soient enseignés à partir de la programmation.
Quelques mots pour souligner les expériences des formateurs avec le milieu scolaire :
beaucoup d’enseignants sont mal à l’aise face à ce nouveau domaine d’apprentissage. Ils n’ont ni l’intérêt, ni les compétences élémentaires ni le vocabulaire de base ;
– plusieurs groupes de différentes régions du monde qui offrent bénévolement des formations en programmation aux jeunes écoliers, décrivent tous une expérience similaire. Il leur est extrêmement difficile d’entrer dans les écoles pour y présenter (gratuitement) les formations en programmation aux élèves. Souvent les écoles refusent carrément de les recevoir.
Que faut-il penser de cette situation qui semble universelle ?
La programmation et le codage dans quelques pays
L’Estonie est le pays des créateurs de Skype.
On trouve dans les écoles estoniennes des ordinateurs et connexion à Internet depuis plus de 15 ans. Le code et la programmation y est enseigné obligatoirement dans toutes les écoles dès l’âge de 7 ou 8 ans. Les écoliers sont initiés à la robotique et apprennent à écrire des programmes QR pour leurs téléphones intelligents. Les enfants disent aimer ces activités qui les obligent à réfléchir. Est-ce ceci « l’école active »?
La programmation est obligatoire au niveau du lycée au Vietnam et le sera sous peu en Angleterre (UK).
Monsieur James R. Curran est un linguiste informaticien de l’Université de Sydney et directeur de la National Computer Science School , une école d’été en informatique pour des étudiants d’Australie et de Nouvelle Zélande.
L’Australie réécrit présentement les cursus pour les écoliers du primaire et du secondaire et la programmation y sera obligatoire. Monsieur Curran aimerait beaucoup que Python soit choisi comme langage de formation à la programmation, principalement parce qu’il est très facile à apprendre. Cependant l’éthique l’empêche de faire pression.
Conclusions de la pédagogue
Je suis impressionnée. Je suis bouche bée devant le dynamisme de ces éducateurs émérites, ces informaticiens, ces programmeurs qui s’activent à la formation des générations montantes avec une grande philosophie du partage.
La marche arrière est impensable. Indéniablement tous les élèves feront de la programmation un jour ou l’autre selon les pays. Je ne crois pas qu’il serait bon d’enseigner tous les sujets d’étude à partir de la programmation. Par contre, un futur idéal intégrerait l’usage occasionnel de la programmation lors de l’apprentissage de tous les sujets.
Retrouvez la journée « jeunes codeurs » dans le prochain épisode.
Gérer le consentement
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
L’accès ou le stockage technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’utilisateur, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
L’accès ou le stockage technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou l’internaute.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
L’accès ou le stockage technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’utilisateur sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.