Sofus, ou la programmation visuelle par blocs en collège (et au lycée)

Sofus possède maintenant sa chaîne Youtube

La version de Sofus ci-dessous commence à dater un peu. La version la plus récente est sur ce site. Et pour le noyau de base de Sofus, on peut être intéressé par SofusPy qui permet de programmer en Python (langage) avec des blocs.

Hors ligne

Pour utiliser Sofus hors ligne, voici l’algorithme à appliquer :

  • Aller sur le site du code source ;
  • (facultatif : Lire le poème et rire :-D)
  • (facultatif : cliquer sur ★ star en haut à droite ;-D)
  • cliquer sur clone or download vers le haut à droite ;
  • dans le cadre qui s’ouvre alors, cliquer en bas sur download zip ;
  • au bout d’un certain temps, le téléchargement est complet. Aller alors dans le dossier des téléchargements (celui de Chrome par exemple s’appelle Downloads ou Téléchargements ; on y accède en cliquant sur ouvrir le dossier depuis l’onglet de téléchargements) ;
  • le fichier sophus_master.zip est en réalité un dossier compressé (« zippé ») ; le décompresser (« dézipper ») par exemple à l’aide d’un clic droit suivi de l’option extraire ;
  • On se retrouve alors en présence d’un dossier contenant pas mal de choses, mais surtout un fichier sofus.html qu’il suffit d’ouvrir dans un navigateur internet (Chrome ou Firefox conseillés).

Noter que cette dernière étape peut se faire ad libitum hors ligne. On peut par exemple, préalablement à la séance en classe, charger le dossier dans les tablettes des élèves, ce qui leur permet ensuite (pour peu que Chrome ou Firefox soit installé sur les tablettes) de programmer sans avoir à activer la wifi.

Vocabulaire

Voici, extrait de cet article, un programme de calcul créé et décrit par des élèves de 6e ; à gauche, l’original, à droite la traduction en Sofus :

Pour décoder le pokémon Version Sofus

On constate qu’à part l’implicite « le résultat précédent », les deux versions sont très proches l’une de l’autre, ce qui montre bien le caractère naturel de la programmation en Sofus en cycle 3 ! Cette similitude s’accentue encore si on constate que les « z » finissant les verbes à l’impératif ont été des « r » de l’infinitif [1] ; c’est tout de même plus poli même lorsqu’on s’adresse à une tortue cybernétique ou un lutin félin...]] complétés (on voit le « r » initial à la première ligne).

On remarque tout de même une différence : Alors que « augmenter de » a été abrégé en « ajouter », son pendant « diminuer de » a bénéficié de plusieurs traductions, ce qui montre une hésitation :

  • « enlever » à la ligne 3 ;
  • « enlever » à nouveau, à la ligne 7 ;
  • « enlever » encore une fois, à la ligne 8 ;
  • mais « soustraire » à la ligne 9 (et on aperçoit le mot « par » effacé).

Ceci montre que ces élèves font la différence (!) entre l’opération de soustraction et le fait de décrémenter une variable. Mais « soustraire par » ne se dit pas, et « soustraire de » est hors sujet. Enfin, le verbe « décrémenter » est inconnu même des élèves de cycle 4. D’ailleurs il y a une ambiguïté dans l’utilisation de ce verbe sans complément, la décrémentation qu’on utilise en langage assembleur correspondant toujours à une diminution de 1, ce raccourci a été transposé quelque peu arbitrairement à Sofus.

Voici une version téléchargeable (pour utilisation en local, plus légère mais plus ancienne que la version en ligne) de Sofus :

Sofus avec Blockly

Et, plus récente, la version espagnole, préparée par José Manuel Ruiz Gutiérrez qui enseigne l’informatique à Tomelloso :

Voici un interpréteur Sophus en ligne, pour ceux qui voudraient juste utiliser les fonctions de base, sans la tortue par exemple :

image/svg+xml

Pour programmer en Sofus, aligner des blocs sur le plan de travail (au besoin, mettre l'ancien programme dans la corbeille) La traduction JavaScript de ce programme est automatiquement mise à jour dans la fenêtre du bas. La fenêtre du milieu est une fenêtre de sortie, on peut copier-coller son contenu vers un autre logiciel).

Deux applications Android, plus comiques qu’utiles :

Sofus en commande vocale La tortue en commande vocale

[1Sofus n’est pas un langage de programmation impérative mais en fait, de programmation infinitive


Suivez aussi les sous-rubriques ci-dessous

Documents joints

sophus
interpréteur de Sophus
HTML - 27.1 ko
interpréteur tout-en-un
PDF - 1 Mo
OpenDocument Text - 1.3 Mo
HTML - 27.7 ko

Articles publiés dans cette rubrique

mercredi 26 septembre 2018
par  Alain BUSSER

La programmation au brevet des collèges 2018

Corrigés des exercices du DNB 2018 où sont apparus des programmes ou des algorithmes.

jeudi 13 septembre 2018
par  Alain BUSSER

Quand les tortues prennent la tangente

Une expérience avec les tortues permet de découvrir la notion de tangente à un cercle et sa relation au rayon du cercle.

dimanche 8 juillet 2018
par  Alain BUSSER

Les équations de Pell-Fermat au bac S

L’exercice « spé » du bac 2017 portait sur la notion de triangle rectangle presque isocèle. C’est l’occasion de voir quelques équations diophantiennes comme celles de Pell-Fermat, d’ailleurs assez largement présentes au bac 2018.

mercredi 6 décembre 2017
par  Alain BUSSER

La programmation au brevet des collèges 2017

Pour la première fois, Scratch faisait son apparition au brevet des collèges. Réussite ou échec ?

mardi 3 octobre 2017
par  Alain BUSSER

Sommation avec Python et autres outils

Additionner les termes successifs d’une suite est considéré comme difficile par des post-bac. On présente des exemples du bac S et des TP en BTS.

dimanche 18 juin 2017
par  Alain BUSSER

Corrigé de l’exercice « spé » du bac S Centres Étrangers 2017

L’exercice portait sur l’arbre de Stern-Brocot et combinait arithmétique et calcul matriciel.

mardi 19 juillet 2016
par  Alain BUSSER

La multiplication dite « éthiopienne »

Une étude de cas illustrant les difficultés conceptuelles que présente la modification « en place » de variables.

mardi 5 janvier 2016
par  Alain BUSSER

Programmer au collège avec Logo, Scratch et Blockly

Blockly est une variante de Scratch « version html5 ».

vendredi 29 mai 2015
par  Alain BUSSER

Calcul matriciel dans Sofus

Depuis la version 0.5, Sophus peut augmenter un tableau d’un autre tableau, ce qui permet de calculer rapidement les coordonnées d’un milieu, d’un vecteur... ou de résoudre des systèmes linéaires.