#MindMapExport FreeplaneVersion:freeplane 1.3.0 1 Snap! Build your own blocks 1.1 Programmer et construire ses propres blocs 1.1.1 1.1.1.1 Remarquez le lambda sur la coiffe de la mascotte Alonzo... En hommage à Alonzo Church 1.1.1.1.1 père du Lambda Calcul 1.1.2 Logiciel visuel de programmation fonctionnelle 1.1.2.1 en mode glissé-déposé 1.1.2.2 Qu'est-ce que la programmation fonctionnelle ? 1.1.2.2.1 La programmation fonctionnelle considère le calcul en tant qu'évaluation de fonctions mathématiques. 1.1.2.2.2 Un programme est donc une application, au sens mathématique, qui ne donne qu'un seul résultat pour chaque ensemble de valeurs en entrée. 1.1.3 Logiciel libre 1.1.3.1 développé en HTML5 1.1.3.2 licence GPL3 1.1.3.3 alternative d'utilisation libre à Scratch 1.1.3.3.1 réimplémentation largement étendue du code du logiciel Scratch du MIT Lab 1.1.4 Make your own blocks 1.1.4.1 bloc = équivalent de la notion de fonction (see:Les blocs et les projets)1.1.5 Variables First Class 1.1.5.1 une valeur "First-class" peut être 1.1.5.1.1 passée en argument 1.1.5.1.2 une valeur de retour d'une fonction 1.1.5.1.3 assignée à une variable. 1.2 Comment ? 1.2.1 Fonctionne dans un navigateur à jour 1.2.1.1 On line 1.2.1.2 Hors ligne 1.2.1.2.1 Dépôts Github 1.2.2 Langages 1.2.2.1 snap.berkeley.edu/snapsource/snap.html#lang=fr 1.2.2.2 1.3 Fonctionnalités annexes proposées autour de Snap! 1.3.1 - importer ses projets Scratch 1.3.2 - exporter ses projets Snap! 1.3.2.1 sous forme d'exécutables autonomes sur de nombreuses plateformes (Mac, Linux, Windows) 1.3.2.2 http://snapp.citilab.eu/ 1.4 Les blocs et les projets 1.4.1 Implémentation de quelques fonctions 1.4.1.1 Produit scalaire 1.4.1.1.1 1.4.2 processus récursifs simples 1.4.2.1 Von Koch 1.4.3 Premiers exemples 1.4.3.1 Cliquez Moi 1.4.3.2 Sierpinski 1.4.3.3 Simulation de population par Clonage 1.4.3.3.1 1.4.3.4 En classe 1.4.3.4.1 Simulation de familles de 4 enfants 1.4.3.4.2 Géométrie analytique 1.4.3.4.3 Promenades aléatoires 1.4.3.4.3.1 importation de projets Scratch 1.4.3.4.3.2 Sur un tétraèdre 1.4.4 Les blocs utilisateurs s'exportent puis s'importent. 1.4.5 Exemples du développeur Jens Moenig 1.4.5.1 http://snap.berkeley.edu/snapsource/snap.html#cloud:Username=jens&ProjectName=population 1.4.5.2 http://snap.berkeley.edu/snapsource/snap.html#present:Username=jens&ProjectName=Woodworm 1.4.5.3 http://snap.berkeley.edu/snapsource/snap.html#present:Username=jens&ProjectName=Ferris%20Wheel%202016 1.5 Applications Snap! 1.5.1 Nombreuses applications créées avec Snap! 1.5.1.1 Snap! 4Arduino 1.5.1.2 Edgy 1.5.1.2.1 un Snap! pour les graphes 1.5.1.3 Cellular 1.5.1.3.1 Biologie 1.5.1.4 Robotique 1.5.1.4.1 Programmation du NXT (lego Mindstorm) 1.5.2 Edgy: Graph Algorithms 1.5.2.1 Snap.Application.Graphes.Edgy 1.5.2.1.1 http://snapapps.github.io/ 1.5.2.1.1.1 https://www.alexandriarepository.org/reader/programming-with-edgy/31620 1.5.2.2 http://snapapps.github.io/edgy/app/edgy.html 1.5.2.3 Edgy sur Github 1.5.2.3.1 git https://github.com/snapapps/edgy.git 1.5.2.4 1.5.2.5 Un exemple de codification de scripts dans un autre langage 1.5.2.5.1 1.5.3 1.5.3.1 Sur Github 1.5.3.1.1 git https://github.com/edutec/Snap4Arduino.git 1.5.4 Simulation avec Cellular 1.5.4.1 git https://github.com/monofonik/cellular.git 1.5.4.2 Simulation-with-Cellular-1.1.pdf 1.5.5 Programmer le Lego Mindstorm 1.5.5.1 Robotics-with-Enchanting-1.1.pdf 1.6 Forum sur Github 1.6.1 Signaler un bogue 1.6.2 Obtenir de l'aide 1.6.2.1 Exemple 1.6.2.1.1 @nathalierun Wow! What's atlas.xml? O_O? I can say you what I did to see your proyect atlas.xml offline: I downloaded edgy zip from github I decompresed the file in a folder. I downloaded the atlas.xml file into edgy folder. In the edgy folder I opened a terminal and run: python -m SimpleHTTPServer Then, I opened Firefox/Chrome with this URL: http://localhost:8000/edgy.html#run:atlas.xml 1.7 Snap! ou Scratch ? 1.7.1 Témoignage sur la liste EDUC de l'April 1.7.2 Avantages désavantages de Snap! 1.7.2.1 Il manque le coté communautaire de partage de projets que propose le MIT pour Scratch. 1.7.2.2 Les projets s'exportent en XML et ne pèsent que quelques Koctets 1.7.2.3 La compatibilité n'est pas parfaite, certaines fonctions de Scratch non pas encore été implémentées. 1.7.2.4 La différence fondamentale entre Scratch et Snap, qui induit une mauvaise compatibilité des projets, est la gestion des variables. 1.7.2.4.1 Dans Snap toutes les variables sont égales. Ainsi les listes se déclarent comme des autres variables, il n'y a pas comme dans Scratch de bouton spécial pour déclarer une liste.