7 Algorithmique competences

publicité
Algorithmique
et évaluation des compétences
(D’après un travail présenté par l’académie de Nancy-Metz. Mars 2010 )
1
Quelles compétences en algorithmique ?
La question du référentiel.
( document ressource : ) L’élève sera capable …
d’analyser
existant ;
le fonctionnement ou le but d’un algorithme
de
modifier un algorithme existant pour obtenir un
résultat précis ;
de
créer un algorithme en réponse à un problème donné.
Envisager une évaluation par compétences qui ne conduira pas
nécessairement à une note spécifique chiffrée.
2
Les compétences visées
(document ressource)
comprendre et analyser un algorithme préexistant ;
modifier un algorithme pour obtenir un résultat particulier ;
analyser la situation : identifier les données d’entrée, de sortie,
le traitement...;
mettre au point une solution algorithmique : comment écrire
un algorithme en « langage courant » en respectant un code,
identifier les boucles, les tests, des opérations d’écriture,
d’affichage... ;
valider la solution algorithmique par des traces d’exécution et
des jeux d’essais simples ;
adapter l’algorithme aux contraintes du langage de
programmation : identifier si nécessaire la nature des
variables... ;
valider un programme simple.







33
Les compétences visées
Être capable de …
 comprendre et analyser un algorithme
préexistant ;
 modifier un algorithme pour obtenir
un résultat particulier ;
 analyser la situation : identifier les
données d’entrée, de sortie, le
traitement...;
 mettre au point une solution
algorithmique : comment écrire un
algorithme en « langage courant » en
respectant un code, identifier les
boucles, les tests, des opérations
d’écriture, d’affichage... ;
 valider la solution algorithmique par
des traces d’exécution et des jeux
d’essais simples ;
 adapter l’algorithme aux contraintes du
langage de programmation : identifier si
nécessaire la nature des variables... ;
 valider un programme simple.
44
(document ressource)
Pouvons-nous proposer des
exercices pour chacune de
ces compétences ?
Les compétences visées
Être capable de …
 comprendre et analyser un algorithme
préexistant ;
 modifier un algorithme pour obtenir
un résultat particulier ;
 analyser la situation : identifier les
données d’entrée, de sortie, le
traitement...;
 mettre au point une solution
algorithmique : comment écrire un
algorithme en « langage courant » en
respectant un code, identifier les
boucles, les tests, des opérations
d’écriture, d’affichage... ;
 valider la solution algorithmique par
des traces d’exécution et des jeux
d’essais simples ;
 adapter l’algorithme aux contraintes du
langage de programmation : identifier si
nécessaire la nature des variables... ;
 valider un programme simple.
55
(document ressource)
Entrée :
Saisir trois nombres a, b et c
Traitement :
Affecter a+b+c à M
Affecter M/3 à M
Sortie :
Afficher M
Expliquer en une phrase ce
que fait cet algorithme
Les compétences visées
Être capable de …
 comprendre et analyser un algorithme
préexistant ;
 modifier un algorithme pour obtenir un
résultat particulier ;
 analyser la situation : identifier les
données d’entrée, de sortie, le
traitement...;
 mettre au point une solution
algorithmique : comment écrire un
algorithme en « langage courant » en
respectant un code, identifier les
boucles, les tests, des opérations
d’écriture, d’affichage... ;
 valider la solution algorithmique par des
traces d’exécution et des jeux d’essais
simples ;
 adapter l’algorithme aux contraintes du
langage de programmation : identifier si
nécessaire la nature des variables...
 valider un programme simple.
66
(document ressource)
Entrée :
Saisir trois nombres a, b et c
Traitement :
Affecter a+b+c à M
Affecter M/3 à M
Sortie :
Afficher M
Modifier cet algorithme afin qu’il
permette de calculer la moyenne de
trois notes a, b et c affectées des
coefficients 1,2 et 3 et qu’il signale si
le résultat est ou non supérieur à 10
Les compétences visées
Être capable de …
 comprendre et analyser un algorithme
préexistant ;
 modifier un algorithme pour obtenir un
résultat particulier ;
 analyser la situation : identifier les
données d’entrée, de sortie, le
traitement...;
 mettre au point une solution
algorithmique : comment écrire un
algorithme en « langage courant » en
respectant un code, identifier les boucles,
les tests, des opérations d’écriture,
d’affichage... ;
 valider la solution algorithmique par des
traces d’exécution et des jeux d’essais
simples ;
 adapter l’algorithme aux contraintes du
langage de programmation : identifier si
nécessaire la nature des variables... ;
 valider un programme simple.
77
(document ressource)
On veut écrire un algorithme qui
permette de calculer la moyenne
de trois notes a, b et c affectées
des coefficients 1,2 et 3 et qui
signale si le résultat est ou non
supérieur à 10.
Compléter :
Entrée :
Traitement :
Sortie :
Les compétences visées
Être capable de …
 comprendre et analyser un algorithme
préexistant ;
 modifier un algorithme pour obtenir
un résultat particulier ;
 analyser la situation : identifier les
données d’entrée, de sortie, le
traitement...;
 mettre au point une solution
algorithmique : comment écrire un
algorithme en « langage courant » en
respectant un code, identifier les
boucles, les tests, des opérations
d’écriture, d’affichage... ;
 valider la solution algorithmique par
des traces d’exécution et des jeux
d’essais simples ;
 adapter l’algorithme aux contraintes
du langage de programmation :
identifier si nécessaire la nature des
variables... ;
 valider un programme simple.
88
(document ressource)
Un examen comporte trois
épreuves de coefficients
respectifs 1, 2 et 3.
Un étudiant est reçu à l’examen
si sa moyenne est supérieure
ou égale à 10.
Écrire un algorithme qui renvoie
l’information « l’étudiant est
reçu » ou l’information
« l’étudiant n’est pas reçu » à la
saisie des trois notes.
Les compétences visées
Être capable de …
 comprendre et analyser un algorithme
préexistant ;
 modifier un algorithme pour obtenir
un résultat particulier ;
 analyser la situation : identifier les
données d’entrée, de sortie, le
traitement...;
 mettre au point une solution
algorithmique : comment écrire un
algorithme en « langage courant » en
respectant un code, identifier les
boucles, les tests, des opérations
d’écriture, d’affichage... ;
 valider la solution algorithmique par
des traces d’exécution et des jeux
d’essais simples ;
 adapter l’algorithme aux contraintes du
langage de programmation : identifier si
nécessaire la nature des variables... ;
 valider un programme simple.
(document ressource)
Un examen comporte trois épreuves de coefficients
respectifs 1, 2 et 3. Un étudiant est reçu s’il obtient
une moyenne supérieure ou égale à 10, il est recalé
s’il obtient strictement moins de 8 et il doit passer
un oral si sa moyenne est comprise entre 8 et 10.
On veut écrire un algorithme qui renvoie le résultat
de l’examen à la saisie des trois notes.
Un programmeur distrait a écrit l’algorithme cidessous. Quelles sont les erreurs qu’il a commises
?
Entrée : saisir a,b,c
Traitement :
affecter a+2*b+3*c/6 à M
si M>=8 et M<=10
afficher « oral »
sinon
si M>=10
99
afficher « reçu »
Les compétences visées
Être capable de …
 comprendre et analyser un algorithme
préexistant ;
 modifier un algorithme pour obtenir
un résultat particulier ;
 analyser la situation : identifier les
données d’entrée, de sortie, le
traitement...;
 mettre au point une solution
algorithmique : comment écrire un
algorithme en « langage courant » en
respectant un code, identifier les
boucles, les tests, des opérations
d’écriture, d’affichage... ;
 valider la solution algorithmique par
des traces d’exécution et des jeux
d’essais simples ;
 adapter l’algorithme aux contraintes du
langage de programmation : identifier si
nécessaire la nature des variables... ;
 valider un programme simple.
(document ressource)
Un examen comporte trois épreuves de coefficients
respectifs 1, 2 et 3. Un étudiant est reçu s’il obtient
une moyenne supérieure ou égale à 10, il est recalé
s’il obtient moins de 8 et il doit passer un oral si sa
moyenne est comprise entre 8 et 10.
On veut écrire un algorithme qui renvoie le résultat
de l’examen à la saisie des trois notes.
Exécuter l’algorithme suivant en utilisant Algobox.
Entrée : saisir a,b,c
Traitement :
affecter (a+2*b+3*c)/6 à M
si M<8
afficher « recalé »
sinon
si M>=10
afficher « reçu »
sinon
10
10
afficher « oral »
Les compétences visées
Être capable de …
 comprendre et analyser un algorithme
préexistant ;
 modifier un algorithme pour obtenir un
résultat particulier ;
 analyser la situation : identifier les
données d’entrée, de sortie, le
traitement...;
 mettre au point une solution
algorithmique : comment écrire un
algorithme en « langage courant » en
respectant un code, identifier les boucles,
les tests, des opérations d’écriture,
d’affichage... ;
 valider la solution algorithmique par des
traces d’exécution et des jeux d’essais
simples ;
 adapter l’algorithme aux contraintes du
langage de programmation : identifier si
nécessaire la nature des variables... ;
 valider un programme simple.
11
11
(document ressource)
Certaines compétences
s’appliquent :
- à un algorithme,
- à une situation
Exemples d’énoncés – exemple 1
Dans un repère orthonormal on considère les points
A(-1;0) et B(3;0).
Ecrire un algorithme qui effectuera la tâche suivante :
Si l’utilisateur lui fournit les coordonnées (x;y)
d’un point C, le programme retournera l’une
des deux informations
« ABC est un triangle rectangle en C »
ou
« ABC n’est pas un triangle rectangle en C ».
12
Solution 1
Critère choisi :
la relation de Pythagore
Le triangle est rectangle si
AC²+BC²=16
Traitement algorithmique :
saisir x, y
Affecter (x+1)²+y² à P
Affecter (x-3)²+y² à Q
Affecter P+Q à R
si R=16
alors…
sinon …
13
Solution 2
Critère choisi :
Utilisation du cercle circonscrit
Le triangle est rectangle si CI=2.
Traitement algorithmique :
saisir x, y
Affecter rac((x-1)²+y²) à R
si R=2
alors…
sinon …
14
Solution 2bis
Critère choisi :
Utilisation du cercle circonscrit
Le triangle est rectangle si
CI²=4
Traitement algorithmique :
saisir x, y
Affecter (x-1)²+y² à R
si R=4
alors…
sinon …
15
Solution 3
Critère choisi :
utilisation du projeté
orthogonal H de C, puis du
critère CH²=BHxAH ou de la
trigonométrie
Traitement algorithmique :
saisir x, y
si y²=(x+1)(3-x)
alors…
sinon …
16
Remarques
 Suivant le critère choisi, le traitement est plus ou
moins complexe, et requiert ou non des variables
supplémentaires.
 Le critère mathématique le plus naturel (Pythagore) ne
fournit pas le test le plus simple.
 La solution utilisant la distance du point au milieu de
l’hypoténuse présente une difficulté supplémentaire liée
à la précision de la machine : le recours au carré de la
distance.
17
Compétences en jeu
Géométrie :
choix d’un critère pertinent,
mobilisation de connaissances…
Calcul algébrique :
Calcul d’une expression mobilisant deux variables
Raisonnement :
utilisation d’une caractérisation « si … alors le triangle est
rectangle en C »
18
Compétences en jeu - algorithmique
A partir d’une situation donnée
analyser
la situation
 identifier les données d’entrée, élémentaire
 Identifier les données de sortie, élémentaire
 Identifier le traitement requis, la difficulté principale
n’est pas algorithmique
mettre au point une solution algorithmique
 Les principales difficultés de l’algorithme sont masquées
car elles touchent à la programmation.
19
La liste de compétences s’enrichit …
A partir d’un algorithme donné
 exécuter un algorithme ;
 comprendre et analyser un algorithme préexistant ;
 modifier un algorithme pour obtenir un résultat particulier ;
 traduire un algorithme donné dans un langage de
programmation.
A partir d’une situation donnée
 analyser la situation (identifier les données d’entrée, de sortie,
le traitement...)
 mettre au point une solution algorithmique (identifier les
boucles, les tests, des opérations d’écriture, d’affichage prendre
en compte les limites du langage de programmation, les
questions de précision.. )
20
20
Exemple 2
Version 1 – problème ouvert
Déterminer tous les nombres entiers naturels égaux à la
somme des cubes de leurs chiffres.
21
21
Exemple 2
Version 2 – problème guidé
1 ) Ecrire un algorithme permettant de trouver tous les
nombres inférieurs à 9999 qui sont égaux à la somme
des cubes de leurs chiffres.
2) Calculer 5 x 93 .En déduire qu’il n’existe pas de nombre
N à 5 chiffres qui soit égal à la somme des cubes de ses
chiffres.
Existe-t-il des nombres de plus de 5 chiffres solutions du
problème ?
3) A l’aide d’une calculatrice ou d’un logiciel déterminer
tous les nombres solutions du problème.
22
Exemple 2
Version 3 – problème guidé mathématiques et algorithmique
1 ) Ecrire un algorithme permettant de trouver tous les nombres
inférieurs à 99 qui sont égaux à la somme des cubes de leurs
chiffres.
2) Ecrire un algorithme permettant de trouver tous les nombres
inférieurs à 999 qui sont égaux à la somme des cubes de leurs
chiffres.
3) Calculer 5 x 93 .En déduire qu’il n’existe pas de nombre N à
5 chiffres qui soit égal à la somme des cubes de ses chiffres.
Existe-t-il des nombres de plus de 5 chiffres solutions du
problème ?
3) A l’aide d’une calculatrice ou d’un logiciel déterminer tous les
nombres solutions du problème.
23
Algorithme en langage conventionnel
Variables
m, c, d, u, N, S nombres entiers naturels
Début
pour m allant de 0 à 9
pour c allant de 0 à 9
pour d allant de 0 à 9
pour u allant de 0 à 9
affecter la valeur 1000m+100n+10d+u à N
affecter la valeur m3+c3+d3+u3 à S
Si N=S alors Afficher N
Fin
24
Version scilab
25
******************************************
1 VARIABLES
2 u EST_DU_TYPE NOMBRE
3 d EST_DU_TYPE NOMBRE
4
c EST_DU_TYPE NOMBRE
5 m EST_DU_TYPE NOMBRE
6 S EST_DU_TYPE NOMBRE
***Algorithme lancé***
7 N EST_DU_TYPE NOMBRE
0
8 DEBUT_ALGORITHME
1
9 POUR m ALLANT_DE 0 A 9
153
10 DEBUT_POUR
370
11
POUR c ALLANT_DE 0 A 9
371
12
DEBUT_POUR
407
13
POUR d ALLANT_DE 0 A 9
***Algorithme terminé***
14
DEBUT_POUR
15
POUR u ALLANT_DE 0 A 9
16
DEBUT_POUR
17
N PREND_LA_VALEUR u+10*d+100*c+1000*m
18
S PREND_LA_VALEUR pow(u,3)+pow(d,3)+pow(c,3) +pow(m,3)
19
SI (S==N) ALORS
20
DEBUT_SI
21
AFFICHER N
22
FIN_SI
23
FIN_POUR
24
FIN_POUR
25
FIN_POUR
26 FIN_POUR
27 FIN_ALGORITHME
Version algobox
26
Compétences en jeu - version 3
1 ) Ecrire un algorithme permettant de
trouver tous les nombres inférieurs à
99 qui sont égaux à la somme des
cubes de leurs chiffres.
2) Ecrire un algorithme permettant de
trouver tous les nombres inférieurs à
999 qui sont égaux à la somme des
cubes de leurs chiffres.
3) Calculer 5 x 93 .En déduire qu’il
n’existe pas de nombre N à 5 chiffres
qui soit égal à la somme des cubes de
ses chiffres.
Existe-t-il des nombres de plus de 5
chiffres solutions du problème ?
3) A l’aide d’une calculatrice ou d’un
logiciel déterminer tous les nombres
solutions du problème.
27
Arithmétique :
• Numération décimale
Calcul algébrique :
• Manipulation d’expressions à
plusieurs variables
Raisonnement :
• Raisonnement par
disjonction des cas.
(Analyse :
• Comparaison de suites)
Compétences en jeu - version 3
1 ) Ecrire un algorithme permettant de
trouver tous les nombres inférieurs à
99 qui sont égaux à la somme des
cubes de leurs chiffres.
2) Ecrire un algorithme permettant de
trouver tous les nombres inférieurs à
999 qui sont égaux à la somme des
cubes de leurs chiffres.
3) Calculer 5 x 93 .En déduire qu’il
n’existe pas de nombre N à 5 chiffres
qui soit égal à la somme des cubes de
ses chiffres.
Existe-t-il des nombres de plus de 5
chiffres solutions du problème ?
3) A l’aide d’une calculatrice ou d’un
logiciel déterminer tous les nombres
solutions du problème.
28
Algorithmique
A partir d’une situation donnée
 analyser la situation
 identifier les données d’entrée,
 de sortie,
 le traitement
 mettre au point une solution
algorithmique
 identifier les boucles,
 les tests,
 des opérations d’écriture,
d’affichage
 écrire un programme en réponse à
une question posée.
A partir d’un algorithme donné
 modifier un algorithme pour obtenir
un résultat particulier ;
Compétences en jeu - version 1
A partir d’un algorithme donné
Déterminer tous les nombres
entiers naturels égaux à la somme
des cubes de leurs chiffres.

exécuter un algorithme ;

comprendre et analyser un algorithme
préexistant ;

modifier un algorithme pour obtenir un
résultat particulier ;

écrire un programme en réponse à une
question posée.
A partir d’une situation donnée
29

analyser la situation (identifier les données
d’entrée, de sortie, le traitement...)

mettre au point une solution algorithmique
(identifier les boucles, les tests, des
opérations d’écriture, d’affichage...)

Prendre l’initiative pertinente de
construire une solution
algorithmique.
Les difficultés des élèves
Les erreurs repérées :
 Confusion affectation et égalité ;
 Notion de variable non comprise ;
 Confusion de lecture du programme ;
 Difficulté de validation de l’algorithme ;
 Difficulté pour comprendre le rôle de
l’algorithme.
30
30
Les facteurs de complexité








la nécessité d’un test d’arrêt ;
le nombre de boucles à imbriquer ;
le nombre d’issues des tests ;
les variables qui subissent de nouvelles affectations dans le
traitement ;
Les variables « masquées » ;
La complexité des concepts mathématiques mobilisés ;
La complexité du traitement mathématique requis pour le
traitement algorithmique ;
La présence d’astuces ou de contraintes liées au traitement
algorithmique ou au langage à utiliser.
31
LES ENJEUX

Concevoir des situations qui soient intéressantes,
d’un point de vue mathématique et accessibles
d’un point de vue algorithmique

Repérer les compétences
Peut-on / doit-on évaluer isolément les compétences
relatives à l’algorithmique ?
32
Téléchargement