Retour d'expérience sur le premier atelier Zeste de Code

Compte-rendu du coding goûter du 24 octobre 2018 à Orsay

Le mercredi 24 octobre 2018 était une grande première pour l’association Zeste de Savoir car celle-ci a organisé son premier événement grand public IRL ! Nommé « Zeste de Code, la programmation sans pépins ! », cet atelier d’apprentissage de la programmation s’est tenu à Orsay, au sud de Paris, dans le cadre de la Semaine européenne du Code grâce au soutien de Meet and Code. Une quinzaine de participants ont pu ainsi réaliser, selon leur choix, un Flappy Bird en Scratch ou un Snake en Python !

Cette première expérience est globalement un succès, malgré quelques améliorations à apporter pour les ateliers. Dans cet article, nous vous proposons de revivre avec nous cette première expérience et de réfléchir aux pistes d’amélioration pour l’organisation d’un prochain atelier Zeste de Code ! Si vous êtes intéressés pour organiser vous-même un atelier de programmation près de chez vous, nous vous mettons à disposition un petit guide à la fin de l’article, inspiré de cette première expérience.

Un premier atelier à l'organisation... tendue

Chronologie de l’atelier et de son organisation

Genèse de ce premier atelier

Fin juillet 2018, @Dwayn publie un article portant sur l’organisation par l’association Zeste de Savoir d’un événement IRL autour de la programmation. Cet article propose notamment de profiter de la semaine européenne du code pour décrocher une subvention à l’organisme Meet and Code et organiser un premier atelier de programmation pour débutants. Très vite, de nombreux agrumes s’intéressent au projet, et se regroupent sur le sujet dédié ; il s’en suit une pulpeuse discussion où plusieurs idées émergent au fil des commentaires.

Avoir des idées, c’est bien ; avoir du concret, c’est mieux ! :D Alors que nous sommes début septembre, et que la date limite pour déposer la demande de subvention approche à grand pas, la communauté n’a toujours rien décidé de concret. @firm1 réveille un peu le sujet et quelques membres s’activent ; en quelques jours, @Bibou trouve une salle pour organiser l’événement au sein de son université. Avec l’aide de @Situphen, @Amaury et @entwanne, une demande de subvention est rédigée et envoyée ; deux jours après, la réponse tombe : 500 € de subvention nous sont accordés !

Cette subvention en poche, il nous faut terminer de régler l’organisation ; @Bibou s’en charge comme un chef en allant effectuer toutes les démarches auprès de son université pour obtenir une salle informatique le 24 octobre, et ainsi permettre d’organiser cet atelier très attendu ! Il s’occupe aussi de contacter des assurances pour l’association, afin d’être couverts le jour de l’événement, ainsi que d’imprimer des prospectus et des affiches puis de les distribuer dans plusieurs endroits à Orsay.

Neuf jours avant l’événement, les premières demandes d’inscription commencent à arriver dans notre boite de courriel. @Situphen prépare donc un message-type personnalisable pour répondre au demande, ainsi qu’une fiche d’autorisation parentale et un tableur pour recenser tous les inscrits. Au jour le jour, @Situphen et @Amaury répondent aux différentes demandes. C’est dans les tous derniers jours que la liste des participants s’allonge pour arriver au nombre de quinze participants !

Et la date arriva

Nous voici quelques jours avant l’atelier et le plus important n’est pas prêt : les objectifs et les versions finales des jeux à proposer aux participants ! :-° Pour le Flappy Bird, @Bibou s’occupe de rédiger les objectifs et @Situphen se familiarise avec Scratch ; pour le Snake, @TAlone fait un travail remarquable en concevant les différents objectifs à atteindre pour les participants et la version finale du jeu.

Le jour de l’évènement, un des organisateurs, @Bibou, est déjà sur place ; il s’est chargé des premières vérifications quant à la salle, en plus de s’être arrangé avec l’administrateur réseau pour avoir des sessions pour nos jeunes agrumes. Quelque temps avant l’évènement, @TAlone le rejoint et ils partent tous deux installer le fléchage dans les bâtiments, mais aussi depuis l’arrêt de bus. Une petite anecdote : tous deux venant en transports, ils n’en installent pas du côté du parking des voitures, ce qui ne sera pas sans déranger certains participants (ne sachant pas utiliser des coordonnées GPS par ailleurs, mais passons).

Après un court repas, les deux organisateurs déjà présents sont prêts à accueillir @Situphen ainsi qu’@Amaury, afin d’effectuer les derniers préparatifs ; en particulier, l’installation de Pip et de Pygame sur les postes informatiques. Les organisateurs terminent de réviser leurs copies quand les premiers participants arrivent et sont conviés à s’installer chacun à un poste de façon temporaire – l’organisation initiale prévoyant une salle réservée Python, et une salle réservée Scratch.

Quelques minutes après l’heure prévue, les organisateurs présentent rapidement l’association Zeste de Savoir et ses objectifs, et décrivent les objectifs de la programmation à ceux n’en ayant jamais fait. Après cette présentation, l’atelier commence par une répartition des participants entre les deux langages proposés, selon les choix de chacun. À la surprise des organisateurs, un seul des participants choisi l’atelier Scratch ; le choix est donc fait de le laisser dans la même salle que les participants en Python : le chanceux aura droit à un professeur particulier durant toute la durée de l’atelier.

Déroulement de l’atelier

L’atelier commence donc pour nos pythonistes avec une initiation aux outils de programmation (Spyder aura été utilisé pendant cet atelier, car il était disponible sur les postes locaux). Très vite, les organisateurs enchaînent sur une présentation des bases du langage Python (structures conditionnelles, boucles, etc), qui durera plus de deux heures, alors que moins d’une heure devait y être allouée :D . Cette partie étant très importante, il était nécessaire, avant de s’attaquer à un projet plus complet, que les participants travaillent ces notions de bases, utiles pour toute réalisation informatique.

Ces deux heures passées, nos participants enchaînent sur le goûter, qui semble avoir vraiment plu à l’ensemble d’entre eux, étant un moment de détente après un début d’après-midi chargé. Pendant ce temps, les animateurs se relayent dans la salle pour installer les tuiles graphiques ainsi que la documentation des fonctions pour le Snake, oubliés lors de la préparation. Le jeu final est testé sur les postes informatiques, afin de valider son fonctionnement avant de faire remonter les participants.

L’heure de la pratique a enfin sonné ; alors qu’il ne reste plus qu’une heure et demie, les participants commencent à programmer un Snake en Python avec la bibliothèque fournie (disponible sur le dépôt Zeste de Code pour les curieux). Cette bibliothèque, écrite par @TAlone quelques jours avant l’atelier, censée simplifier le développement du jeu, a permis aux plus avancés de concevoir un jeu constitué d’un serpent bougeant à l’écran… sans pommes.

En effet, en raison du temps très court, et de la complexité ressentie de la bibliothèque (difficile d’écrire une abstraction pour débutants quand on ne l’est pas soi-même), nos participants n’ont eu le temps de terminer toutes les étapes prévues pour la réalisation du jeu. Malgré ces difficultés, et quelques contretemps qui n’ont que très peu impactés les participants directement, cette journée est ressentie positivement par la plupart d’entre eux, qui rentrent chez eux avec le sourire. Certains demandent même un retour pour pouvoir continuer le jeu chez eux… Demande que nous avons failli à survenir, ayant pris bien trop de temps à rédiger ce compte-rendu ainsi que celui des élèves. Plusieurs mois après, est-il décent de les recontacter avec de quoi continuer, alors que nous avons échoué, faute d’anticipation suffisante et de temps pris, à leur envoyer dans des délais raisonnables ? La question trouve pour la moment une réponse négative de notre côté.

Aucun problème n’a été posé lors du départ des participants, chacun étant parti plus ou moins à l’heure avec l’accompagnateur prévu. Il est alors temps pour l’organisation de ranger le goûter, ainsi que d’éteindre les postes informatiques. La nuit tombée, chacun rentre chez soi, et trois organisateurs, @Amaury, @Situphen et @TAlone font un débriefing rapide de la journée dans le RER ; débriefing qui, complété des retours de @Bibou, est l’ébauche de l’article que vous lisez en ce moment.

Quelques documents pour illustrer nos propos

Nous vous mettons à disposition plusieurs documents pour illustrer nos propos. Vous pouvez retrouver le code source complet du jeu Snake ainsi que les fichiers LaTeX utilisés pour la présentation de l’atelier sur notre dépôt Zeste de Code, tel qu’il était le jour de l’atelier.

Répartition des âges des participants

Voici la répartition des participants (10 garçons et 3 filles), dont l’âge médian était 15 ans.

Répartition des âges des participants
Répartition des âges des participants

Version finale du jeu Snake

Voici le code source du jeu Snake (en balise secret) ainsi qu’une capture d’écran du jeu.

Code source du jeu Snake (Afficher/Masquer)

Voir le fichier sur Github

########################################
###       Corrigé complet Snake      ###
###      (c) Zeste de Savoir (c)     ###
###           Licence GPL            ###
###         Auteur : TAlone          ###
########################################

# Import de la bibliothèque pygame (gestion des graphismes)
import pygame
# Import de la bibliothèque du coding gouter (fonctions d'abstraction)
import cg

# Tout le code à écrire sera là-dedans
def main():
    # Création d'une instance de jeu
    jeu = cg.Game()
    # Création d'un serpent à l'écran
    snake = cg.Snake()

    # Déclaration des sprites
    jeu.addAsset("Cactus", "assets/cactus.png")
    # Ajout du corps
    jeu.addAsset("Corps", "assets/body.png")
    # Ajout queue et tête
    jeu.addAsset("Queue", "assets/tail.png")
    jeu.addAsset("Tête", "assets/head.png")
    # Ajout de la pomme
    jeu.addAsset("Pomme", "assets/apple.png")

    # Ajout de l'asset spécial qui sera automatiquement mis en fond
    jeu.addAsset("background", "assets/background.png")

    # Variable controlant l'ouverture de la fenêtre
    ouvert = True
    # Par défaut, le serpent ne doit pas bouger
    direction = snake.DIRECTIONS.STOP

    # Fonction pour faire apparaitre la pomme
    def spawnPomme():
        # Stockage de la position de la pomme
        pomme = jeu.randomPosition()

        # Tant que la pomme est hors-zone, on la change de place
        while jeu.isSide(pomme):
            pomme = jeu.randomPosition()

            # Ne pas mettre la pomme sur le serpent
            for part in snake.partsIterator():
                if jeu.collision(pomme, part.position):
                    # Tant que la pomme est sur le joueur, on la change de place
                    pomme = jeu.randomPosition()

        # Retourne la position trouvée
        return pomme

    # Ajout de la pomme
    pomme = spawnPomme()

    # Boucle principale du jeu
    while ouvert:
        # Récupération des événements de la file d'attente
        for event in pygame.event.get():
            # Si l'utilisateur veut quitter...
            if event.type == pygame.QUIT:
                # ...sortie de la boucle principale, et fermeture du jeu.
                ouvert = False
            # Lorsqu'une touche est appuyée...
            if event.type == pygame.KEYDOWN:
                # ...on vérifie la direction droite...
                if event.key == pygame.K_RIGHT:
                    direction = snake.DIRECTIONS.RIGHT
                # ...et les autres directions.
                elif event.key == pygame.K_UP:
                    direction = snake.DIRECTIONS.TOP
                elif event.key == pygame.K_DOWN:
                    direction = snake.DIRECTIONS.BOTTOM
                elif event.key == pygame.K_LEFT:
                    direction = snake.DIRECTIONS.LEFT

        # Effacement de l'écran, et remplissage avec les tiles de fond
        jeu.eraseScreen()

        # Dessin de tous les cactus
        for tile in jeu.screenIterator():
            if jeu.isSide(tile):
                jeu.draw(jeu.asset("Cactus"), tile)

        # Dessin du serpent à l'écran
        for part in snake.partsIterator():
            # Choix du sprite en fonction de la partie à dessiner et rotation
            if part.type == snake.PARTS.HEAD:
                # Rotation de la tête
                sprite = jeu.asset("Tête", part.rotation)
            elif part.type == snake.PARTS.TAIL:
                sprite = jeu.asset("Queue", part.rotation)
            else:
                sprite = jeu.asset("Corps", part.rotation)

            # Dessin du sprite à l'écran
            jeu.draw(sprite, part.position)

        # Dessin de la pomme
        jeu.draw(jeu.asset("Pomme"), pomme)

        # Ne pas oublier de terminer la phase de dessin
        jeu.end()

        # Déplacement du serpent
        snake.move(direction)

        # Si il y a collision entre la pomme et la tête du serpent
        if jeu.collision(snake.getHeadPosition(), pomme):
            # Le serpent grandit
            snake.grow()
            # La pomme change de position
            pomme = spawnPomme()

        # Vérifie que le serpent soit toujours à l'écran
        for tile in jeu.screenIterator():
            if jeu.isSide(tile) and jeu.collision(snake.getHeadPosition(), tile):
                # Ferme le jeu si collision avec un mur
                ouvert = False

        # Vérifie que le serpent ne se mord pas
        for part in snake.partsIterator():
            # Attention : la tête est incluse, il faut donc la retirer
            if jeu.collision(snake.getHeadPosition(), part.position) and part.type != snake.PARTS.HEAD:
                # Ferme le jeu si le serpent se rentre dedans
                ouvert = False

# Lancement de main seulement si le fichier n'est pas importé comme module
if __name__ == "__main__":
main()
Capture d'écran du jeu Snake
Capture d’écran du jeu Snake

Affiche de l’événement

Voici l’affiche créée par @Bibou pour communiquer sur l’événement aux alentours d’Orsay, notamment grâce à la mairie.

Affiche présentant l'événement

Une première expérience et déjà de nouvelles idées

Simplifier le code source en s’inspirant d’Arduino

Nous avons constaté lors de ce premier atelier que le code source du jeu est trop complexe pour des débutants. Malgré la mise à disposition aux participants d’un petit guide pour expliquer l’utilisation des fonctions, certaines instructions nécessaires au fonctionnement du programmation n’était pas bien comprises. Il y avait donc pour certaines parties un effet magique « Je ne sais pas ce que ça fait mais on me dit que c’est nécessaire donc je copie-colle. » qu’il faut éviter !

Nous allons retravailler le code source du jeu pour le simplifier, et nous allons nous inspirer du code source des programmes Arduino utilisés régulièrement dans l’enseignement. La structure de ces programmes est très simple, il s’agit de proposer deux fonctions :

  • une fonction d’initialisation, dont le code est exécuté une seule fois au début du programme ;
  • une fonction de boucle, dont le code est exécuté infiniment jusqu’à l’arrêt du programme.

Voici ce que ça donne :

void setup() {
  // Une fonction d'initialisation
}

void loop() {
  // Une fonction qui boucle
}

Notre code dans sa version minimale serait composé de ces deux seules fonctions. Lancé sans modification, il afficherait simplement une fenêtre vide. Chaque participant pourra alors créer au fur et à mesure la logique du jeu avec des fonctions créées par nos soins. Ce sont ces fonctions que nous allons retravailler pour les rendre plus compréhensibles. Nous allons aussi simplifier la gestion des événements.

En attendant d’arriver à une nouvelle version du jeu, nous pouvons d’or et déjà vous montrer le squelette du code source :

from zestedecode import Game

def setup(game):
    # Une fonction d'initialisation
    pass

def loop(game, events):
    # Une fonction qui boucle
    pass

Game(setup, loop).play()

Configurer les logiciels et coder le jeu en français

Lors de ce premier atelier, les ordinateurs étaient configurés par défaut en anglais, et par conséquent il est en était de même pour les interfaces des logiciels. Aussi, les fonctions et les variables du code étaient en anglais. Nous avons constaté que l’utilisation de l’anglais est un frein pour de nombreux participants.

Il faudra donc lors du prochain atelier vérifier que les ordinateurs, ou, a minima, les logiciels, peuvent être configurés en français. Bien que l’utilisation de l’anglais pour le développement logiciel soit encouragé dans le monde professionnel, nous pensons que l’anglais n’a pas lieu d’être pour une initiation à la programmation avec un public adolescent. Une question reste en suspens, devons-nous utiliser des accents pour les variables et les fonctions en Python 3 ?

Nous pouvons reprendre la version minimale puis traduire les variables et les fonctions pour arriver à un code plus pédagogique :

from zestedecode import Jeu

def démarrage(jeu):
    # Une fonction d'initialisation
    pass

def boucle(jeu, événements):
    # Une fonction qui boucle
    pass

Jeu(démarrage, boucle).jouer()

Enseigner les bases de la programmation pendant la création du jeu vidéo

Nous en avons parlé dans la première partie de l’article, l’atelier ne s’est pas déroulé comme prévu : la présentation des bases du langage Python a duré deux heures au lieu d’une heure, ce qui n’a pas laissé assez de temps pour la programmation du jeu Snake. Faut-il réellement séparer l’apprentissage du langage et la conception du jeu vidéo ? Après cette première expérience, nous pensons que non. Nous allons réfléchir pour enseigner les bases du langage par la création du jeu vidéo. Si vous avez un avis sur la question, n’hésitez pas à nous en faire part !

Commencer plus tôt la communication sur l’événement

Afin de faire connaître l’atelier, nous avons diffusé une petite campagne de communication dans les collèges et lycées des environs d’Orsay, ainsi que dans les rues à proximité et dans l’université qui nous accueillait. En soi, nous avons obtenus suffisamment d’inscriptions, mais ce point a jusqu’à la fin été assez tendu. En effet, suite à l’attente des subventions et, surtout, à celle de l’organisation de ce premier événement, nous avons lancé la campagne très, très tard : dix jours (!) avant l’atelier ; cette fois, nous avons eu de la chance, avec un pic d’inscription la veille (plus de la moitié de tous les inscrits, en fait), mais à l’avenir, il faudrait prévoir un peu plus large afin d’être tranquille.

L’idée de communiquer auprès de professeurs directement, et pas juste dans les lycées, a également été mentionnée. L’Éducation Nationale peut être un peu tatillonne à ce sujet, mais ça pourrait être une possibilité intéressante dans la limite du possible.

Diriger les participants les plus inexpérimentés vers Scratch

Un seul participant a choisi l’activité utilisant Scratch. Probablement que la présentation de cette partie a été moins convaincante : il faudra veiller à ce que les deux présentations (Python et Scratch) soient aussi attrayantes l’une que l’autre.

Comment organiser un atelier de programmation ? Un petit guide sans prétention

Ce guide n’a pas la prétention de détenir la vérité ou d’être exhaustif sur le sujet ! Il décrit simplement la manière dont nous organiserons notre atelier de programmation la prochaine fois. Il garde ce qui a fonctionné lors du premier événement Zeste de Code et tire aussi les conclusions des petits couacs. Nous ne nous prétendons pas experts en la matière, soyez libres de suivre certains de nos conseils et d’en ignorer d’autres ! :)

En amont de l’événement

Former une petite équipe motivée

  • Deux ou trois, c’est peu. Un imprévu est vite arrivé et se retrouver tout seul pour animer un atelier de programmation, c’est difficile ! Il faut néanmoins rester à taille humaine ; plus on est nombreux et moins il est facile de communiquer.

  • Vous êtes seul ? Nombreux sont les internautes prêts à vous rejoindre dans l’aventure et nombreuses sont les structures qui peuvent vous aider. Lancez-vous et créez un sujet sur le forum pour trouver des membres motivés ! Ouvrez la porte de votre mairie, de la médiathèque du quartier ou encore d’une association dédiée à l’informatique : ils pourront vous aider !

Rechercher des subventions

  • Organiser un événement est rarement gratuit, bien qu’il soit possible d’en minimiser les frais. De nombreuses organisations, tel Meet and Code par exemple, proposent des subventions pour l’organisation de projets éducatifs et l’atelier de programmation remplit souvent les critères. Profitons-en !

  • Pour avoir une subvention, il est nécessaire de remplir un dossier décrivant l’événement proposé. Cela prend du temps et se prépare à l’avance, pensez-y !

Définir la forme de l’événement

  • À qui s’adresse l’événement ? Les ateliers de programmation sont souvent pensés et créés pour les enfants et les adolescents, mais rien n’empêche d’innover et d’en proposer à un public différent !

  • Il faut ensuite trouver un lieu pour organiser l’événement, si possible avec des ordinateurs présents sur place pour simplifier l’organisation. Si vous êtes lycéen, étudiant ou enseignant, vous pouvez demander à votre établissement s’il est possible d’utiliser une salle d’enseignement sur un créneau.

  • Vous devez vous mettre d’accord sur une date et un créneau horaire pour l’événement. Cela dépend bien entendu du lieu où vous organisez l’atelier. Il faut choisir un créneau pendant lequel l’équipe organisatrice et les participants seront présents ! Pour des enfants ou des adolescents, il faut penser aux temps extrascolaires : le mercredi après-midi, le samedi, le dimanche ou les vacances scolaires.

  • Il faut aussi définir une durée ! Ni trop court pour que les participants aient le temps d’apprendre de nouvelles choses ; ni trop long pour laisser le cerveau se reposer. N’hésitez pas à prévoir une pause au milieu de votre événement, voire même plusieurs selon les envies ! Vous pouvez aussi réfléchir à organiser l’événement sur plusieurs jours consécutifs ou de manière récurrente sur plusieurs semaines.

  • Il faut définir un nombre limite de participants qui soit en accord avec les capacités du lieu mais aussi le nombre d’organisateurs présents pour animer l’atelier.

S’occuper des formalités

  • Il est nécessaire d’avoir une assurance pour couvrir les accidents pouvant se produire, qu’il s’agisse de personnes ou de matériel. Dans le cadre des événements Zeste de Code, l’assurance est prise en charge par l’association Zeste de Savoir.

  • En fonction du lieu que vous avez trouvé, il y aura peut-être des formalités administratives avec des papiers à signer. En cas de doute, demandez au responsable des locaux !

Communiquer sur l’événement

  • Pour que les participants viennent à l’événement, il faut les prévenir. Rien de bien nouveau, mais c’est un point qu’il ne faut pas prendre à la légère ! Vous pouvez contacter les journaux locaux pour qu’ils diffusent votre événement à leurs lecteurs. Vous pouvez imprimer des affiches et les coller sur les panneaux d’affichage libre. Vous pouvez demander à la mairie, aux établissements scolaires ou aux maisons de quartier de parler de votre événement à des participants potentiels ; n’hésitez pas à leur laisser des affiches. Enfin, vous pouvez utiliser les réseaux sociaux en diffusant l’événement sur des pages ou des groupes dédiés à la ville ou aux alentours de l’événement.

  • À chaque fois que vous communiquez autour de l’événement, il faut une courte description de l’événement, le lieu, la date, l’heure et un moyen de contact. Pour ce dernier, le mieux est probablement d’opter pour une adresse de courriel. Concernant le lieu, n’hésitez pas à préciser les transports en commun les plus proches du lieu !

  • Attention, un événement ne se diffuse pas rapidement ! Il faut laisser le temps aux participants potentiels de prendre connaissance de celui-ci et de s’organiser pour pouvoir y participer.

Préparer l’atelier de programmation

  • Quel atelier de programmation souhaitez-vous mettre en place ? Pour le premier Zeste de Code, nous avons choisi de proposer la création d’un jeu Snake en Python ou la création d’un jeu similaire à Flappy Bird en Scratch. Le choix du langage est un point très important, certains langages sont plus accessibles au débutants que d’autres. Par exemple, prendre un langage comme le langage C demande au préalable d’expliquer les différents types de variable, cela peut prendre du temps et être une barrière de plus à franchir pour les participants qui débutent ! Le langage ne fait pas tout, le choix du jeu est important. Dans l’idéal, il faut permettre aux participants d’avoir une version jouable du jeu à la fin de l’atelier.

  • Si vous comptez utiliser les ordinateurs présents sur le lieu de l’événement, il faut bien penser à vérifier que tous les logiciels nécessaires sont déjà installés ou s’installeront facilement le jour de l’atelier !

  • Il est intéressant d’avoir une liste d’objectifs à atteindre dans la création du jeu. Libre à vous de garder cette liste pour les animateurs de l’atelier ou de la donner à chaque participant pour les laisser en autonomie. Cette liste permet de guider les participants étape par étape jusqu’à avoir une version jouable du jeu. Tous les participants n’avancent pas au même rythme, prévoyez quelques petits bonus à ajouter pour personnaliser le jeu !

  • Chaque animateur devrait prendre le temps de s’approprier le jeu avant l’atelier. Plus vous connaissez le jeu, mieux vous pourrez aider les participants ! Aussi, essayez de vous placer dans la peau des participants et anticiper leurs difficultés éventuelles. Anticiper la difficulté d’un jeu n’est pas simple, n’hésitez pas à demander à des personnes de votre entourage de le tester et de vous faire un retour.

  • Organiser un atelier de programmation, ce n’est pas seulement coder ! Il faut prévoir le déroulement de la journée : l’accueil des participants, la présentation de l’atelier, l’atelier en lui-même, la conclusion de l’atelier puis le départ des participants. N’hésitez à écrire un planning prévisionnel en estimant la durée que chaque moment de l’événement ! Cela vous permettra à tout moment de savoir si vous êtes plutôt en avance ou en retard sur vos estimations. Vous trouverez plus d’informations dans la partie "Le jour de l’événement".

Recueillir les demandes de participation

  • Vous allez progressivement recevoir des demandes de participation. Pour ne pas réinventer la roue à chaque fois, il peut être intéressant de créer un modèle-type pour les réponses, sans tomber dans la réponse automatique bien entendu !

  • Pour les participants mineurs, il faut demander une autorisation parentale aux responsables légaux autorisant la participation à l’atelier de programmation. Vous pouvez proposer aux participants de vous envoyer cette autorisation remplie et signée par courriel ou de vous la donner le jour l’événement, le choix est le vôtre !

  • À la fin de l’événement, certains participants mineurs voudront peut-être partir seul. Pour éviter tout problème, il peut être intéressant de demander au préalable aux responsables légaux s’ils autorisent la sortie non accompagnée. Cela peut se rajouter simplement dans l’autorisation parentale.

  • Lors de l’événement, vous serez peut-être amenés à prendre des photos. Si vous voulez diffuser ces photos et que les visages des participants apparaissent dessus, il vous faut leur autorisation pour ne pas violer leur droit à l’image. Sinon, vous pouvez tout simplement masquer les visages avant de les diffuser.

  • En cas d’accident, notamment pour un participant mineur, il est très utile de pouvoir contacter un responsable légal. Le courriel de réponse est l’endroit idéal pour demander un numéro en cas d’urgence.

  • Si jamais vous organisez un goûter pendant l’événement, n’hésitez pas à demander aux participants leurs allergies alimentaires. Là encore, le courriel de réponse est le moment idéal.

  • Il est intéressant de tenir une liste des participants avec leur nom, leur âge, leur numéro de contact en cas d’urgence et leurs allergies alimentaires. Vous pouvez aussi noter pour les participants mineurs si vous avez reçu l’autorisation parentale et s’ils ont l’autorisation de sortir sans accompagnateur. Pensez à l’apporter le jour de l’événement !

Le jour de l’événement

Préparer les lieux

  • Venez en avance ! Si l’atelier commence en début d’après-midi, préférez arriver sur place en fin de matinée : vous avez des choses à préparer avant le début de l’atelier. Enfin, rappelez-vous qu’un imprévu peut toujours pointer le bout de son nez !

  • Allumez autant d’ordinateurs qu’il y a besoin, en fonction du nombre de participants inscrits. Installez les logiciels dont vous avez besoin ou vérifiez qu’ils fonctionnent correctement. Dans l’idéal, un participant devrait être en mesure de s’asseoir et commencer à coder tout de suite ! Si vous avez prévu de projeter un diaporama, profitez-en pour les ouvrir sur un ordinateur et allumer le vidéoprojecteur.

  • Si le lieu où se déroule l’atelier est un labyrinthe, balisez avec des affiches les trajets que les participants sont les plus à même de prendre : de l’entrée du bâtiment jusqu’à la salle ; de l’arrêt de bus jusqu’au bâtiment ; du parking jusqu’au bâtiment. Dans la mesure du possible, essayez d’imprimer les affiches avant le jour de l’atelier, vous n’êtes jamais à l’abri d’une panne d’imprimante.

Animer l’atelier

  • Très en avance, pile poil à l’heure ou légèrement en retard, les participants vont arriver au compte-goutte. Lors de l’accueil, notez au fur et à mesure les participants sur une feuille de présence. Pour les participants mineurs et si ce n’est pas déjà fait, récupérez les autorisations parentales ainsi que les autorisations (ou interdictions) de sortie non accompagnée. Si vous voulez prendre des photos, il faut aussi penser aux autorisations de droit à l’image. Une fois que la paperasse est faite, c’est l’occasion de discuter avec les participants avant le début de l’atelier !

  • Tout le monde (ou presque) est arrivé ? C’est l’heure de la présentation ! Qui êtes-vous ? Quel est cet atelier ? Voici les deux questions auxquelles vous devrez répondre, avec un petit diaporama en support si vous le souhaitez.

  • Il est maintenant de temps de mettre en place cet atelier longuement préparé ! Donner des conseils concrets peut être difficile tant un atelier peut prendre des formes différentes, néanmoins voici quelques questions d’ordre générale que vous pouvez vous poser ainsi que des éléments de réponse :

    • Est-ce que nous respectons le planning prévisionnel ? Le regarder chaque minute est inutile mais le faire chaque demi-heure environ permet d’anticiper le retard (ou l’avance) sur le programme !

    • Est-ce que nous sommes assez dynamique ? Si l’atelier se passe dans une salle de classe ou un pièce semblable, il faut éviter de rester près du tableau ou de la projection du diaporama si vous en avez un. Dans un évènement comme celui-ci, vous voudrez probablement vous détacher de l’enseignement magistral. Ce n’est pas toujours simple surtout si vous avez suivi des études avec des enseignements magistraux, mais ça vaut le coup de tenter !

    • Est-ce que chaque participant comprend ? Un participant ne comprenant pas une partie de l’atelier ne va pas forcément se manifester, c’est donc à vous de repérer les participants en difficulté ! Vous pouvez par exemple passer dans les rangs pour questionner un a un les participants et les aider.

    • Si vous vous apercevez que tous les participants bloquent sur un concept ou une partie de l’atelier, il peut être judicieux de faire une explication générale pour le groupe. Si vous vous apercevez que l’atelier est trop compliqué, n’hésitez pas à l’adapter au mieux en cours de route !

  • Si votre atelier dure plusieurs heures, par exemple de 14h à 18h, n’hésitez pas à prévoir une pause au milieu ! Cela permettra aux participants de laisser reposer leur cerveau et leurs yeux ainsi qu’à tout le monde de discuter d’une manière informelle. Vous pouvez aussi en profiter pour leur offrir un goûter.

  • L’événement approche de sa fin, c’est le moment de conclure ! N’hésitez pas à valoriser le travail de chacun des participants pendant cet atelier. Vous pouvez profiter de ce temps pour distribuer un questionnaire et avoir un retour des participants sur le déroulement et le contenu de la journée. Si vous avez des autocollants ou des dépliants, n’hésitez pas à les mettre à disposition sur une table pour que les participants en prennent en partant. Par ailleurs, si vous avez des participants mineurs, gardez en tête qui a le droit de sortir non accompagné et qui doit attendre ses parents !

Ranger les lieux

  • Après avoir préparé les lieux puis animé l’atelier, c’est l’heure du rangement ! Rien de bien nouveau certes, mais c’est quand même à mettre dans l’emploi du temps de la journée. Aussi, n’oubliez pas d’enlever les affiches utilisées pour baliser le trajet si vous en avez utilisé !

  • Enfin, vous pouvez prendre le temps entre animateurs de discuter du déroulement de la journée, ce qui s’est bien ou moins bien passé. Nous vous conseillons de noter brièvement ce dont vous discutez pour ne rien oublier !

Après l’événement

  • Après la petite discussion entre animateurs le soir de l’événement, vous pouvez aller plus loin en témoignant de votre expérience et de vos idées sur un papier, dans une vidéo ou encore dans un article comme celui-ci. Vous aurez ainsi une trace écrite bien rédigée et c’est l’occasion de créer de bonnes discussions sur le sujet !

  • Ce n’est pas grand chose et ça fait toujours plaisir, n’hésitez pas à envoyer un courriel de remerciements aux participants ! Si vous ne l’avez pas fait le jour de l’événement, c’est la dernière occasion de leur donner un petit questionnaire pour connaître leur avis sur l’atelier !

  • Enfin, vous pouvez orienter les participants pour qu’ils puissent continuer leur apprentissage chez eux ! N’hésitez pas à leur concocter un petit guide pour qu’ils puissent refaire l’atelier chez eux sur leur ordinateur. En complément, vous pouvez leur donner les liens de plusieurs tutoriels pour débutants sur le même thème que l’atelier.


Vous avez pu le constater, beaucoup de pistes d’amélioration sont proposées après ce premier atelier et nous ne comptons pas nous en arrêter là. N’hésitez pas à en débattre ou en proposer de nouvelles dans les commentaires, car ces événements sont avant tout communautaires et nous sommes à l’écoute des conseils !

Suite au succès de ce premier atelier, nous réfléchissons déjà à l’organisation de prochains ateliers en région parisienne. Vous souhaitez rejoindre notre équipe de valeureux organisateurs ? Organiser un événement près de chez vous ? Manifestez vous sur le sujet dédié !

Nous remercions la communauté pour son soutien durant l’organisation de cet événement ! Un grand merci aussi à @informaticienzero pour la validation de cet article. :)

16 commentaires

Pour cet événement, les frais ont été (sauf oubli de ma part) :

  • l’assurance (car c’était le premier événement, mais elle dure plus d’un an donc ce ne sera pas nécessaire pour les prochains événements) ;
  • la communication autour de l’événement (l’impression des affiches) ;
  • le goûter (au milieu de l’après-midi car il s’agissait d’un "coding gouter").

Mais il y aurait pu avoir d’autres frais, comme par exemple la location de la salle (pour ce premier atelier, elle nous a été prêtée gracieusement par l’Université Paris-Sud). Après, nos frais n’ont clairement pas atteint 500€ ; c’est une somme qui permet de faire plusieurs ateliers ! :)

+2 -0

Je n’ai plus les comptes exacts, mais on a :

  • environ 150 € pour l’assurance ;
  • un peu moins d’une centaine d’euros pour les frais de communication (impressions d’affiches) ;
  • quelques dizaines d’euros pour le goûter vu qu’il y en avait un ;
  • et le reste, un peu plus de 200 €, n’a pas été utilisé (on le garde, bien sûr, pour les prochaines sessions).

Sachant que l’assurance couvre l’association jusqu’en décembre 2019 (il me semble pour tout événement tant que c’est sous le nom de l’asso), donc ces frais là ne sont pas à répéter jusqu’alors.

On a pas eu de frais de location cette fois, salle offerte par l’Université Paris Sud, mais dans un cas général, ça aurait pû être le cas.

Et @Situphen m’a doublé mais je poste au cas où vu que nos détails respectifs se complètent. Na.

+2 -0

Temps de lecture estimé 48 minutes ???

uruburu

C’est une estimation automatique à partir du nombre de mots ou de caractères, c’est souvent largement surestimé mais personne n’a pris le temps de modifier ça dans le code source du site pour l’instant.

+1 -0

Je dépilais ma boite mail perso, lorsque je vois arriver ça

Nous avons une bonne nouvelle : l’appel à projets Meet and Code est de retour !

Vous pouvez ainsi obtenir un financement de 500€ pour organiser des événements dédiés à la découverte des technologies numériques, et notamment le code informatique, pour des enfants et des jeunes de 8 à 24 ans.

Vous vous sentez concernés ? N’hésitez pas à proposer vos événements !

Comment postuler ?

Proposer vos événements en ligne sur www.meet-and-code.org jusqu’au 8 septembre 2019. Chaque événement approuvé recevra un soutien pouvant aller jusqu’à 500 euros. Nous vous encourageons également à établir des partenariats avec le monde scolaire (élèves et parents, enseignants) ou avec des acteurs de l’éducation populaire pour attirer un maximum de jeunes. Si votre association est au service de la jeunesse mais n’a pas d’activité dans le champs du code et des technologies, appuyez-vous sur un enseignant ou un animateur externe pour organiser par exemple un atelier sur le code informatique.

Meet and Code aura lieu pendant la semaine européenne du code du 5 au 20 octobre 2019 et veut ainsi rendre la culture numérique accessible à tous. La semaine européenne du code est un événement qui se déploie sur les territoires avec l’objectif de rendre la programmation plus visible et accessible, pour préparer l’avenir.

Vous pourrez soumettre votre événément dans les quatre catégories suivantes :

  • "Girls do IT" (les filles dans la tech),
  • "Diversity" (Diversité)
  • "Code for the planet" (le code pour la planète)
  • "Code for your community" (le code pour sa communauté)

De plus, le public pourra voter pour son événement préféré, qui se verra décerner le Prix du public.

Saisissez votre chance, soumettez votre idée et obtenez une subvention. Donnez du pouvoir aux jeunes générations !

Pour toutes questions, n’hésitez pas à nous contacter à l’adresse france@meet-and-code.org ou au XX XX XX XX XX (NDLR : je ne sais pas si ça se fait de publier leur numéro comme ça ici, dans le doute je masque).

Alors, on reprends à peu près les mêmes et on recommence ?

Quest-ce que c’est le code pour sa communauté ?

je pense pas que ce soit une bonne idée de demander un jeune de se centrer sur sa communauté, car au lieu d’élargir son horizon on le recentre sur sa communauté, c’est une façon de lui rappeler qu’il est étranger, alors que quand on est enfant on ne pense pas de nous mêmes à ce genre de choses, au contraire on se sent faire partie du monde, et être un enfant comme les autres. Je venais de postuler dans l’ancien topic sans voir que la date était passée et j’avais proposé un projet. je me rend compte dans ce dernier topic qu’il répondait aux problèmes que vous avez rencontrés. J’ai effacé ma proposition sur l’ancien topic car le topic est ancien.

Pour ce qui est de faire programmer les enfants de cet âge en français je ne suis pas d’accord, l’anglais est ce qu’il y a autour d’eux, dans les jeux, l’informatique, les nouvelles technos, et plein de trucs, il est préférable de les habituer à l’anglais sur un projet amusant, surtout qu’il n’y a pas beaucoup de mots pour un petit programme de jeu, par contre l’atelier doit être en français bien sur, mais pas les instructions du langage. D’un autre coté ça donne le goût de l’anglais à ceux qui ont du mal à suivre leur cours d’anglais et les motivera à suivre en cours. Quand à la pratique, c’est simple il faut faire comprendre avec un langage français simple la notion de variable, de condition, de boucle, etc… mais chaque élement doit être vu au fur et à mesure en pratique avec le langage python. On a beau dire oui encore python, mais c’est le langage d’avenir par sa modularité, sa puissance il s’adapte à tout, et ces enfants pourront l’utiliser dans l’avenir pour travailler avec. L’informatique on peut l’expliquer facilement, ce n’est pas difficile. Autre chose, proposer deux langages c’est pas terrible, prenez l’exemple du premier Evénement, l’enfant a dû se sentir bizarre et un peu différent des autres, et peut-être même qu’il ne s’est pas amusé autant que les autres ? Je pense pour plusieurs raison qu’il est mieux de proposer un seul langage et c’est plus facile pour l’organisation.

+0 -0

Salut Abou,

Merci pour tes remarques et voici mes réponses. Je laisse les autres membres de l’équipe compléter si besoin.

je pense pas que ce soit une bonne idée de demander un jeune de se centrer sur sa communauté, car au lieu d’élargir son horizon on le recentre sur sa communauté, c’est une façon de lui rappeler qu’il est étranger, alors que quand on est enfant on ne pense pas de nous mêmes à ce genre de choses, au contraire on se sent faire partie du monde, et être un enfant comme les autres. Je venais de postuler dans l’ancien topic sans voir que la date était passée et j’avais proposé un projet. je me rend compte dans ce dernier topic qu’il répondait aux problèmes que vous avez rencontrés. J’ai effacé ma proposition sur l’ancien topic car le topic est ancien.

Je t’avoue ne pas comprendre cette partie de ton message. De quoi parles-tu quand tu écris "demander un jeune de se centrer sur sa communauté" ? Quel est "l’ancien topic" dont tu parles ?

Pour ce qui est de faire programmer les enfants de cet âge en français je ne suis pas d’accord, l’anglais est ce qu’il y a autour d’eux, dans les jeux, l’informatique, les nouvelles technos, et plein de trucs, il est préférable de les habituer à l’anglais sur un projet amusant, surtout qu’il n’y a pas beaucoup de mots pour un petit programme de jeu, par contre l’atelier doit être en français bien sur, mais pas les instructions du langage. D’un autre coté ça donne le goût de l’anglais à ceux qui ont du mal à suivre leur cours d’anglais et les motivera à suivre en cours. Quand à la pratique, c’est simple il faut faire comprendre avec un langage français simple la notion de variable, de condition, de boucle, etc… mais chaque élement doit être vu au fur et à mesure en pratique avec le langage python. On a beau dire oui encore python, mais c’est le langage d’avenir par sa modularité, sa puissance il s’adapte à tout, et ces enfants pourront l’utiliser dans l’avenir pour travailler avec. L’informatique on peut l’expliquer facilement, ce n’est pas difficile.

Je ne suis pas de ton avis. Certes, l’anglais est de plus en présent dans la vie de tous les jours mais ce n’est pas pour autant que les adolescents sont à l’aise avec cette langue. Notre atelier est une initiation à la programmation et cible donc des débutants complets. Si on leur demande de coder en anglais, on rajoute une difficulté ce qui est contre-productif. Quand tu dis "ça donne le goût de l’anglais à ceux qui ont du mal à suivre leur cours d’anglais", je pense que ça peut être le cas pour des personnes qui savent déjà programmer et qui sont à l’aise avec, mais pas pour des néophytes ! Quand à la phrase "L’informatique on peut l’expliquer facilement, ce n’est pas difficile.", je pense au contraire que c’est loin d’être aisé.

Autre chose, proposer deux langages c’est pas terrible, prenez l’exemple du premier Evénement, l’enfant a dû se sentir bizarre et un peu différent des autres, et peut-être même qu’il ne s’est pas amusé autant que les autres ? Je pense pour plusieurs raison qu’il est mieux de proposer un seul langage et c’est plus facile pour l’organisation.

Personnellement, j’ai eu l’impression qu’il s’est bien amusé et il n’avait pas l’air de se sentir bizarre par rapport aux autres. Il connaissait déjà un peu Scratch et je pense qu’il a voulu continuer avec ce logiciel. On a décidé de ne pas renouveler l’expérience avec Scratch pour plusieurs raisons mais différentes de la tienne. Je trouve qu’il est difficile pour les adolescents de choisir entre deux Python et Scratch s’ils ne connaissent aucun des deux. Aussi, ça double la charge de travail de notre côté et comme on ne code pas en Scratch dans notre vie de tous les jours ça demande de passer du temps sur cet outil pour se l’approprier soit même.

+2 -0

En effet tu as eu raison d’abandonner scratch. L’ancien topic dont je parlais, est la première proposition de cet atelier sur le forum, mais je ne sais pas le retrouver. Et pour "se centrer sur sa communauté" je parlais de cela :

Code for your community" (le code pour sa communauté)

Et l’explication facile de l’informatique, c’est clair :===================================================

Une boucle : c’est un concept simple qu’ils peuvent comprendre aisément, qu’elle soit while ou For.======================

Une variable : idem

Suffit d’expliquer avec des mots phrases qui parlent, simples.

PS: L’aperçu de message en cours ne fonctionne pas chez moi, est-ce de même pour vous ? Et la saisie ne prend pas en compte les passages à la ligne :/ ==================================

==================================================================

Un programme (pour cet atelier) c’est juste : ======================================================

Constante, variable, condition, boucles, et tableau, pour des débutants cela suffit dans le cadre d’une mise en pratique par un petit jeu, et s’ils veulent aller plus loin il apprendront le reste.

+0 -0

Pour information, #MeetAndCode #2021 revient cette année, et si on veut y participer, il faut postuler avant le 08 septembre.

Comme d’habitude, ils financent l’événement à hauteur de 500€.

Je ne sais pas à quel point nos précédents ateliers sont ré-utilisable par contre.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte