Algorithmes et programmes

Commençons à programmer

Scratch et App Inventor sont des langages de programmation graphiques à base de BLOCS : Blockly.

Pour se familiariser avec ce type de programmation, nous allons commencer par quelques exercices qui viennent de "Hour of Code" et Code.org. Cette Heure de Code à laquelle vous avez peut-être déjà participé propose une introduction amusante à l'informatique.
Pour sortir de labyrinthes ou aider un oiseau, vous allez commencer à programmer en écrivant des petits programmes ' Blockly ' (que l'on appelle des scripts).

Cliquez sur l'image de gauche - ci-dessous - (Blockly maze) et faites les différents exercices. Lisez bien les indications. Travaillez à deux, 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 les étapes intermédiaires. Le dernier niveau est difficile, lisez bien la recommandation et appliquez la stratégie qu'elle propose.

Si vous avez terminé Blockly maze, ou si vous butez trop 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.

Auto-contrôle

Not yet started
1 point
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?

Algorithmes et Programmes / discussion

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 (ici des blocs),
  • 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 formellement démontré que l'utilisation de ces trois structures de contrôle ('séquence', 'sélection', et 'répétition') suffisait pour réaliser TOUS les algorithmes imaginables. Autrement dit, tout algorithme peut êre exprimé par une combinaison d'instructions qui sont des séquences, des sélections ou des répétitions.

Les algorithmes sont partout

Maintenant que vous connaissez la défintion d'un algorithme et que vous avez une idée de ce que ça veut dire, vous allez vous apercevoir que les algorithmes sont partout ! En grandissant, nous apprenons plein de choses qui sont des algorithmes qui permettent d'accomplir des tâches quotidiennes. Par exemple, nous savons lacer nos souliers ... Mais les algorithmes sont plus ou moins rapides ... Savez vous lacer une chaussure en moins de 2 secondes ?
Eh bien, c'est possible avec cet algorithme :

Pour continuer ou pour animer vous-mêmes un atelier

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. 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).

Pistes de réflexion

Les informaticiens écrivent des algorithmes pour résoudre des problèmes. Les séquences, sélections et répétitions sont des structures de contrôle suffisantes pour écrire tous les algorithmes imaginables.

Tout ce que l'on peut concevoir peut faire l'objet d'un algorithme ...

C'est ce qu'a démontré Alan Turing, un scientifique anglais dont l'histoire est très intéressante.
Renseignez-vous sur ses travaux et son histoire!

Terminologie

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 Portfolio

Dans votre portfolio, allez à la page 1.03 Algos et programmes et répondez aux questions suivantes :

  1. Décrivez - comme pour l'expliquer à quelqu'un qui n'a jamais fait d'informatique - ce qu'est un algorithme.
  2. Illustrez avec un exemple de la vie courante, en indiquant les séquences d'instructions avec au moins une instruction conditionnelle (si, ... sinon) et une boucle de répétion : tant que ... je ...
  3. indiquez pourquoi un algorithme doit être précis, et les problèmes que l'on peut avoir si ce n'est pas le cas.
  4. Qui est Alan Turing, qu'a t'il fait ?
  5. Quelles sont les Trois structures de contrôle suffisantes pour écrire n'importe que algorithme ?