La démarche algorithmique Extrait commun aux programmes des classes du lycée En seconde, les élèves ont conçu et mis en œuvre quelques algorithmes. Cette formation se poursuit tout au long du cycle terminal. Dans le cadre de cette activité algorithmique, les élèves sont entraînés à : décrire certains algorithmes en langage naturel ou dans un langage symbolique ; en réaliser quelques-uns à l’aide d’un tableur ou d’un programme sur calculatrice ou avec un logiciel adapté ; interpréter des algorithmes plus complexes. Aucun langage, aucun logiciel n’est imposé. L’algorithmique a une place naturelle dans tous les champs des mathématiques et les problèmes posés doivent être en relation avec les autres parties du programme (algèbre et analyse, statistiques et probabilités, logique), mais aussi avec les autres disciplines ou le traitement de problèmes concrets. À l’occasion de l’écriture d’algorithmes et de programmes, il convient de donner aux élèves de bonnes habitudes de rigueur et de les entraîner aux pratiques systématiques de vérification et de contrôle. Instructions élémentaires (affectation, calcul, entrée, sortie). Les élèves, dans le cadre d’une résolution de problèmes, doivent être capables : d’écrire une formule permettant un calcul ; d’écrire un programme calculant et donnant la valeur d’une fonction ; ainsi que les instructions d’entrées et sorties nécessaires au traitement. Boucle et itérateur, instruction conditionnelle Les élèves, dans le cadre d’une résolution de problèmes, doivent être capables de : programmer un calcul itératif, le nombre d’itérations étant donné ; programmer une instruction conditionnelle, un calcul itératif, avec une fin de boucle conditionnelle. Compétences algorithmiques à développer : (Stage Journée pédagogique Première – 2012) Entrée/sorties, affectations ; Instruction conditionnelle Si …Alors …[sinon…] ; Introduction des boucles "Répéter Jusqu'à" et "Tant que" ; Introduction d'un compteur ; Utiliser les boucles "Pour" ; Imbriquer des boucles ; Générer des nombres aléatoires ; Stocker dans une liste, un tableau dans le cas d’une simulation ou en statistiques; Utiliser des instructions graphiques dans le cas de la représentation graphique d’une fonction, les intervalles de fluctuation,… Travailler sur des tests booléens complexes (Logique) ; Besoin d’une progression algorithmique sur les trois années du Lycée On relève différentes occasions de faire vivre l’algorithmique dans les différents programmes. Au-delà des algorithmes signalés ◊ dans le programme, il y a d’autres algorithmes envisageables. On met ainsi en évidence la nécessité d’introduire certains algorithmes dès la seconde. Cela nécessite la mise en place d’une concertation d’équipe. Les algorithmes étudiés doivent porter sur différentes parties du programme, être écrits en langage naturel ou machine et doivent correspondre à des scénarii pédagogiques variés (à comprendre, à modifier, à créer). Mais le plus important est d’intégrer naturellement la démarche algorithmique dans la pratique quasi-quotidienne de la classe et ne pas la cantonner à une activité spécifique car trop ponctuelle. Pour ceci, la démarche algorithmique peut être insérée dans une activité mentale, peut permettre de définir une expression littérale au lieu de la donner directement, peut mettre en place une méthode ou une automatisation, etc … Ci-dessous, on vous présente une liste de scénarii pédagogiques ordonnés en fonction de leur difficulté de mise en œuvre. Si l’ensemble des compétences algorithmiques (Instructions élémentaires, Boucle et itérateur, instruction conditionnelle) est à développer dès la classe de seconde, il semble important de respecter cette gradation dans la mise en place d’une progression sur les trois années du lycée : Les quatre premiers points ont donné lieu à des sujets de BAC à partir de la session 2013 : Comprendre : o ce qu'est un algorithme. o l'intérêt des procédures algorithmiques notamment répétitives (boucles) ou alternatives (si... alors) sur des exemples qui peuvent être issus d’autres disciplines. o le fonctionnement d'un algorithme basique donné en langage naturel et ce qu’il fait. Modifier o un algorithme donné en langage naturel, pour répondre à une problématique proche. o un algorithme pour corriger une erreur à identifier au préalable Formaliser/écrire : o une partie d’un algorithme déjà défini, o un algorithme en langage naturel pour résoudre un problème, pour simuler une situation o l’ensemble des composants d'un algorithme (variables, entrées, données, traitement, instructions, sorties, compteurs, etc.) Contrôler la solution algorithmique par des essais Ecrire un algorithme en langage symbolique Etre capable de traduire un algorithme écrit en langage naturel pour le faire exécuter par une machine, par exemple la calculatrice. Ces différents scénarii mettent en évidence la nécessité de construire de manière progressive l’acquisition des compétences en algorithmique. Cela doit, en outre s’articuler avec la progression.