Commençons avec Blockly

Ce que vous allez faire

Dans cette séquence vous allez :

  1. faire des exercices consistant à réaliser des algorithmes ou programmes pour sortir de labyrinthes,
  2. préciser (vidéo) la notion d'algorithme, puis en discuter,
  3. répondre à un quiz puis examiner les réponses en classe entière,
  4. répondre en quelques lignes à 4 questions et envoyer cette réponse aux enseignants.

Exercices algorithmiques avec Blockly

Nous allons commencer par des exercices consistant à écrire des petits programmes (ou scripts) permettant à un personnage de sortir d'un labyrinthe. Ces programmes sont des algorithmes écrits dans un langage compréhensible par l'ordinateur, ici dans l'environnement de Blockly Maze.

Cliquez sur l'image de gauche - ci-dessous - (Blockly maze) et faites les différents exercices. Lisez soigneusement les indications à chaque étape. Quand vous aurez terminé les 7 premiers niveaux, signalez le à l'enseignant (via le chat si c'est à distance).

Travaillez à deux si possible. Définissez ensemble une stratégie et déroulez cette stratégie mentalement, comme si c'était vous l'ordinateur. Ne cherchez pas à résoudre les problèmes compliqués d'un seul coup. Progressez par étape et vérifiez au fur et à mesure les étapes intermédiaires.

Si vous avez déjà fait ces exercices, plutôt que d'attendre, essayez à droite "Blockly l'oiseau" qui est un peu plus difficile. L'oiseau doit récupérer une proie et la ramener à son nid.

Le niveau 10 de Blockly Maze est difficile, lisez bien la recommandation et appliquez la stratégie qu'elle propose. Et si vous avez terminé Blockly maze, ou si vous butez sur le niveau 10, passez à "Blockly Oiseau".

Blockly Maze

Blockly Oiseau

Le nombre de blocs est limité pour chaque exercice. Dès le niveau 3 vous devrez utiliser un bloc de répétition. Puis - à partir du niveau 6 - des blocs qui utilisent un "si" pour évaluer si une condition est vraie. Si oui, les blocs à l'intérieur de l'instruction sont exécutés, si non, ils sont ignorés.

Qu-est-ce qu'un algorithme ?

Avec Blockly maze, vous avez réalisé des algorithmes pour sortir de labyrinthes. Vous avez écrit ces algorithmes dans le langage blockly qui est compris par l'ordinateur. Dans la vidéo qui suit, nous allons voir plus précisément ce qu'est un algorithme.

Version textuelle

Après cette vidéo qui définit ce qu'est un algo, la suivante (de 3 mn) examine aomment écrire un algorithme avec des langages de haut niveau, proche du langage naturel, jusqu'à des langages de bas niveau ou proches de la machine. Nous verrons en particulier comment utiliser le pseudo codeavant de commencer à programmer.

Quiz d'auto-contrôle

Not yet started
1 point
Not yet started
1 point
Not yet started
1 point
Not yet started
1 point
82 : Le fragment de programme ci-dessous doit déplacer un robot dans une grille jusqu'à la case grise. Le programme utilise la procédure ButAtteint, qui renvoie vrai si le robot est dans la case grise et faux sinon. Le robot est représenté dans la grille par un triangle orienté vers la gauche. Le robot peut avancer dans les cases blanches ou grises, mais pas dans les cases noires.

APExamPrepQ14FR.PNG

Pour laquelle des grilles suivantes le programme ne permet PAS au robot d'atteindre la case grise?

Discussion : Algorithmes et Programmes

Comme vous venez de le voir dans cet exercice, un algorithme est une séquence précise d'instructions qui résoud un problème ou effectue un calcul. Un programme, c'est un algorithme écrit dans un langage de programmation qui peut être exécuté sur un ordinateur.

Les scripts que vous avez créés pour résoudre les problèmes de labyrinthes contiennent déjà les principales structures de contrôle que les programmeurs utilisent pour concevoir des algorithmes :

  • Séquence : un algorithme est une séquence d'instructions précises,
  • Sélection (if/else ou si/sinon) : un algorithme peut choisir deux chemins différents selon qu'une condition est remplie ou non,
  • Répétition ou Itération : un algorithme peut répéter une séquence d'instructions.

Remarque : Les scientifiques ont démontré que l' ces trois structures de contrôle ('séquence', 'sélection', et 'répétition') suffisaient pour réaliser TOUS les algorithmes imaginables à partir des commandes ou intructions exécutables (ici avancer et tourner) . Autrement dit, tout algorithme peut êre exprimé par une combinaison d'instructions en séquences avec des sélections et/ou des répétitions.

Les algorithmes sont partout

Maintenant que vous connaissez la définition d'un algorithme vous allez vous voir que les algorithmes sont partout, dans les tâches quotidiennes, par exemple, pour lacer ses souliers ... Mais Ils sont plus ou moins rapides ... Savez vous les lacer en moins de 2 secondes ?
Eh bien, c'est possible avec cet algorithme :

Animer vous-mêmes un atelier ludique sur les algorithmes ?

Les ressources suivantes pourront vous être utiles si vous envisagez vous-même d'animer des ateliers, ou simplement pour jouer ou expliquer ce que vous faites dans ce cours. Choisissez un thème qui plait à vos interlocuteurs et expliquez ensuite ce qu'est un algorithme ...

Minecraft

Celui que je préfère,
le mieux pour découvrir

Code.org Maze

personnages variés,
tests simples

Star wars

Fonctionnellement plus étendu
avec les boutons/évènements

Blockly dessin

Peut motiver les enfants
aimant dessiner.

Passez les vidéos en anglais. Par contre, lisez bien les instructions et les commandes qui sont en français (Vous pouvez choisir la langue avec le bouton en bas à gauche).

Pour aller plus loin

Les informaticiens écrivent des algorithmes pour résoudre des problèmes.

Alan Turing, est un mathématicien anglais qui a formalisé la notion d'algorithme avec la machine de Turing. Il a également réussi à casser le code secret utilisé par les allemands pour communiquer pendant la Seconde guerre mondiale. Pour autant il n'a pas été reconnu à sa valeur, cherchez pourquoi, son histoire est très intéressante.

C'est Böhm et Giacopini qui ont démontré en 1966 que les séquences, sélections et répétitions sont des structures de contrôle suffisantes pour écrire tous les algorithmes imaginables. C'est le théorème de la programmation sctructurée. Ce théorème n'a pas qu'un intérêt mathématique, il a des conséquences directes sur la manière de "bien" programmer

Vocabulaire

Ci-dessous une table des termes techniques présentés dans cette leçon et que nous utiliserons pendant tout le cours. Vous verrez des tables de même type dans les autres leçons. Si vous passez sur un terme avec la souris, sa définition ou sa description apparaitra.
algorithme
structure de contrôle
séquence
sélection
répétition
itération

A ajouter dans votre Drive ou Portfolio

Dans votre drive ou portfolio, créez une page ou un document Algos et programmes. Mettez y les réponses aux points suivants puis envoyez le lien à cette adresse ou à celle indiquée par vos enseignants :

  1. En 2 à 5 lignes, décrivez ce qu'est un algorithme (comme pour l'expliquer à quelqu'un qui n'a jamais fait d'informatique).
  2. Donnez un (autre) exemple d'algorithme utilisé dans la vie courante, en indiquant les séquences d'instructions. Elles doivent comprendre au moins une instruction conditionnelle (si, ... sinon) et une boucle de répétition : tant que ... je ...
  3. En 2 ou 3 lignes, expliquez pourquoi un algorithme doit être précis, et les problèmes que l'on peut avoir si ce n'est pas le cas.
  4. Donnez la liste des Trois structures de contrôle suffisantes pour écrire n'importe quel algorithme.