Transcription of Algorithmique et programmation - Education
1 Duscol Ressources pour le lyc e Ressources pour le lyc e g n ral et technologique Math matiques Algorithmique et programmation Ces documents peuvent tre utilis s et modifi s librement dans le cadre des activit s d'enseignement scolaire, hors exploitation commerciale. Toute reproduction totale ou partielle d'autres fins est soumise une autorisation pr alable du Directeur g n ral de l'enseignement scolaire. La violation de ces dispositions est passible des sanctions dict es l'article du Code la propri t intellectuelle. Minist re de l' Education Nationale Juin 2017. Pr sentation g n rale La circulaire n 2017-082 du 2 mai 2017 apporte des am nagements au programme de math matiques de seconde g n rale et technologique. Elle pr voit une partie d di e l' Algorithmique et la programmation dont la r daction a t remani e et rappelle que le travail correspondant doit tre r investi dans les trois autres parties (fonctions, g om trie, statistiques et probabilit s).
2 La diff rence du programme de math matiques du cycle 4 du coll ge, il s'agit donc d'adosser explicitement les activit s de la partie Algorithmique et programmation aux math matiques. Cet enseignement a un double objectif : faire travailler des notions math matiques du programme dans un contexte diff rent, et poursuivre chez les l ves le d veloppement des comp tences 1. suivantes, d j travaill es au cycle 4 : d composer un probl me ;. reconna tre des sch mas ;. g n raliser et abstraire ;. concevoir des algorithmes et les traduire dans un langage de programmation . Les modalit s de l'apprentissage correspondant peuvent tre vari es : travail individuel ou en groupe, en salle informatique ou en salle banale, au tableau ou sur papier, sur tablette ou sur ordinateur. Il s'agit de consolider les acquis du cycle 4 autour de deux id es essentielles : la notion universelle de fonction d'une part et la programmation comme production d'un texte dans un langage informatique d'autre part.
3 Les notions math matique et informatique de fonction rel vent du m me concept universel. En informatique, une fonction prend un ou plusieurs arguments et renvoie une valeur issue d'un calcul. Le choix d'un langage textuel, comme Python, au lieu d'un langage par blocs, comme Scratch, permet aux l ves de se confronter la pr cision et la rigidit d'une syntaxe proche de celle des expressions math matiques, avec l'avantage de pouvoir b n ficier du contr le apport par l'analyseur syntaxique. Pr sentation de la ressource Ce document pr sente des activit s permettant d' clairer des r sultats et des m thodes math matiques au travers d'algorithmes simples. La plupart de ces activit s n'ont pas t con ues pour tre donn es telles quelles des l ves. Leur objectif est de montrer aux enseignants comment on peut utiliser le langage Python pour faire des math matiques autrement et leur proposer des situations pour se former et dans lesquelles ils pourront puiser des id es pour concevoir des activit s de longueurs et de difficult s vari es, allant des questions flash aux mini- projets.
4 M me si les am nagements de programme ne concernent que la classe de seconde, les activit s couvrent un spectre plus large et les professeurs sont libres de les adapter aux classes du cycle terminal. Les programmes de ce document sont crits dans le langage Python, choisi pour la concision et la simplicit de sa syntaxe, la taille de la communaut d'utilisateurs (en particulier dans le cadre ducatif), ainsi que la richesse des ressources disponibles. On trouvera en annexe des indications sur l'installation de Python sur tablette ou sur ordinateur. Le professeur gardera l'esprit que l'enseignement de la partie Algorithmique et programmation n'a pas pour objectif de former des experts dans tel ou tel langage de programmation ou dans la connaissance d taill e de telle ou telle biblioth que de programme. Il s'agit de prolonger l'enseignement de la pens e Algorithmique initi au cycle 4, qui trouve une place naturelle dans tous les champs du programme de math matiques.
5 L' criture, la compr hension et la modification 1. 1 cf. la ressource d'accompagnement du programme de math matiques du cycle 4 Algorithmique et programmation . Minist re de l' Education Nationale 1. Algorithmique et programmation d'algorithmes et de petits programmes permettent aux l ves d'acqu rir de bonnes habitudes de rigueur, tout en revisitant les notions de variables et de fonctions. Quelques concepts importants Algorithmes Un algorithme est une proc dure de r solution de probl me, abstraction faite des caract ristiques sp cifiques qu'il peut rev tir. Par exemple, un algorithme de tri ne r sout pas le probl me du tri d'un jeu particulier de donn es mais a pour objectif de trier n'importe quel jeu de donn es : le probl me du tri s'applique diff rentes instances, c'est- -dire diff rents jeux de donn es. Un algorithme s'applique donc une famille d'instances d'un probl me et produit, en un nombre fini d' tapes constructives, effectives, non-ambig es et organis es, la r ponse au probl me pour toute instance de cette famille.
6 De la m me fa on qu'un script Scratch se construit en accolant des briques l mentaires, un algorithme s'appuie sur un ensemble tr s r duit de constructions : l'affectation d'une variable, la s quence d'instructions, l'instruction conditionnelle, les boucles (born es ou non born es), les fonctions. Ci-apr s sont d crites ces diff rentes constructions. Toutefois, il n'est pas recommand de les pr senter de fa on magistrale aux l ves, qui les ont d j rencontr es au cycle 4, mais de les mobiliser de fa on naturelle dans les activit s travaill es, en introduisant progressivement leur imbrication. Affectation d'une variable La ressource d'accompagnement du th me Algorithmique et programmation du programme de math matiques au cycle 4 explique la diff rence entre les notions math matique et informatique de la variable. En math matiques, la variable appara t dans des formules comme celle du p rim tre d'un cercle ou l'expression symbolique des fonctions.
7 On distingue : les variables, comme dans les formules du type = 2 ou l'expression symbolique ( ) d'une fonction ;. les ind termin es, comme dans une identit remarquable ( + )2 = 2 + 2 + 2 , qui indique que l' galit est vraie pour toutes les valeurs donn es et ;. les inconnues, comme dans l' quation 2 + 3 = 4 7, o il s'agit cette fois de d terminer pour quelles valeurs de la variable l' galit est vraie ;. les param tres, qui conservent une valeur fixe, mais de port e g n rale, comme qui d signe le coefficient de la fonction lin aire . En informatique, on est amen crire des instructions comme x = x+1 qui sont d'une nature totalement diff rente : il ne s'agit pas l d'une galit , ni d'une quation, mais d'une instruction d'affectation, qui va modifier le contenu de la variable x. Il est d'ailleurs recommand de lire cette instruction x re oit la valeur x+1 et surtout pas x gale x+1.
8 C'est la s mantique particuli re de l'affectation, qui n'a pas d'analogue en math matiques, qui conduit les informaticiens une notion diff rente de la variable. Un mod le rigoureux de la variable informatique consiste dire qu'une variable est une tiquette coll e sur une bo te qui peut contenir diff rentes valeurs. Le contenu de chaque bo te varie au cours de l'ex cution d'un programme (ce qui n'est pas le cas d'une variable math matique). Quand l'ordinateur value une expression dans laquelle figure une variable, comme x+4, le r sultat de l' valuation est la somme du nombre contenu dans la bo te d' tiquette x et de 4. Minist re de l' Education Nationale 2. Algorithmique et programmation Une instruction d'affectation comme y = x+4 est donc ex cut e de la fa on suivante : valuer l'expression x+4 en ajoutant 4 la valeur contenue dans la bo te tiquet e par x.
9 Jeter le contenu de la bo te tiquet e par y, et le remplacer par la valeur calcul e l' tape pr c dente. On v rifie que l'instruction x = x+1 s'explique alors exactement de la m me fa on. On observe galement que le symbole = a t choisi pour l'op ration d'affectation en Python. Le symbole = n'est donc pas disponible pour le test d' galit qui s' crit ==. On sera attentif cette diff rence : l'affectation est absente en math matiques et omnipr sente en informatique, le test d' galit d'un usage moins fr quent en informatique. S quence d'instructions En Python, une s quence d'instructions s'obtient en crivant simplement la suite, dans un ordre d termin , diff rentes instructions, chacune sur une ligne, avec la m me indentation (on reviendra sur l'utilisation et la place essentielle de l'indentation). Par exemple : a = 4. b = 5.
10 C = maFonction(a+b,a-b). affecte 4 la variable a, puis 5 la variable b. Enfin, on affecte la variable c la valeur renvoy e par la fonction maFonction en prenant comme arguments la somme et la diff rence de a et b. Il est noter qu'on aurait pu condenser les deux premi res affectations en une seule, en utilisant une affectation multiple : a, b = 4, 5. Dans le cas d'une affectation multiple, on value d'abord les expressions droite du symbole = puis on affecte les r sultats aux variables qui figurent gauche. On peut crire simplement a, b = b, a pour changer les valeurs des deux variables a et b. Instruction conditionnelle En Scratch, on a le choix entre une instruction conditionnelle avec ou sans clause sinon . Il en est de m me avec Python. Voici un exemple sans clause sinon : delta = b*b 4*a*c if delta > 0: x1 = (-b+sqrt(delta))/(2*a).