L`algorithmique en première

publicité
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
Téléchargement