Séquence : Algorithmique et programmation Attendus de fin de cycle : écrire, mettre au point et exécuter un programme simple I) Vocabulaire Un algorithme est une suite d instructions détaillées qui, une fois exécutées, permettent d aboutir à un résultat ou de résoudre un problème Il y a des algorithmes dans la vie courante : suivre une recette de cuisine, fermer une porte à clé. Fermer une porte à clé Mettre la clé dans la serrure. Tourner la clé vers la droite de 360 Enlever la clé de la serrure. Faire une pâte à crêpes Mettre 250 g de farine dans un saladier. Ajouter 3 œufs. Ajouter 0,5 L de lait Mélanger le tout Il peut y avoir plusieurs algorithmes différents qui donnent le même résultat final. Un programme est un algorithme écrit dans un langage informatique qui peut être exécuté par un ordinateur. II) Les langages de programmation Pour pouvoir communiquer avec les ordinateurs, on utilise différents langages de programmation. Les plus connus sont langage C, C++, java, Python, JavaScript, Nous utiliserons un langage visuel : la programmation par blocs. Voici un algorithme programmé par blocs et également en JavaScript. (captures d écran du site code.org)
III) Les différentes briques a) les séquences d instructions Une séquence d instructions est une suite d instructions que l on exécute dans l ordre, les une après les autres. b) les entrées et les sorties Un programme peut demander des données à partir desquelles travailler. Ce sont les entrées. Il affiche un résultat : c est la sortie. Le programme attend l entrée saisie par l utilisateur. c) les boucles Lorsque l on répète plusieurs fois une même séquence d instruction, on peut utiliser une boucle «Répéter». Cela permet de gagner de faire un programme plus court. Ces deux algorithmes aboutissent au même résultat : tracer un carré.
La boucle «Répéter indéfiniment» répète tout le temps ce qui est demandé. Ici, le lutin tournera en rond. La boucle «Répéter jusqu à» répète ce qui est demandé jusqu à ce que la condition ce réalise. Dans ce script, le lutin tourne en rond jusqu à ce qu on appuie sur la touche «espace». d) les variables informatiques Une variable informatique est une sorte de «boîte» à qui on donne un nom. Elle peut contenir un nombre, une lettre ou du texte. La variable change au fur et à mesure de l algorithme (ce qu il y a «dedans» change, pas son nom). Au début du script, on affecte une valeur de départ à la variable. Si on ne le fait pas et qu on relance le programme, la variable garde sa dernière valeur! Programme de calcul Choisir un nombre Ajouter 3 Prendre le double de la somme obtenue. Afficher le résultat. Prenons 5 comme nombre de départ. Étapes Valeur de la variable 5 8 16 La valeur finale de la variable est donc 16.
On peut également affecter la valeur d une variable à une autre variable. Attention, l ordre des blocs est important. Par exemple, ces deux scripts ne donne pas le même résultat. x =. ; y =. x =. ; y =. x =. ; y =. x =. ; y =. y =. y =. e) les tests Les tests permettent d exécuter un bloc si une condition est vérifiée. Si la condition est vérifiée, les blocs qui sont dans la boucle sont exécutés. Si la condition n est pas vérifiée, le programme passe aux blocs qui sont après la boucle. Les deux programmes suivant sont équivalents. IV) Notion de fonction en informatique Une fonction est un bloc d instructions que l on crée car on en aura besoin plusieurs fois dans le programme. Cette fonction peut contenir une ou plusieurs variables, voire aucune.
Exemple : on définit un bloc «Carré» qui permet de tracer un carré de côté 40. On utilise ce bloc dans un script qui permet d obtenir la figure ci-dessous. On pourrait utiliser ce bloc pour un autre lutin. On peut aussi créer un bloc avec une variable, ici, la longueur du carré tracé. V) Les listes et les textes Une liste est un tableau à une colonne (dans le logiciel Scratch). Chaque case de ce tableau est repérée par un indice : la 1 ère case le numéro 1, la 2 ème case a le numéro 2, etc. On peut avoir autant de cases que nécessaire. a) Utiliser une liste Lorsque l exemple suivant, une liste nommée «noms» de noms de mathématiciens a été créée. Le programme choisi un nombre au hasard entre 1 et 8 (c est la longueur de la liste). Ce nombre est affecté à la variable «indice». Ce sera le numéro de la case, appelé «élément», que le lutin devra lire.
b) Créer une liste On peut avoir besoin de créer une liste pour la remplir. Une fois la liste créée et nommée, on insère ce que l on veut dans les cases. Le programme suivant fait la liste de tous les diviseurs d un nombre (si on donne un nombre entier...). c) les variables texte On peut affecter un mot ou du texte à une variable. Chaque lettre du texte a alors une position dans la variable. Le programme suivant compte le nombre d apparition d une lettre.
VI) Programmer par événement Un programme peut agir en fonction d événements extérieurs : un clic de souris ou appui sur certaines touches du clavier par exemple. Avec le logiciel Scratch, on utiliser les blocs suivants : ou bien Une réponse à une question posée est aussi un événement extérieur. VII) Programmer des scripts se déroulant en parallèle Avec le logiciel Scratch, lorsque l on utilise plusieurs lutins, on peut les programmer pour que l un agisse en fonction de l autre. Une fonction du logiciel est l envoi et la réception de messages.
Attendus de fin de cycle Écrire, mettre au point et exécuter un programme simple Connaissances et compétences associées Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des évènements extérieurs. Programmer des scripts se déroulant en parallèle. Notions d algorithme et de programme. Notion de variable informatique. Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles. Exemples de situations, d activités et de ressources pour l élève Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII ). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d apparition de chaque lettre dans un texte pour distinguer sa langue d origine : français, anglais, italien, etc. Repères de progressivité : En 5 ème, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux évènements.