Utopian Architect - À Propos

Qu'est-ce qu'Utopian Architect ?

Utopian Architect est un outil ludique et créatif d'apprentissage de la programmation informatique avec lequel vous programmez un petit robot constructeur volant, qui peut se déplacer et lâcher des blocs carrés de divers matériaux (sable, brique, verre, bois...), afin de réaliser des bâtiments de votre choix.

À qui s'adresse-t-il ?

Utopian Architect a été conçu pour un public très large. Il a été ainsi utilisé avec succès :

Comment l'utiliser ?

Encore en phase de développement, il lui manque pour le moment les éléments nécessaires à sa prise en main autonome par des débutants. Il est toutefois pleinement utiliser pour animer des ateliers encadrés par un ou plusieurs animateurs déjà familiers avec la programmation.

L'outil est gratuitement accessible en ligne. Il suffit de disposer d'un navigateur internet tel que Chrome, Firefox ou Internet Explorer, dans une version récente.

Quelles notions l'outil permet-il d'aborder ?

Le robot d'Utopian Architect se programme en écrivant des scripts dans un langage complet et puissant. Donc en principe quasiment toutes les notions de programmation peuvent être abordées grâce à cet outil, selon les intentions de l'animateur et le niveau de son public.

Cependant Utopian Architect a été spécifiquement conçu pour faciliter la découverte et l'apprentissage de la notion de fonction et ce qui en découle :

Avec, en arrière plan, la volonté de sensibiliser aux bonnes pratiques de la programmation.

Des "bonnes pratiques" ?

Oui. L'un des objectifs assumés d'Utopian Architect est, à travers ce contexte ludique, de confronter l'utilisateur à des problématiques rencontrées par les développeurs professionnels, et de le sensibiliser aux bonnes pratiques suivies par les bons programmeurs :

De manière générale, Utopian Architect permet de soulever rapidement des questions liées à l'architecture d'un programme.

Un exemple de petit exercice qui permet d'aborder ce genre de points : programmer le robot pour qu'il sache construire des pyramides de différentes hauteurs.

Le but est-il de "fabriquer" des développeurs professionnels ?

Non. S'il est vrai qu'Utopian Architect est parfois utilisé lors de formations professionnelles, il s'adresse largement à ceux qui souhaitent découvrir la programmation comme loisir, que ce soit par simple curiosité intellectuelle, pour se lancer de petits défis, ou comme moyen de création.

Mais, contrairement à l'image que la programmation peut avoir auprès du grand public (notamment véhiculée par les films hollywoodiens) savoir programmer ce n'est pas tant construire des algorithmes puissants, faire des calculs compliquées, ou savoir traiter de technique pure... non, programmer c'est avant tout l'art d'organiser sa pensée, de structurer des choses plutôt abstraites, de savoir décomposer des gros problèmes en problèmes plus petits. Le tout, dans un contexte créatif.

Ainsi, nous estimons que les bonnes pratiques mises en oeuvre en programmation, et notamment au travers d'Utopian Architect, peuvent donner une prise de recul et un éclairage intéressants, même dans la vie de tous les jours.

Quelle approche pédagogique ?

Utopian Architect est pensé pour rassurer le débutant à son arrivée, et le faire naturellement glisser petit à petit vers plus de complexité.

Premiere phase : prise en main simplifiée

La plus grande partie de l'interface est dédiée à la visualisation, avec des arbres, des plantes, beaucoup de ciel : le nouvel arrivant n'est pas trop dépaysé par de l'abstraction. Il peut commencer à utiliser les boutons pour entrer les commandes du robot, et dans cette première phase il va se sensibiliser avec l'interface, le bouton "Play" et le curseur pour remonter dans le temps.

Deuxième phase : utilisation du mode texte

Une deuxième phase arrive assez naturellement : soit pour supprimer des blocs, soit pour les modifier, à un moment où un autre il va falloir utiliser le mode texte. Et puis, le copier-coller est tentant, pour refaire la même chose rapidement. Le mode texte prend donc de plus en plus d'importance.

Le curseur temporel, avec mise en surbrillance de la ligne de code responsable de l'action courante du robot, facilite cette transition vers le script, avec un aller-retour entre la cause (code) et la conséquence (déplacement, lâcher de bloc).

Troisième phase : découverte des fonctions

Une troisième phase se présente quand la construction commence à être conséquente : le code devient long, pénible pour s'y retrouver... c'est le moment idéal pour l'animateur de présenter les fonctions (qui restaient discrètes dans un coin de l'interface pour ne pas faire peur au nouvel arrivant en première phase). La première fonction créée le sera souvent pour y couper / coller une portion de code.

Cette petite complexité, amenée par l'animateur, inquiète forcément un peu le débutant, mais il y trouve rapidement son compte : son code s'en retrouve simplifié, mieux rangé, et il peut le ressentir. Mais surtout, la découverte des fonctions s'associe à un sentiment de puissance : "je peux faire 4 maisons si je veux ? même 10 ?". Oui, et très facilement, un appel de fonction par maison.

C'est ce déclic qui est recherché. Jusque là, la programmation du robot pouvait paraître plus fastidieuse qu'une construction à la Minecraft (par exemple si on avait pu simplement cliquer/déposer pour placer des blocs). À partir du moment où il utilise les fonctions, ça bascule : il peut faire des choses plus puissantes grâce au robot programmé. Et il peut se laisser aller à ses envies de bâtisseur mégalomane...

Fréquemment, dans un atelier, plusieurs participants (adultes ou enfants) refusent dans un premier temps de passer aux fonctions, à cause de la barrière d'abstraction que ça représente. Pas de problème : très souvent ils adoptent les fonctions un peu plus tard, voyant ce que leurs voisins arrivent à en faire. Utopian Architect est là justement pour ne pas imposer les fonctions comme un concept théorique dans un cours magistral. Ici, normalement, c'est plutôt le débutant qui va être demandeur, avec une mise en application concrète dont le bénéfice apparaît immédiatement.

Quatrième phase : les fonctions avec arguments

La quatrième phase est la plus ardue : rendre les fonctions plus puissantes et le code plus modulaire en passant des paramètres en argument des fonctions. On plonge davantage dans l'abstraction, et celà nécessite souvent plusieurs passages avant que la notion soit comprise. Dans un atelier classique on remarque souvent qu'environ un tiers des participants y arrive assez bien, un tiers n'y arrive pas, et un tiers est dans une zone intermédiaire, ayant du mal à mettre en pratique. Avec de jeunes enfants cette phase n'est proposée qu'à ceux qui sont les plus à l'aise, et dont l'animateur aura su attiser la curiosité.

Bonnes pratiques et architecture

En parallèle ou en prolongement de cette quatrième phase (en pratique dès que la troisième phase avec apparition des fonctions est assimilée) il est possible d'aborder des problématiques d'architecture de code, l'importance du nommage des fonctions, quelle décomposition du programme pour quel problème, etc. Avec un public déjà programmeur, ces points sont abordés pratiquement dès le départ, immédiatement après la prise en main de l'outil.

Qui est derrière Utopian Architect ?

Il est développé par l'équipe de Toxicode. Plus précisément, il est conçu par Pierre Lancien, qui a été aidé à la réalisation par Pierrick Kyburtz (graphismes) et Julien Berthou (développement).

Nous concevons également d'autres outils d'apprentissage. Pour arriver à financer ces projets qui nous tiennent à coeur, nous réalisons des prestations de conseil et de développement d'applications et sites internet, ainsi que des formations professionnelles. Nos technologies phares sont JavaScript, HTML5, NodeJS, Ruby on Rails.

Cette partie rémunérée de notre activité nous prend davantage de temps qu'on ne le souhaiterait, et ralentit l'avancée de nos projets internes. Si vous avez aimé nos outils, vous pouvez nous aider en parlant d'eux et de Toxicode autour de vous.

Il existe d'autres applis et outils d'apprentissage du code. Quelles sont les spécificités d'Utopian Architect ?

La pratique de la programmation embrasse un champ très large, et peut être abordée par de très divers chemins, souvent complémentaires. Un des outils les plus connus pour apprendre aux enfants est Scratch. Une approche différente est proposée par Codecademy...

D'ailleurs au sein de Toxicode, nous avons créé plusieurs outils d'apprentissage différents.

Pour vous aider à replacer Utopian Architect dans ce contexte, voici ses spécificités :

Quelles inspirations derrière cet outil ?

Historiquement, un des premiers outils pour apprendre à programmer a été, dans les années 70, le langage Logo et sa tortue. Le point de départ de Utopian Architect a été cette simple question :

"À quoi aurait pu ressembler Logo s'il avait été créé dans les années 2010 ?"

Nous avons alors repris des caractéristiques principales de Logo : créer pour apprendre, environnement visuel, mise en avant des fonctions. Et nous avons adapté la tortue à notre époque et à son nouveau jeune public potentiel : Utopian Architect est sur internet, le triangle de la tortue est remplacée par un robot, et au lieu de dessiner des formes géométriques on construit avec des blocs, en rappel évident à Minecraft, que beaucoup d'enfants apprécient.

Quel langage est utilisé pour coder dans Utopian Architect ?

Un des langage les plus utilisés au monde, qui est aussi un incontournable de la programmation d'applications ou sites internet : le JavaScript. Avec une surcouche ajoutée par Toxicode : des fonctions déjà fournies pour piloter le robot.

Au coeur de l'outil, ou quand nous animons des ateliers, nous mettons peu en avant le fait que le langage est du JavaScript, car c'est au fond assez accessoire : sauf si l'utilisateur souhaite avoir d'Utopian Architect un usage avancé, notre choix de langage a peu d'influence sur la manière de programmer le robot. Utopian Architect n'est pas un outil pour apprendre JavaScript, c'est un outil pour apprendre à programmer, et de manière plus générale mettre en oeuvre les mécanismes de pensée du programmeur / créateur.

Quelles sont les évolutions prévues ?

Utopian Architect reste en cours de développement, et plusieurs pistes sont prévues pour la suite. Les objectifs :


Voici nos évolutions prévues pour y parvenir, certaines étant déjà en travaux :