Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Déroulement • Les algorithmes dans l’histoire • Des définitions d’un algorithme • Algorithme et langages de programmation • Les structures de bases de l’algorithmique • Un premier algorithme • Les premiers pas avec AlgoBox 1 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Déroulement • Une galerie de « portraits » • Les différents langages informatiques • Des activités pour la classe de Seconde • Des prolongements pour les classes de Première et de Terminale • Des « conseils » pédagogiques • Une présentation de plusieurs logiciels à caractère pédagogique • Ce que « disent » les programmes officiels • Un bilan des 2 journées 2 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Historique • Les algorithmes ne sont pas nés avec l’informatique : L’algorithme d’Euclide pour calculer le PGCD de deux entiers est vieux de plus de 2000 ans ! Des descriptions précises d’algorithmes sont présents dans la Chine ancienne. (Par exemple, pour extraire des racines carrées à partir de divisions effectuées sur une « surface à calculer ») • L’ origine du mot « algorithme » est lié au nom du savant arabe du IXe siècle : Al-Khwarizmi. Ce savant arabe a publié plusieurs méthodes pour le calcul effectif de racines d’une équation du second degré et grâce à lui les chiffres arabes ont pu se diffuser en occident. Les algorithmes dans l’histoire 3 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 • Des définitions plus « modernes » d’un algorithme: Définitions Une définition simple : « Un ensemble d’instructions pour résoudre un problème. » Une définition plus complète à partir de 5 propriétés : (selon Knuth) Finitude : Un algorithme doit toujours se terminer après un nombre fini d’étapes. Précision : Chaque étape d’un algorithme doit être définie précisément; les actions à transposer doivent être spécifiées rigoureusement et sans ambiguïté pour chaque cas. Entrées : Quantités, prises dans un ensemble d’objets spécifié, qui sont données à l’algorithme avant qu’il ne commence. Sorties : Quantités qui ont une relation spécifiée avec les entrées. Rendement : Toutes les opérations que l’algorithme doit accomplir doivent être suffisamment élémentaires pour pouvoir être en principe réalisées dans une durée finie par un homme utilisant du papier et un crayon. des définitions d’un algorithme 4 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 • Algorithme et langage de programmation Algorithme et langage de programmation Un algorithme est rédigé dans un pseudo-langage (en Français). Il peut ensuite être implémenté dans un langage de programmation donné. En quoi a-t-on besoin d’un langage spécial, distinct des langages de programmation compréhensibles par les ordinateurs ? Parce que l’algorithmique exprime les instructions résolvant un problème donné indépendamment des particularités de tel ou tel langage. Pour prendre une image, si un programme était une dissertation, l’algorithmique serait le plan, une fois mis de côté la rédaction et l’orthographe. Or, vous savez qu’il vaut mieux faire d’abord le plan et rédiger ensuite que l’inverse… Apprendre l’algorithmique, c’est apprendre à manier la structure logique d’un programme informatique. Algorithme et langage de programmation 5 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les 3 étapes d’un algorithme Les 3 étapes d’un algorithme : les entrées Les entrées (ou la déclaration et la saisie des données) Le traitement Les sorties (ou l’affichage / l’impression des données transformées) • Les entrées Il s’agit de repérer les données nécessaires à la résolution du problème. Ces données peuvent être numériques, ou sous forme de textes (on dit souvent chaines de caractères), ou de type logique (deux valeurs possibles, vrai ou faux), ou enfin de type graphique (des points). Dans cette phase peut aussi figurer ce qu’on appelle l’entrée des données, qui peut se manifester par la saisie de caractères ou de nombres sur le clavier, ou la lecture de la position du pointeur de la souris, ou encore par la lecture d’un fichier contenant ces nombres ou caractères. Structures de bases d’un algorithme 6 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les 3 étapes d’un algorithme Les 3 étapes d’un algorithme : le traitement Les entrées (ou la déclaration et la saisie des données) Le traitement Les sorties (ou l’affichage / l’impression des données transformées) • Le traitement Il s’agit de déterminer toutes les étapes des traitements à faire et donc des "instructions" à donner pour une exécution automatique. Si ces instructions s’exécutent en séquence, on parle d’algorithme séquentiel. Si les opérations s’exécutent sur plusieurs processeurs en parallèle, on parle d’algorithme parallèle. Si les taches s’exécutent sur un réseau de processeurs on parle d’algorithme réparti ou distribué. Nous ne traiterons ici que des algorithmes séquentiels. Structures de bases d’un algorithme 7 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les 3 étapes d’un algorithme Les 3 étapes d’un algorithme : les sorties Les entrées (ou la déclaration et la saisie des données) Le traitement Les sorties (ou l’affichage / l’impression des données transformées) • Les sorties Les résultats obtenus peuvent être affichés sur l’écran, ou imprimés sur papier, ou bien encore conservés dans un fichier. Structures de bases d’un algorithme 8 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les 3 étapes d’un algorithme Les 3 étapes d’un algorithme : un exemple simple Les entrées (ou la déclaration et la saisie des données) Le traitement Les sorties (ou l’affichage / l’impression des données transformées) • Un exemple simple On se donne deux points A et B du plan. Cet algorithme décrit la construction d’un losange dont une diagonale est [AB]. a. Tracer le cercle de centre A passant par B. b. Tracer le cercle de centre B passant par A. c. Nommer C et D les points d’intersection de ces Les entrées sont les points A et B. cercles. Le traitement de la construction est décrit dans les phases a. b. et c. Construire le polygone ADBC. La sortie est le polygone ADBC. Structures de bases d’un algorithme 9 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les 3 briques de base pour écrire les instructions du traitement Les 3 briques de base 1. Affectation de variables 2. Structure alternative (Si … Alors …. Sinon) 3. Structures répétitives (« Boucles » Pour et Tant Que) Structures de bases d’un algorithme 10 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Affectation de variables : identificateur 1. Affectation de variables Les données de l’algorithme peuvent être stockées dans des variables ou « mémoires ». Ces données sont représentées par un nom (un identificateur). Les identificateurs sont des suites de lettres et chiffres (sans espaces) qui doivent être choisies judicieusement pour que l’algorithme soit immédiatement lisible et interprétable. Les données peuvent avoir un type : numériques chaines de caractères booléen (Vrai ou Faux) listes (numériques ou de chaînes de caractères) Structures de bases d’un algorithme 11 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Affectations de variables : exemples d’affectation 1. Affectation de variables Exemples d’affectation d’une variable : A 2 : La variable nommée A prend pour valeur 2 quel que soit sa valeur précédente Compteur Compteur + 1 : La variable nommée Compteur prend pour valeur la valeur courante de Compteur + 1 (Attention ! : ce n’est pas une équation !) C2 D3 EC+D : à la fin des 3 instructions E a pour valeur 5. Structures de bases d’un algorithme 12 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Affectation de variables : exemple : permutation de variables 1. Affectation de variables Exercice : proposer un algorithme qui permute les contenus de deux variables numériques. Réponse : Temp A AB B Temp On utilise une variable temporaire nommée ici Temp Structures de bases d’un algorithme 13 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Structure alternative 2. Structure alternative Si condition alors traitement 1 Sinon traitement 2 FinSi Remarque :L’évaluation de la condition est un booléen (qui a pour valeur Vrai ou Faux). Exemple : Si N > 10 alors Afficher « Le nombre » + N + « est strictement supérieur à 10 » Sinon Afficher « Le nombre » + N + « est inférieur ou égal à 10 » FinSi Structures de bases d’un algorithme 14 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Structures répétitives : boucle pour 3. Structures répétitives : boucle Pour Pour I = 1 à N Faire traitement I Suivant On effectue les instructions nommées « traitement» N fois. Exemple : Que fait cet algorithme ? Pour I = 1 à 10 Faire Afficher I*I I Suivant Réponse : Cet algorithme affiche tous les carrés des entiers naturels compris entre 1 et 10. Structures de bases d’un algorithme 15 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Structures répétitives : boucle Tant Que 3. Structures répétitives : boucle « Tant que » Tant que condition Faire traitement FinTantQue On effectue les instructions nommées « traitement» tant que la condition est vérifiée. Exemple : Que fait cet algorithme ? I1 Tant que I < 100 Faire Afficher I II+2 FinTantQue Réponse : Cet algorithme affiche tous les entiers naturels impairs compris entre 1 et 100. Structures de bases d’un algorithme 16 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Structures répétitives : boucle répéter 3. Structures répétitives : boucle « Répéter … Jusqu’à …. » Répéter traitement Jusqu’ à Condition On effectue les instructions nommées « traitement» jusqu’ à ce que la condition ne soit plus vérifiée. Structures de bases d’un algorithme 17 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse La suite de Syracuse : présentation du problème Présentation du problème : La suite de Syracuse d'un nombre entier N est définie par récurrence, de la manière suivante : • u0 = N • Pour tout entier n naturel : si un est pair alors un+1 = un/2; si un est impair alors un+1 = 3un + 1 On se propose d’écrire un algorithme en « pseudo-code » qui en entrée lit l’entier N, calcule et affiche les 5 premiers termes de cette suite. Un premier algorithme 18 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse La suite de Syracuse : algorithme Algorithme : suite de Syracuse Données N : entier I : indice Premier terme de la suite Indice du terme courant de la suite un Traitement Lire N On demande la saisie de l’entier N Pour I = 1 à 5 On effectue une boucle avec 5 itérations. Afficher N On affiche le terme courant de la suite. Si N est pair alors On teste la parité du terme courant de la suite. N N/2 Sinon On calcule le terme suivant de la suivant selon le résultat du test de parité. N 3*N+1 FinSi FinPour Un premier algorithme 19 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse avec AlgoBox Les premiers pas avec AlgoBox 20 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : Programme AlgoBox Programme AlgoBox : 1 VARIABLES 2 N EST_DU_TYPE NOMBRE 3 I EST_DU_TYPE NOMBRE 4 DEBUT_ALGORITHME 5 LIRE N 6 POUR I ALLANT_DE 1 A 5 7 DEBUT_POUR 8 AFFICHER N 9 SI (N % 2 == 0) ALORS 10 DEBUT_SI 11 N PREND_LA_VALEUR N/2 12 FIN_SI 13 SINON 14 DEBUT_SINON 15 N PREND_LA_VALEUR 3*N+1 16 FIN_SINON 17 FIN_POUR 18 FIN_ALGORITHME Les premiers pas avec AlgoBox 21 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : tests et conjecture • Tester l’algorithme avec différentes valeurs de N. • Modifier l’algorithme pour afficher les 20 premiers termes de la suite. • Quelle conjecture peut-on émettre sur la suite de Syracuse ? Réponse : Quel que soit le nombre N de départ, la suite de Syracuse admet un terme qui a pour valeur 1. Les premiers pas avec AlgoBox 22 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : version 2 Modifier l’algorithme précédent pour s’arrêter au premier terme de la suite égal à 1 et coder le programme AlgoBox correspondant. Algorithme : suite de Syracuse (version 2) Données N : entier I : indice Premier terme de la suite Indice du terme courant de la suite un Traitement Lire N Tant que N <> 1 Faire Afficher N Si N est pair alors N N/2 Sinon N 3*N+1 FinSi FinTantQue On demande la saisie de l’entier N On effectue une boucle avec un test d’arrêt. On affiche le terme courant de la suite. On teste la parité du terme courant de la suite. On calcule le terme suivant de la suivant selon le résultat du test de parité. Les premiers pas avec AlgoBox 23 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : programme Algobox Version 2 Suite de Syracuse (version 2) : programme AlgoBox Suite_syracuse_V2 - 23.08.2010 1 VARIABLES 2 N EST_DU_TYPE NOMBRE 3 I EST_DU_TYPE NOMBRE 4 DEBUT_ALGORITHME 5 LIRE N 6 TANT_QUE (N != 1) FAIRE 7 DEBUT_TANT_QUE 8 AFFICHER N 9 SI (N % 2 == 0) ALORS 10 DEBUT_SI 11 N PREND_LA_VALEUR N/2 12 FIN_SI 13 SINON 14 DEBUT_SINON 15 N PREND_LA_VALEUR 3*N+1 16 FIN_SINON 17 FIN_TANT_QUE 18 AFFICHER N 19 FIN_ALGORITHME Les premiers pas avec AlgoBox 24 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : le risque ! Quel est le risque encouru par le dernier algorithme ? Réponse : Si la conjecture de Syracuse est erronée il peut exister des entiers N tels que aucun terme de la suite de soit égal à 1. Dans ce cas la condition N <> 1 de la boucle Tant Que sera toujours vraie et le programme bouclera indéfiniment ! Information A ce jour, la conjecture de Syracuse n’est pas démontrée. Les premiers pas avec AlgoBox 25 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : prolongements Prolongements : Etude de la longueur et de l’altitude du vol liés à la suite de Syracuse Longueur du vol : Pour un premier terme u0 donné, on appelle longueur du vol de la suite l’entier l tel que ul = 1 pour la première fois. Altitude maximale du vol : Pour un premier terme u0 donné, on appelle altitude maximale du vol le maximum des termes de la suite . Les premiers pas avec AlgoBox 26 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : prolongements : algos Prolongements : Etude de la longueur et de l’altitude du vol liés à la suite de Syracuse Proposition d’algorithmes à implémenter avec AlgoBox : • Calculer longueur et altitude pour un vol donné de la suite. • Afficher graphiquement (sous forme d’histogramme) les longueurs et altitudes de vol de la suite pour 1 ≤ u0 ≤ u_max (avec u_max = 10 ou 100 ou 1000 ou 1000) et déterminer le vol de longueur maximale et d’altitude maximale pour 1 ≤ u0 ≤ u_max Les premiers pas avec AlgoBox 27 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : prolongements : lg vols Prolongements : Longueurs des vols de la suite pour 1 ≤ u0 ≤ 100 Les premiers pas avec AlgoBox 28 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 La suite de Syracuse avec AlgoBox La suite de Syracuse : prolongements : altitude vols Prolongements : Altitude des vols de la suite pour 1 ≤ u0 ≤ 100 Les premiers pas avec AlgoBox 29 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Exécuter un programme en mode pas à pas Il est possible d’exécuter un programme AlgoBox en mode pas à pas. Pour chaque ligne d’instruction est affiché le contenu de chaque variable. Le mode pas à pas d’AlgoBox 30 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Le mode pas à pas est utile pour mettre au point un programme en cas d’erreur logique par exemple. Il est également utile du point de vue pédagogique pour expliquer le déroulement d’un programme aux élèves. Le mode pas à pas d’AlgoBox 31 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Il est possible de représenter des points et des segments avec AlgoBox à partir de coordonnées. On utilise pour cela, l’onglet « Dessiner dans un repère ». Représenter des points et des segments avec AlgoBox 32 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Il est possible d’utiliser une fonction numérique à une variable avec AlgoBox. On utilise pour cela, l’onglet « Utiliser une fonction numérique ». On définit la fonction nommée F1. Et on utilise simplement dans les instructions F1(a) pour l’image de a par la fonction F1 par exemple. Utiliser des fonctions avec AlgoBox 33 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Portraits : Al-Khawarizmi - Pascal Mathématicien, géographe, astrologue et astronome musulman perse dont les écrits, rédigés en langue arabe, ont permis l'introduction de l'algèbre en Europe. Al-Khawarizmi (783 - 850) Il est à l'origine des mots « algorithme » (qui n'est autre que son nom latinisé: "algoritmi" [3]) et « algèbre » (issu d'une méthode et du titre d'un de ses ouvrages) ou encore de l'utilisation des chiffres arabes Savant, philosophe et écrivain, il est l'inventeur d'une machine arithmétique nommée Pascaline. Blaise Pascal (1623-1662) Une galerie de portraits 34 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Portraits : Babbage et Lovelace Charles Babbage (1791-1871) Fils unique d'un banquier, cet anglais, algébriste de talent, renoncera à une carrière prometteuse de savant pour consacrer sa vie à la construction d'un calculateur mécanique. Il est l'inventeur de la Machine à différences puis de la Machine Analytique. Fille du poète romantique Lord George Byron et d'une mathématicienne et féministe, épouse de William King (futur comte de Lovelace), elle sera l'élève puis la collaboratrice de C. BABBAGE. Elle est aussi à l'origine du "Principe des machines à calculer". Augusta Ada King Un langage porte son prénom en mémoire de ses travaux. Lady LOVELACE (1814-1852) Une galerie de portraits 35 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Portraits : Boole et Von NEUMAN Mathématicien anglais, il publie en 1854 les Lois de la pensée. Dans ce livre, il décrit comment toute la logique peut être définie par un principe simple: le binaire. George BOOLE (1815-1864) John Von NEUMANN (1903-1957) (Prononcer noy-man). Il a été l'un des personnages clés des débuts de l'informatique. Il publia de nombreux articles sur l'algèbre et la mécanique quantique avant de se consacrer à la construction d'ordinateurs et à la modélisation mathématique de la réaction en chaîne de la bombe A. Ses "machines IAS" sont à l'origine de "l'Architecture Von NEUMANN", c'est à dire celle des ordinateurs tels que nous les connaissons. Une galerie de portraits 36 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Portraits : Hopper et Turing Grace Murray HOPPER (1906 - 1992) Alan TURING (1912 - 1954) Cette américaine, mobilisée comme auxiliaire dans la marine américaine fut affectée aux travaux de programmation et d'exploitation de l'ENIAC. Puis, devenue une grande spécialise de la programmation des ordinateurs, elle sera l'une des principales créatrices du COBOL. Mathématicien anglais, maître-assistant à Cambridge dès 23 ans. Il a conçu en 1936 une machine logique capable de résoudre tous les problèmes que l'on peut formuler en termes d'algorithmes. Pendant la guerre, il participera à la réalisation de la Bombe, première machine électromécanique de décryptage des messages codés avec l'Enigma Allemande. Une galerie de portraits 37 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Portraits : Ritchie et Cerf Dennis RITCHIE (1941) Vinton G. CERF (1943 - ) Cet ingénieur des laboratoires Bell, est l'auteur du langage C. En 1973, avec K. THOMPSON, il réécrira dans ce nouveau langage le système d'exploitation UNIX. C'est l'un des pères de l'Internet. Encore étudiant de l'université de Los Angeles, il fut l'un des auteurs du protocole TCP/IP et développa avec une équipe de chercheurs les premiers outils utilisant ce mode de communication. Il est aujourd'hui président de l'Internet Society qui surveille les nouveaux standards d'Internet. Une galerie de portraits 38 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Créateur du langage C++ basé sur le langage C mais en lui donnant une dimension de Langage Orienté Objet. Portraits : Stroustrup et Gosling Bjarne STROUSTRUP (1950 - ) Créateur du langage Java basé sur le langage C++. La particularité principale de Java est que les logiciels écrits dans ce langage sont très facilement portables sur plusieurs systèmes d’exploitation. James Gosling (1955 - ) Une galerie de portraits 39 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Portraits : Gates et Jobs Ancien président (et fondateur avec P. ALLEN) de Microsoft. Cette société est à l'origine du MS-DOS, de Windows, du Basic-Microsoft puis de Visual Basic. Bill GATES (1951 - ) S. WOZNIAK (à gauche) et S. JOBS (à droite). Fondateurs de la société Apple. Après son éviction d'Apple S. JOBS créera la société Next avant d'être rappelé pour redresser Apple. Steve JOBS (1955 - 2011) Une galerie de portraits 40 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Portraits : Stallman et Torvalds Fondateur du projet GNU, lancé en 1984 pour développer le système d'exploitation libre GNU et donner ainsi aux utilisateurs des ordinateurs la liberté de coopérer et de contrôler les logiciels qu'ils utilisent. Il est également le créateur (entre autres) de l'éditeur Emacs et du compilateur Richard STALLMAN gcc. (1953 - ) Travaillant maintenant aux Etats-Unis mais Finlandais d'origine, il a construit en 1991 un nouveau système d'exploitation de type UNIX appelé Linux. Ayant choisi de le diffuser suivant le principe des logiciels libres, Linus TORVALDS ne retire aucune royaltie de son travail sur le noyau Linux. Cela n'empêche pas sa popularité de croitre de jours en jours. Linus TORVALDS (1969 -) Une galerie de portraits 41 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Portraits : Page, Brin et Zuckerberg Larry Page (1973 - ) Sergey Brin (1973 - ) Créateurs du moteur de recherche Google. Ces deux jeunes brillants nord-américains ont lancé leur moteur de recherche en 1999. Ce mot vient du terme "googol" qui désigne un chiffre, un 1 suivi de 100 zéros, traduisant l'exhaustivité du moteur de recherche. Créateur de Facebook C'est en 2004 que la première version de Facebook voit le jour pour mettre en relation les étudiants de Harvard. Mark Zuckerberg (1984 - ) Une galerie de portraits 42 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les différents langages informatiques Langages info : machine-assembleur • Définition : Un langage informatique est destiné à décrire l'ensemble des actions consécutives qu'un ordinateur doit exécuter. • Langage machine : langage utilisé par le processeur (code binaire, suite de 0 et de 1) : peu compréhensible par un humain • Langage assembleur : langage intermédiaire , proche du langage machine, mais plus « lisible » par un humain. (dépendant du processeur, donc non portable) Les différents langages informatiques 43 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les différents langages informatiques Langages info : interprétés/compilés 1 • Langages plus évolués plus facilement compréhensible que le langage machine. portabilité : peut être implémenté facilement sur différentes machines • Langages interprétés / langages compilés : définition • Un programme écrit dans un langage interprété a besoin d'un programme auxiliaire (l'interpréteur) pour traduire au fur et à mesure les instructions du programme. • Un programme écrit dans un langage dit "compilé" va être traduit une fois pour toutes par un programme annexe (le compilateur) afin de générer un nouveau fichier qui sera autonome, c'est-à-dire qui n'aura plus besoin d'un programme autre que lui pour s'exécuter (on dit d'ailleurs que ce fichier est exécutable). Les différents langages informatiques 44 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les différents langages informatiques Langages info : interprétés/compilés 2 • Langages interprétés / langages compilés : comparaison • • • Un programme écrit dans un langage compilé a comme avantage de ne plus avoir besoin, une fois compilé, de programme annexe pour s'exécuter. De plus, la traduction étant faite une fois pour toute, il est plus rapide à l'exécution. Toutefois il est moins souple qu'un programme écrit avec un langage interprété car à chaque modification du fichier source (fichier intelligible par l'homme: celui qui va être compilé) il faudra recompiler le programme pour que les modifications prennent effet. Les différents langages informatiques 45 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les différents langages informatiques Langages info : exemples 1 Quelques exemples de langages couramment utilisés Langage ADA BASIC C C++ Cobol Fortran Java MATLAB Mathematica LISP Domaine d'application principal Le temps réél Comme son nom l'indique... Programmation système Programmation système objet Gestion Calcul scientifique Programmation orientée internet Calcul mathématique Calcul mathématique Intelligence artificielle Compilé/interprété langage compilé langage interprété langage compilé langage compilé langage compilé langage compilé langage intermédiaire langage interprété langage interprété langage intermédiaire Les différents langages informatiques 46 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Les différents langages informatiques Langages info : exemples 2 Quelques exemples de langages couramment utilisés Langage Pascal Prolog Perl Python Domaine d'application principal Enseignement Intelligence artificielle Traitement de chaînes de caractères Enseignement Domaine scientifique Langage de script Compilé/interprété langage compilé langage interprété langage interprété langage compilé à la volée Les différents langages informatiques 47 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Modes de présentation des activités Différents modes de présentation des activités algorithmiques • Guidé : Algorithme à compléter. • A interpréter : Que fait un algorithme donné ? • Plus libre : Algorithme à concevoir par les élèves à partir d’une description. • « A la main » : Faire « tourner » manuellement un algorithme donné. • Evolutif : Faire évoluer un algorithme donné pour le généraliser ou l’améliorer. Quelques conseils pédagogiques liés à mon « expérience » 48 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Travail demandé aux élèves Le type de travail demandé aux élèves • Ponctuel : Un exercice court sur un seul algorithme. Un « défi » sous forme ludique. • Dossier à constituer : Série d’algorithmes et de programmes à restituer sur une période donnée concernant un thème particulier (géométrie plane en seconde par ex.) Exemple : Sur 7 semaines pendant l’accompagnement personnalisé entre deux périodes de vacances scolaires. • Exposé : Sur un thème donné (Ex : jeux de hasard) Avec présentation multimédia Partie algorithmique + historique + mathématiques. Quelques conseils pédagogiques liés à mon « expérience » 49 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Contenu des activités à proposer Conseils sur les activités à proposer • Avoir des objectifs peu ambitieux au départ. • Privilégier les algorithmes qui présentent un intérêt certain. • Avec l’expérience, présenter des activités qui mélangent plusieurs outils logiciels Par exemple, GeoGebra + AlgoBox ou AlgoBox + XCas. • Toujours inclure si possible la partie mathématique pure dans l’activité proposée et faire percevoir l’utilisation d’un logiciel comme un simple outil de conjecture ou bien de confirmation d’un résultat théorique. • Les activités de simulation liées à la loi des grands nombres sont à mon avis les plus « spectaculaires » . (mise en correspondance d’une loi de probabilité avec une simulation). Quelques conseils pédagogiques liés à mon « expérience » 50 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Des activités pour la classe de Seconde Activités Seconde Extrema d’une fonction avec la calculatrice Sujets d’exposé lié aux calculs de probabilités (AlgoBox) Simulation de l'intervalle de fluctuation au seuil de 95% (AlgoBox) Parallélogramme et vecteurs (AlgoBox) Milieu d'un segment, parallélogramme, distance entre deux points, nature d'un triangle (XCas et AlgoBox) Des activités pour la classe de seconde 51 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Des prolongements pour les classes de Première et de Terminale Activités Première-Terminale • Algorithme pour déterminer les solutions d'une équation du second degré (AlgoBox, Calculatrice, Xcas) • Divers algorithmes concernant des problèmes d'arithmétique : Programmes Visual Basic : diviseurs d'un entier, nombre premiers (crible Eratosthène), nombres parfaits, répartition des nombres premiers, nombres de Carmichael Des prolongements pour les classes de Première et de Terminale 52 Institut Saint-Cassien Enseigner l’algorithmique en lycée Logiciel XCas 13 et 14 Décembre 2012 1 Une présentation de plusieurs logiciels à caractère pédagogique 53 Institut Saint-Cassien Enseigner l’algorithmique en lycée Logiciel Xcas 13 et 14 Décembre 2012 2 Présentation : « le couteau suisse des mathématiques » • calcul formel: arithmétique, intégration, dérivation, limites, ... • graphes de fonction, paramétrique, dans le plan et l'espace • tableur et statistiques: calcul approché et exact • géométrie interactive: dans le plan et l'espace • programmation • tortue logo • unité physiques : opérations usuelles et conversion Exemple : Déterminer si un triangle donné est isocèle en fonction de la donnée des coordonnées de ses 3 sommets. Une présentation de plusieurs logiciels à caractère pédagogique 54 Institut Saint-Cassien Enseigner l’algorithmique en lycée Logiciel XCas 13 et 14 Décembre 2012 points négatifs/positifs Points positifs : • Possibilité d’utiliser la « richesse » des fonctions de géométrie et de calcul formel de ce logiciel multi-usage. • La syntaxe est en français. Points négatifs : • Editeur libre source d’erreurs de syntaxe nombreuses, difficiles à gérer avec un groupe d’élève en simultanée. • Interface du logiciel un peu « fouillie » et qui « date » ! Une présentation de plusieurs logiciels à caractère pédagogique 55 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Logiciel Scratch Une présentation de plusieurs logiciels à caractère pédagogique 56 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Logiciel Scratch Présentation : Scratch est un logiciel de programmation destiné à apprendre la programmation aux enfants à partir de 7 ans. On peut créer facilement animations, jeux, musiques, en y ajoutant de l’interactivité. Le principe repose comme les montages Légo avec des briques que l’on monte et que l’on démonte. Exemple : Tracé d’un carré Une présentation de plusieurs logiciels à caractère pédagogique 57 Institut Saint-Cassien Enseigner l’algorithmique en lycée Logiciel Scratch 13 et 14 Décembre 2012 : points négatifs/positifs Points positifs : • Approche ludique de la programmation • Pas de problème de syntaxe à mémoriser • Animation graphique et intégration de sons possibles • Manipulation par blocs proche de la démarche algorithmique • La syntaxe est en français. Points négatifs : • Manipulation des blocs pas toujours aisée • L’ approche ludique peut « masquer le sérieux » d’un algorithme. Une présentation de plusieurs logiciels à caractère pédagogique 58 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Environnement Excel / Visual Basic Une présentation de plusieurs logiciels à caractère pédagogique 59 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Environnement Excel / Visual Basic Présentation : Le tableur Excel de Microsoft Office possède un environnement de développement avec un langage de programmation appelé Visual Basic ( for Applications (VBA)). Les macros-commandes sont enregistrées automatiquement dans ce langage Exemple : Simulation de n lancers de 2 dés. Etude des fréquences observées de la somme des deux dés. Une présentation de plusieurs logiciels à caractère pédagogique 60 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Environnement Excel / Visual Basic Points positifs : • Possibilités très riches de mêler les fonctionnalités de calcul et graphiques du tableur avec de la programmation. • Possibilité d’obtenir à partir d’une macro une « portion » d’un code du programme. Points négatifs : • Syntaxe en Anglais • Phase d’apprentissage du langage plus longue qu’avec d’autres approches. Une présentation de plusieurs logiciels à caractère pédagogique 61 : points négatifs/positifs Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Logiciel Java’s Cool Une présentation de plusieurs logiciels à caractère pédagogique 62 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Logiciel Java’s Cool Présentation : Java's Cool est un environnement de programmation destiné à l'apprentissage du java. Le logiciel dispose d'un macro langage masquant la complexité de java. Exemple : Ecriture d’une fonction calculant la division de deux entiers. Une présentation de plusieurs logiciels à caractère pédagogique 63 Institut Saint-Cassien Enseigner l’algorithmique en lycée Logiciel Java’s Cool 13 et 14 Décembre 2012 : points négatifs/positifs Points positifs : • « Apprentissage » d’un langage très utilisé dans le domaine du développement informatique. • Puissance du langage • Modules d’apprentissage préparés (« Proglets ») Points négatifs : • La complexité du langage JAVA est toujours sousjacente. (Fort typage des données, notion d’objet difficilement contournable) • Syntaxe en anglais. • Ecriture des programmes dans un éditeur libre de nombreuses sources d’erreur possibles • Nécessité de compiler le source du programme (messages du compilateur souvent difficiles à comprendre). Une présentation de plusieurs logiciels à caractère pédagogique 64 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Logiciels préconisés Concernant les logiciels à utiliser Pour la classe de seconde, les logiciels que je préconise sont : • AlgoBox notamment pour l’initiation • Xcas pour des applications sur la géométrie plane • Eventuellement Excel/VBA pour des applications sur les probabilités Concernant les « briques de base » à enseigner Il me semble réaliste au niveau de la classe de seconde de se limiter aux 3 premières briques (Affectation de variables, Structure conditionnelle et boucles) Les autres « briques » (Fonctions – procédures et paramètres) pourront être abordées en classe de Première et Terminale. Une présentation de plusieurs logiciels à caractère pédagogique 65 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de fonction Notion de fonction • Une fonction est un « petit » programme qui en général renvoie une valeur. • Elles permettent un découpage de l’algorithme qui rend sa compréhension et son développement plus facile. • Une fonction a une liste de paramètres en entrée et une valeur en retour. • Une fonction qui ne retourne rien est appelée une procédure. Des prolongements pour les classes de Première et de Terminale 66 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de fonction : somme de deux entiers Notion de fonction • Exemple : fonction qui calcule la somme de deux nombres. • Résultat somme(a;b) retourner (a + b) • Exemple d’appel de cette fonction : resultat = somme(12;16) Des prolongements pour les classes de Première et de Terminale 67 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de fonction : PGCD de deux entiers Notion de fonction • Exercice : écrire en pseudo-code une fonction qui retourne le PGCD de deux entiers naturels et l’implémenter avec Visual Basic. Des prolongements pour les classes de Première et de Terminale 68 Institut Saint-Cassien Notion de fonction : PGCD de deux entiers (pseudo-code) Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de fonction Resultat PGCD( entier a, entier b) debut Si b < a alors temp b ba ab Finsi r mod(a;b) tant que r <> 0 ab si r <> 0 alors br FinSi r mod(a;b) Fin TantQue retourner b fin Des prolongements pour les classes de Première et de Terminale 69 Institut Saint-Cassien Notion de fonction : PGCD (pgm VBA) Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de fonction Public Function pgcd(a, b) As Integer If a < b Then temp = b b=a a=b End If r = a Mod b While r <> 0 a=b If r <> 0 Then b=r r = a Mod b End If Wend pgcd = b End Function Sub test_pgcd() a = InputBox("Valeur de a") b = InputBox("Valeur de b") a = CInt(a) b = CInt(b) c = pgcd(a, b) Cells(1, 1) = c End Sub Des prolongements pour les classes de Première et de Terminale 70 Institut Saint-Cassien Récursivité Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Une fonction qui fait appel à elle-même dans son corps est dites « récursive » • De nombreux problèmes ont des solutions récursives « naturelles » • Les langages de programmation moderne permettent l’utilisation de la récursivité. • Des prolongements pour les classes de Première et de Terminale 71 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Récursivité : exemples Exemples : • Calcul de la factorielle d’un entier : 0! = 1 et pour n≥1 n! = n.(n-1)! • Calcul des nombres de Fibonacci : F0 = 0, F1 = 1 et pour n ≥2 Fn = Fn-1 + Fn-2 • Calcul du coefficient binomial C(k,n) : C(0,n) = C(n,n) =1 et pour 1≤k<n, C(k,n) = C(k-1,n-1) + C(k-1,n) • Résolution du problème des tours de Hanoi Des prolongements pour les classes de Première et de Terminale 72 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Exemple : calcul de la factorielle d’un entier 1. Récursivité : factorielle (algo itératif) Algorithme itératif entier factorielle_iteratif(entier n) Début res 1 Pour i = 1 à n res = res * i i Suivant retourner res Fin Des prolongements pour les classes de Première et de Terminale 73 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Récursivité : factorielle (algo récursif) Exemple : calcul de la factorielle d’un entier 2. Algorithme récursif entier factorielle (entier n) Début Si n = 0 alors retourner 1 Si n = 1 alors retourner 1 retourner n * factorielle(n – 1) Fin Des prolongements pour les classes de Première et de Terminale 74 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Exemple : tours de Hanoï Récursivité : tours de Hanoï Le problème des tours de Hanoï est un jeu de réflexion imaginé par le mathématicien français Édouard Lucas, et consistant à déplacer des disques de diamètres différents d'une tour de « départ » à une tour d'« arrivée » en passant par une tour « intermédiaire » et ceci en un minimum de coups, tout en respectant les règles suivantes : • on ne peut déplacer plus d'un disque à la fois, • on ne peut placer un disque que sur un autre disque plus grand que lui ou sur un emplacement vide. • On suppose que cette dernière règle est également respectée dans la configuration de départ. Des prolongements pour les classes de Première et de Terminale 75 Institut Saint-Cassien Récursivité : tours de Hanoï : animation Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Exemple : tours de Hanoï Étapes de la résolution du problème avec 4 disques. Des prolongements pour les classes de Première et de Terminale 76 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Exemple : tours de Hanoï Récursivité : tours de Hanoï : principe de résolution Principe de la résolution : Pour déplacer une tour de N disques de a vers b, on déplace la tour des N-1 premiers disques de a vers c, puis le disque N de a vers b, puis la tour des N-1 disques de c vers b. Des prolongements pour les classes de Première et de Terminale 77 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Récursivité : tours de Hanoï : algorithme Exemple : tours de Hanoï Ce qui conduit naturellement à l’algorithme récursif suivant : nombre : nombre de disques utilisés de : emplacement de départ à : emplacement de destination par : emplacement intermédiaire Déplacer (nombre, de, à, par) Si nombre > 0 alors Déplacer (nombre - 1, de, par, à) Bouger-un-disque (de, à) Déplacer (nombre - 1, par, à, de) Fin-si Des prolongements pour les classes de Première et de Terminale 78 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Récursivité : tours de Hanoï : complexité exponentielle Exemple : tours de Hanoï On peut montrer facilement par récurrence que pour une tour de n disques, le nombre de déplacements est de 2n – 1. Ainsi, un jeu à 64 disques requiert un minimum de 264- 1 déplacements. En admettant qu'il faille 1 seconde pour déplacer un disque, ce qui fait 86 400 déplacements par jour, la fin du jeu aurait lieu au bout d'environ 213 000 milliards de jours, ce qui équivaut à peu près à 584,5 milliards d'années, soit 43 fois l'âge estimé de l'univers (13,7 milliards d'années) ! On dit que cet algorithme a une complexité exponentielle. Des prolongements pour les classes de Première et de Terminale 79 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Notion de récursivité Récursivité : tours de Hanoï : complexité exponentielle Exercice : Ecrire une version récursive du calcul du PGCD de deux entiers naturels. Resultat PGCD(a;b) Si b = 0 alors retourner a Sinon r mod(a;b) PGCD(b;r) FinSi Des prolongements pour les classes de Première et de Terminale 80 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Pourquoi mathématiques et algorithmique sont-ils si intimement liés ? Notion mathématique Notion similaire en algorithmique/programmation Organisation d’une démonstration Programmation en modules en géométrie (surtout) en chaînons déductifs successifs Raisonnement par disjonction des Structures conditionnelles (Si … cas alors …. ) ou bien « Switch case » Fonction Notion reprise quasiment à l’identique Raisonnement par récurrence Récursivité Des prolongements pour les classes de Première et de Terminale 81 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO : outils logiciels Ce que disent les programmes officiels 82 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO : objectifs pour le lycée Ce que disent les programmes officiels 83 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO : seconde : activités Classe de Seconde Ce que disent les programmes officiels 84 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO : seconde : Fonctions et expressions algébriques Classe de Seconde : points du programme liés à l’algorithmique Fonctions : Même si les logiciels traceurs de courbes permettent d’obtenir rapidement la représentation graphique d’une fonction définie par une formule algébrique, il est intéressant, notamment pour les fonctions définies par morceaux, de faire écrire aux élèves un algorithme de tracé de courbe. Expressions algébriques : Les élèves apprennent à développer des stratégies s’appuyant sur l’observation de courbes, l’anticipation et l’intelligence du calcul. Le cas échéant, cela s’accompagne d’une mobilisation éclairée et pertinente des logiciels de calcul formel. Ce que disent les programmes officiels 85 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:seconde: Equations, géométrie Classe de Seconde : points du programme liés à l’algorithmique : Encadrer une racine d’une équation grâce à un algorithme de dichotomie. Pour un même problème, combiner résolution graphique et contrôle algébrique. Utiliser, en particulier, les représentations graphiques données sur écran par une calculatrice, un logiciel. Configurations : du plan Le cadre de la géométrie repérée offre la possibilité de traduire numériquement des propriétés géométriques et permet de résoudre certains problèmes par la mise en œuvre d’algorithmes simples. Géométrie On entraîne les élèves à l’utilisation autonome d’un logiciel de géométrie dans l’espace. Equations : Ce que disent les programmes officiels 86 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:Premiere_S:Second_deg, Dérivation, Suites Classe de Première S : points du programme liés à l’algorithmique Second degré : Proposer des activités algorithmiques. Dérivation : Si nécessaire dans le cadre de la résolution de problèmes, le calcul de la dérivée d’une fonction est facilité par l’utilisation d’un logiciel de calcul formel. : L’utilisation des outils logiciels facilite l’introduction du nombre dérivé. Suites : Mettre en œuvre des algorithmes permettant d’obtenir une liste de termes d’une suite et de calculer un terme de rang donné. L’utilisation du tableur et la mise en œuvre d’algorithmes sont l’occasion d’étudier des suites définies par une relation de récurrence. Ce que disent les programmes officiels 87 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:Première_S:suites, Statistiques Classe de Première S : points du programme liés à l’algorithmique Suites : Sens de variation On peut utiliser un algorithme ou un tableur pour traiter des problèmes de comparaison d’évolution et de seuil. Approche de la notion de limite Le tableur et les logiciels de géométrie dynamique et de calcul sont des outils adaptés à l’étude des suites, en particulier pour l’approche expérimentale de la notion de limite. Statistiques : On utilise la calculatrice ou un logiciel pour déterminer la variance et l’écart-type d’une série statistique. Des travaux réalisés à l’aide d’un logiciel permettant de faire observer des exemples d’effets de structure lors de calcul de moyennes. Ce que disent les programmes officiels 88 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:PremièreS:Proba,Echantillon Classe de Première S : points du programme liés à l’algorithmique Probabilités : On exploite les fonctionnalités de la calculatrice ou d’un logiciel pour déterminer l’espérance, la variance d’une série de données. On peut simuler la loi géométrique tronquée avec un algorithme. On peut simuler la loi binomiale avec un algorithme. Echantillonnage: L’intervalle de fluctuation peut être déterminé à l’aide d’un tableur ou d’un algorithme. Ce que disent les programmes officiels 89 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:Premières_ES_L:second_deg,fonctions,suites Classe de Premières ES et L : points du programme liés à l’algorithmique Second degré : Proposer des activités algorithmiques. Etude de fonctions : L’utilisation des outils logiciels facilite l’introduction du nombre dérivé. Si nécessaire dans le cadre de la résolution de problèmes, le calcul de la dérivée d’une fonction est facilité par l’utilisation d’un logiciel de calcul formel. Suites : Mettre en œuvre des algorithmes permettant d’obtenir une liste de termes d’une suite et de calculer un terme de rang donné. L’utilisation du tableur et la mise en œuvre d’algorithmes sont l’occasion d’étudier des suites définies par une relation de récurrence. Ce que disent les programmes officiels 90 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:Premières_ES_L:Suites,Stats Classe de Premières ES et L : points du programme liés à l’algorithmique Suites : Sens de variation On peut utiliser un algorithme ou un tableur pour traiter des problèmes de comparaison d’évolution, de seuil et de taux moyen. Statistiques : On utilise la calculatrice ou un logiciel pour déterminer la variance et l’écart-type d’une série statistique. Des travaux réalisés à l’aide d’un logiciel permettant de faire observer des exemples d’effets de structure lors de calcul de moyennes. Ce que disent les programmes officiels 91 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:Premières_ES_L:Proba,Ecchantillonnage Classe de Première S : points du programme liés à l’algorithmique Probabilités : À l’aide de simulations et d’une approche heuristique de la loi des grands nombres, on fait le lien avec la moyenne d’une série de données. On exploite les fonctionnalités de la calculatrice ou d’un logiciel pour déterminer l’espérance d’une variable aléatoire. Coefficients binomiaux En pratique, on utilise une calculatrice ou un logiciel pour obtenir les valeurs des coefficients binomiaux, calculer directement des probabilités et représenter graphiquement la loi binomiale. On peut simuler la loi binomiale avec un algorithme. Echantillonnage : L’intervalle de fluctuation peut être déterminé à l’aide d’un tableur ou d’un algorithme. Ce que disent les programmes officiels 92 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:TS:Suites,Continuité Classe de Terminale S (projet) : points du programme liés à l’algorithmique : Dans le cas d’une limite infinie, étant donnés une suite croissante (un) et un nombre réel A, déterminer à l’aide d’un algorithme un rang à partir duquel un est supérieur à A. Continuité sur : un intervalle, théorème des valeurs intermédiaires Des activités algorithmiques sont réalisées dans le cadre de la recherche de solutions de l’équation f (x) = k . Suites Ce que disent les programmes officiels 93 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 BO:TS:Intégration,Espace,Proba Classe de Terminale S (projet) : points du programme liés à l’algorithmique Intégration : Pour une fonction monotone positive, mettre en œuvre un algorithme pour déterminer un encadrement d’une intégrale. Géométrie l’espace : On étudie quelques exemples de sections planes du dans cube. Ce travail est facilité par l’utilisation d’un logiciel de géométrie dynamique. Probabilités : Conditionnement, indépendance Des activités algorithmiques sont menées dans ce cadre, notamment pour simuler une marche aléatoire. Loi uniforme sur [a, b]. L’instruction « nombre aléatoire » d’un logiciel ou d’une calculatrice permet d’introduire la loi uniforme sur [0,1]. Ce que disent les programmes officiels 94 BO:TS:Intégration, Proba Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Classe de Terminale S (projet) : points du programme liés à l’algorithmique Probabilités : Loi uniforme sur [a, b]. L’instruction « nombre aléatoire » d’un logiciel ou d’une calculatrice permet d’introduire la loi uniforme sur [0,1]. Approfondissement : Méthode de Monte-Carlo. Ce que disent les programmes officiels 95 BO:TS: Suites, Loi normale Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Classe de Terminales ES-L (projet) : points du programme liés à l’algorithmique Suites : Limite de la suite (qn), q étant un nombre réel strictement positif. Étant donné une suite (qn) avec 0 < q < 1, mettre en œuvre un algorithme permettant de déterminer un seuil à partir duquel qn est inférieur à un réel a positif donné. Loi normale N (μ, σ) : Utiliser une calculatrice ou un tableur pour obtenir une N probabilité dans le cadre d’une loi normale N (μ, σ). Ce que disent les programmes officiels 96 Institut Saint-Cassien Enseigner l’algorithmique en lycée 13 et 14 Décembre 2012 Objectifs visés pour des lycéens Objectifs pour les lycéens • Les objectifs « formateurs » de l’algorithmique : familiariser les élèves avec les grands principes d’organisation d’un algorithme : – gestion des entrées-sorties, – affectation d’une valeur et mise en forme d’un calcul, en opérant essentiellement sur des nombres entiers. • Les objectifs « opérationnels » de l’algorithmique : - décrire certains algorithmes en langage naturel ou dans un langage symbolique ; - en implémenter quelques uns à l’aide d’un tableur ou d’un petit programme réalisé sur une calculatrice ou avec un logiciel adapté ; - interpréter des algorithmes plus complexes. Objectifs pour des lycéens 97