Saisie de données en réseau

travail collaboratif avec des outils libres
mercredi 5 juin 2013
par  Alain BUSSER

L’objet de l’exercice était d’établir un intervalle de confiance du rythme cardiaque des jeunes français, à partir d’un échantillon constitué par le groupe de TP. La saisie des données a été faite individuellement par chaque étudiant (en mesurant son pouls), puis collectée, dans un groupe, avec CaRMetal, dans l’autre, avec le tableur de Google Drive. Dans les deux cas, on se sentait en plein XXIe siècle...

Si innovant que ça ?

D’autres expériences de travail collaboratif en réseau ont déjà été relatées ici et . Cependant l’outil utilisé n’est ni libre, ni bon marché : Qui accepterait de confier à certains de nos élèves, du matériel cher et fragile ? Qui oserait exiger de chacun d’eux son achat ?

Et il serait bien étonnant qu’aucune expérience similaire n’aie été faite avec des outils libres tels Google Drive. Mais ceux qui l’ont fait n’ont jusqu’à présent pas pensé à communiquer dessus, pour autant que je sache.

Un précurseur connu est tout de même celui-ci

le pouls est-il normal ?

Les données collectées dans les deux groupes, une fois réunies dans une feuille tableur, donnent lieu à cet histogramme (60 par exemple, veut dire « entre 60 et 65 ») :

Bien que l’échantillon soit de petite taille, on croit deviner une loi bimodale plutôt que normale. Or le calcul d’intervalles de confiances est basé sur une hypothèse normale, et ne paraît pas très approprié ici.

Groupe B : CaRMetal

Le premier groupe (le groupe B) a travaillé sur CaRMetal ; la version 3.8 ne gérant pas encore les expressions en réseau, le pouls de chaque étudiant a été entré comme abscisse d’un point représentant celui-ci.

Travail du prof

La première chose à faire, c’est d’ouvrir une figure CaRMetal en mode serveur. Cette manip ne doit être faite que par le prof (sur un poste vidéoprojeté de préférence).

Comme le prof n’est pas nécessairement un spécialiste des réseaux informatiques, l’ouverture du serveur se veut simple :

  • On commence par cliquer sur l’entrée « réseau » du menu :

Ceci déroule un menu, dont le prof choisit la première entrée « lancer/arrêter le serveur »

  • la fenêtre de connexion ressemble à ceci [1] :

On y lit l’adresse IP fournie par CaRMetal (pour les besoins du récit, on supposera que c’est 169.111.16.17 qui est fictive, au lieu de l’adresse réelle floutée ci-dessus), et un numéro de port, qui, par défaut, est égal à 2357 [2]. Le milieu de la fenêtre de connexion indique ce qui doit être filtré ; par défaut tout est accepté par le serveur. Enfin, le bas de la fenêtre de connexion permet au serveur d’envoyer des éléments à un des fichiers clients, ou de travailler à plusieurs sur un même document. Ces options n’étant pas nécessaires à un exercice de statistique, sont laissées à leurs valeurs par défaut, et finalement la seule action nécessaire pour le prof, est de cliquer sur « démarrer ». Mais après avoir recopié au tableau l’adresse 169.111.16.17 pour que les élèves puissent s’y connecter.

  • Cela a pour effet de renommer la figure courante ; son nouveau nom est « global »

Connexion

Chaque étudiant, pour envoyer son pouls sans effort, va se connecter, avec les étapes suivantes :

  • Commencer par cliquer sur l’entrée « réseau » du menu :
  • Là, choisir, au contraire du prof, l’option « se connecter au serveur » [3] ;
  • Le gestionnaire de connexion côté client apparaît alors :

L’élève doit alors entrer

    • son nom ou un identifiant permettant de savoir qui il est [4] ; ci-dessus, en supposant que l’élève s’appelle Ducobu, il entre ce nom dans le premier champ ;
    • L’adresse IP du serveur, recopiée soigneusement du tableau ; ici, 169.111.16.17 ;
    • Laisser le numéro du port à sa valeur par défaut 2357.
    • Cliquer sur « se connecter »...
  • Au vidéoprojecteur, on voit alors apparaître une nouvelle figure appelée « Ducobu »

Saisie du pouls

Pour éviter les conflits de nom, un nom de point a été attribué à chaque étudiant, dans l’ordre, P1, puis P2, etc. Le tout, oralement pour synchroniser le travail d’attribution.

Par souci de précision [5], chaque étudiant compte ses pulsations cardiaques pendant une minute complète, puis crée un point portant le nom qui lui a été attribué, et lui donne pour abscisse le pouls obtenu. Par exemple, si le pouls de Ducobu est 60, Ducobu crée le point P1 de coordonnées 60 et 60 (l’ordonnée est choisie automatiquement par CaRMetal).

Puis il sélectionne le point P1 dans la zone prévue à cet effet :

Ensuite,

  • ou bien il clique sur « Envoyer tout le travail » pour envoyer une copie de P1 sur la copie de sa figure vidéoprojetée (sur le serveur)
  • ou bien, ce qui est plus approprié, il clique sur « Partager » ce qui envoie le point P1 sur la figure global.

Cette dernière option permet d’envoyer tous les points sur une seule figure, avec les noms souhaités :

Collecte des données

Rappel de l’onglet précédent : Le prof, à partir de la figure ci-dessous, va collecter les données et en faire un usage statistique :

L’idée est de créer une liste des abscisses des points P1, P2 etc., séparées par des virgules, et de l’enregistrer au format comma-separated values. L’algorithme, utilisant la concaténation de chaînes de caractères, est le suivant :

  1. On initialise la chaîne de caractères res à l’abscisse de P1 ;
  2. on boucle sur n, ou plutôt sur le point Pn ; dans cette boucle,
    — # on ajoute une virgule à la liste res ;
    — # puis on ajoute l’abscisse de Pn ;
  3. en sortant de la boucle, on affiche la liste ce qui permet de la copier-coller dans le tableur.

La traduction de cet algorithme en JavaScript, ainsi que le résultat obtenu, est ici :

travail en parallèle

En fait, j’écrivais ce CaRScript pendant que les étudiants prenaient leurs pouls, ce qui a évité d’y passer du temps après ; par contre, les étudiants regardant, parfois avec intérêt, le script, cela a pu quelque peu perturber les mesures...

Ensuite, il suffit de sélectionner toute la liste (Control+A), puis la copier (Control+C) et la coller (Control+V) dans un fichier texte appelé poulsGPB.csv, et sauvegarder ce dernier.

On peut alors quitter CaRMetal, dont on n’a plus besoin pour calculer l’intervalle de confiance.

Tableur

Le fait que le fichier texte contenant la liste des pouls ait pour extension csv a pour effet qu’en double-cliquant dessus, il s’ouvre automatiquement dans le tableur. Le poste vidéoprojeté n’ayant pas de tableur installé ce jour-là, j’ai décidé d’opter pour le tableur en ligne Google Drive. En effet, celui-ci importe le CSV sans problème :

Pour calculer l’intervalle de confiance, on a besoin de la moyenne :

et de l’écart-type :

Les effets de style des cellules permettent de montrer l’intervalle de confiance avec les notations du cours :

Groupe A : Tableur

Le groupe A ayant son TP après le groupe B, et dans une salle où une ancienne version de CaRMetal est installée, la collecte de données a été faite directement sur tableur. Mais, pour ne pas faire de jaloux, en réseau !

Création de la feuille

Pour accéder à Google Drive, il faut d’abord se connecter à Google depuis son compte mail ; cette action doit être menée tant par le prof (vidéoprojeté) que par les élèves ; en effet, un mail est envoyé par Google Drive à chacun d’entre eux, pour la connexion au tableur.

Une fois connecté, le prof crée sur son compte Drive, une feuille de calcul (comme dans l’autre groupe d’ailleurs). Puis il clique sur le bouton « Partager » en haut à droite :

Ceci ouvre une fenêtre de partage, où figure notamment le lien vers le fichier tableur (qu’on peut donc envoyer par copier-coller) :

Mais en l’occurrence il est plus simple d’inscrire les étudiants en mettant leur mail dans le bas de cette fenêtre, puis en cliquant sur « envoyer » :

Ils reçoivent alors un mail avec le lien vers la feuille du tableur, qu’ils peuvent ouvrir dans un nouvel onglet du navigateur, et ils peuvent immédiatement commencer à modifier le fichier.

Entrée des données

Calcul parallèle

Du point de vue algorithmique, ce qui se passe alors est un pur régal : Que se passe-t-il si l’élève Ducobu entre le nombre 2 dans la cellule A1, et qu’en même temps Léonie Gratin entre le nombre 42 ? Finalement, le contenu de la cellule A1 est indéterminé, puisqu’on ne peut pas savoir s’il vaut 2 ou 42.

En réalité, le fonctionnement des ordinateurs fait que les deux affectations concurrentes ne peuvent pas être réellement simultanées. C’est l’imprécision sur leur chronologie qui indétermine la valeur de A1.

On peut simuler le problème avec Scratch : On crée une scène avec deux lutins, appelés respectivement Ducobu et Léonie :

Le script de Ducobu étant l’affectation à 2 :

et celui de Léonie, idem mais avec 42 :

La question étant que vaudra A1 après avoir appuyé sur la touche « espace » ?

La version tableur de ce conflit pourrait ressembler à ceci :

  • Léonie, soucieuse d’attirer l’attention de Ducobu sur elle, sélectionne la cellule A1 et commence à écrire « coucou » ;
  • Lorsqu’elle est à « couc », Ducobu clique sur la cellule A1 pour y écrire la date ;
  • ce qui déclenche une synchronisation de Drive : La cellule A1 vide de Ducobu est transmise sur le « cloud » puis, de là, sur l’ordinateur de Léonie : Elle voit son « couco » disparaître pour une cellule soudainement vide à nouveau. Elle ne comprend pas pourquoi...

Le fait que plusieurs personnes travaillent en même temps sur le même fichier, se voit à un code de couleurs que Google leur a attribué, et qui permet assez vite de savoir qui fait quoi, donc qui en est où, et de cibler les aides à apporter, à la fois dans l’espace (qui aller aider) et dans le temps (quand intervenir). Voir le fichier tableur se remplir au vidéoprojecteur sans en être (le seul) acteur, crée une impression ineffable mais très appréciable.

Chaque étudiant ayant un compte mail entre son nom et son pouls, puis sert de secrétaire à ceux qui n’ont pas de compte mail ; il faut assez peu de temps pour saisir les pouls de tout le groupe :

travail collaboratif

deux écarts-type

D’après l’aide en ligne du tableur, il y a plusieurs écarts-type :

Le plus logique, STDEV, est déjà corrigé pour extrapoler à partir de l’échantillon. En fait, le « vrai » écart-type est celui obtenu en considérant l’échantillon comme la population entière. Il se note STDEVP dans le tableur Google Drive. Il aurait donc été plus simple de faire le TP avec STDEV (il suffisait alors de multiplier par 1,96) mais comme l’exercice devait mettre en œuvre le cours, on a calculé l’écart-type STDEV et ensuite, fait la correction en suivant le cours.

On trouve deux calculs simultanés de l’intervalle de confiance ; l’un par un groupe qui a recopié la racine carrée de l’effectif (en dénominateur) à la main :

et qui n’a pas affiché d’arrondi :

et l’autre, par un groupe qui a utilisé le tableur pour calculer la racine carrée [6] :

Le nombre obtenu en multipliant l’écart-type par 1,96 doit être soustrait et additionné au centre de l’intervalle pour avoir celui-ci [7] :

Les deux intervalles coïncident comme on le voit ci-dessus.

Pédagogie

Dans le premier groupe (le B), la fin de l’exercice était classique, chaque étudiant calculant l’intervalle de confiance avec sa calculatrice, et le corrigé confirmant ou infirmant son calcul par la suite.

Dans le groupe A, comme le tableur était vidéoprojeté, les plus fûtés pouvaient regarder au tableau comment faisaient les meilleurs de la classe et s’en inspirer [8].

À première vue, il n’y a guère de différence entre les deux approches, les étudiants qui « trichent » avec le vidéoprojecteur étant ceux qui, de toute manière, auraient attendu passivement le corrigé en faisant semblant de chercher...

Autoréférence

Les tests de CaRMetal en réseau à longue distance ont été commentés en direct, avec une feuille tableur de Drive en guise de logiciel de « chat » (chaque intervenant écrivant dans sa propre colonne)


[1pour des raisons de confidentialité évidentes, l’adresse IP est floutée ; de même, les noms des étudiants sont cachés ou remplacés par des noms fictifs dans cet article...

[2ce port n’est à changer que si un autre logiciel en réseau l’utilise déjà ; ce qui est peu probable.

[3Attention à ce détail : Si, par erreur, un élève ouvre aussi un serveur, il ne peut pas envoyer sa figure comme le font les autres ; en guise de pénitence, il devra alors arrêter le serveur et se reconnecter, cette fois-ci en tant que client. Non mais !

[4et prendre conscience du fait qu’un surnom fantaisiste peut le ridiculiser devant tous, si le serveur est vidéoprojeté

[5et aussi pour déstresser, comme le montrent les valeurs plutôt basses des résultats des mesures

[6on risque de s’extasier sur la petitesse de l’effectif ; en fait on était à la fin de l’année scolaire et il y avait beaucoup d’absents.

[7on admirera encore la cohérence d’un programme de maths où on parle dès la Seconde d’intervalles de fluctuation sans jamais parler, même en S, de la description des intervalles par centre et amplitude...

[8Cependant, lire une cellule en cours de modification, risque d’effacer celle-ci (exercice d’algorithmique : Pourquoi ?) et de toute manière, l’affichage bougeant très vite, il est difficile, dans le cas présent, d’utiliser le réseau pour copier sur l’élève Léonie...


Erreur d’exécution plugins/auto/sarkaspip/v4.1.0/noisettes/document/inc_images_jointes.html

Commentaires