La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Isabelle ABOU 1 ALGORITHMIQUE ET PROGRAMMATION REFLEXIONS ET EXPERIMENTATIONS IREM DE LA REUNION Le 28 Octobre 2009.

Présentations similaires


Présentation au sujet: "Isabelle ABOU 1 ALGORITHMIQUE ET PROGRAMMATION REFLEXIONS ET EXPERIMENTATIONS IREM DE LA REUNION Le 28 Octobre 2009."— Transcription de la présentation:

1 Isabelle ABOU 1 ALGORITHMIQUE ET PROGRAMMATION REFLEXIONS ET EXPERIMENTATIONS IREM DE LA REUNION Le 28 Octobre 2009

2 Isabelle ABOU 2 POURQUOI LALGORITHMIQUE? - Nécessité pour lÉcole de sinscrire dans la société civile où les média sont omniprésents. - Nécessité pour lÉcole de sinscrire dans la société civile où les média sont omniprésents. - Lutilisation des TIC devient une pratique incontournable de lenseignant et de lélève. - Lutilisation des TIC devient une pratique incontournable de lenseignant et de lélève. - La recherche en informatique fait partie des « mathématiques appliquées et applications des mathématiques ». - La recherche en informatique fait partie des « mathématiques appliquées et applications des mathématiques ». - Faire prendre conscience à lélève que la technologie est le fruit dun travail logique et rigoureux de lHomme sous tendu par les mathématiques, et par voie de conséquence par linformatique. - Faire prendre conscience à lélève que la technologie est le fruit dun travail logique et rigoureux de lHomme sous tendu par les mathématiques, et par voie de conséquence par linformatique.

3 Isabelle ABOU 3 RECHERCHES ACTUELLES EN ALGORITHMIQUE De nombreuses recherches et problèmes mathématiques sont en inter-relation avec les recherches en algorithmique. De nombreuses recherches et problèmes mathématiques sont en inter-relation avec les recherches en algorithmique. Celles-ci concernent Celles-ci concernent - la complexité en moyenne et - la complexité en moyenne et - de nombreuses applications en ingénierie comme: - de nombreuses applications en ingénierie comme: la téléphonie mobile, la téléphonie mobile, le cryptage, le cryptage, la compression dimage et de son, la compression dimage et de son, les codes correcteurs, les codes correcteurs, Internet, Internet, la recherche en bio-informatique sur lidentification et létude de codes dans les génomes et leur modélisation évolutive stochastique. la recherche en bio-informatique sur lidentification et létude de codes dans les génomes et leur modélisation évolutive stochastique. Beaucoup de colloques concernent les recherches de pointe en algorithmique. Beaucoup de colloques concernent les recherches de pointe en algorithmique.

4 Isabelle ABOU 4 APPORTS DE LALGORITHMIQUE - Faire appréhender à lélève de façon différente certaines notions comme la logique, et par voie de conséquence développer lesprit scientifique. - Faire appréhender à lélève de façon différente certaines notions comme la logique, et par voie de conséquence développer lesprit scientifique. - Promouvoir légalité des chances pour tous les élèves puisquils commencent lalgorithmique au même niveau sans le poids des lacunes antérieures. - Promouvoir légalité des chances pour tous les élèves puisquils commencent lalgorithmique au même niveau sans le poids des lacunes antérieures. - Donner un renouveau à la perception quont les élèves de lobjet mathématique, laspect calculatoire nétant pas au premier plan. - Donner un renouveau à la perception quont les élèves de lobjet mathématique, laspect calculatoire nétant pas au premier plan. Dans lesprit du paradigme du diviser pour régner utilisé pour lécriture dun algorithme ou dun programme, privilégier le travail de groupe. Dans lesprit du paradigme du diviser pour régner utilisé pour lécriture dun algorithme ou dun programme, privilégier le travail de groupe. - Faire de la pédagogie différenciée en demandant à certains élèves danalyser un algorithme, d'en écrire de simples, et à d'autres, de faire ce même travail en demandant, en plus, de modifier l'algorithme de départ pour le rendre plus performant ou pour y ajouter des fonctionnalités. - Faire de la pédagogie différenciée en demandant à certains élèves danalyser un algorithme, d'en écrire de simples, et à d'autres, de faire ce même travail en demandant, en plus, de modifier l'algorithme de départ pour le rendre plus performant ou pour y ajouter des fonctionnalités.

5 Isabelle ABOU 5 POURQUOI LA PROGRAMMATION? Nombre délèves ont des difficultés car les mathématiques demandent des capacités dabstraction non seulement au niveau des notions abordées mais aussi au niveau du de lanalyse du résultat obtenu, de sa signification. Nombre délèves ont des difficultés car les mathématiques demandent des capacités dabstraction non seulement au niveau des notions abordées mais aussi au niveau du de lanalyse du résultat obtenu, de sa signification. Pour écrire un algorithme, il faut dabord décomposer toutes les étapes nécessaires à la résolution dun problème, il faut ensuite rédiger rigoureusement sa résolution. Pour écrire un algorithme, il faut dabord décomposer toutes les étapes nécessaires à la résolution dun problème, il faut ensuite rédiger rigoureusement sa résolution. Écrire un programme permet de vérifier concrètement que lalgorithme fonctionne. Écrire un programme permet de vérifier concrètement que lalgorithme fonctionne. Si le programme ne tourne pas, son concepteur est confronté à lui-même, il cherche son erreur, il fait des tentatives successives de corrections jusquà ce que le programme donne le résultat attendu. Si le programme ne tourne pas, son concepteur est confronté à lui-même, il cherche son erreur, il fait des tentatives successives de corrections jusquà ce que le programme donne le résultat attendu. Cela peut donc donner une place encore plus intéressante à lexpérimentation, et redonner aux élèves le goût de leffort; la satisfaction et la récompense étant bien concrètes. Cela peut donc donner une place encore plus intéressante à lexpérimentation, et redonner aux élèves le goût de leffort; la satisfaction et la récompense étant bien concrètes. On est donc dans une réelle démarche de recherche. On est donc dans une réelle démarche de recherche.

6 Isabelle ABOU 6 QUEL CHOIX DE LOGICIEL? Extrait du document ressources: Extrait du document ressources: Les calculatrices graphiques programmables peuvent être exploitées grâce à leur commodité dusage en classe entière. Cependant, leurs limites dues à leur petite taille et leur capacité mémoire incitent à proposer aux élèves des activités sappuyant sur des logiciels utilisables sur ordinateur. Les calculatrices graphiques programmables peuvent être exploitées grâce à leur commodité dusage en classe entière. Cependant, leurs limites dues à leur petite taille et leur capacité mémoire incitent à proposer aux élèves des activités sappuyant sur des logiciels utilisables sur ordinateur. Ceux utilisés dans ce document de lInspection Générale sont les logiciels des calculatrices TI et Casio, les logiciels Scratch, Scilab, Xcas, Python et Execalgo. Ceux utilisés dans ce document de lInspection Générale sont les logiciels des calculatrices TI et Casio, les logiciels Scratch, Scilab, Xcas, Python et Execalgo. Seuls Execalgo, Scratch, Scilab, et AlgoBox sur lesquels jai travaillé, seront présentés ici. Seuls Execalgo, Scratch, Scilab, et AlgoBox sur lesquels jai travaillé, seront présentés ici.

7 Isabelle ABOU 7 EXECALGO C'est un logiciel gratuit, mais qui n'est pas libre ni multi- plateforme. C'est un logiciel gratuit, mais qui n'est pas libre ni multi- plateforme. Dans un premier temps, je lai choisi car il est dédié à lapprentissage de lalgorithmique puisquil a été crée par un groupe dexperts pour les élèves de 1L et TL qui suivent l'option mathématiques. Dans un premier temps, je lai choisi car il est dédié à lapprentissage de lalgorithmique puisquil a été crée par un groupe dexperts pour les élèves de 1L et TL qui suivent l'option mathématiques. Très pédagogique, les instructions sont écrites en langage naturel, elles sont pré-écrites sur la fenêtre du programme, et il suffit de remplir avec des instructions chaque élément de la structure du programme, entrée: déclaration de variables et initialisation, traitement, et sortie. Très pédagogique, les instructions sont écrites en langage naturel, elles sont pré-écrites sur la fenêtre du programme, et il suffit de remplir avec des instructions chaque élément de la structure du programme, entrée: déclaration de variables et initialisation, traitement, et sortie. Cependant, il a certains défauts qui paraissent rédhibitoires: il ne possède pas dinstruction « input », il gère mal les instructions conditionnelles (il faut pour cela utiliser des points de branchements), et il na pas de fenêtre graphique. Cependant, il a certains défauts qui paraissent rédhibitoires: il ne possède pas dinstruction « input », il gère mal les instructions conditionnelles (il faut pour cela utiliser des points de branchements), et il na pas de fenêtre graphique. Il a été abandonné, en général, au profit dAlgoBox. Il a été abandonné, en général, au profit dAlgoBox.

8 Isabelle ABOU 8 SCRATCH C'est un logiciel libre, gratuit, et multi-plateforme. C'est un logiciel libre, gratuit, et multi-plateforme. Il a été crée au départ, aux États Unis, pour enseigner l'algorithmique et la programmation à des enfants de 7ans. Il a été crée au départ, aux États Unis, pour enseigner l'algorithmique et la programmation à des enfants de 7ans. Il a un côté très ludique puisqu'il y a un petit personnage sur la fenêtre, qui peut faire des mouvements grâce aux programmes que l'on écrit. Il a un côté très ludique puisqu'il y a un petit personnage sur la fenêtre, qui peut faire des mouvements grâce aux programmes que l'on écrit. Il donne la possibilité dexporter les algorithmes sur un site mutualisé. Il donne la possibilité dexporter les algorithmes sur un site mutualisé.sur un site mutualisésur un site mutualisé Il permet de créer des animations, de petites vidéos auxquelles on peut également ajouter des sons. Il permet de créer des animations, de petites vidéos auxquelles on peut également ajouter des sons. Pour programmer avec Scratch, il faut déplacer de petites briques où les instructions sont pré-écrites, il ny a pas à apprendre de syntaxe. Pour programmer avec Scratch, il faut déplacer de petites briques où les instructions sont pré-écrites, il ny a pas à apprendre de syntaxe. Les couleurs très vives de lécriture du code peuvent en rebuter certains. Les couleurs très vives de lécriture du code peuvent en rebuter certains. Ce n'est pas un logiciel de calcul scientifique, il ne connaît donc pas les règles de priorité, il faut donc décomposer toutes les opérations. Ce n'est pas un logiciel de calcul scientifique, il ne connaît donc pas les règles de priorité, il faut donc décomposer toutes les opérations.

9 Isabelle ABOU 9 SCILAB LYCEE C'est aussi un logiciel libre, gratuit, et multi-plateforme qui a été reformaté pour le lycée à partir du logiciel Scilab. C'est aussi un logiciel libre, gratuit, et multi-plateforme qui a été reformaté pour le lycée à partir du logiciel Scilab. Il est considéré comme une "super" calculatrice avec des possibilités de programmation assez importantes, création de fonctions comme sous- procédures dun programme principal, affichages de graphiques, tirages aléatoires, suites… Il est considéré comme une "super" calculatrice avec des possibilités de programmation assez importantes, création de fonctions comme sous- procédures dun programme principal, affichages de graphiques, tirages aléatoires, suites… Il est utilisé dans les classes préparatoires aux grandes écoles mais la syntaxe reste assez simple, plutôt synthétique. Il est utilisé dans les classes préparatoires aux grandes écoles mais la syntaxe reste assez simple, plutôt synthétique. La majorité des instructions sont en anglais, certaines comme afficher sont en français. La majorité des instructions sont en anglais, certaines comme afficher sont en français. Ce n'est pas un logiciel de calcul formel, toute variable qui est entrée doit avoir une valeur numérique. Ce n'est pas un logiciel de calcul formel, toute variable qui est entrée doit avoir une valeur numérique. Les calculs sont des calculs matriciels, un nombre réel est considéré comme une matrice 1x1. Les calculs sont des calculs matriciels, un nombre réel est considéré comme une matrice 1x1.

10 Isabelle ABOU 10 ALGOBOX Cest un logiciel libre, multi-plateforme et gratuit. Cest un logiciel libre, multi-plateforme et gratuit. Il a été crée pour aider à l'élaboration et à l'exécution d'algorithmes dans l'esprit du nouveau programme de seconde. Il a été crée pour aider à l'élaboration et à l'exécution d'algorithmes dans l'esprit du nouveau programme de seconde. Le code de l'algorithme se construit pas à pas grâce à des instructions de base pré-écrites que l'on insère. Le code de l'algorithme se construit pas à pas grâce à des instructions de base pré-écrites que l'on insère. Tous les algorithmes peuvent être exécutés et testés en mode classique, ainsi quen mode pas à pas. Tous les algorithmes peuvent être exécutés et testés en mode classique, ainsi quen mode pas à pas. Des exemples d'algorithme sont fournis avec le programme. Des exemples d'algorithme sont fournis avec le programme. En plus d'une sauvegarde classique, le code l'algorithme peut être imprimé et exporté sous forme de fichier texte, d'un document LaTeX, d'une page web dans laquelle il est possible de l'exécuter. En plus d'une sauvegarde classique, le code l'algorithme peut être imprimé et exporté sous forme de fichier texte, d'un document LaTeX, d'une page web dans laquelle il est possible de l'exécuter. AlgoBox n'est pas un environnement complet de programmation, ses capacités en "programmation pure" sont donc limitées. AlgoBox n'est pas un environnement complet de programmation, ses capacités en "programmation pure" sont donc limitées. Démo Démo Démo Tutoriel Tutoriel Tutoriel

11 Isabelle ABOU 11 CHOIX DALGOBOX Extrait du document ressources: Extrait du document ressources: Il faut avant tout éviter de confronter les élèves à des difficultés trop importantes; en effet la classe de seconde est une classe de détermination et il ne sagit pas dy former des programmeurs mais de faire en sorte que les mathématiques et lalgorithmique soient au service dactivités de résolution de problèmes pour les sciences. Il faut avant tout éviter de confronter les élèves à des difficultés trop importantes; en effet la classe de seconde est une classe de détermination et il ne sagit pas dy former des programmeurs mais de faire en sorte que les mathématiques et lalgorithmique soient au service dactivités de résolution de problèmes pour les sciences. Au niveau de la syntaxe, la programmation avec AlgoBox est très proche de lécriture dun algorithme sur papier, en pseudo-code. Au niveau de la syntaxe, la programmation avec AlgoBox est très proche de lécriture dun algorithme sur papier, en pseudo-code. AlgoBox permet de ne pas ajouter à la difficulté dapprentissage de lalgorithmique, la difficulté dapprentissage de la syntaxe dun langage de programmation. AlgoBox permet de ne pas ajouter à la difficulté dapprentissage de lalgorithmique, la difficulté dapprentissage de la syntaxe dun langage de programmation. Le déroulement pas à pas est très intéressant au niveau pédagogique car cela est équivalent à faire tourner lalgorithme à la main, la valeur de chaque variable étant affichée au fur et à mesure du déroulement de lalgorithme. Le déroulement pas à pas est très intéressant au niveau pédagogique car cela est équivalent à faire tourner lalgorithme à la main, la valeur de chaque variable étant affichée au fur et à mesure du déroulement de lalgorithme. AlgoBox permet donc dêtre en conformité avec les objectifs et les exigences du programme de seconde sans rebuter la majorité des élèves qui ne passeront pas en section scientifique, et sans pénaliser ceux qui y passeront. AlgoBox permet donc dêtre en conformité avec les objectifs et les exigences du programme de seconde sans rebuter la majorité des élèves qui ne passeront pas en section scientifique, et sans pénaliser ceux qui y passeront.

12 Isabelle ABOU 12 COMPETENCES Extrait du document ressources: Extrait du document ressources: Les compétences suivantes pourront être identifiées et travaillées: – comprendre et analyser un algorithme préexistant ; – modifier un algorithme pour obtenir un résultat particulier ; – analyser la situation : identifier les données dentré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, daffichage... ; – valider la solution algorithmique par des traces dexécution et des jeux dessais simples ; – adapter lalgorithme aux contraintes du langage de programmation : identifier si nécessaire la nature des variables...; – valider un programme simple.

13 Isabelle ABOU 13 ORGANISATION DES ENSEIGNEMENTS Extrait du document ressources: Extrait du document ressources: Il serait souhaitable dintégrer lécriture dalgorithmes dans tous les domaines du programme : – fonctions : étude numérique et asymptotique; – géométrie : les questions daffichage, de positionnement et de déplacement dobjets géométriques simples (points, segments, cercles) peuvent être un champ dinvestigation très riche ; – statistique : questions de tris, détermination de certains indicateurs (médiane, quartiles) ; – probabilités : la modélisation de certains phénomènes à partir de fréquences observées : méthode dite de Monte-Carlo,etc. ; – numérique : le traitement des nombres permet daborder des problèmes de comparaisons et de taille des nombres, dexactitude dans les calculs, etc.

14 Isabelle ABOU 14 EXPERIENCE PERSONNELLE Introduction à lalgorithmique grâce à une recette de cuisine. Introduction à lalgorithmique grâce à une recette de cuisine. Premiers algorithmes en géométrie repérée, coordonnées du milieu dun segment, distance entre deux points, le triangle est-il équilatéral, isocèle, rectangle, quatrième point dun parallélogramme… Premiers algorithmes en géométrie repérée, coordonnées du milieu dun segment, distance entre deux points, le triangle est-il équilatéral, isocèle, rectangle, quatrième point dun parallélogramme… Algorithmes suivants sur les fonctions: valeurs dune fonction, tracé de la courbe représentative dune fonction… Algorithmes suivants sur les fonctions: valeurs dune fonction, tracé de la courbe représentative dune fonction… A venir: algorithmes sur les fonctions affines par morceaux, sur les droites, en statistique avec la simulation, léchantillonnage, en probabilités, avec les fonctions de référence, les vecteurs, etc… A venir: algorithmes sur les fonctions affines par morceaux, sur les droites, en statistique avec la simulation, léchantillonnage, en probabilités, avec les fonctions de référence, les vecteurs, etc…

15 Isabelle ABOU 15 QUELLES ACTIVITES ALGORITHMIQUES? COMMENT LES RELIER AU PROGRAMME? Je présenterai: Je présenterai: * une introduction, très simple, à lalgorithmique avec une recette de cuisine, * une introduction, très simple, à lalgorithmique avec une recette de cuisine, * des activités algorithmiques: * des activités algorithmiques: - en géométrie repérée avec des travaux délèves, - en géométrie repérée avec des travaux délèves, - sur les fonctions avec le programme donnant les valeurs et le tracé dune fonction affine par morceaux, - sur les fonctions avec le programme donnant les valeurs et le tracé dune fonction affine par morceaux, - en statistiques dans le domaine de la simulation. - en statistiques dans le domaine de la simulation. Avec une analyse pédagogique de chaque activité. Avec une analyse pédagogique de chaque activité.

16 Isabelle ABOU 16 INTRODUCTION RECETTE DE CUISINE Ingrédients de la pâte à crêpes: Ingrédients de la pâte à crêpes: 200g de farine 200g de farine 1 pincée de sel 1 pincée de sel ½ sachet de levure ½ sachet de levure 3 cuillerées à soupe d'huile 3 cuillerées à soupe d'huile 15cl d'eau 15cl d'eau 15 cl de lait 15 cl de lait 4 oeufs 4 oeufs 4 cuillerées à soupe de rhum 4 cuillerées à soupe de rhum 2 cuillerées à soupe de sucre + vanille 2 cuillerées à soupe de sucre + vanille Préparation de la pâte dans le désordre: Préparation de la pâte dans le désordre: ajouter le sucre + vanille ajouter le sucre + vanille si la pâte est trop épaisse, ajouter un peu de lait si la pâte est trop épaisse, ajouter un peu de lait mélanger les ingrédients mélanger les ingrédients battre les œufs battre les œufs laisser reposer la pâte laisser reposer la pâte casser les oeufs casser les oeufs délayer le tout avec l'eau + lait + rhum + huile délayer le tout avec l'eau + lait + rhum + huile ajouter la farine + levure + sel ajouter la farine + levure + sel Exercice: Exercice: Remettre dans l'ordre les instructions de la recette de la pâte à crêpes. Remettre dans l'ordre les instructions de la recette de la pâte à crêpes. Identifier les étapes de la recette avec les étapes dun algorithme. Identifier les étapes de la recette avec les étapes dun algorithme. ENTREE: ENTREE: Déclaration: Liste des ingrédients Déclaration: Liste des ingrédients Initialisation: Dosage de chaque ingrédient Initialisation: Dosage de chaque ingrédient TRAITEMENT: TRAITEMENT: I1: casser les oeufs I1: casser les oeufs I2: battre les oeufs I2: battre les oeufs I3: ajouter le sucre + vanille I3: ajouter le sucre + vanille I4: ajouter la farine + levure + sel I4: ajouter la farine + levure + sel I5: mélanger les ingrédients I5: mélanger les ingrédients I6: délayer le tout avec l'eau + lait + rhum + huile I6: délayer le tout avec l'eau + lait + rhum + huile I7: si la pâte est trop épaisse, ajouter un peu de lait I7: si la pâte est trop épaisse, ajouter un peu de lait SORTIE: SORTIE: I8: laisser reposer la pâte I8: laisser reposer la pâte

17 Isabelle ABOU 17 ANALYSE PEDAGOGIQUE Ce premier exemple avec la recette de cuisine peut être intéressant car il est très simple pour commencer, et permet de: Ce premier exemple avec la recette de cuisine peut être intéressant car il est très simple pour commencer, et permet de: - faire une petite recherche opérationnelle et dintroduire limportance de lordre des instructions, - faire une petite recherche opérationnelle et dintroduire limportance de lordre des instructions, - mettre en évidence les trois étapes dun algorithme: entrée, traitement, sortie, - mettre en évidence les trois étapes dun algorithme: entrée, traitement, sortie, - introduire une instruction conditionnelle. - introduire une instruction conditionnelle.

18 Isabelle ABOU 18 PREMIERE RECHERCHE PAR LES ELEVES Lalgorithme qui parait être le plus simple est « calcul des coordonnées du milieu dun segment ». Lalgorithme qui parait être le plus simple est « calcul des coordonnées du milieu dun segment ». Il permet dintroduire les notions fondamentales de lecture/ écriture, de mettre laccent sur la différence entre « Afficher un message » et « Afficher la valeur dune variable », qui sont deux instructions différenciées dans AlgoBox, ainsi que sur linstruction « Lire la valeur dune variable ». Il permet dintroduire les notions fondamentales de lecture/ écriture, de mettre laccent sur la différence entre « Afficher un message » et « Afficher la valeur dune variable », qui sont deux instructions différenciées dans AlgoBox, ainsi que sur linstruction « Lire la valeur dune variable ». Dans un premier temps lalgorithme a été cherché sur papier, puis le programme écrit sans le tracé du graphique, et à une autre séance, nous avons rajouté le tracé du graphique. Dans un premier temps lalgorithme a été cherché sur papier, puis le programme écrit sans le tracé du graphique, et à une autre séance, nous avons rajouté le tracé du graphique. La prise en main du logiciel avec ses différentes fonctionnalités a duré environ 1 heure, lécriture de lalgorithme, 1 heure, les rectifications éventuelles et pour certains lécriture dun autre algorithme, encore 1 heure. La prise en main du logiciel avec ses différentes fonctionnalités a duré environ 1 heure, lécriture de lalgorithme, 1 heure, les rectifications éventuelles et pour certains lécriture dun autre algorithme, encore 1 heure.

19 Isabelle ABOU 19 COMMENTAIRES Je donnerai dabord lalgorithme et le programme corrects, puis des programmes comportant des erreurs commises par mes élèves de seconde. Je donnerai dabord lalgorithme et le programme corrects, puis des programmes comportant des erreurs commises par mes élèves de seconde. Ceux-ci sont intéressants car ils permettent de mettre en évidence les difficultés rencontrées. Ceux-ci sont intéressants car ils permettent de mettre en évidence les difficultés rencontrées. On notera toutefois que certains élèves ont eu le temps décrire le programme correct sans le tracé du graphique, certains avec le tracé du graphique, et dautres décrire également lalgorithme « calcul de la distance entre deux points ». On notera toutefois que certains élèves ont eu le temps décrire le programme correct sans le tracé du graphique, certains avec le tracé du graphique, et dautres décrire également lalgorithme « calcul de la distance entre deux points ». Ces séances pourrons donner loccasion de faire de la pédagogie différenciée, puisque les élèves nen ont pas été au même stade dapprentissage ni de compréhension. Ces séances pourrons donner loccasion de faire de la pédagogie différenciée, puisque les élèves nen ont pas été au même stade dapprentissage ni de compréhension.

20 Isabelle ABOU 20 ALGORITHME: COORDONNEES DU MILIEU DUN SEGMENT ENTREE: ENTREE: Déclaration: xA, yA, xB, yB, xI, yI, nombres entiers (ou réels) Déclaration: xA, yA, xB, yB, xI, yI, nombres entiers (ou réels) Affectation: Afficher "Entrer l'abscisse du point A" Affectation: Afficher "Entrer l'abscisse du point A" Lire xA Lire xA Afficher "Entrer l'ordonnée du point A" Afficher "Entrer l'ordonnée du point A" Lire yA Lire yA Afficher "Entrer l'abscisse du point B" Afficher "Entrer l'abscisse du point B" Lire xB Lire xB Afficher "Entrer l'ordonnée du point B" Afficher "Entrer l'ordonnée du point B" Lire yB Lire yB TRAITEMENT TRAITEMENT Donner à xI la valeur (xA+xB)/2 Donner à xI la valeur (xA+xB)/2 Donner à yI la valeur (yA+yB)/2 Donner à yI la valeur (yA+yB)/2 SORTIE SORTIE Afficher "L'abscisse du milieu I de [AB] est:", xI Afficher "L'abscisse du milieu I de [AB] est:", xI Afficher "L'ordonnée du milieu I de [AB] est:", yI Afficher "L'ordonnée du milieu I de [AB] est:", yI Remarque: Dans les programmes qui suivent écrits avec AlgoBox, lindentation napparaît pas à limpression mais est automatique lors de lécriture du code. Remarque: Dans les programmes qui suivent écrits avec AlgoBox, lindentation napparaît pas à limpression mais est automatique lors de lécriture du code.

21 Isabelle ABOU 21 PROGRAMME ALGOBOX COORDONNEES DU MILIEU 1 VARIABLES 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 8 DEBUT_ALGORITHME 9 AFFICHER "Donner une valeur à xA" 9 AFFICHER "Donner une valeur à xA" 10 LIRE xA 10 LIRE xA 11 AFFICHER "Donner une valeur à yA" 11 AFFICHER "Donner une valeur à yA" 12 LIRE yA 12 LIRE yA 13 AFFICHER "Donner une valeur à xB" 13 AFFICHER "Donner une valeur à xB" 14 LIRE xB 14 LIRE xB 15 AFFICHER "Donner une valeur à yB" 15 AFFICHER "Donner une valeur à yB" 16 LIRE yB 16 LIRE yB 17 xI PREND_LA_VALEUR (xA+xB)/2 17 xI PREND_LA_VALEUR (xA+xB)/2 18 yI PREND_LA_VALEUR (yA+yB)/2 18 yI PREND_LA_VALEUR (yA+yB)/2 19 AFFICHER "L'abscisse du milieu I de [AB] est xI=" 19 AFFICHER "L'abscisse du milieu I de [AB] est xI=" 20 AFFICHER xI 20 AFFICHER xI 21 AFFICHER "L'ordonnée du milieu I de [AB] est yI=" 21 AFFICHER "L'ordonnée du milieu I de [AB] est yI=" 22 AFFICHER yI 22 AFFICHER yI 23 TRACER_POINT (xA,yA) 23 TRACER_POINT (xA,yA) 24 TRACER_POINT (xB,yB) 24 TRACER_POINT (xB,yB) 25 TRACER_POINT (xI,yI) 25 TRACER_POINT (xI,yI) 26 TRACER_SEGMENT (xA,yA)- >(xB,yB) 26 TRACER_SEGMENT (xA,yA)- >(xB,yB) 27 FIN_ALGORITHME 27 FIN_ALGORITHME

22 Isabelle ABOU 22 2 PROGRAMMES DELEVES AVEC DES ERREURS 1 VARIABLES 1 VARIABLES 2 xa EST_DU_TYPE NOMBRE 2 xa EST_DU_TYPE NOMBRE 3 ya EST_DU_TYPE NOMBRE 3 ya EST_DU_TYPE NOMBRE 4 xb EST_DU_TYPE NOMBRE 4 xb EST_DU_TYPE NOMBRE 5 yb EST_DU_TYPE NOMBRE 5 yb EST_DU_TYPE NOMBRE 6 xi EST_DU_TYPE NOMBRE 6 xi EST_DU_TYPE NOMBRE 7 yi EST_DU_TYPE NOMBRE 7 yi EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 8 DEBUT_ALGORITHME 9 AFFICHER "donner une valeur à xa" 9 AFFICHER "donner une valeur à xa" 10 AFFICHER "donner une à ya" 10 AFFICHER "donner une à ya" 11 AFFICHER "donner une valeur à xb" 11 AFFICHER "donner une valeur à xb" 12 AFFICHER "donner une valeur à yb" 12 AFFICHER "donner une valeur à yb" 13 AFFICHER "donner une valeur à xi" 13 AFFICHER "donner une valeur à xi" 14 AFFICHER "donner une valeur à yi" 14 AFFICHER "donner une valeur à yi" 15 FIN_ALGORITHME 15 FIN_ALGORITHME 1 VARIABLES 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 8 DEBUT_ALGORITHME 9 LIRE xA 9 LIRE xA 10 LIRE yA 10 LIRE yA 11 LIRE xB 11 LIRE xB 12 LIRE yB 12 LIRE yB 13 LIRE xI 13 LIRE xI 14 LIRE yI 14 LIRE yI 15 FIN_ALGORITHME 15 FIN_ALGORITHME

23 Isabelle ABOU 23 2 PROGRAMMES DELEVES AVEC DES ERREURS 1 VARIABLES 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 2 xA EST_DU_TYPE NOMBRE 3 xB EST_DU_TYPE NOMBRE 3 xB EST_DU_TYPE NOMBRE 4 yA EST_DU_TYPE NOMBRE 4 yA EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 8 DEBUT_ALGORITHME 9 AFFICHER "donner une valeur à xA" 9 AFFICHER "donner une valeur à xA" 10 LIRE xA 10 LIRE xA 11 AFFICHER "donner une valeur à yA" 11 AFFICHER "donner une valeur à yA" 12 LIRE yA 12 LIRE yA 13 AFFICHER "donner une une valeur à xB" 13 AFFICHER "donner une une valeur à xB" 14 LIRE xB 14 LIRE xB 15 AFFICHER "donner la valeur à yB" 15 AFFICHER "donner la valeur à yB" 16 LIRE yB 16 LIRE yB 17 xI PREND_LA_VALEUR (xA+xB)/2 17 xI PREND_LA_VALEUR (xA+xB)/2 18 xA PREND_LA_VALEUR (yA+yB)/2 18 xA PREND_LA_VALEUR (yA+yB)/2 19 FIN_ALGORITHME 19 FIN_ALGORITHME 1 VARIABLES 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 6 xI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 7 yI EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 8 DEBUT_ALGORITHME 9 AFFICHER "donner une valeur à xA" 9 AFFICHER "donner une valeur à xA" 10 AFFICHER "LIRE xA" 10 AFFICHER "LIRE xA" 11 AFFICHER "donner une valeur à yA" 11 AFFICHER "donner une valeur à yA" 12 AFFICHER "LIRE yA" 12 AFFICHER "LIRE yA" 13 AFFICHER "donner une valeur à xB" 13 AFFICHER "donner une valeur à xB" 14 AFFICHER "LIRE xB" 14 AFFICHER "LIRE xB" 15 AFFICHER "donner une valeur à yB" 15 AFFICHER "donner une valeur à yB" 16 AFFICHER "LIRE yB" 16 AFFICHER "LIRE yB" 17 xI PREND_LA_VALEUR (xA+xB)/2 17 xI PREND_LA_VALEUR (xA+xB)/2 18 yI PREND_LA_VALEUR (yA+yB)/2 18 yI PREND_LA_VALEUR (yA+yB)/2 19 AFFICHER "l'abscisse du milileu I de [AB] est:xI=" 19 AFFICHER "l'abscisse du milileu I de [AB] est:xI=" 20 AFFICHER "LIRE xI" 20 AFFICHER "LIRE xI" 21 AFFICHER "l'ordonnée du milieu I de[AB] est: yI=" 21 AFFICHER "l'ordonnée du milieu I de[AB] est: yI=" 22 AFFICHER "LIRE yI" 22 AFFICHER "LIRE yI" 23 FIN_ALGORITHME 23 FIN_ALGORITHME

24 Isabelle ABOU 24 PROGRAMME DELEVE AVEC DES ERREURS 1 VARIABLES 1 VARIABLES 2 xa EST_DU_TYPE NOMBRE 2 xa EST_DU_TYPE NOMBRE 3 ya EST_DU_TYPE NOMBRE 3 ya EST_DU_TYPE NOMBRE 4 xb EST_DU_TYPE NOMBRE 4 xb EST_DU_TYPE NOMBRE 5 yb EST_DU_TYPE NOMBRE 5 yb EST_DU_TYPE NOMBRE 6 xi EST_DU_TYPE NOMBRE 6 xi EST_DU_TYPE NOMBRE 7 yi EST_DU_TYPE NOMBRE 7 yi EST_DU_TYPE NOMBRE 8 DEBUT_ALGORITHME 8 DEBUT_ALGORITHME 9 AFFICHER "donnée une valeur à xa" 9 AFFICHER "donnée une valeur à xa" 10 LIRE xa 10 LIRE xa 11 AFFICHER "donnée une valeur à ya" 11 AFFICHER "donnée une valeur à ya" 12 LIRE ya 12 LIRE ya 13 AFFICHER "donnée une valeur à xb" 13 AFFICHER "donnée une valeur à xb" 14 LIRE xb 14 LIRE xb 15 AFFICHER "donnée une valeur à yb" 15 AFFICHER "donnée une valeur à yb" 16 LIRE yb 16 LIRE yb 17 xi PREND_LA_VALEUR (xa+xb)/2 17 xi PREND_LA_VALEUR (xa+xb)/2 18 yi PREND_LA_VALEUR (ya+yb)/2 18 yi PREND_LA_VALEUR (ya+yb)/2 19 LIRE xi 19 LIRE xi 20 LIRE yi 20 LIRE yi 21 AFFICHER "l'abscisse du milieu I de [AB] est:=xI" 21 AFFICHER "l'abscisse du milieu I de [AB] est:=xI" 22 FIN_ALGORITHME 22 FIN_ALGORITHME

25 Isabelle ABOU 25 COMMENTAIRES Au travers de ces divers exemples de programmes délèves comportant des erreurs, on saperçoit que les notions dEntrée/Sortie qui se traduisent par les instructions Lire/Afficher ne sont pas aisées à comprendre. Au travers de ces divers exemples de programmes délèves comportant des erreurs, on saperçoit que les notions dEntrée/Sortie qui se traduisent par les instructions Lire/Afficher ne sont pas aisées à comprendre. Pour les élèves qui écrivent donner une valeur à xA sans écrire ensuite lire xA, on peut supposer quils imaginent que la valeur est donnée dès le moment où ils écrivent donner une valeur à… alors quil sagit dun message adressé à lutilisateur du programme. Pour les élèves qui écrivent donner une valeur à xA sans écrire ensuite lire xA, on peut supposer quils imaginent que la valeur est donnée dès le moment où ils écrivent donner une valeur à… alors quil sagit dun message adressé à lutilisateur du programme. Cela permet de travailler sur la notion de variable, bien différencier la variable de la valeur quelle peut prendre, donc dinsister aussi sur la notion daffectation. Cela permet de travailler sur la notion de variable, bien différencier la variable de la valeur quelle peut prendre, donc dinsister aussi sur la notion daffectation. AlgoBox différencie les instructions: Afficher message et Afficher variable, ce qui est également très intéressant au niveau pédagogique. AlgoBox différencie les instructions: Afficher message et Afficher variable, ce qui est également très intéressant au niveau pédagogique. On peut faire remarquer que, quand un message saffiche, les guillemets sont mis automatiquement, alors que ça nest pas le cas pour laffichage dune variable. On peut faire remarquer que, quand un message saffiche, les guillemets sont mis automatiquement, alors que ça nest pas le cas pour laffichage dune variable.

26 Isabelle ABOU 26 EXEMPLE DENONCE Considérons les points A(-1;1), B(1;2) et C(3;-2). Considérons les points A(-1;1), B(1;2) et C(3;-2). Utiliser un logiciel de géométrie pour faire le graphique. Utiliser un logiciel de géométrie pour faire le graphique. 1/ Placer ces points dans un repère orthonormé. 1/ Placer ces points dans un repère orthonormé. 2/ Dessiner le triangle ABC. 2/ Dessiner le triangle ABC. 3/ Que peut-on conjecturer sur ce triangle? 3/ Que peut-on conjecturer sur ce triangle? 4/ Calculer les mesures des longueurs des côtés [AB], [BC], et [AC]. 4/ Calculer les mesures des longueurs des côtés [AB], [BC], et [AC]. 5/ - Le triangle ABC est-il équilatéral? 5/ - Le triangle ABC est-il équilatéral? - Le triangle ABC est-il isocèle? - Le triangle ABC est-il isocèle? - Le triangle ABC est-il rectangle? - Le triangle ABC est-il rectangle? 6/ En déduire la position du centre I du cercle circonscrit au triangle ABC. 6/ En déduire la position du centre I du cercle circonscrit au triangle ABC. 7/ Calculer les coordonnées de I, et donner la valeur du rayon de ce cercle. 7/ Calculer les coordonnées de I, et donner la valeur du rayon de ce cercle. Tracer ce cercle. Tracer ce cercle. 8/ Soit E(3;1). Montrer que E est un point de ce cercle. 8/ Soit E(3;1). Montrer que E est un point de ce cercle.

27 Isabelle ABOU 27 COMMENTAIRES PEDAGOGIQUES Cet énoncé permet de montrer la nécessité de lalgorithme de calcul de la distance entre deux points qui intervient à plusieurs reprises dans lexercice. Cet énoncé permet de montrer la nécessité de lalgorithme de calcul de la distance entre deux points qui intervient à plusieurs reprises dans lexercice. On introduit les algorithmes permettant de tester si un triangle est équilatéral, isocèle, rectangle. On introduit les algorithmes permettant de tester si un triangle est équilatéral, isocèle, rectangle. Il y a une progressivité dans la difficulté de ces algorithmes car les tests logiques sont de difficultés croissantes. Il y a une progressivité dans la difficulté de ces algorithmes car les tests logiques sont de difficultés croissantes. - Le test du triangle équilatéral utilise le connecteur logique ET avec deux conditions, dans une structure SI...ALORS…SINON. - Le test du triangle équilatéral utilise le connecteur logique ET avec deux conditions, dans une structure SI...ALORS…SINON. - Le test du triangle isocèle utilise le connecteur logique OU avec trois conditions, dans une structure SI…ALORS…SINON. - Le test du triangle isocèle utilise le connecteur logique OU avec trois conditions, dans une structure SI…ALORS…SINON. - Le test du triangle rectangle utilise plusieurs tests imbriqués SI…ALORS…SINON. - Le test du triangle rectangle utilise plusieurs tests imbriqués SI…ALORS…SINON. On peut réinvestir tous ces algorithmes dans dautres exercices. On peut réinvestir tous ces algorithmes dans dautres exercices.

28 Isabelle ABOU 28 COMMENTAIRES PEDAGOGIQUES Algorithme triangle équilatéral Tout dabord, au niveau de la conception de lalgorithme, certains élèves ont beaucoup de mal à expliciter leur démarche. Tout dabord, au niveau de la conception de lalgorithme, certains élèves ont beaucoup de mal à expliciter leur démarche. Même sils savent résoudre le problème mathématique posé, ils ne parviennent pas forcément à écrire lalgorithme correctement. Même sils savent résoudre le problème mathématique posé, ils ne parviennent pas forcément à écrire lalgorithme correctement. Dans tous les programmes où interviennent des calculs de distances, jai préféré demander aux élèves de calculer et de faire afficher la distance au carré, et ensuite la distance, pour bien différencier valeur exacte et valeur approchée, et éviter ainsi certains problèmes lors de comparaisons. Dans tous les programmes où interviennent des calculs de distances, jai préféré demander aux élèves de calculer et de faire afficher la distance au carré, et ensuite la distance, pour bien différencier valeur exacte et valeur approchée, et éviter ainsi certains problèmes lors de comparaisons. Une remarque à propos de lalgorithme triangle équilatéral: il est dautant plus intéressant au niveau du travail sur la logique que lon constate que le test (AB²=AC²) ET (AB²=BC²) est souvent écrit au début par élèves: (AB²=AC²) ET (AB²=BC²) ET (AC²=BC²). Une remarque à propos de lalgorithme triangle équilatéral: il est dautant plus intéressant au niveau du travail sur la logique que lon constate que le test (AB²=AC²) ET (AB²=BC²) est souvent écrit au début par élèves: (AB²=AC²) ET (AB²=BC²) ET (AC²=BC²).

29 Isabelle ABOU 29 PROGRAMME ALGOBOX TRIANGLE EQUILATERAL 1 VARIABLES 1 VARIABLES 2 xA EST_DU_TYPE NOMBRE 2 xA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 3 yA EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 4 xB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 5 yB EST_DU_TYPE NOMBRE 6 xC EST_DU_TYPE NOMBRE 6 xC EST_DU_TYPE NOMBRE 7 yC EST_DU_TYPE NOMBRE 7 yC EST_DU_TYPE NOMBRE 8 D1 EST_DU_TYPE NOMBRE 8 D1 EST_DU_TYPE NOMBRE 9 D2 EST_DU_TYPE NOMBRE 9 D2 EST_DU_TYPE NOMBRE 10 D3 EST_DU_TYPE NOMBRE 10 D3 EST_DU_TYPE NOMBRE 11 DEBUT_ALGORITHME 11 DEBUT_ALGORITHME 12 AFFICHER "donner une valeur à xA" 12 AFFICHER "donner une valeur à xA" 13 LIRE xA 13 LIRE xA 14 AFFICHER "donner une valeur à yA" 14 AFFICHER "donner une valeur à yA" 15 LIRE yA 15 LIRE yA 16 AFFICHER "donner une valeur à xB" 16 AFFICHER "donner une valeur à xB" 17 LIRE xB 17 LIRE xB 18 AFFICHER "donner une valeur à yB" 18 AFFICHER "donner une valeur à yB" 19 LIRE yB 19 LIRE yB 20 AFFICHER "donner une valeur à xC" 20 AFFICHER "donner une valeur à xC" 21 LIRE xC 21 LIRE xC 22 AFFICHER "donner une valeur à yC" 22 AFFICHER "donner une valeur à yC" 23 LIRE yC 23 LIRE yC 24 TRACER_POINT (xA,yA) 25 TRACER_POINT (xB,yB) 24 TRACER_POINT (xA,yA) 25 TRACER_POINT (xB,yB) 26 TRACER_POINT (xC,yC) 26 TRACER_POINT (xC,yC) 27 TRACER_SEGMENT (xA,yA)->(xB,yB) 27 TRACER_SEGMENT (xA,yA)->(xB,yB) 28 TRACER_SEGMENT (xA,yA)->(xC,yC) 28 TRACER_SEGMENT (xA,yA)->(xC,yC) 29 TRACER_SEGMENT (xB,yB)->(xC,yC) 29 TRACER_SEGMENT (xB,yB)->(xC,yC) 30 D1 PREND_LA_VALEUR pow((xB-xA),2)+pow((yB-yA),2) 30 D1 PREND_LA_VALEUR pow((xB-xA),2)+pow((yB-yA),2) 31 D2 PREND_LA_VALEUR pow((xC-xA),2)+pow((yC-yA),2) 31 D2 PREND_LA_VALEUR pow((xC-xA),2)+pow((yC-yA),2) 32 D3 PREND_LA_VALEUR pow((xC-xB),2)+pow((yC-yB),2) 32 D3 PREND_LA_VALEUR pow((xC-xB),2)+pow((yC-yB),2) 33 AFFICHER "la distance AB^2 vaut " 33 AFFICHER "la distance AB^2 vaut " 34 AFFICHER D1 34 AFFICHER D1 35 AFFICHER "la distance AC^2 vaut " 35 AFFICHER "la distance AC^2 vaut " 36 AFFICHER D2 36 AFFICHER D2 37 AFFICHER "la distance BC^2 vaut " 37 AFFICHER "la distance BC^2 vaut " 38 AFFICHER D3 38 AFFICHER D3 39 SI ((D1==D2) ET (D2==D3) ) ALORS 39 SI ((D1==D2) ET (D2==D3) ) ALORS 40 DEBUT_SI 40 DEBUT_SI 41 AFFICHER "le triangle est équilatéral" 41 AFFICHER "le triangle est équilatéral" 42 FIN_SI 42 FIN_SI 43 SINON 43 SINON 44 DEBUT_SINON 44 DEBUT_SINON 45 AFFICHER "le triangle n'est pas équilatéral" 45 AFFICHER "le triangle n'est pas équilatéral" 46 FIN_SINON 46 FIN_SINON 47 FIN_ALGORITHME 47 FIN_ALGORITHME

30 Isabelle ABOU 30 PROGRAMME ALGOBOX TRIANGLE ISOCELE Tout le début de lalgorithme jusquà la ligne 38, est identique à lalgorithme « triangle équilatéral ». Tout le début de lalgorithme jusquà la ligne 38, est identique à lalgorithme « triangle équilatéral ». Ils ne diffèrent quà partir des tests (ligne 39). Ils ne diffèrent quà partir des tests (ligne 39). 39 SI ((D1==D2) OU (D2==D3) OU (D1==D3)) ALORS 39 SI ((D1==D2) OU (D2==D3) OU (D1==D3)) ALORS 40 DEBUT_SI 40 DEBUT_SI 41 AFFICHER "le triangle est isocèle" 41 AFFICHER "le triangle est isocèle" 42 FIN_SI 42 FIN_SI 43 SINON 43 SINON 44 DEBUT_SINON 44 DEBUT_SINON 45 AFFICHER "le triangle n'est pas isocèle" 45 AFFICHER "le triangle n'est pas isocèle" 46 FIN_SINON 46 FIN_SINON 47 FIN_ALGORITHME 47 FIN_ALGORITHME

31 Isabelle ABOU 31 PROGRAMME ALGOBOX TRIANGLE RECTANGLE Tout le début de lalgorithme jusquà la ligne 38, est identique à lalgorithme « triangle équilatéral » ou « triangle isocèle ». Tout le début de lalgorithme jusquà la ligne 38, est identique à lalgorithme « triangle équilatéral » ou « triangle isocèle ». Ils ne diffèrent quà partir des tests (ligne 39). Ils ne diffèrent quà partir des tests (ligne 39). Nous avons fait le choix de ne pas introduire de tri, jugé trop difficile à ce stade dapprentissage. Nous avons fait le choix de ne pas introduire de tri, jugé trop difficile à ce stade dapprentissage. 39 SI (D3==D1+D2) ALORS 39 SI (D3==D1+D2) ALORS 40 DEBUT_SI 40 DEBUT_SI 41 AFFICHER "le triangle est rectangle en A" 41 AFFICHER "le triangle est rectangle en A" 42 FIN_SI 42 FIN_SI 43 SINON 43 SINON 44 DEBUT_SINON 44 DEBUT_SINON 45 SI (D2==D1+D3) ALORS 45 SI (D2==D1+D3) ALORS 46 DEBUT_SI 46 DEBUT_SI 47 AFFICHER "Le triangle est rectangle en B" 47 AFFICHER "Le triangle est rectangle en B" 48 FIN_SI 48 FIN_SI 49 SINON 49 SINON 50 DEBUT_SINON 50 DEBUT_SINON 51 SI (D1==D2+D3) ALORS 51 SI (D1==D2+D3) ALORS 52 DEBUT_SI 52 DEBUT_SI 53 AFFICHER "Le triangle est rectangle en C" 53 AFFICHER "Le triangle est rectangle en C" 54 FIN_SI 54 FIN_SI 55 SINON 55 SINON 56 DEBUT_SINON 56 DEBUT_SINON 57 AFFICHER "Le triangle n'est pas rectangle" 57 AFFICHER "Le triangle n'est pas rectangle" 58 FIN_SINON 58 FIN_SINON 59 FIN_SINON 59 FIN_SINON 60 FIN_SINON 60 FIN_SINON 61 FIN_ALGORITHME 61 FIN_ALGORITHME

32 Isabelle ABOU 32 ACTIVITE: CALCUL DU SALAIRE DUN EMPLOYE On veut écrire une fonction permettant de calculer le salaire d'un employé payé à l'heure à partir de son salaire horaire et du nombre d'heures de travail. On veut écrire une fonction permettant de calculer le salaire d'un employé payé à l'heure à partir de son salaire horaire et du nombre d'heures de travail. Les règles de calcul sont les suivantes : Les règles de calcul sont les suivantes : le taux horaire est majoré, pour les heures supplémentaires, le taux horaire est majoré, pour les heures supplémentaires, - de 25% au-delà de 160 heures, - de 25% au-delà de 160 heures, - de 50% au-delà de 200 heures. - de 50% au-delà de 200 heures.

33 Isabelle ABOU 33 FICHE PEDAGOGIQUE Cet exercice permet de faire calculer une expression qui dépend de lintervalle où lon se place. Cet exercice permet de faire calculer une expression qui dépend de lintervalle où lon se place. Cest un algorithme opératoire qui utilise des tests imbriqués. Cest un algorithme opératoire qui utilise des tests imbriqués. Cet exercice permet également de travailler sur les coefficients multiplicateurs. Cet exercice permet également de travailler sur les coefficients multiplicateurs. On écrira le programme « FONCTION SALAIRES », donnant les valeurs de la fonction salaires, définie par morceaux sur [0;160[, [160; 200[, On écrira le programme « FONCTION SALAIRES », donnant les valeurs de la fonction salaires, définie par morceaux sur [0;160[, [160; 200[, [200; 240], et qui est continue. [200; 240], et qui est continue. La fonction renvoie le salaire S en fonction du nombre dheures effectuées nh (nh compris entre 0 et 240), avec un salaire horaire entré au clavier sh. La fonction renvoie le salaire S en fonction du nombre dheures effectuées nh (nh compris entre 0 et 240), avec un salaire horaire entré au clavier sh. On fera également tracer la courbe de la fonction par le programme. On fera également tracer la courbe de la fonction par le programme.

34 Isabelle ABOU 34 PROGAMME ALGOBOX FONCTION SALAIRE PROGAMME ALGOBOX FONCTION SALAIRE 1 VARIABLES 1 VARIABLES 2 sh EST_DU_TYPE NOMBRE 2 sh EST_DU_TYPE NOMBRE 3 nh EST_DU_TYPE NOMBRE 3 nh EST_DU_TYPE NOMBRE 4 S EST_DU_TYPE NOMBRE 4 S EST_DU_TYPE NOMBRE 5 DEBUT_ALGORITHME 5 DEBUT_ALGORITHME 6 AFFICHER "Entrer le salaire horaire " 6 AFFICHER "Entrer le salaire horaire " 7 LIRE sh 7 LIRE sh 8 AFFICHER "Le salaire horaire vaut: " 8 AFFICHER "Le salaire horaire vaut: " 9 AFFICHER sh 9 AFFICHER sh 10 SI ((nh 240)) ALORS 10 SI ((nh 240)) ALORS 11 DEBUT_SI 11 DEBUT_SI 12 AFFICHER "Le nombre d'heures est incorrect" 12 AFFICHER "Le nombre d'heures est incorrect" 13 FIN_SI 13 FIN_SI 14 SINON 14 SINON 15 DEBUT_SINON 15 DEBUT_SINON 16 TANT_QUE ((nh>=0) ET (nh =0) ET (nh<=240)) FAIRE 17 DEBUT_TANT_QUE 17 DEBUT_TANT_QUE 18 SI ((nh>=0) ET (nh =0) ET (nh<160)) ALORS 19 DEBUT_SI 19 DEBUT_SI 20 S PREND_LA_VALEUR sh*nh 20 S PREND_LA_VALEUR sh*nh 21 FIN_SI 21 FIN_SI 22 SINON 22 SINON 23 DEBUT_SINON 23 DEBUT_SINON 24 SI ((nh>=160) ET (nh =160) ET (nh<200)) ALORS 25 DEBUT_SI 25 DEBUT_SI 26 S PREND_LA_VALEUR 160*sh + (nh- 160)*1.25*sh 26 S PREND_LA_VALEUR 160*sh + (nh- 160)*1.25*sh 27 FIN_SI 27 FIN_SI 28 SINON 28 SINON 29 DEBUT_SINON 29 DEBUT_SINON 30 SI ((nh>=200) ET (nh =200) ET (nh<=240)) ALORS 31 DEBUT_SI 31 DEBUT_SI 32 S PREND_LA_VALEUR 160*sh + 40*sh* (nh-200)*sh* S PREND_LA_VALEUR 160*sh + 40*sh* (nh-200)*sh* FIN_SI 33 FIN_SI 34 FIN_SINON 34 FIN_SINON 35 FIN_SINON 35 FIN_SINON 36 TRACER_POINT (nh,S) 36 TRACER_POINT (nh,S) 37 AFFICHER "nh=" 37 AFFICHER "nh=" 38 AFFICHER nh 38 AFFICHER nh 39 AFFICHER "S=" 39 AFFICHER "S=" 40 AFFICHER S 40 AFFICHER S 41 nh PREND_LA_VALEUR nh+1 41 nh PREND_LA_VALEUR nh+1 42 FIN_TANT_QUE 42 FIN_TANT_QUE 43 FIN_SINON 43 FIN_SINON 44 FIN_ALGORITHME 44 FIN_ALGORITHME

35 Isabelle ABOU 35 LE JEU DU LIEVRE ET DE LA TORTUE Règle du jeu. Règle du jeu. À chaque tour, on lance un dé. Si le 6 sort, alors le lièvre gagne la partie, sinon la tortue avance dune case. À chaque tour, on lance un dé. Si le 6 sort, alors le lièvre gagne la partie, sinon la tortue avance dune case. La tortue gagne quand elle a avancé 6 fois. La tortue gagne quand elle a avancé 6 fois. Question : le jeu est-il à lavantage du lièvre ou de la tortue ? Question : le jeu est-il à lavantage du lièvre ou de la tortue ? Le document ressources fournit 3 algorithmes. Le document ressources fournit 3 algorithmes. Je nexposerai que le troisième qui contient une boucle. Je nexposerai que le troisième qui contient une boucle.

36 Isabelle ABOU 36 ALGORITHME 3 Algorithme 3 : Avec une structure itérative conditionnelle. Algorithme 3 : Avec une structure itérative conditionnelle. Évidemment, plutôt que de répéter 6 fois les mêmes instructions, il est possible de simuler une partie à laide dune boucle. Évidemment, plutôt que de répéter 6 fois les mêmes instructions, il est possible de simuler une partie à laide dune boucle. De cette façon, il sera facile dexpérimenter de nouveaux jeux en modifiant le nombre de cases que doit parcourir la tortue. De cette façon, il sera facile dexpérimenter de nouveaux jeux en modifiant le nombre de cases que doit parcourir la tortue. Variables Variables dé : la face du dé tirée au hasard dé : la face du dé tirée au hasard case : le numéro de la case sur laquelle se trouve la tortue case : le numéro de la case sur laquelle se trouve la tortue N : le nombre de cases que doit parcourir la tortue pour gagner. N : le nombre de cases que doit parcourir la tortue pour gagner. Initialisation Initialisation N prend la valeur 6 N prend la valeur 6 case prend la valeur 0. case prend la valeur 0. Traitement Traitement Répète Répète dé prend une valeur entière aléatoire entre 1 et 6 inclus. dé prend une valeur entière aléatoire entre 1 et 6 inclus. Si dé < 6 alors Si dé < 6 alors case prend la valeur case + 1 case prend la valeur case + 1 jusquà [ dé = 6 ou case = N ] jusquà [ dé = 6 ou case = N ] Sortie Sortie Si case = N alors Si case = N alors Affiche « La tortue gagne » Affiche « La tortue gagne » Sinon Sinon Affiche « Le lièvre gagne » Affiche « Le lièvre gagne »

37 Isabelle ABOU 37 PROGRAMME SCILAB fourni par le document ressource N=6; N=6; Ncase=0; Ncase=0; de=0; de=0; while (de<6 | Ncase

38 Isabelle ABOU 38 COMMENTAIRES Ci-après le programme écrit avec AlgoBox. Ci-après le programme écrit avec AlgoBox. Avec plusieurs exécutions, on obtient par exemple: Avec plusieurs exécutions, on obtient par exemple: Sur un essai avec 10 simulations, la tortue a gagné 4 fois et le lièvre 6 fois. Sur un essai avec 10 simulations, la tortue a gagné 4 fois et le lièvre 6 fois. Modifications possibles de cet algorithme: Modifications possibles de cet algorithme: On peut ensuite réécrire le programme en lui faisant compter le nombre de fois où la tortue gagne et le nombre de fois où le lièvre gagne, pour un nombre de simulations entré au clavier. On peut ensuite réécrire le programme en lui faisant compter le nombre de fois où la tortue gagne et le nombre de fois où le lièvre gagne, pour un nombre de simulations entré au clavier. On peut également décider de changer N, le nombre de cases nécessaires pour que la tortue gagne et, dans ce cas, ajouter une lecture de N entré au clavier. On peut également décider de changer N, le nombre de cases nécessaires pour que la tortue gagne et, dans ce cas, ajouter une lecture de N entré au clavier.

39 Isabelle ABOU 39 PROGRAMME ALGOBOX 1 VARIABLES 1 VARIABLES 2 N EST_DU_TYPE NOMBRE 2 N EST_DU_TYPE NOMBRE 3 de EST_DU_TYPE NOMBRE 3 de EST_DU_TYPE NOMBRE 4 ca EST_DU_TYPE NOMBRE 4 ca EST_DU_TYPE NOMBRE 5 DEBUT_ALGORITHME 5 DEBUT_ALGORITHME 6 ca PREND_LA_VALEUR 0 6 ca PREND_LA_VALEUR 0 7 N PREND_LA_VALEUR 6 7 N PREND_LA_VALEUR 6 8 de PREND_LA_VALEUR 0 8 de PREND_LA_VALEUR 0 9 TANT_QUE (de< 6 ET ca

40 Isabelle ABOU 40 COMMENT EST TRAITEE LA QUESTION DANS LES AUTRES ACADEMIES? A lUniversité dété de Saint Four dont lintitulé était « des problèmes de mathématiques venus dailleurs », les questions ont été dune part sur les applications de lalgorithmique dans des domaines très variés comme la prise de décision, le fonctionnement dInternet, létude de la leucémie, et dautre part dordre pédagogique sur lenseignement de lalgorithmique. A lUniversité dété de Saint Four dont lintitulé était « des problèmes de mathématiques venus dailleurs », les questions ont été dune part sur les applications de lalgorithmique dans des domaines très variés comme la prise de décision, le fonctionnement dInternet, létude de la leucémie, et dautre part dordre pédagogique sur lenseignement de lalgorithmique. Des groupes de travail se sont formés pour mutualiser des travaux, création dactivités algorithmiques, réflexions... Des groupes de travail se sont formés pour mutualiser des travaux, création dactivités algorithmiques, réflexions... La question également soulevée est celle de lévaluation, en particulier en algorithmique. La question également soulevée est celle de lévaluation, en particulier en algorithmique. Des pistes ont été données dans les documents ressources et dautres le seront sans doute au fur et à mesure des réflexions et des expériences de chacun avec les élèves tout au long de lannée, sachant également que les IREM et les sites académiques proposent de plus en plus de documents très intéressants. Des pistes ont été données dans les documents ressources et dautres le seront sans doute au fur et à mesure des réflexions et des expériences de chacun avec les élèves tout au long de lannée, sachant également que les IREM et les sites académiques proposent de plus en plus de documents très intéressants.

41 Isabelle ABOU 41 CONCLUSION Je pense que lintroduction de lalgorithmique en seconde, et très certainement bientôt aux autres classes du lycée toutes sections confondues, donne un renouveau à lenseignement des mathématiques dans le secondaire. Je pense que lintroduction de lalgorithmique en seconde, et très certainement bientôt aux autres classes du lycée toutes sections confondues, donne un renouveau à lenseignement des mathématiques dans le secondaire. Outre les problèmes de tâtonnements du début, je crois que ce domaine transversal à toutes les parties du programme est très motivant à la fois pour les élèves et les professeurs. Outre les problèmes de tâtonnements du début, je crois que ce domaine transversal à toutes les parties du programme est très motivant à la fois pour les élèves et les professeurs. Cela a permis de redynamiser notre réflexion, nos questionnements, et nos travaux dans les différents champs de notre travail. Cela a permis de redynamiser notre réflexion, nos questionnements, et nos travaux dans les différents champs de notre travail.

42 Isabelle ABOU 42 MERCI DE VOTRE ATTENTION


Télécharger ppt "Isabelle ABOU 1 ALGORITHMIQUE ET PROGRAMMATION REFLEXIONS ET EXPERIMENTATIONS IREM DE LA REUNION Le 28 Octobre 2009."

Présentations similaires


Annonces Google