Profweb

Accueil » Publications » Récits » La pensée algorithmique, ce n’est pas seulement pour les « geeks »

Publications

Récits

Publié le 25 août 2017 | Techniques de design industriel

La pensée algorithmique, ce n’est pas seulement pour les « geeks »

Si je vous dis que ce récit parle de programmation informatique, arrêterez-vous de lire ici? N’ayez crainte, mon objectif est justement de vous montrer qu’il est possible de faire de la programmation d’une façon simple et conviviale afin de créer des projets visuels captivants et originaux!

Dans le cadre d’un cours en Techniques de design industriel, j’ai eu l’occasion de mettre à l’essai une approche différente. Elle nécessitait une implication plus conceptuelle de la part des étudiants en abordant des notions de programmation informatique.

La place de l’informatique en design industriel

L’ère numérique oblige les techniciens nouvellement formés à être polyvalents dans leurs diverses fonctions professionnelles. Non seulement ils doivent être compétents dans les tâches qui leur sont données, mais ils doivent également comprendre les processus sous-jacents des travaux qu’ils supervisent et être autonomes lorsqu’ils rencontrent de nouveaux défis. Ils doivent maîtriser la conception et le langage du domaine, comme les champs d’expertise, les concepts de forme esthétique ou fonctionnelle, etc. Dans notre programme, les étudiants suivent donc un cours appelé Tendances, formes et couleurs dans lequel ils abordent l’aspect visuel d’un objet.

Aujourd’hui, un technicien travaille beaucoup avec des logiciels de modélisation et des moyens de fabrication numérique, comme les machines-outils à contrôle numérique ou les imprimantes 3D. Il devient très important de comprendre comment fonctionnent ces outils informatiques, et pas seulement comment les utiliser. Lorsque nos étudiants seront sur le marché du travail, nous voulons qu’ils puissent aller au-delà des outils standards offerts par les logiciels. Ces logiciels, programmables à l’aide de scripts, permettent d’ajouter de nouvelles fonctionnalités pour peu que l’on sache programmer. De plus, plusieurs logiciels intègrent aujourd’hui des environnements de programmation visuelle. Il est donc plus aisé de se les approprier, tout en développant un certain plaisir à les utiliser. L’objectif du cours est de stimuler la curiosité des étudiants pour les inciter à aller plus loin dans leur démarche professionnelle.

Lorsque les outils ne répondent pas à mes objectifs pédagogiques

J’ai voulu explorer ce potentiel informatique avec mes étudiants sans leur imposer une formation longue et intense pour être de vrais programmeurs. Mon objectif était d’utiliser un langage de programmation qui soit convivial pour de jeunes techniciens en formation.

J’ai d’abord réalisé 2 essais :

  • Le premier avec le langage Processing, essentiellement utilisé par les arts numériques. Il s’est avéré trop long à maîtriser pour les étudiants. Une erreur de syntaxe dans une ligne de code peut être difficile à repérer pour un débutant et lui faire perdre beaucoup de temps.
  • Le deuxième avec Scratch, utilisé dans les écoles primaires pour initier les enfants à la programmation informatique. Son principal avantage est qu’il se construit comme un assemblage de blocs Lego. Cela permet d’éviter les problèmes de syntaxe qui découragent les étudiants. Par contre, son aspect visuel n’était pas suffisamment attrayant pour stimuler leur motivation.

NodeBox, un outil puissant pour les créatifs curieux!

La solution est finalement venue d’un logiciel libre appelé NodeBox, un environnement de programmation visuelle développé en Belgique. À l’origine, il a été créé pour faciliter la tâche des designers graphiques voulant mettre en valeur des données de façon visuelle (voir des exemples ici).

Ce type de programmation visuelle ressemble à une carte conceptuelle où un ensemble de nœuds sont reliés entre eux par des arcs. Programmer se résume donc à créer des réseaux de « boîtes » connectées entre elles et ayant chacune une fonction différente. Pensez aux relations entre les cellules d’une feuille de calcul d’un chiffrier : lorsqu’une cellule est modifiée, toutes celles qui en dépendent sont immédiatement mises à jour.

Capture d’écran du logiciel NodeBox illustrant la programmation visuelle.

NodeBox permet donc de faire très rapidement ce que je souhaite développer avec mes étudiants : créer de nouvelles formes ou projets visuels par une « conversation » avec un outil informatique.

NodeBox est un outil réactif. Dès que l’on « construit » quelque chose, on voit immédiatement le résultat. Les étudiants fonctionnent ainsi par essai-erreur avec rétroaction instantanée. Cela leur permet :

  • D’éviter de devoir assimiler de nombreux concepts abstraits
  • De produire rapidement des résultats encourageants
  • De repérer plus facilement leurs erreurs et de s’en inspirer pour leurs futurs projets
  • De développer leur pensée algorithmique
  • De mettre la machine à leur service, plutôt que l’inverse

Grâce à NodeBox, j’arrive à piquer leur curiosité avec un minimum de concepts. Les étudiants veulent comprendre comment fonctionne leur réalisation visuelle. Ils sont donc obligés de se plonger dans les premières bases d’une logique algorithmique, en douceur et bien souvent, sans s’en rendre compte.

Le monde de la programmation, qui peut sembler étranger à leur discipline, me permet aussi de leur faire découvrir les nombreuses approches existantes pour développer une forme. Ils voient qu’une collaboration avec un outil informatique est une autre possibilité riche de potentiel.

Mon utilisation de NodeBox en classe

Après avoir complété un exercice sur les principes de la Gestalt (un modèle théorique d’apprentissage et de cognition associé à la perception des formes), mes étudiants conçoivent un cube de papier avec un motif différent sur chacune des 6 faces. Ces motifs doivent cependant demeurer compatibles, c’est-à-dire que le motif d’une face doit sembler se poursuivre sur ses 4 faces avoisinantes.

Exemple de motifs recouvrant le cube de papier créé par un étudiant.

Chaque étudiant assemble ensuite 9 copies de son cube et les regroupe en une matrice de 3 x 3 cubes. On peut alors explorer différentes combinaisons. Cette étape de matérialisation reste très importante dans un contexte de design industriel.

Exemple de matrice réalisée suite à l’association de 9 cubes.

Vient ensuite l’étape où j’initie les étudiants à NodeBox. À ce moment, je dis à mes étudiants qu’ils vont expérimenter un nouvel outil (et non faire de la programmation). Sinon, je risque d’en perdre quelques-uns dès le début! Je leur enseigne quelques notions relatives au fonctionnement de ce type de programmation et ils suivent un tutoriel d’introduction pour se familiariser avec l’interface de NodeBox.

Puis, nous construisons ensemble un programme qui nous permet de décupler sans effort le nombre de répétitions des motifs, de varier le degré de rotation, etc. La souplesse du logiciel encourage la découverte de combinaisons produisant parfois des résultats très étonnants.

Quelques variations à partir de l’une des faces d’un cube.

Pour terminer et prendre conscience du potentiel d’une telle démarche, nous réfléchissons ensemble aux applications concrètes de nos résultats dans le développement de produits (imprimés de tissus, motifs de semelles, cloisons d’intimité, perçage d’aération, mur rideau, etc.).

Cela fait maintenant 2 sessions que j’utilise NodeBox avec mes étudiants et, pour le moment, j’en suis très satisfait.

Lorsque la force du réseau collégial prend tout son sens

NodeBox est un logiciel en constante évolution. NodeBox Live, une nouvelle version web ne nécessitant aucune installation sur les postes informatiques, est déjà en version Beta. Cela le rendra encore plus simple d’utilisation et plus attrayant si l’on veut tenter quelques nouvelles expériences stupéfiantes!

NodeBox ne répond pas encore à tous les besoins de la formation des techniciens en design industriel. Un de mes objectifs didactiques serait de l’intégrer davantage dans l’enseignement de cette discipline au collégial.

Je cherche d’autres enseignants susceptibles d’utiliser cet outil afin de collaborer avec eux au développement de tutoriels et d’exercices pour favoriser une utilisation optimale de NodeBox dans nos cours respectifs. Si cela vous intéresse, n’hésitez pas à me contacter!

À propos de l'auteur

Jean-François Allie Il enseigne en Techniques de design industriel au Cégep régional de Lanaudière à Terrebonne depuis 7 ans. Après l’obtention d’un baccalauréat en Design de l’environnement obtenu à l’UQAM en 1999, il a travaillé comme designer industriel, assistant de recherche dans 2 laboratoires, coordonnateur de projet et, enfin, comme chercheur et enseignant au collégial. Ses intérêts se portent sur l’enseignement du design, la fabrication numérique et l’écoconception.

2 commentaire(s)

  1. Pour afficher votre avatar dans vos commentaires utilisez le services Gravatar.
    Pour des explications techniques, consultez notre article « Afficher un avatar avec le service Gravatar ».

    Cc79cc112f7df142011748cae19c1971

    Christophe Reverd a écrit le 28 août 2017 à 8h19

    Très intéressant. As-tu essayé d'utiliser un Raspberry Pi dont le système d'exploitation Raspbian permet d'utiliser entre autres choses Scratch, Processing ainsi que Node-RED (https://nodered.org/) initialement développé par IBM ?

  2. L’auteur vous répond

    Pour afficher votre avatar dans vos commentaires utilisez le services Gravatar.
    Pour des explications techniques, consultez notre article « Afficher un avatar avec le service Gravatar ».

    Avatar default

    Jean-François Allie a écrit le 28 août 2017 à 19h12

    Bonjour Christophe, merci pour ton commentaire. Je suis familier avec Raspberry Pi et Node-RED, mais je n'ai pas encore pris le temps d'expérimenter avec. Nous avons un projet d'initier nos étudiants à l'utilisation d'une plateforme telle Raspberry Pi ou Arduino. L'objectif étant que nos étudiants puissent par exemple ajouter de l'interactivité à la maquette d'un produit. Je crois qu'une interface de programmation "node based" pourrait faciliter leur apprentissage. Je suis donc à l'affût d'outil tel Node-RED, NETLab Toolkit, Embrio, Flowstone, etc.

Commenter

* champs obligatoires
Type d'intervention*