Algorithmique.

Slides:



Advertisements
Présentations similaires
1 Présentation du stage de formation à lévaluation FFAAA.
Advertisements

Tris.
Chapitre annexe. Récursivité
1 Tracer un graphique avec la calculatrice graphique Cliquez sur le modèle de votre calculatrice.
Algorithmique (suite)
Fonctions & procédures
Utiliser les calculatrices en classe. 1. Introduction et choix de loutil Deux stratégies dutilisation sont possibles ; elles peuvent même être utilisées.
Calculs de complexité d'algorithmes
Nouveau programme de Première S
Généralités sur la préparation et la conduite d’une séance
Programme de seconde 2009 Géométrie
Algorithmique et évaluation
Les écritures fractionnaires
Enseigner en classe de 1ère STL biotechnologies
Les nombres non entiers
Algorithmique Résume.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Exercices Algorithmiques
Rénovation du Bac Pro Commerce
Synthèse Stage Algorithmique Académie de la Réunion.
LEVALUATION DIAGNOSTIQUE AU CM2 Animation pédagogique 18/09/2007.
ALGORITHMIQUE STAGE LA REUNION Isabelle ABOU.
STMG Sciences et Technologies du Management et de la Gestion
CYCLE TERMINAL DE LA SÉRIE LITTÉRAIRE Programmes de mathématiques.
et évaluation des compétences
Les figures téléphonées dans l’apprentissage de la géométrie
5. Les structures répétitives
Initiation à la programmation et algorithmique cours 3
1)Boucle for 2)Boucle while
Les sections européennes et de langues orientales
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Les bases de l’Algorithmique
Python La structure alternative
Calcul et programmation au lycée avec Scilab
Récursivité.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Chapitre IV LES STRUCTURES SIMPLES. Plan I- Les entrées II- Laffectation III- Les sorties.
Démarche de résolution de problèmes
Recherche d’un thème de projet Identification d’un besoin
Algorithmique et Programmation
8PRO100 Éléments de programmation Comment faire prendre une décision à un ordinateur?
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
18/05/ Utiliser le cahier de texte en ligne avec lapplication SPIP Adresse du site du lycée :
Python La structure itérative
ALGORITHMIQUE en classe de seconde
Systèmes d’équations du premier degré à deux variables
Algorithmes au lycée. Extrait Bac S Métropole Juin 2012.
Programme de Seconde 21/10/2009 Rentrée 2009 – 2010.
Les écritures fractionnaires
Introduction à l’algorithmique
Semaine #1 INF135 par Frédérick Henri.
I&G- chapitre 11-La logique Logarithmique -Mme Roulaud
Évaluations nationales cm Réunions de directions et animation pédagogique du 13/01/10 Circonscription de PontChateau Briere – VG-
8PRO107 Éléments de programmation
Inéquations du premier degré à une inconnue
Résoudre une équation du 1er degré à une inconnue
Répéter dans un programme avec une Instruction itérative
Programmation linéaire en nombres entiers : les méthodes de troncature
Algorithmique Les structures Rappel L'enchaînement séquentiel
Université de Sherbrooke
Etude cinématique sur l’axe R3 d’un robot fruitier
Algorithmique et programmation (1)‏
Programmation linéaire en nombres entiers
Initiation à l’Algorithmique
L’ALGORITHMIQUE DANS LE PROGRAMME DE SECONDE Nouvelle Calédonie 2010.
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Une progression spiralaire de l’apprentissage en technologie
Production de ressources pour le cycle 3 Lycée Diderot le 8 mars 2016
 Lycée Déodat de Séverac. ➲ Toutes les matières utilisent l'informatique mais jusqu'à présent la programmation restait en post bac. ➲ Avec l'ISN vous.
Transcription de la présentation:

Algorithmique

L’algorithmique Présence des algorithmes dès l’école primaire dans l’enseignement des mathématiques dans beaucoup « d’objets » usuels Objectifs pour le lycée Préciser et formaliser la notion d’algorithme Étudier certaines notions sous un angle nouveau -dès l’école primaire dans l’enseignement des mathématiques : algorithmes opératoires, mise en œuvre de démonstrations, recherche de la médiane, résolutions de problèmes d’arithmétiques élémentaires, problème de construction (cercle circonscrit) -dans beaucoup « d’objets » usuels, y compris les calculatrices : de plus en plus utilisent des algorithmes (ordinateurs, automates, répondeur téléphonique, machines à laver, réseaux téléphoniques…), des programmes agencent la succession désirée de tâches élémentaires) Dans un tel contexte, il est essentiel que les élèves soient suffisamment familiarisés avec le type particulier de démarche que nécessite l’algorithmique. Par ailleurs, l’utilisation des ordinateurs et des calculatrices s’est développée dans l’enseignement. Ces outils fonctionnent comme des boîtes noires et l’introduction de l’algorithmique devrait aider les élèves à en appréhender le fonctionnement en apprenant quelques concepts simples avec des prémisses clairement exposées et des règles peu nombreuses. 2

Algorithmique (objectifs pour le lycée) familiariser les élèves avec les grands principes d’organisation d’un algorithme : gestion des entrées-sorties affectation d’une valeur mise en forme d’un calcul. formaliser des algorithmes simples en langage naturel traduire des algorithmes sur tableur ou dans un langage de programmation (calculatrice ou logiciel) dans le cadre du programme, construire un algorithme pour résoudre un problème, c’est non seulement trouver une méthode de calcul d’une solution à ce problème, mais écrire cette méthode sous forme d’une suite d’instructions élémentaires : affectations de variables (initialisation ou calcul), branchements (condition ou boucle itérée), affichages. Le but est de rendre les élèves capables de concevoir par eux-mêmes quelques algorithmes simples et de comprendre ce que produisent certains algorithmes plus complexes. Outre son intérêt culturel, cet apprentissage présente également un objectif pédagogique important, convergeant avec l’objectif poursuivi par le travail à réaliser sur la logique. Il s’agit d’apprendre aux élèves à imaginer ou à suivre le déroulement d’une suite d’instructions en fonction de conditions logiques. 3

Les idées importantes Il faut distinguer l’algorithmique de la programmation : il n’est pas judicieux de commencer sur ordinateur. L’apprentissage doit être étalé sur l’année. Il serait souhaitable d’intégrer l’écriture d’algorithmes dans tous les domaines du programme. L’algorithmique n’est pas un chapitre à part. L’introduction de chaque nouvel élément (variable, boucle, itération, etc.) devrait apparaître lors de la résolution de problèmes pour lesquels les démarches habituelles sont malcommodes ou peu performantes. L’ordinateur (ou la calculatrice) peut être utilisé dès la première séance, en conclusion du travail L’étude d’algorithmes doit être proposée régulièrement, pour résoudre des problèmes simples, sans que l’algorithmique ne fasse l’objet d’un enseignement isolé. 4

Les instructions en algorithmique Instructions élémentaires entrée, sortie, affectation, calcul Instructions conditionnelles Si….alors……(sinon….) Instructions itératives la boucle « tant que ….faire » la boucle « pour (variable) de ….à … faire » 5

Algorithmes et langages Écrire un algorithme qui donne la somme des entiers de 1 à n Le langage naturel Pour calculer la somme des entiers de 1 à n , on part de 1 puis on calcule 1+2, puis 1+2+3, et on continue ainsi jusqu’à 1+2+3+….+n. Le langage algorithmique Entrée : Saisir n Traitement : Affecter à S la valeur 0 Pour i variant de 1 à n Affecter à S la valeur S+i Sortie: Afficher S Le langage naturel se fait avec des phrases, qui expliquent la procédure suivie, avec éventuellement des expressions plus élaborées comme "tant que...faire". L'idée étant de décrire ce qui va être construit, avec des exigences très larges sur la syntaxe, un mélange de phrases et d'expressions plus "techniques". Le langage algorithmique, davantage codifié, reste cependant aisé à comprendre. Il fait apparaître la structure du programme et permet la traduction facile dans un langage de programmation. Il convient de ne pas être exigeant dans la syntaxe et de ne pas pénaliser les élèves pour des maladresses. Cependant le professeur se doit de rester précis et rigoureux. Une initiation intéressante est proposée dans le document de Jean Pierre Ferrier sur le site académique. Le langage de programmation est un langage codifié qui dispose d’un compilateur permettant son exécution sur machine. Quand on commence à définir les variables, on est déjà dans un début de lanage de programmation, la preuve, c'est que pour certains langages, ce n'est pas nécessaire. Le choix d’un langage de programmation est laissée à l’initiative des équipes d’établissement. La calculatrice semble indispensable. Elle apporte de la souplesse dans l’utilisation. Il convient de ne en rester à la calculatrice: Algobax ou Python pou Scilab ou Xcas. Le langage de programmation

Algorithmes et langages Écrire un algorithme qui donne la somme des entiers de 1 à n Algobox Python n=int(input("Saisir le nombre n ")) S=0 for i in range(n+1): S=S+i print("La somme des entiers de 1 à ",n, " est égale à ",S)

Le langage « naturel » L’instruction d’affectation : - on préférera les formulations Affecter à x la valeur 12 Affecter à x la valeur x+1 (la variable x reçoit la valeur de l’expression de l’expression x+1 - on réservera aux langages de programmation x := 12 x:=x+1 x = 12 x =x+1 x 12 x x+1 12 x x+1 x L’instruction d’affectation: elle a pour but d’affecter à une variable la valeur d’une expression. La variable x reçoit la valeur 12 On peut insister sur l’importance des mots En entrée : saisir (ou lire) En sortie : afficher (ou écrire) L’initialisation est dans le traitement Affecter à (une variable) quelque chose 8

L’algorithmique Ressources : Le site de Jean-Pierre Ferrier Accessible à partir du site académique, rubrique « espace de l’inspection/dossiers et animation : Algorithmique en terminale L Le document d’accompagnement du cycle terminal de la série L (août 2005) En téléchargement sur le site académique, rubrique « BO, programmes/programmes puis paragraphe « les programmes en place au lycée)

L’évaluation (document ressource) Les modalités fondamentales de l’activité algorithmique : analyser le fonctionnement ou le but d’un algorithme existant ; modifier un algorithme existant pour obtenir un résultat précis ; créer un algorithme en réponse à un problème donné. L’évaluation des pratiques en algorithmique peut s’organiser autour d’une évaluation par compétences qui ne conduira pas nécessairement à une note spécifique chiffrée. Les activités donnant lieu à l’évaluation des compétences en algorithmiques peuvent évidemment également servir de support à l’évaluation d’autres compétences, notamment celles qui sont liées à la résolution de problèmes : savoir modéliser, s’engager dans une recherche, communiquer, vérifier… 10

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. 11

Les compétences visées (document ressource) Ê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. Entrée : Saisir trois nombres a, b et c Traitement : Calculer (a+b+c)/3 Affecter à M la valeur trouvée Sortie : Afficher M Expliquer en une phrase ce que fait cet algorithme 12

Les compétences visées (document ressource) Ê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. Entrée : Saisir trois nombres a, b et c Traitement : Calculer (a+b+c)/3 Affecter à M la valeur trouvée 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. 13

Les compétences visées (document ressource) Ê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. 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 : 14

Les compétences visées (document ressource) Ê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. 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. 15

Les compétences visées (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. L’algorithme suivant convient-il ? Entrée : saisir a,b,c Traitement : M= a+2*b+3*c/6 si (M-8)*(M-10)<=0 afficher « oral » si M>=10 afficher « reçu » sinon afficher « recalé  » Ê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. 16

Les compétences visées (document ressource) Ê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. 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 : M= (a+2*b+3*c)/6 si M<8 afficher « recalé» si M>=10 afficher « reçu » sinon afficher « oral » 17

Évaluation d’une production d’élève (document ressource) Critère Excellent Bon Moyen Insuffisant Respect des bons usages Le but visé par l’algorithme est explicité, des commentaires précisent le déroulement. Les variables ont des noms bien choisis. Aucune erreur De petits détails sont négligés. Le but est difficile à déterminer Des détails manquent, mais le programme tente quand même d’accomplir ses fonctions essentielles Ne répond pas au problème posé. Objectif impossible à déterminer Correction du code L’algorithme fonctionne. Fonctionne correctement dans tous les cas. Fonctionne pour des données (entrées) standard mais échecs mineurs sur des cas particuliers. Échoue pour des données (entrées) standard, mais pour une raison mineure Échoue pour des données (entrées) standard, pour une raison importante Interface utilisateur (entrées, sorties) Elle est claire et commode Aucune faute 1-3 fautes mineures Plus de trois fautes mineures ou une faute majeure Plus d’une faute majeure 18

Déterminer tous les nombres entiers naturels égaux à la somme des cubes de leurs chiffres. 19

Déterminer tous les nombres entiers naturels égaux à la somme des cubes de leurs chiffres. 1 ) Ecrire un algorithme permettant de trouver tous les nombres inférieurs à 9999 solutions du problème. 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. 4) Déterminer tous les nombres égaux à la somme des puissances quatrièmes de leurs chiffres. L’algorithmique permet de développer un mode de raisonnement rarement utilisé jusque là : on montre que le nombre de solutions au problème est fini, on détermine un majorant des solutions et on explore tout ce qui est en dessous à l’aide d’un algorithme de balayage systématique. 2) 5 x 93 = 2916, le nombre ne peut pas être à la fois plus grand que 9999 et plus petit que 2916. Pour 6 chiffres, 7 chiffres, etc la situation est la même car le nombre N est minoré par un nombre qui est multiplié par 10 à chaque étape et majoré par un nombre auquel on ajoute 729 à chaque étape. La démonstration rigoureuse, (comparaison d’une suite géométrique et d’une suite arithmétique) par une récurrence n’est pas au programme mais on peut comprendre ce qui se passe, notamment en majorant 93 par 1000. 4) Cette question peut être un prolongement.

Compétences visées 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. Analyser la situation : il faut comprendre qu’il faudra recourir à la numération en base 10, introduire les chiffres m, c, d, u, exprimer le nombre en fonction d’eux. Mettre au point une solution algorithmique : Comprendre l’imbrication des boucles correspondant aux quatre chiffres (il serait plus naturel de tenter une boucle « pour n de 0 à 9999 ») Placer le test au bon endroit : Adapter l’algorithme au langage : on demande explicitement d’utiliser un langage.

Variables m, c, d, u, N, S nombres entiers naturels Traitement 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 Afficher N On pourrait limiter le balayage à « m allant de 0 à 3 » car on sait que N est majoré par 2916. Cette question pourrait venir en fin d’exercice : comment améliorer l’algorithme pour qu’il soit plus rapide. Un autre aménagement de l’exercice consisterait à ne pas limiter a priori les solutions à des nombres à quatre chiffres. On pourrait chercher pour 1, 2, 3… chiffres. Le logiciel Algobox montre vite ses limites : d’une part il faut à chaque fois tout réécrire car on ne peut pas insérer une boucle autour d’une autre, d’autre part à partir de 6 chiffres il bloque, cela dépasse le niveau de briques impliquées qu’il semble supporter. Cette limite du logiciel pourrait justifier aux yeux des élèves la nécessité de limiter l’exploration.

Version Algobox

Version LARP Même programmation que pour Algobox. Une différence : le test d’égalité n’exige pas le double signe =

Version python Version scilab