Outils pour utilisateurs

Outils du site


profgra:misc:ja2016

Faire travailler l’algorithmique avec MicroAlg

Page du TP : http://huit.re/ja2016 (qui pointe ici).

À part la phrase que vous être en train de lire, cette présentation peut être vue comme un modèle de TP (ou une succession de modèles de TP) à faire avec les élèves.

Nous démarrons ensemble la première partie, mais une fois lancés vous pouvez travailler en autonomie. Les deux autres parties sont techniquement plus délicates. Dans tous les cas, n’hésitez pas à poser des questions oralement ou par écrit au tableau si personne n’est disponible pour y répondre.

Nous aurons besoin d’un ou d’une volontaire projeté(e), pas trop rapide.

1. Travail sans traces numériques

On ne décrit pas ici de mécanisme pour garder les traces aussi facilement que dans la partie « Travail avec traces numériques », mais rien ne vous empêche de demander aux élèves d’envoyer leurs programme par email ou un ENT.

1.1. Prérequis techniques

Un navigateur récent, connecté à Internet (il est possible de faire sans connexion, mais avec une installation spéciale préalable). De nos jours, nous avons ça dans des ordinateurs de bureau, des portables, mais aussi des tablettes ou des téléphones.

1.2. Tutoriel exhibitionniste

Mise en forme autour des échantillons interactifs

Pour la mise en forme, nous avons :

  • titres, table des matières automatique ;
  • listes ;
    • sous-listes ;
    • possible de numéroter les items (pas au sein de listes non numérotées) ;
  • Gras, italique, mot-clef ;
  • expressions mathématiques : $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$ (avec parfois quelques conflits avec les soulignés qu’il faut « échapper » : $u\_0 = 1$ doit se taper $u\_0 = 1$) ;
  • images logo microalg

Les échantillons permettent d’exécuter du code, mais aussi et surtout de modifier le code puis de l’exécuter à nouveau. On peut par exemple proposer des programmes à modifier ou à compléter, entourés de consignes, comme dans la suite de cette partie.

Un exemple complet

Cet exemple est de plus en lien avec une notion mathématique. Les suivant seront des exemples ou exercices plus ou moins triviaux pour apprendre le langage MicroAlg.

Afficher du texte

Testez le programme ci-dessous et modifiez-le de façon à lui faire afficher une phrase de votre choix, mais relative aux JA.

Répéter des instructions

Voici un exemple d’utilisation de la commande Repeter :

Modifier le programme ci-dessous de façon à lui faire afficher :

Bonjour tout le monde !
Ça va ?
Ça va ?
Ça va ?
Ça va ?
Bonjour tout le monde !
Ça va ?
Ça va ?
Ça va ?
Ça va ?
Bonjour tout le monde !
Ça va ?
Ça va ?
Ça va ?
Ça va ?

…mais en utilisant le moins de parenthèses possible !

Une autre façon de poser le problème, qui demande moins de créativité de la part des élèves, est de demander de compléter le programme suivant. Au passage, notez que peu de langages ont la commande ... !

Notez le rôle des parenthèses dans MicroAlg, totalement différent de leur rôle dans les expressions mathématiques. Ici, une parenthèse ouvrante déclenche une commande, et une parenthèse fermante marque la fin de l’énumération des arguments de cette commande. On retient qu’une instruction est de la forme :
(Commande arg1 arg2 ...), où un argument peut être à son tour de la même forme. Les couleurs permettent de se repérer dans la profondeur (d’où le logo de MicroAlg). C’est plus qu’une coquetterie, c’est un feedback très puissant.

Afficher des nombres, des résultats de calculs

La commande Afficher accepte du texte, mais aussi des nombres, ou des résultats de calculs.

Attention, les calculs doivent aussi respecter la forme (Commande arg1 arg2), récursivement !

Essayez de deviner ce que ce programme va afficher :

C’est dans ce sens que le Club des Expressions est un bon préalable à MicroAlg. C’est un système ludique où l’on présente des expressions mathématiques aux élèves, qu’ils doivent reconstituer à l’aide du « code Club ».

$2x+1$ devra être codé : (somme (produit 2 x) 1).

Nombres pseudo-aléatoires

Voici un exemple d’utilisation de la commande Entier@, qui attend deux nombres entiers et retourne un nombre « au hasard » entre ces deux nombres :

  1. Comment modifier le programme ci-dessus pour en faire un simulateur de lancé de dé à six faces ?
  2. Comment modifier le programme ci-dessus pour lui faire tirer au hasard une année qui a commencé un siècle entre le onzième et le vingt-et-unième siècle.
  3. Comment modifier le programme ci-dessus pour lui faire tirer quatre dés à six faces ? Notez que votre voisin ou voisine obtient des tirages différents des vôtres.

Reproductibilité

Dans le programme suivant, deux notions sont illustrées :

  1. La reproductibilité fournie par la commande Initialiser@ ;
  2. La possibilité pour le concepteur ou la conceptrice du TP d’ajouter du code invisible aux yeux de l’utilisateur, mais qui sera pourtant exécuté juste avant le code visible (nous verrons plus tard comment faire).

Pour tester cette fonctionnalité, vous pouvez :

  1. lancer et relancer le programme pour voir que les même tirages sont affichés ;
  2. ajouter (Initialiser@ 1) en tête du programme ;
  3. observer que les tirages sont différents des précédents, mais restent identiques si vous relancez le programme tant que vous laisserez (Initialiser@ 1) ;
  4. revenir à (Initialiser@ 0) pour retrouver les tirages des premières exécutions. Le code caché était (Initialiser@ 0).

Il est même possible d’imposer les valeurs qui seront « tirées au hasard » (si si, ça peut servir !). Les commandes Affecter_a et Liste seront décrites plus loin. sequence_tirages@ est une variable spéciale de MicroAlg.

Combiner le code invisible et sequence_tirages@ peut s’avérer être très puissant ! Certains exercices d’algorithmique demandent en effet de « tracer » les variables d’un algorithme en imposant les valeurs qui sortiront lors des tirages pseudo-aléatoires.

Structure conditionnelle

Pour bien comprendre le (Si ... Alors ... Sinon ...) il faut savoir qu’en plus des valeurs de type « texte » ou « nombre », il y a les « booléens ». Il n’y a que deux valeurs de ce type : Vrai et Faux, et c’est une de ces valeurs que la commande Si attend comme premier argument. Essayez de remplacer le Vrai du programme suivant par une autre valeur :

Mais on utilise rarement les booléens de cette façon. Les commandes =, =/, <, <=, > et >= comparent leurs deux arguments et retournent un booléen. À vous de les tester toutes les six !

Mais des booléens constants, ce n’est pas drôle. Écrivez ci-dessous un simulateur de pièce de monnaie truquée, qui affiche « PILE » dans 6 cas sur 10 et « FACE » dans les autres cas.

Demander des valeurs à l’utilisateur et les utiliser

Les commandes Demander et Demander_un_nombre demandent une valeur à l’utilisateur et la retourne à la commande qui avait besoin d’une telle valeur. La première retourne du texte et la seconde un nombre (si l’utilisateur a bien voulu taper quelque chose qui ressemble à un nombre). Exécutez le programme ci-dessous et faites en sorte qu’il n’affiche pas de Faux.

Pourquoi est-ce impossible avec le programme ci-dessous ?

Autre défi : écrire un programme qui demande un nombre à l’utilisateur et l’affiche deux fois.

Pour simplifier le travail avec les plus jeunes, une nouvelle variable spéciale a été mise en place : valeur_utilisateur. Elle contient la dernière valeur que l’utilisateur a tapé, avec le type qui correspond : du texte pour Demander et un nombre pour Demander_un_nombre. Du coup, ces commandes peuvent ne pas être un argument à une autre commande.

Maintenant vous avez tout ce qu’il faut pour le défi précédent : écrire un programme qui demande un nombre à l’utilisateur et l’affiche deux fois.

Variables

Les variables sont déclarées avec la commande Declarer (nous cherchons un autre verbe, ça pourrait être Allouer_a). Il n’y a pas de syntaxe particulière pour lire leur valeur, et on leur affecte une valeur avec Affecter_a. Deux exemples :

Vous avez maintenant tout ce qu’il faut pour répondre au défi de tout-à-l’heure : écrire un programme qui demande un nombre à l’utilisateur et l’affiche deux fois, mais sans utiliser valeur_utilisateur. À la vraie.

Graphismes

Chaque échantillon peut être configuré (voir plus loin) pour qu’apparaisse juste en dessous un carré de 600×600 pixels. On pourra y dessiner des formes avec des couleurs (voir le tutoriel graphique), mais aujourd’hui nous allons faire des choses sérieuses : dessiner des formes avec des couleurs.

Deux exemples.

Un premier qui présente quelques nouvelles commandes :

  • RAZ, qui remet la fenêtre à zéro pour pouvoir exécuter le programme à nouveau sans superposition ;
  • Repere, qui cale la fenêtre graphique comme sur les calculatrices (avec $x\_{min}$ $x\_{max}$ $y\_{min}$ $y\_{max}$ $x\_{grad}$ $y\_{grad}$) ;
  • Contour, qui change la couleur des traits (une couleur est une liste à trois (RVB) ou quatre (RVB+transparence) entiers) ;
  • Segment, qui trace un segment entre les deux points spécifiés par les deux listes qu’on lui fournit.

Vous pouvez changer la couleur du chemin de la puce ou mieux, faire en sorte que la puce simulée aille deux fois plus à gauche qu’à droite.

Un second qui présente la Tortue (héritée du langage Logo) et qui pose une question non algorithmique :

La tortue part du centre et est tournée vers la droite. En remplaçant les valeurs 7 et 5 par d’autres entiers, allez-vous atteindre la cible ?
Quelles autres valeurs fonctionnent ?

Une autre particularité de ce dernier échantillon, que vous aurez peut-être remarquée, c’est que le programme s’est exécuté une première fois sans avoir eu à appuyer sur le bouton. Cela permet de faire comprendre la question tout de suite plutôt que de laisser l’utilisateur arriver devant un écran vide. De plus, nous avons utilisé du code invisible pour dessiner le repère, la grille et la cible.

Ce qui resterait à montrer

Les commandes Tant_que et Faire, Liste, Definir… ne seront pas détaillées ici. Vous pourrez les retrouver dans le tutoriel officiel.

Voyons tout de même les blocs

Un échantillon peut être configuré pour les faire apparaître seuls ou au dessus du texte. L’échantillon suivant est dans ce dernier cas. On observe :

  • une mise à jour en temps réel du texte quand on modifie les blocs,
  • une mise à jour des blocs à partir du texte en appuyant sur Ctrl+Shift+B.

Les blocs mettent en confiance (pas de fautes de syntaxe et découverte des commandes dans la boîte à outils), mais leurs formes donnent des indications sur les différents rôles des différentes commandes (avec ou sans valeur de retour, nombre de paramètres…). Notez que tout a été fait pour que les deux modes se correspondent : si on a bien compris l’un des deux, il est facile de passer à l’autre.

Et voyons tout de même aussi l’export

Le menu déroulant en haut à droite de l’échantillon propose des langages utilisés par les calculatrices (tous les programmes ne seront pas compatibles, mais celui de l’échantillon suivant l’est) et des visualisations du code sous forme d’arbre. Cette fonctionnalité n’attend que d’être étendue à d’autres langages. Vous pouvez passer commande !

2. Travail avec traces numériques

On parle ici d’un système qui enregistre automatiquement l’activité des élèves.

2.1. Sur la galerie principale

La galerie est un espace de publication qui peut servir aux enseignants, mais aussi aux apprenants. Elle est organisée en catégories qui sont en fait les pseudonymes des utilisateurs. Pour naviguer dans ces catégories, faites un clic droit sur plan du site pour l’ouvrir dans un nouvel onglet (on retrouve ce lien en haut à droite de chaque page).

Lorsqu’une page est créée ou modifiée, une notification est envoyée sur l’adresse email de l’administrateur de la galerie, contenant des informations sur la création ou la modification :

copie ecran notification

Vous allez apprendre à dupliquer une page pour votre usage personnel, un peu comme un ou une élève qui participe à un de vos TP le ferait. Merci de continuer sur cette page.

2.2. Installer sa galerie

Si vous voulez être le seul destinataire des notifications alors vous ne pourrez pas utiliser la galerie principale : il vous faudra pour cela installer votre propre galerie. La procédure n’est pas documenté intégralement mais reste assez simple, pour peu que vous ayez quelques connaissances en la matière. Il faut en bref :

  • Installer Dokuwiki
    • sur un serveur accessible depuis l’extérieur ;
    • ou en local sur votre machine
  • Installer le plugin MicroAlg.

Concernant l’installation en local sur un poste Windows, vous pouvez reproduire la procédure ci-dessus (penser à Dokuwiki on a stick) ou, si vous n’êtes pas paranoïaque, utiliser l’archive clef-en-main présentée sur cette page.

L’équipe de MicroAlg reste à votre disposition pour vous aider. Faites signe par courriel.

3. Travail sur des fichiers

3.1. Installation et exécution d’un exemple

Les instructions d’installation sont disponibles ici.

Si vous utilisez Windows, il suffit de :

  1. Désarchiver quelque part.
  2. Lancer le fichier 00_SciTE.bat en acceptant les risques.
  3. Ouvrir un fichier, naviguer dans le dossier des exemples et choisir test_demander.malg ou test_millisecondes.malg.
  4. Lancer le programme avec la touche F5.
  5. Si le programme contient les commandes Demander ou Demander_un_nombre, il faut répondre dans le panneau de droite, après la question.

3.2. Créer et exécuter un fichier

  1. Créer un nouveau fichier.
  2. Enregistrer avec l’extension .malg, mais pas dans le dossier d’installation de MicroAlg (pour pouvoir le supprimer sans scrupules lors d’une mise à jour).
  3. Exécuter avec F5.

3.3. Graphismes

Voir les instructions d’installation et chercher « Pour la sortie graphique ». Si vous utilisez Windows, c’est à la fin de cette section.

profgra/misc/ja2016.txt · Dernière modification: 2016/04/01 21:50 par admin