tags

Activité ajoutée par Sciences Infuses le 26 juillet 2012.

Objectifs

Dans cette activité, on illustre la conception d'un algorithme par la recherche d'un trésor dans une grille. Il va falloir donner les bonnes instructions au robot pour qu'il aille chercher le trésor, même si un obstacle se dresse devant lui. La construction des algorithmes se font donc avec les élèves.

Mise en place

L'activité se déroule en classe, sur des grilles papier fournies par l'enseignant, ou tracées au tableau, voir sur le sol.

Introduction

La construction d'un algorithme permet à une machine de suivre les instructions constituant celui-ci, sans avoir besoin de réfléchir sur leur "pertinence" (heureusement, puisqu'une machine ne réfléchit pas!). La conception de cet algorithme est le job de l'informaticien. L'activité proposée ici va se focaliser sur la construction d'un algorithme simple qui va permettre à un robot de se déplacer dans une grille pour trouver un trésor.

Déroulement de l'activité

Les élèves découvrent la programmation et créent leur "premier programme" en exploitant une situation simple. Ils doivent guider un robot qui doit se déplacer sur une grille pour trouver un trésor. Les élèves ne peuvent utiliser que des ordres simples, précis et prédéfinis: avancer, tourner à gauche et tourner à droite (dans ces deux derniers cas, le robot tourne sur place sans avancer). Ils peuvent également poser au robot des questions simples (dont la réponse est oui ou non) sur ce qui se trouve juste à côté de lui. On réfléchit en classe sur papier ou au tableau. Ensuite, les enfants testent leur algorithme en "vrai" en utilisant une grande grille tracée sur le sol où un élève (ou l'enseignant) joue le rôle du robot.

Au départ, dessinez simplement un robot tout à gauche d'une des lignes de la grille, et le trésor à l'autre bout de cette ligne. Le but est de demander aux élèves ce qu'ils peuvent donner comme instructions au robot pour qu'il arrive au trésor, sachant qu'il ne peut faire qu'avancer d'une case, tourner à gauche et tourner à droite. Il est fort probable que la réponse des élèves soit "avance, avance, avance, avance, ..." jusqu'à ce que le robot arrive au trésor. Ils ont donc compris ce qu'était une instruction (un ordre que l'on donne à la machine). Cependant, on voudrait éviter de répéter un grand nombre de fois "avance". On peut donc demander aux élèves comment faire pour éviter de se répéter. La réponse probable est "dire 8 fois avance au robot" (s'il faut que le robot avance 8 fois pour arriver au trésor). Cette réponse n'est pas incorrecte, mais on voudrait pouvoir ordonner cela au robot, sans savoir combien de cases il doit parcourir. Les élèves vont donc devoir trouver "TANT QUE le robot n'est pas sur la case du trésor: avancer d'une case". C'est ce que l'on appelle une boucle. Une boucle est une suite d'instructions (ici, une seulement, l'instruction "avance") que l'on répète tant que le "TANT QUE" est vrai (dans notre cas, "TANT QUE" n'est vrai que si le robot n'est pas sur la case du trésor... si le robot est sur la case du trésor, alors on arrête la boucle). Les élèves ont donc maintenant appris comme répéter les choses dans un algorithme. Le voici écrit clairement:

 TANT QUE le robot n'est pas sur la case du trésor:
	1/ avancer
	2/ retourner au TANT QUE
 FIN: le robot est sur la case du trésor

Les élèves maîtrisent maintenant trois éléments importants des programmes: les instruction (les ordres), les conditions (les questions à poser pour lesquelles la réponse est vrai ou faux), et les boucles (la répétition d'instructions). Dans ce cas, la condition est dans le TANT QUE. Il faut vérifier si la condition dans le TANT QUE est vraie ou fausse pour savoir si on continue ou si on arrête la boucle.

Maintenant, changeons le trésor de place. Plaçons le juste au dessus de l'endroit où il était avant. On peut alors demander aux élèves comment peut-on faire pour parcourir toute la ligne de la grille, puis aller à gauche si le trésor est à gauche ou aller à droite si le trésor est à droite. Ceci va leur permettre de revoir les concepts d'instruction et de boucle, et va leur introduire le concept d'alternative (SI on a ça ALORS on fait ça). Ils vont donc devoir donner d'abord la boucle, qui est "TANT QUE le robot n'est pas au bord de la grille: avancer" et ensuite l'alternative avec une condition à tester qui est "SI le trésor est à gauche ALORS tourner à gauche, SI le trésor est à droite ALORS tourner à droite". Les élèves savent donc maintenant ce qu'est une alternative et savent l'utiliser en lien avec une condition. Voici l'algorithme qu'ils doivent trouver:

 TANT QUE le robot n'est pas au bord de la grille:
	1/ avancer
	2/ retourner au TANT QUE
 3/ SI le trésor est à gauche ALORS 
	3.1/ tourner à gauche
  	3.2/ avancer
 4/ SI le trésor est à droite ALORS 
 	4.1/ tourner à droite
	4.2/ avancer
 FIN: le robot est sur la case du trésor

Finalement, on peut leur expliquer ce qu'est l'appel d'une procédure. C'est-à-dire l'appel à un autre algorithme, qui fait un autre travail, dont on a besoin pour résoudre notre problème. Bien sûr, on suppose que cet algorithme est déjà construit, comme on est en train de construire le notre, et qu'il suffit de l'appeler pour avoir de l'aide. Pour illustrer ça, remettons le trésor sur la même ligne que le robot, et posons une pierre (ou tout autre obstacle) au milieu du chemin. On remarque d'abord que les autres algorithmes ne fonctionnent pas dans ce cas, puisque le robot va avancer, mais sera bloqué par la pierre... Il ne va donc jamais atteindre le trésor. On peut donc appeler une procédure déjà construite qui va nous aider: CONTOURNER LA PIERRE. Créons donc, avec les élèves, le nouvel algorithme qui va permettre d'aller jusqu'au trésor, malgré le fait qu'il y ait une pierre dans le chemin. Voici le résultat:

 TANT QUE le robot n'est pas sur la case du trésor:
	1/ SI il y a une pierre devant le robot
ALORS CONTOURNER LA PIERRE 2/ SI il n'y a pas de pierre devant le robot
ALORS avancer 3/ retourner au TANT QUE FIN: le robot est sur la case du trésor

Afin de bien faire comprendre aux élèves que la procédure "CONTOURNER LA PIERRE" est un algorithme comme on est en train d'en construire, on peut le construire avec eux. Que faut-il pour contourner la pierre? Il faut simplement tourner à gauche, puis avancer, puis tourner à droite, avancer, avancer encore une fois et enfin tourner à droite, avancer et enfin tourner à gauche. De cette manière, on se retrouve de l'autre côté de la pierre et bien orienté vers le trésor. Voici l'algorithme:

	1/ tourner à gauche
	2/ avancer
	3/ tourner à droite
	4/ avancer
	5/ avancer
	6/ tourner à droite
	7/ avancer
	4/ tourner à gauche
 FIN: l'obstacle est contourné

(remarque: cet algorithme ne contient qu'une suite d'instructions, il n'y a pas de boucle, ni d'alternative, ni d'appel à un autre algorithme)

Les élèves sont maintenant capables de construire un algorithme. Les notions d'instruction, de condition, de boucle, d'alternative et d'appel de procédure leur ont été présentées.

Tags:

Commentaires


Poster un commentaire


Titre:
 Votre message
 
Auteur:
GlossyBlue theme adapted by David Gilbert
Powered by PmWiki