Étiquette : programmation

  • Robots et apprentissage à tout âge avec Inirobot et Poppy Éducation

    Robots et apprentissage à tout âge avec Inirobot et Poppy Éducation

    [callout]Didier Roy est titulaire d’un master 2 Recherche en didactique des mathématiques et des sciences et termine un doctorat en informatique en septembre 2015. Après avoir été professeur de mathématiques dans le secondaire pendant trente ans, il est aujourd’hui chercheur dans l’équipe Flowers d’Inria Bordeaux Sud-Ouest. C’est une équipe de recherche en robotique développementale, qui étudie les mécanismes du développement chez les humains et chez les robots.[/callout]

    Les travaux de Didier Roy portent sur l’optimisation et la personnalisation des apprentissages à l’aide des technologies numériques. Il est en particulier membre du projet de recherche Kidlearn, qui expérimente de nouveaux algorithmes pour les parcours d’apprentissage. Il intervient également dans l’enseignement et la diffusion des sciences du numérique, notamment de la robotique et de la programmation.

    A la découverte d’IniRobot

    Il est, avec Pierre-Yves Oudeyer (directeur de l’équipe Flowers), à l’origine du projet IniRobot d’initiation des enfants de maternelle et du primaire ( à partir de 4 ans et jusqu’au début du collège) à la robotique avec un robot Thymio II, sur le temps scolaire et sur le temps d’accueil périscolaire.

    « Ce sont en en fait une série d’activités clés en main pour les enseignants ou les animateurs qui veulent aborder la robotique avec les enfants. »
    Une communauté s’est créée autour d’IniRobot qui est distribuée dans 35 villes en France et pas moins de 4000 enfants.

    Tout est basé sur une démarche scientifique ; les enfants sont répartis par groupe de 2 ou 3 de manière à ce qu’ils réalisent des missions avec le robot.

    Pour exemple, la première mission est de confier le robot à un groupe d’enfants et, sans l’allumer, leur demander à quoi il peut servir.

    Après plusieurs enchaînements, la mission ultime de programmer le robot pour qu’il puisse parcourir des zones avec obstacles, arrive.

    Il est également un des porteurs du nouveau projet Poppy Éducation qui utilise la plateforme robotique open source et imprimé en 3D Poppy pour l’enseignement des sciences du numérique dans le secondaire (du milieu du collège) et dans le supérieur.

    Poppy Éducation, c’est quoi ?

    Inria_poppy_170915« C’est un dispositif bio-inspiré » (un robot avec une colonne vertébrale etc).

    Les langages de programmation sont Python et ScratchSnap.

    Pour ce dispositif, la région Aquitaine et les fonds européens FEDER financent pour la construction d’activités pédagogiques à destination des lycées et des collèges.

    L’intérêt est de pouvoir utiliser les briques matérielles et logicielles pour faire un objet qui correspond à un besoin particulier.

    « La robotique propose un micro-monde d’apprentissage tangible et motivant. Liant le monde numérique et le monde physique, en plus d’être une initiation à une technologie d’aujourd’hui, c’est aussi un champ privilégié d’application de l’algorithmique et de la programmation. ».

    Ce projet va s’échelonner sur deux ans en collaboration étroite avec l’éducation nationale.

    Plus d’infos :
    Le site général : dessinemoiunrobot.fr

    www.inirobot.fr
    poppy-project.org

     

     

  • Nouveauté de la rentrée 2015 à SciencesCom Audencia Group : une initiation au code

    Avec le développement du numérique, les métiers et les compétences requises pour exercer ces métiers évoluent fortement.

    Par exemple, au cœur de la conception des sites et applications web, le code informatique s’impose désormais comme un nouveau langage que les professionnels de la communication et des médias doivent s’approprier pour comprendre, échanger et développer des projets avec leurs interlocuteurs (développeurs informatiques notamment).

    Enrichir l’enseignement grâce à la complémentarité des savoir-faire permet de stimuler la création et l’innovation au sein des programmes. SciencesCom – Audencia Group et l’École Centrale de Nantes, au sein de l’Alliance, s’inscrivent dans cette dynamique avec la mise en place de ce partenariat pédagogique.

    Proposée sous la forme d’ateliers hebdomadaires d’un total de 24 heures, et enseignée par 4 professeurs de l’École Centrale de Nantes, cette option permettra aux étudiants volontaires des programmes Cycle Bachelor et Cycle master de s’initier aux langages et logiques de développement web et à la programmation.

    A l’issue des cours, les élèves auront abordé les technologies web et le développement d’applications web en s’appuyant sur le langage HTML, CSS (Cascading Style Sheets) et Javascript.

    Un beau challenge pour les futurs communicants et une 1ère dans une école de communication et médias.

    À propos de SciencesCom

    Depuis sa création en 1984, SciencesCom, l’école de la communication et des médias, s’attache à faire la synthèse entre exigence académique et mise en situation des étudiants grâce à de nombreuses applications professionnelles. L’école est un des rares centres de formation à la communication et aux médias accueillant à la fois des étudiants en formation initiale et des professionnels en activité. Les 300 étudiants qui suivent un cursus de Bac+3 à Bac+5 peuvent se spécialiser en communication des entreprises et des institutions, communication de marque, médias, stratégie digitale. SciencesCom partage, avec les deux autres écoles d’Audencia Group, un ensemble de valeurs qui constituent le socle de ses formations : l’ouverture internationale, la culture, l’humanisme, l’innovation, la responsabilité sociétale et le développement durable.

    Suivez-nous sur les réseaux sociaux : Twitter @sciencescom et Facebook SciencesCom

    À propos de l’Ecole Centrale de Nantes

    L’Ecole Centrale de Nantes est membre du groupe des écoles centrales (Lille, Lyon, Marseille, Nantes et Paris) et forme des ingénieurs centraliens pour l’entreprise. Créée en 1919, l’Ecole Centrale de Nantes compte sur son campus de 16 ha 2050 étudiants dont 1340 élèves-ingénieurs, 200 élèves ingénieurs en formation continue et par apprentissage (itii), 240 doctorants et 270 masters. Centrale Nantes forme des ingénieurs, des diplômés de masters et des docteurs aux développements scientifiques et technologiques les plus actuels.

  • Appropriation de compétences en codage et en programmation et pédagogie pour un usage actif et citoyen du numérique

    Appropriation de compétences en codage et en programmation et pédagogie pour un usage actif et citoyen du numérique

    [info]Rappel de la problématique :
    À l’ère de la multiplication des services, ressources numériques et langages pour les produire, comment L’École peut-elle transmettre aux citoyens de demain, les éléments nécessaires pour appréhender et comprendre ce nouvel environnement ?
    C’est tout l’enjeu de l’Éducation aux médias et à l’information (EMI): former des « cybercitoyens » responsables, et capables de faire preuve de discernement à l’égard des usages numériques. Au centre de cette ambition, un enjeu pédagogique crucial : rendre les élèves capables de faire preuve du recul et de la responsabilité nécessaires à la mise en pratique intelligente des compétences informatiques et informationnelles qu’ils seront amenés à mobiliser dans leur vie future. Pour répondre à ce défi, les professionnels de l’éducation déploient inventivité et créativité afin de « détourner » ces outils de leur seule dimension technique et d’inscrire leurs usages dans la formation d’un esprit critique.
    Les expérimentations mises en place à ce jour sont-elles concluantes ? Ces initiatives de « détournement » permettent-elles l’acquisition d’une culture numérique citoyenne ?[/info]

    Florence Quinche HEP Vaud, Elsa Vallélian, professeur documentaliste et Expert Direction du numérique pour l’éducation, ministère de l’éducation nationale, de l’enseignement supérieur et de la recherche, Bruno Vergnes enseignant en lettres correspondant CLEMI64 et Salim Zein enseignant AC Montpellier projet Arcadémie ont échangé autour de ces questions. Armande le Pellec-Muller, Recteur de l’académie de Montpellier a introduit le débat par une allocution ; un débat animé par Etienne Durup, Direction du numérique pour l’éducation ministère de l’éducation nationale de l’enseignement supérieur et de la recherche

    Synthèse par Jean-Marie Gilliot

    Ludovia_TREducationauxmedias2

    Les compétences numériques intègrent à la fois la compréhension, la maitrise active de comment sont construits les outils, de leurs usages et des modes de communication portés par ces usages.

    Le questionnement de cette table ronde interroge dans quelle mesure l’intégration de ces différentes dimensions permet-elle de former les citoyens de notre société du numérique.

    Dans son introduction, Mme le recteur de Montpellier, Armande Le Pellec-Muller, a mis l’accent sur l’urgence de cette éducation à cette société du numérique. Cette question change le rapport au savoir et de l’apprentissage. C’est une occasion de repenser la pédagogie pour développer des citoyens responsables, acteurs. Apprendre à apprendre devient indispensable, et Mme le recteur ressent bien que cela se fait dans une démarche projet pour les élèves.

    Il est indispensable de former les jeunes, qui, s’ils ont un usage du numérique, développent un rapport au savoir très variable suivant leurs cadres sociaux. Cette formation doit donc être explicite pour comprendre, maîtriser et apprendre à utiliser le numérique, jusqu’à l’adapter dans de nouveaux cadres de travail.

    Elle pose la question de quelle pédagogie est nécessaire pour former une jeunesse active, productrice de contenu, et rappelle que les textes officiels (plan numérique, réforme du collège) intègrent ces enjeux, que la construction et la dimension de la Direction du Numérique de l’Education interministérielle montrent bien l’importance de ces enjeux. Ils se déclinent également dans le projet académique pour piloter l’implication des acteurs locaux.

    Les dimensions des langages intégrant l’algorithmique et la programmation, pour penser les outils numériques d’une part et les outils pour apprendre et communiquer (outils de recherche, de production, d’échange et de collaboration) d’autre part, y sont présentes.

    Elles s’appuient sur des compétences incidentes maîtrisées par les enseignants comme être critique par rapport aux informations, trier, hiérarchiser, et créer de l’information, mais aussi de l’identité et la sécurité numérique, la question des différentes sphères de communication, les règles sociales dans un usage pertinent de ces outils. Cela implique également de maitriser la prise de parole et de l’écrit.

    Les compétences à développer sont des compétences actives, d’apprendre à apprendre comme la construction d’avis à plusieurs, le traitement, la hiérarchisation, le réagencement des connaissances pour un usage du savoir dans la complexité, ce qui est très loin de la simple restitution. Le système éducatif doit donner ces clés pour que les formés puissent devenir des citoyens créatifs, éclairés, inventifs.

    Le numérique représente une chance pour les enseignants, du fait de la richesse de l’accès et de l’organisation aux savoirs. Cela doit évidemment s’appuyer sur une formation, au travers de séminaires pluridisciplinaires et professionnels.

    La table ronde s’est ensuite construite autour de 3 points :

    • Préciser le mot code qui est polysémique et s’entend ici comme représentation symbolique dans une acception sémiologique. On est donc au-delà de la programmation ;
    • En quoi l’appropriation et/ou le détournement de ces codes peut servir l’esprit critique et l’éducation aux médias ;
    • Et finalement est ce que codage et programmation sont suffisants pour la maitrise des compétences numériques.

    Sur la notion de code, Florence Quinche de l’HEP du canton de Vaud nous propose un exemple. Chez des tous petits, en utilisant des petits robots qui se programment par une séquence de déplacements, les élèves apprennent à utiliser et des signes en imaginant un parcours et en l’expliquant par leur propre choix de signes ce parcours à un autre groupe qui doit ensuite programmer le robot. La communication est ici multi-signes et intègre une activité cognitive supplémentaire en créant un nouveau langage de leur choix.

     Sur le sujet de l’appropriation des codes deux exemples sont présentés :

    • Le projet Arcademie par Salim Zein, professeur de lettres à Montpellier transpose la construction de jeux vidéo pour développer une pédagogie collaborative, et permet aux différentes disciplines de s’intégrer dans la conception de jeu vidéo : scénario pour le professeur de français, l’histoire-géographie pour le contexte, la traduction en plusieurs langues, des graphiques en arts plastiques, et de la musique.Un tel projet de jeu vidéo a ainsi été conduit entre 10 écoles à Montpellier, ville qui héberge de nombreuses entreprises de jeux vidéo. A l’arrivée, le jeu fonctionne et a été construit dans une approche collaborative qui mutualise les actions de nombreux enseignants.
    • Florence Quinche présente un projet dans le cadre d’un enseignement qui couple français, théâtre et programmation de robots en proposant un projet de création d’une pièce avec des robots. En transposant une histoire, en réalisant la mise en scène intégrant des objets qui bougent (en tant qu’acteurs ou de décor), les étudiants développent de multiples compétences y compris de programmation. Ce travail se prolonge par la création d’un film qui étend la variété de manipulation de signes (musique, reconstruction de plans…).

    Sur la question de la maitrise des codes et de la programmation, Elsa Vallélian, professeur documentaliste et Expert Direction du numérique pour l’éducation, nous propose un retour d’expérience avec une classe de 6ème réalisé dans le cadre d’un Projet d’Education aux Médias, dans lequel au travers de la production d’un blog scolaire les élèves sont amenés à se poser des questions de cadre légal, de droit à l’image (peut-on publier telle photo d’autres élèves), d’identité numérique (peut-on publier avec un pseudo), d’écriture à plusieurs (peut-on effacer un texte d’un autre).

    Bruno Vergnes, enseignant en lettres correspondant CLEMI64, en rappelant les enjeux de la maitrise des compétences numériques, pose la question de qui doit former les enseignants en indiquant qu’il n’est pas question de créer une discipline dédiée.

    La parole est ensuite donnée à la salle, qui pose plusieurs questions :

    • « dans tous les produits numériques, il y a un côté narratif, le storytelling, qu’en est-il dans la formation ? »

    Bruno Vergnes répond que, effectivement, même dans une image, il y a une dimension narrative, un but à décoder. La narration s’aborde au travers d’exemples qu’on décrypte, mais aussi par une démarche de production de média comme une publicité, une image.
    Salim Zein complète en insistant sur la construction d’une histoire dans les jeux vidéo. Dans Arcadémie tout a été fait maison, et ensemble. Florence Quinche ajoute que dans les jeux vidéo, la notion de choix permet d’ouvrir à l’hypertexte ;

    • « Dans tout ça on oublie la culture qu’ont les enfants et dans leur entourage (grands frères…), ils ne sont pas vierges de toute connaissance et c’est sans doute cela qui est le plus difficile ».

    Elsa Vallelian répond qu’ils ont une dextérité qui inquiète les enseignants, mais qu’ils ont un recul limité, et que c’est bien là-dessus que l’accent est mis ;

    • Mme le recteur pose une question plus globale. « L’activité est favorisée dans la démarche projet, et permet d’appréhender la complexité et de mobiliser ceux qui savent. Mais qu’est-ce qu’on attend comme apprentissage dans la complexité et quelle culture commune construit-on au travers de cette coopération d’experts ? »

    Salim Zein se voit comme faiseur et serait intéressé par un retour de l’Education Nationale sur ces questions.
    Florence Quinche pour sa part, aborde la réutilisation et l’entraide à distance rendues possibles au travers des communautés qui se créent, comme par exemple autour du langage Scratch, qui permet d’apprendre à travailler avec la communauté.
    Bruno Vergnes renchérit que ce sont des compétences sociale et éthiques qui sont mise en valeur, Vivre et travailler ensemble.

    • Une remarque de la salle : « il y a actuellement une appétence que l’on voit notamment au travers des coding goûters, il faut en profiter. »

    En conclusion, Etienne Durup souligne que cet enjeu concerne tous les niveaux de la maternelle à l’université et qu’il encourage bien le travail en interdisciplinarité.

    Illustration : CIRE, tous les desssins de CIRE de l’université d’été de #Ludovia12

  • Cahier d’activités Scratch

    Cahier d’activités Scratch

    Eyrolles_cahierdactivitesScratch_160615Avec ce cahier d’activités, l’enfant apprend les bases de la programmation informatique à l’aide de Scratch, logiciel libre et gratuit, tout en visitant le parc américain de Yellowstone et ses environs.

    Au fil des pages, il suit Tom et Lila sur les traces des animaux sauvages, observe les geysers du parc, participe à la course du grand pow-wow annuel des Indiens Crows et découvre les terribles épreuves des pionniers en route vers l’Ouest. Découpé en cinq étapes de difficulté croissante, ce livre ludique et coloré détaille pas à pas la réalisation des programmes et des animations, en s’appuyant sur les ressources numériques disponibles sur Internet.

    À destination des enfants à partir de 8 ans, de leurs parents et des enseignants.

    A propos de l’auteur : Enseignant chercheur en physique à l’université Paris-Sud à Orsay, Frédéric Pain s’intéresse depuis plusieurs années à l’apprentissage de la programmation informatique pour les plus jeunes. Dans ce cadre, il anime des ateliers autour de Scratch et d’Arduino dans des classes de primaire et de collège.

  • KidsCODEjeunesse ou le codage pour les 7 à 12 ans

    KidsCODEjeunesse ou le codage pour les 7 à 12 ans

     

    Pourquoi kidsCODEjeunesse ?

     

    Dans plusieurs pays les enfants commencent l’apprentissage de la programmation dès l’âge de six ans. Ici au Canada où il y a 13 ministères de l’Éducation, un par province et territoire, la programmation n’est à peu près pas enseignée dans les écoles.

    KidsCODEjeunesse a été créé pour initier à la programmation les écoliers d’un bout à l’autre du pays et ont actuellement des animateurs bénévoles et des enseignants-contacts au Yukon, en Colombie Britannique, en Saskatchewan, en Ontario, au Nouveau Brunswick et à Terre Neuve. Éventuellement kidsCODEjeunesse désire que leur influence mène à l’introduction de l’apprentissage de la programmation aux programmes d’étude.

    Pourquoi enseigner la programmation aux écoliers des écoles primaires ?

     

    La programmation est un langage.

    Apprendre à programmer, c’est apprendre une nouvelle langue. Plus on apprend jeune, plus c’est facile !

    Les enfants de 6 ans apprennent facilement à coder à l’école et ils adorent cela.   KidsCODEjeunesse propose l’analogie suivante : nous enseignons présentement aux enfants à « lire » la technologie, c’est-à-dire à l’utiliser mais pas comment « l’écrire ».

    Si nos enfants n’apprennent pas l’ABC du codage et de la pensée informatique à un jeune âge, ils ne possèderont pas les éléments de base nécessaires aux employés de demain et la possibilité de devenir les architectes de leur avenir.

    Apprendre à coder à l’école permet aux enfants de s’initier à la méthode scientifique, développer les compétences logiques fondamentales, la résolution de problèmes, les mathématiques et l’électronique d’une façon pratique. Cela offre aussi aux étudiants marginalisés ou à faible revenu (qui sont généralement moins exposés à la science, les mathématiques, la technologie et les systèmes informatiques) la chance de développer de nouveaux intérêts et de nouvelles compétences, rapporte Vigilant Global dans son texte d’appui à KidsCODE jeunesse.

    De plus, certaines études démontrent qu’il importe d’initier les fillettes à la programmation informatique avant le secondaire pour réussir à intéresser un plus grand nombre d’entre elles à ce domaine.

    KidsCODEJeunesse désire aussi traduire son matériel éducatif dans plusieurs langues autochtones afin d’offrir une formation en programmation à ces clientèles.

    Les programmes de formation de kidsCODEjeunesse

     

    Dès l’automne 2013, des étudiants universitaires en informatique et en enseignement ont travaillé conjointement avec des représentants des commissions scolaires pour l’élaboration des plans de cours et ont commencé à enseigner la programmation informatique dans les écoles primaires.

    C’est le département d’informatique de l’Université McGill qui leur a offert un premier appui. Présentement des étudiants en informatique et en technologie éducative des quatre universités montréalaises (Université de Montréal, Uquam, Concordia et McGill) ainsi que des employés de compagnies, CAE ou Morgan Stanley par exemple, travaillent bénévolement pour kidsCODEjeunesse.

    Scratch est un langage de programmation développé au MIT Media Lab, pour la formation des programmeurs en herbe. Scratch est utilisé dès la troisième année du primaire (CE2). C’est en cinquième année (CM2) qu’on apprend aux élèves comment fonctionne la toile et à produire leur propre page web en HTML.  Les élèves de sixième année et du secondaire(Collège) sont initiés aux bases de la programmation en langage Python (voir l’article à ce sujet), un langage très répandu à travers le monde.

    L’approche pédagogique pour l’initiation à la programmation chez les très jeunes avec le logiciel Scratch

     

    J’ai assisté à la troisième session offerte à une quinzaine d’élèves de l’école primaire Hampstead de la Commission scolaire English-Montreal ainsi qu’à la demi-journée présentée à l’Apple Store de Pointe-Claire.

    L’école Hampstead n’a pas d’ordinateur pour ses élèves. Ces derniers se partagent donc, par équipes de deux ou trois, les ordinateurs portables prêtés à chaque semaine par l’administration de la Commission scolaire. Dans cette classe, une élève trisomique accompagnée d’une éducatrice s’initiait avec un grand plaisir au codage. À cette troisième leçon les élèves devaient raconter, Something about me : programmer une petite séquence qui raconte une très courte histoire à leur sujet.

    1- Choisir un fond de scène ;

    2- Choisir un ou plusieurs personnage(s) ;

    3- Faire agir le(s) personnage(s) ;

    4 – Faire parler le(s) personnage(s).

    Chaque élève dispose d’une clé USB sur laquelle on leur apprend à sauvegarder leurs projets à la fin de la leçon.

    Le Apple Store de Pointe Claire a mis des portables MacBook Air à la disposition de la dizaine de jeunes participants à cette première expérience.

    Qu’il s’agisse du cours de formation de base de huit heures ou d’une introduction de quelques heures, la structure du cours est similaire :

    • au départ le jeune participant est interrogé sur ce qu’il connaît au sujet de l’ordinateur, d’internet et de la programmation ;
    • puis on lui explique avec plus ou moins de détails ce qu’est un ordinateur, internet et ce que signifie coder et programmer ;
    • on lui présente le logiciel Scratch et quelques unes de ses fonctions ;
    • on l’invite à explorer le logiciel, à jouer avec, sur l’ordinateur mis à sa disposition ;
    • on fait une démonstration du processus de création d’un petit programme à l’aide de Scratch : choisir une scène, choisir un ou plusieurs personnages, réaliser un script, faire bouger le personnage, modifier son apparence, ajouter du son, faire parler le personnage, . . .
    • les jeunes participants doivent à leur tour programmer une petite histoire où ils présentent qui ils sont, quelles sont leurs activités favorites, etc. «A story about you» en utilisant les fonctions de Scratch qu’ils connaissent jusqu’à maintenant ;
    • le tout se termine par le partage de leurs créations avec leurs amis.

    La formation de huit heures permet d’aller plus loin et certains concepts comme ceux de conditions, de parallélisme, de de-bugging et une certaine terminologie informatique de base sont présentés.

    On demande aux jeunes élèves de mettre leurs mains sur leur tête pour s’assurer qu’ils sont attentifs et les empêcher de tapoter sur l’ordinateur lorsqu’on leur donne des instructions.

    Les services offerts par kidsCODEjeunesse

     

    KidsCODEjeunesse fournit gratuitement ses services.
    Deux programmes de huit cours d’une durée d’une heure chacun sont offerts à des groupes allant jusqu’à 30 enfants :

    • introduction à Scratch et à l’informatique pour les écoliers de 7 à 9 ans ;
    • introduction au HTML et à l’informatique pour les écoliers de 10 à 12 ans.

    Cette formation peut se dérouler pendant les heures de classe, à l’heure du lunch ou après les heures de cours en activité péri-scolaire. KidsCODEjeunesse offre ses services aux clubs de loisir ou aux bibliothèque disposant d’ordinateurs. Le seule exigence est qu’un membre du personnel de l’école ou du club de loisir participe aux activités de formation et soit présent tout au long de la formation.

    Pour une première fois, un avant-midi d’initiation à Scratch a été offert dans un Apple Store à une dizaine d’enfants, Première expérience à laquelle j’ai eu la chance d’assister et qui fut un grand succès tant auprès des parents présents, des enfants qui y ont participé et du personnel de l’Apple Store.

    Les besoins de kidsCODEjeunesse

     

    Afin d’offrir ses services gratuitement kidsCODEjeunesse doit bénéficier du support financier d’individus et d’entreprises ainsi que de la participation de nombreux bénévoles. KidsCODEjeunesse forme les bénévoles qui sont principalement des étudiants universitaires en sciences de l’éducation ou en informatique.

    Conclusions de la pédagogue

     

    J’aime . . . Scratch pour initier les jeunes enfants à la programmation. Ce programme est simple. Il offre un grand choix d’illustrations parmi lesquelles les enfants s’amusent à choisir pour illustrer et animer l’histoire que racontera leur projet. Scratch fait appel à la créativité de l’enfant et stimule son imagination. Avec Scratch, il s’amuse, il joue tout en étant initié aux concepts fondamentaux du codage.

    J’aime . . . que l’enseignant qui désire inculquer quelques notions de programmation à ses élèves peut apprendre par lui-même le fonctionnement de ce programme.

    J’aime . . . le service offert par kidsCODEjeunesse à l’enseignant que ce type d’activité effraie, avec laquelle il n’est pas à l’aise mais dont il désire tout de même offrir le bénéfice à ses élèves.

    J’aime . . . que l’apprentissage du codage apprenne plus aux enfants que la programmation informatique. C’est une formation où ils développent des compétences de collaboration en travaillant conjointement au succès d’un projet et augmentent leur capacité de concentration, une habileté essentielle à la réussite de tout projet de programmation.

    J’aime . . . que les enfants puissent créer les projets informatiques qu’ils imaginent suite à leurs expériences de consommation de produits informatiques. Ils apprennent qu’il leur est possible de passer de l’étape de consommateurs de produits informatiques à celui de créateurs.

    Bien sûr tous ne seront pas des Steve Jobs, mais certains en rêveront peut-être!

    Plus d’infos :
    Pour aller plus loin dans l’usage de Scratch voyez l’article d’Aurélie Julien, Usage de Scratch en mathématiques : quand programmation et calculs ne font plus qu’un.

     Pour en connaître davantage :
    http://www.kidscodejeunesse.org/fr/a-propos/

    https://scratch.mit.edu/

    Initiation à Scratch en français

    http://squeaki.recitmst.qc.ca/PageAccueil

    http://squeaki.recitmst.qc.ca/ScratchInitiation

    http://tablettes.recitmst.qc.ca/wp-content/uploads/2014/08/FormationScratchJr.pdf

     

     

  • Lancement de Tech Kids,  la première académie numérique pour les jeunes

    Lancement de Tech Kids, la première académie numérique pour les jeunes

    [callout]Le concept : apprendre l’informatique aux jeunes, en s’amusant et en développant leur créativité, à travers des ateliers créatifs numériques et ainsi leur permettre de révéler leurs talents autour du digital. Véritable alternative sur le marché des activités extra-scolaires, cette offre innovante et disruptive va révolutionner le monde des digital natives.[/callout]

    techkids_020615

    Aux manettes, Alexandra Bernard, une professionnelle du digital, avec plus de 20 ans d’expérience dans le conseil informatique et web marketing, qui a aujourd’hui à cœur de transmettre ses connaissances et sa passion aux plus jeunes et de contribuer à la transformation digitale de l’éducation numérique.

    Les enfants peuvent venir à l’académie, basée à Saint-Germain-en-Laye (dans les Yvelines),  le temps d’un après-midi, s’initier à la modélisation et l’impression 3D, créer et coder un jeu avec Scratch (développé par le MIT), construire et programmer des robots Lego WeDo ou encore découvrir la magie de l’électronique avec MakeyMakey ou Arduino.

    De nombreux stages sont également proposés lors des vacances scolaires, comme la programmation de robots Lego Mindstorms ou encore la programmation de jeux vidéo avec Unity 3D pour les ados.

    Dès la rentrée 2015, de nouveaux ateliers et encore plus d’animations autour du numérique viendront compléter l’offre pour proposer aux jeunes une expérience digitale complète.

    Tech Kids propose de nombreuses formules d’abonnement, les parents ont la possibilité d’ouvrir le monde du numérique à leurs enfants en fonction de leur emploi du temps et de leurs envies. La formule anniversaire donne également l’occasion de souffler ses bougies en compagnie de ses amis autour d’un atelier numérique.

    En seulement quelques mois d’existence, Tech Kids connait un début fort prometteur : des centaines d’enfants enchantés par les ateliers et stages, des parents conquis par la pédagogie mise en place et la sortie prochaine de la première plateforme MOOC (Massive Open Online Course) visant à accompagner les enfants dans l’apprentissage de la programmation.

    Venez nous rencontrer samedi 30 mai 2015 à partir de 15h, sur DIGIKID Imagine demain, à l’Ecole Supérieure du Digital à Paris. Ateliers numériques gratuits pour les enfants, inscriptions sur www.digikid.fr

    A propos de Tech Kids : http://www.techkidsacademy.com

  • Jeunes codeurs : Apprenons Python

    Jeunes codeurs : Apprenons Python

    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

     

  • Python, la programmation dans tous ses états

    Python, la programmation dans tous ses états

    NinonLouiseRobotique_190515

    Mon rapport comporte trois points :

    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 Everybody in 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.

  • Usages de Scratch en mathématiques : quand programmation et calculs ne font plus qu’un !

    Usages de Scratch en mathématiques : quand programmation et calculs ne font plus qu’un !

    Scratch est un logiciel libre conçu pour initier les élèves à des concepts fondamentaux en mathématiques et en informatique. Il repose sur une approche ludique de l’algorithmique, pour les aider à créer, à raisonner et à coopérer. Il favorise également leur partage sur le Web.

    « Dans le calcul littéral, il y a des programmes de calcul ; le but de l’activité de la matinée est dans un premier temps, de faire travailler les élèves sur un programme de calcul classique à la fin duquel ils obtiennent un résultat ; puis, avec Scratch, ils vont également réaliser un programme et voir si ils obtiennent le même nombre », explique Mohamed Boubekri, enseignant en mathématiques.

    Adieu ennui et manque d’intérêt : avec Scratch, les maths reprennent du galon !

     

    Pour les élèves en difficultés, Mohamed note de vrais progrès en mathématiques.

    Au moins, quand nous sommes en cybersalle et que nous travaillons sur Scratch, ils essaient, ils testent et ils ne s’ennuient pas.

    Et c’est aussi valable pour les élèves les plus doués ; chacun peut évoluer à son rythme et l’enseignant est souvent surpris de ce qu’ils produisent.

    Une initiation à la programmation qui répond aux objectifs de l’Education Nationale

     

    Brigitte Wenner inspectrice en mathématiques dans l’académie de Strasbourg encourage cette initiative à 100% car, pour elle, elle entre tout à fait dans les objectifs de l’Education Nationale pour 2016 ; en effet, elle fait référence à la réforme à l’école primaire et dans les collèges où l’informatique ou du moins « la démarche algorithmique » devrait se faire une place dans les programmes.

    « Nous ne savons pas encore sous quelle forme cela va se traduire mais il nous a paru intéressant de demander à quelques équipes de commencer à réfléchir pour voir ce qu’il est possible de faire avec des enfants, et justement pour ceux issus de quartiers d’éducation prioritaire pour montrer que l’algorithmique, c’est pour tout le monde », explique Brigitte Wenner.

    Acquérir les fondamentaux grâce au logiciel Scratch

     

    Gilles Rey, un autre enseignant en mathématiques qui expérimente l’usage de Scratch en classe, est persuadé de l’intérêt du logiciel pour l’acquisition de notions fondamentales en mathématiques comme par exemple, « la factorisation ».

    « Ils apprennent à utiliser des techniques de transformation d’écriture en mathématiques c’est à dire le développement et la factorisation pour écrire une expression plus simplement », explique t-il.

    Il ajoute que pour les élèves, le fait de travailler sur Scratch leur permet de comprendre l’intérêt d’appliquer une formule comme la factorisation pour pouvoir fabriquer un programme qui soit plus simple et donc plus efficace.

    « On peut envisager sur plusieurs séquences de les faire calculer par toutes les étapes intermédiaires, ce qui est enrichissant pour eux, et ensuite leur faire constater que grâce au développement, on peut programmer beaucoup plus simplement et plus rapidement pour arriver au même résultat ».

    Comme son collègue Mohamed Boubekri, Gilles Rey voit dans l’utilisation de Scratch un réel intérêt de motivation pour les élèves et d’appétence pour les mathématiques.

    Et le logiciel permet différents usages pour aborder plusieurs notions comme les fonctions sinus et cosinus ou la trigonométrie par exemple.

    « C’est vraiment un logiciel, qui tout en étant adapté aux enfants et simple d’accès par ce principe de briques, est un outil puissant », conclut-il.

     

    Un reportage réalisé dans le cadre du voyage de presse lors des NetJournées, du 25 au 27 mars 2015 à Bischoffsheim.
    Remerciements tout particuliers à la DANE de l’Académie de Strasbourg, et aux partenaires de cette journée :

    NetjourneeslogoITOPeducationlogoWasaby_logo