Journées interacadémiques de Toulouse IUFM, 7 et 8 décembre 2010 L’algorithmique en première Objectifs, modalités et exemples Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 1 / 10 Les buts de l’enseignement de l’algorithmique Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 2 / 10 Les buts de l’enseignement de l’algorithmique Ouvrir l’enseignement des mathématiques sur une partie importante des mathématiques actuelles ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 2 / 10 Les buts de l’enseignement de l’algorithmique Ouvrir l’enseignement des mathématiques sur une partie importante des mathématiques actuelles ; Permettre l’illustration de concepts enseignés en mathématiques avec des outils informatiques utilisés de manière active ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 2 / 10 Les buts de l’enseignement de l’algorithmique Ouvrir l’enseignement des mathématiques sur une partie importante des mathématiques actuelles ; Permettre l’illustration de concepts enseignés en mathématiques avec des outils informatiques utilisés de manière active ; Permettre d’approfondir les bases de la logique et de favoriser la pratique du raisonnement ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 2 / 10 Les buts de l’enseignement de l’algorithmique Ouvrir l’enseignement des mathématiques sur une partie importante des mathématiques actuelles ; Permettre l’illustration de concepts enseignés en mathématiques avec des outils informatiques utilisés de manière active ; Permettre d’approfondir les bases de la logique et de favoriser la pratique du raisonnement ; Développer la créativité et favoriser l’initiative. Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 2 / 10 Les activités algorithmiques Dans leur ensemble, elles doivent à la fois : Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 3 / 10 Les activités algorithmiques Dans leur ensemble, elles doivent à la fois : Être en relation avec les contenus du programme qu’elles permettent d’illustrer et d’installer dans les savoirs des élèves ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 3 / 10 Les activités algorithmiques Dans leur ensemble, elles doivent à la fois : Être en relation avec les contenus du programme qu’elles permettent d’illustrer et d’installer dans les savoirs des élèves ; S’appuyer sur des thématiques propres permettant d’ouvrir les élèves à la société du numérique et à la science informatique ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 3 / 10 Les activités algorithmiques Dans leur ensemble, elles doivent à la fois : Être en relation avec les contenus du programme qu’elles permettent d’illustrer et d’installer dans les savoirs des élèves ; S’appuyer sur des thématiques propres permettant d’ouvrir les élèves à la société du numérique et à la science informatique ; Permettre le développement de la créativité des élèves dans une démarche expérimentale ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 3 / 10 Les activités algorithmiques Dans leur ensemble, elles doivent à la fois : Être en relation avec les contenus du programme qu’elles permettent d’illustrer et d’installer dans les savoirs des élèves ; S’appuyer sur des thématiques propres permettant d’ouvrir les élèves à la société du numérique et à la science informatique ; Permettre le développement de la créativité des élèves dans une démarche expérimentale ; L’enseignement de l’algorithmique en mathématiques a aussi pour but de préparer l’introduction indispensable d’un enseignement de science informatique au lycée. Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 3 / 10 Les activités algorithmiques Elles sont de trois ordres : Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 4 / 10 Les activités algorithmiques Elles sont de trois ordres : La description de certains algorithmes en langage naturel ou dans un langage symbolique ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 4 / 10 Les activités algorithmiques Elles sont de trois ordres : La description de certains algorithmes en langage naturel ou dans un langage symbolique ; La réalisation de quelques-uns à l’aide d’un tableur ou d’un logiciel de programmation ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 4 / 10 Les activités algorithmiques Elles sont de trois ordres : La description de certains algorithmes en langage naturel ou dans un langage symbolique ; La réalisation de quelques-uns à l’aide d’un tableur ou d’un logiciel de programmation ; I En classe de 1re S, il est indispensable de confronter les élèves à l’utilisation d’un logiciel professionnel (SCILAB, Python, . . .) Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 4 / 10 Les activités algorithmiques Elles sont de trois ordres : La description de certains algorithmes en langage naturel ou dans un langage symbolique ; La réalisation de quelques-uns à l’aide d’un tableur ou d’un logiciel de programmation ; I En classe de 1re S, il est indispensable de confronter les élèves à l’utilisation d’un logiciel professionnel (SCILAB, Python, . . .) L’interprétation d’algorithmes plus complexes ; Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 4 / 10 Les activités algorithmiques Elles sont de trois ordres : La description de certains algorithmes en langage naturel ou dans un langage symbolique ; La réalisation de quelques-uns à l’aide d’un tableur ou d’un logiciel de programmation ; I En classe de 1re S, il est indispensable de confronter les élèves à l’utilisation d’un logiciel professionnel (SCILAB, Python, . . .) L’interprétation d’algorithmes plus complexes ; C’est la programmation effective qui donne toute sa légitimité à l’algorithmique. Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 4 / 10 Un thème d’activité : la multiplication Égyptienne Il s’agit de multiplier deux entiers en n’utilisant que des multiplications ou divisions par 2 et des additions Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 5 / 10 Un thème d’activité : la multiplication Égyptienne Il s’agit de multiplier deux entiers en n’utilisant que des multiplications ou divisions par 2 et des additions On peut donner le principe : A Si A est pair, A × B = × (2B) 2 A−1 Sinon, A×B = × (2B) + B 2 Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 5 / 10 Un thème d’activité : la multiplication Égyptienne Il s’agit de multiplier deux entiers en n’utilisant que des multiplications ou divisions par 2 et des additions On peut donner le principe : A Si A est pair, A × B = × (2B) 2 A−1 Sinon, A×B = × (2B) + B 2 Et éventuellement un exemple : pour multiplier 18 par 53, on fait successivement A 18 Jacques Moisan (IGEN honoraire) B 53 résidu éventuel L’algorithmique en première Toulouse, le 8 décembre 2010 5 / 10 Un thème d’activité : la multiplication Égyptienne Il s’agit de multiplier deux entiers en n’utilisant que des multiplications ou divisions par 2 et des additions On peut donner le principe : A Si A est pair, A × B = × (2B) 2 A−1 Sinon, A×B = × (2B) + B 2 Et éventuellement un exemple : pour multiplier 18 par 53, on fait successivement A B 18 53 9 106 Jacques Moisan (IGEN honoraire) résidu éventuel 0 L’algorithmique en première Toulouse, le 8 décembre 2010 5 / 10 Un thème d’activité : la multiplication Égyptienne Il s’agit de multiplier deux entiers en n’utilisant que des multiplications ou divisions par 2 et des additions On peut donner le principe : A Si A est pair, A × B = × (2B) 2 A−1 Sinon, A×B = × (2B) + B 2 Et éventuellement un exemple : pour multiplier 18 par 53, on fait successivement A B 18 53 9 106 4 212 Jacques Moisan (IGEN honoraire) résidu éventuel 0 106 L’algorithmique en première Toulouse, le 8 décembre 2010 5 / 10 Un thème d’activité : la multiplication Égyptienne Il s’agit de multiplier deux entiers en n’utilisant que des multiplications ou divisions par 2 et des additions On peut donner le principe : A Si A est pair, A × B = × (2B) 2 A−1 Sinon, A×B = × (2B) + B 2 Et éventuellement un exemple : pour multiplier 18 par 53, on fait successivement A B 18 53 9 106 4 212 2 424 Jacques Moisan (IGEN honoraire) résidu éventuel 0 106 0 L’algorithmique en première Toulouse, le 8 décembre 2010 5 / 10 Un thème d’activité : la multiplication Égyptienne Il s’agit de multiplier deux entiers en n’utilisant que des multiplications ou divisions par 2 et des additions On peut donner le principe : A Si A est pair, A × B = × (2B) 2 A−1 Sinon, A×B = × (2B) + B 2 Et éventuellement un exemple : pour multiplier 18 par 53, on fait successivement A 18 9 4 2 1 Jacques Moisan (IGEN honoraire) B 53 106 212 424 848 résidu éventuel 0 106 0 0 L’algorithmique en première Toulouse, le 8 décembre 2010 5 / 10 Un thème d’activité : la multiplication Égyptienne Il s’agit de multiplier deux entiers en n’utilisant que des multiplications ou divisions par 2 et des additions On peut donner le principe : A Si A est pair, A × B = × (2B) 2 A−1 Sinon, A×B = × (2B) + B 2 Et éventuellement un exemple : pour multiplier 18 par 53, on fait successivement A 18 9 4 2 1 B 53 106 212 424 848 résidu éventuel 0 106 0 0 Résultat 848 + 106 = 954 = 18 × 53 Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 5 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage naturel Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 6 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage naturel On donne deux entiers naturels A et B non nuls Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 6 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage naturel On donne deux entiers naturels A et B non nuls P ← min(A, B) Jacques Moisan (IGEN honoraire) Q ← max(A, B) S←0 L’algorithmique en première Toulouse, le 8 décembre 2010 6 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage naturel On donne deux entiers naturels A et B non nuls P ← min(A, B) Q ← max(A, B) S←0 Tant que P > 1 faire : Si P est impair alors S ← S + Q P ← quotient entier de P par 2 Q ← 2 × Q Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 6 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage naturel On donne deux entiers naturels A et B non nuls P ← min(A, B) Q ← max(A, B) S←0 Tant que P > 1 faire : Si P est impair alors S ← S + Q P ← quotient entier de P par 2 Q ← 2 × Q Q ← Q+S donner Q Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 6 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage naturel On donne deux entiers naturels A et B non nuls P ← min(A, B) Q ← max(A, B) S←0 Tant que P > 1 faire : Si P est impair alors S ← S + Q P ← quotient entier de P par 2 Q ← 2 × Q Q ← Q+S donner Q Que calcule Q ? Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 6 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage SCILAB Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 7 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage SCILAB function p=egypt(n,m) a=(abs(n+m)-abs(n-m))/2 ; b=(abs(n+m)+abs(n-m))/2 ; s=0 ; while a>1 do if impair(a) then s=s+b end a=quotient(a,2) ; b=2*b end p=s+b ; endfunction Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 7 / 10 Un thème d’activité Il s’agit d’interpréter l’algorithme suivant donné en langage SCILAB function p=egypt(n,m) a=(abs(n+m)-abs(n-m))/2 ; b=(abs(n+m)+abs(n-m))/2 ; s=0 ; while a>1 do if impair(a) then s=s+b end a=quotient(a,2) ; b=2*b end p=s+b ; endfunction L’avantage est qu’on peut faire tourner le programme et calculer, par exemple, egypt(10,56) → 560 ; Jacques Moisan (IGEN honoraire) egypt(18,15) → 270, L’algorithmique en première etc. Toulouse, le 8 décembre 2010 7 / 10 Interpréter un algorithme ... plus difficile En langage naturel Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 8 / 10 Interpréter un algorithme ... plus difficile En langage naturel On donne deux réels a et b non nuls et eps positif et petit p ← max(a, b) q ← min(a, b) Tant que q > eps faire : r ← (q/p)2 s ← r/(r + 4) p ← (2s + 1)p q ← sq le résultat est p Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 8 / 10 Interpréter un algorithme ... plus difficile En langage naturel On donne deux réels a et b non nuls et eps positif et petit p ← max(a, b) q ← min(a, b) Tant que q > eps faire : r ← (q/p)2 s ← r/(r + 4) p ← (2s + 1)p q ← sq le résultat est p En langage SCILAB function h=hebenstreit(a,b) p=(abs(a+b)+abs(a-b))/2 ; q=(abs(a+b)-abs(a-b))/2 ; eps=1e-15 ; while q>=eps do r=(q*q)/(p*p) ; s=r/(r+4) ; p=(2*s+1)*p ; q=s*q ; end h=p ; endfunction Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 8 / 10 Probabilités et statistiques Suite de nombres aléatoires Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 9 / 10 Probabilités et statistiques Suite de nombres aléatoires On cherche à construire une suite de nombres aléatoires et à tester la répartition de ces nombres dans l’intervalle [0, 1]. Pour ce test : Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 9 / 10 Probabilités et statistiques Suite de nombres aléatoires On cherche à construire une suite de nombres aléatoires et à tester la répartition de ces nombres dans l’intervalle [0, 1]. Pour ce test : On prend un segment [a, b] inclus dans [0, 1]. On pose p = b − a probabilité qu’un nombre pris au hasard dans [0, 1] soit dans [a, b]. Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 9 / 10 Probabilités et statistiques Suite de nombres aléatoires On cherche à construire une suite de nombres aléatoires et à tester la répartition de ces nombres dans l’intervalle [0, 1]. Pour ce test : On prend un segment [a, b] inclus dans [0, 1]. On pose p = b − a probabilité qu’un nombre pris au hasard dans [0, 1] soit dans [a, b]. Si on prend de façon indépendante n nombres au hasard dans l’intervalle [0, 1], le nombre X de ces nombres situés dans [a, b] suit donc la loi binomiale B (n, p). Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 9 / 10 Probabilités et statistiques Suite de nombres aléatoires On cherche à construire une suite de nombres aléatoires et à tester la répartition de ces nombres dans l’intervalle [0, 1]. Pour ce test : On prend un segment [a, b] inclus dans [0, 1]. On pose p = b − a probabilité qu’un nombre pris au hasard dans [0, 1] soit dans [a, b]. Si on prend de façon indépendante n nombres au hasard dans l’intervalle [0, 1], le nombre X de ces nombres situés dans [a, b] suit donc la loi binomiale B (n, p). À un niveau d’au moins 95 %, un intervalle de fluctuation pour la fréquence X/n est donc – pour n assez grand, 1 1 p− √ , p+ √ si 0, 2 6 p 6 0, 8 n n Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 9 / 10 Probabilités et statistiques Suite de nombres aléatoires On cherche à construire une suite de nombres aléatoires et à tester la répartition de ces nombres dans l’intervalle [0, 1]. Pour ce test : On prend un segment [a, b] inclus dans [0, 1]. On pose p = b − a probabilité qu’un nombre pris au hasard dans [0, 1] soit dans [a, b]. Si on prend de façon indépendante n nombres au hasard dans l’intervalle [0, 1], le nombre X de ces nombres situés dans [a, b] suit donc la loi binomiale B (n, p). À un niveau d’au moins 95 %, un intervalle de fluctuation pour la fréquence X/n est donc – pour n assez grand, 1 1 p− √ , p+ √ si 0, 2 6 p 6 0, 8 n n r 1 p(1 − p) sinon, remplacer √ par 2, 5 n n Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 9 / 10 Test d’une suite de nombres pseudo-aléatoires Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 10 / 10 Test d’une suite de nombres pseudo-aléatoires Le générateur de Hewlett-Packard dans les années 80 était x 7→ Frac (x + π )8 Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 10 / 10 Test d’une suite de nombres pseudo-aléatoires Le générateur de Hewlett-Packard dans les années 80 était x 7→ Frac (x + π )8 On peut tester la suite définie par la fonction rand() de Scilab. Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 10 / 10 Test d’une suite de nombres pseudo-aléatoires Le générateur de Hewlett-Packard dans les années 80 était x 7→ Frac (x + π )8 On peut tester la suite définie par la fonction rand() de Scilab. On prend le générateur x 7→ Frac log(|x + ε|) Jacques Moisan (IGEN honoraire) L’algorithmique en première Toulouse, le 8 décembre 2010 10 / 10