Commençons avec Blockly
Ce que vous allez faire
Dans cette séquence vous allez :
- faire des exercices consistant à réaliser des algorithmes ou programmes pour sortir de labyrinthes,
- préciser (vidéo) la notion d'algorithme, puis en discuter,
- répondre à un quiz puis examiner les réponses en classe entière,
- 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 |
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.
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
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 ...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 :
- En 2 à 5 lignes, décrivez ce qu'est un algorithme (comme pour l'expliquer à quelqu'un qui n'a jamais fait d'informatique).
- 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 ...
- 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.
- Donnez la liste des Trois structures de contrôle suffisantes pour écrire n'importe quel algorithme.