Adhérer ou faire un don

Classe de Seconde, nouveaux programmes et informatique

Frédéric Laroche

1. Les nouveaux programmes

Rappelons les points importants du programme de Seconde de juin 2009 et tout d’abord les objectifs :

  • chercher, expérimenter – en particulier à l’aide d’outils logiciels ;
  • appliquer des techniques et mettre en oeuvre des algorithmes ;
  • raisonner, démontrer, trouver des résultats partiels et les mettre en perspective ;
  • expliquer oralement une démarche, communiquer un résultat par oral ou par écrit.

Les objectifs, pour le lycée, visés par l’algorithmique sont explicités :
Dans le cadre de l’activité algorithmique, les élèves sont entraînés :

  • à décrire certains algorithmes en langage naturel ou dans un langage symbolique ;
  • à en réaliser 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.
    Aucun langage, aucun logiciel n’est imposé. Les élèves, dans le cadre d’une résolution de problèmes, doivent être capables d’effectuer des tâches de base :
    – Instructions élémentaires (affectation, calcul, entrée, sortie).
    – Boucle et itérateur, instruction conditionnelle.

Évidemment l’algorithmique en classe ne doit pas se transformer en atelier de programmation … et, si on peut envisager quelques travaux différents en devoir à la maison ou sur la base du volontariat, il semble difficile avec les classes de Seconde actuelles de faire davantage que leur apprendre à se dépatouiller avec le tableur [1] et à réaliser quelques programmes simples sur leur calculatrice (rappelons que les calculatrices graphiques et programmables font partie de l’outillage nécessaire à l’élève de Seconde générale et technologique).

De plus il sera sûrement intéressant pour les élèves de disposer dans leur machine de petits programmes suppléant des défaillances éventuelles de la mémoire ou des méthodes de calcul peu sûres : rechercher l’intersection de deux droites peut s’écrire facilement et aider les plus fragiles.

Par ailleurs de nombreux établissements ne donnent que difficilement accès aux salles informatiques (pour ma part j’ai droit cette année à une salle 1 heure par semaine en TD, je jongle…) et l’investissement sur les classes de Première S et Terminale S lors de l’expérimentation de l’épreuve pratique ne doit pas être perdu : les élèves de ces classes doivent continuer à pratiquer régulièrement.

2. L’évaluation

Le document ressource parle d’évaluation :

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 menées dans le cadre de la pratique de l’algorithmique peuvent servir de support d’évaluation des compétences liées, d’une part, aux trois modalités fondamentales de l’activité en algorithmique qui sont :

a. analyser le fonctionnement ou le but d’un algorithme existant ;
b. modifier un algorithme existant pour obtenir un résultat précis ;
c. créer un algorithme en réponse à un problème donné ;

et, d’autre part, à la résolution de problèmes tels que :

d. modéliser et s’engager dans une activité de recherche ;
e. faire une analyse critique ;
f. pratiquer une lecture active de l’information (critique, traitement), en privilégiant les changements de registre (graphique, numérique, algébrique, géométrique) ;
g. communiquer à l’écrit et à l’oral.

L’occasion peut être belle de prendre effectivement le taureau par les cornes et de mettre en place une véritable évaluation par compétences dans ce domaine : il semble difficile (philosophiquement parlant) d’intégrer des exercices standards de programmation dans un devoir surveillé de mathématiques, les objets d’évaluation n’étant évidemment pas du tout les mêmes ; on devrait d’ailleurs pouvoir essayer de mettre en place un « livret d’algorithmique » dont les résultats seraient intégrés dans la moyenne sous forme d’une note séparée (bien obligé de mettre une note mais cela permettrait de distinguer clairement les capacités mathématiques « pures » des capacités algorithmiques). Par exemple en conseil de classe, l’enseignant devrait être capable de dire ce qu’il pense pour chacun des domaines, chacun pouvant amener à des possibilités différentes.

Un autre intérêt de ce livret serait évidemment d’y intégrer une évaluation des capacités sur les logiciels habituels (tableur, géométreur, …), lesquelles capacités n’ont pas à être évaluées en tant que telles mais peuvent apporter un éclairage sur le potentiel de l’élève.

Voici en complément quelques compétences simples qu’il faudra également veiller à évaluer…

– Savoir faire un schéma algorithmique simple (E/S, tests, boucles).
– Mise en route, connaissance de la machine (ordinateur/calculatrice).
– Connaissance des instructions de base (ouvrir un programme, le modifier, l’éxécuter, saisir des données, afficher des résultats).
– Mise en place d’un calcul numérique.
– Mise en place d’un calcul logique.
– Programmer une condition « si … alors … fin_si » .
– Programmer une boucle « pour … fin_pour », une boucle « tantque … fin_tantque ».
– Contrôler un résultat.

On peut éventuellement mettre plusieurs niveaux de difficulté à chaque item de sorte que la « conversion en note » soit plus facile…

3. Des exemples

Évidemment, le fait de ne pas disposer de bases d’arithmétique spécifiques à la Seconde n’autorise pas énormément de fantaisies dans ce domaine : on peut programmer l’algorithme d’Euclide pour le PGCD, mais celui utilisant les fractions continues est un peu plus amusant ; la recherche de nombres premiers en tant que tels manque d’intérêt, par contre chercher des nombres premiers de telle ou telle forme (dans les suites arithmétiques, de la forme $ n^{2} + 1 $, comme images dans des polynômes) peut ressembler à l’ouverture de la chasse par un beau matin d’automne…
On n’aime pas forcément mais on peut se laisser prendre.

Pour l’analyse on peut dissimuler l’utilisation des suites et préparer ainsi les élèves à ce type de démarche en Première, situation souvent éprouvante à ce moment-là pour eux.

Voici quelques exercices qui peuvent être traités assez facilement. Je me suis efforcé de les classer par niveau de difficulté, et par grand thème : T, G, F, P pour Technique (de programmation), Géométrie, Fonctions, Probabilités.

3.1. Comprendre

T. 1  : Affecter une variable. Qu’obtient-on à l’écran lorsque l’on programme l’algorithme suivant ? (Tester l’algorithme pas à pas)

Demander A
Demander B
Affecter la valeur de A à B
Affecter la valeur de B à A
Afficher A
Afficher B

T. 2 : Effectuer un cumul. Qu’obtient-on à l’écran lorsque l’on programme l’algorithme suivant ? (Tester l’algorithme pas à pas)

Entrée

Demander A

Traitement

Affecter la valeur de A à S

Faire 10 fois la procédure suivante

Affecter la valeur S + 1 à S

Sortie

Afficher A

T. 3 : Somme nulle ? Même question qu’à T.2.

Donner à S la valeur 0
Début de la boucle
Demander A
Donner à S la valeur S + A
Recommencer au début de la boucle jusqu’à ce que A = 0
Afficher S

T. 4 : Boucle Tant que. Compléter l’algorithme : (le résultat est sans importance, seule compte la cohérence interne du programme)

Demander …
Demander …
Affecter la valeur de N à Q
Tant que . . . . . . . . . . . . faire
Affecter la valeur de …............. à Q
Affecter la valeur de …..............à R
Afficher …....
Affecter la valeur de …...... à N
Fin Tant Que

3.2. Niveau élémentaire

G. 1 : Trouver les coordonnées du milieu d’un segment.

Application directe : l’écriture du milieu dans Geogebra peut être amusante (dans la ligne de saisie : I=(A+B)/2), prolongée éventuellement au centre de gravité, puis à la moyenne pondérée … de points. Je sais que beaucoup de collègues n’apprécient pas ce genre d’écriture, mais on peut en profiter pour signaler la diversité des notations.

G. 2 : Trouver l’intersection de deux droites.

G. 3 : Trouver le quatrième sommet d’un parallélogramme.

G. 4 : Deux vecteurs sont-ils colinéaires ?

G. 5 : Équation d’une droite connaissant un vecteur directeur et un point.

F. 1 : Pour une fonction donnée, calculer l’image d’une valeur quelconque et placer le point correspondant dans un repère.

Test de faisabilité. Un bon exemple est le polynôme d’Euler $x^2 + x + 41$ qui donne une série de nombres premiers pour $−40 < x < 39$, $x$ entier. On pourra chercher de même ce que donne $x^2 - 79x + 1~061$.

F. 2 : Premier degré : écrire l’algorithme qui demande les deux paramètres a et b d’un binôme du premier degré. Le programme donnera ensuite la valeur de la racine et le signe du binôme.

F. 3 : Équivalence entre le trinôme et sa forme canonique, entre $ f(x) = \frac{ax+b}{cx+d} $ et $ f(x) = \alpha x+\frac{\beta}{x+\gamma} $. Le problème va surtout consister à décortiquer chacune des formes et à regarder les divers cas particuliers.

3.3. Niveau intermédiaire

F. 4 : Trouver la détermination principale d’un angle (le radian n’est pas explicitement au programme de Seconde, mais lorsqu’on utilise la calculette, le tableur ou Geogebra, il vaut mieux que les élèves soient informés…).

P. 1 : La méthode de Monte-Carlo pour calculer $\pi$.
On pose $S = 0$. Tirer au hasard deux nombres $x$ et $y$ compris entre 0 et 1 : si $x^2 + y^2 < 1$ ajouter 1 à $S$. Répéter $n$ fois. $\frac{S}{n}$ est une valeur approchée de $\pi$. Ceci dit, l’approximation est très lente… On pourra comparer avec arctan(1).

P. 2 : Un dé est jeté $p$ fois, il y a $6^p$ résultats possibles que l’on aimerait classer en fonction de la somme $S_p = X_1 + X_2 + … + X_p$ et décompter les fréquences de tous les résultats possibles : on peut commencer avec $p = 1$ puis $p = 2$ et essayer d’étendre l’algorithme.

G. 6 : Trouver l’abscisse d’un point inconnu
Le point A est sur l’axe des abscisses et son abscisse est 3. Pour tout autre point M, d’abscisse $x$, situé sur l’axe des abscisses, on cherche la distance AM.
Programme en langage Algobox :

1  VARIABLES
2     x EST_DU_TYPE NOMBRE
3     distance EST_DU_TYPE NOMBRE
4  DEBUT_ALGORITHME    
5     LIRE x
6     SI (x>=3) ALORS
7         DEBUT_SI
8         distance PREND_LA_VALEUR x - 3
9         FIN_SI
10    SINON
11        DEBUT_SINON        
12        distance PREND_LA_VALEUR x - 3
13        FIN_SINON
14 AFFICHER "La distance AM est égale à : "      
15 AFFICHER distance        
16 FIN_ALGORITHME          

On peut proposer ici aux élèves de reprendre l’algorithme de sorte à le transformer en jeu : l’élève Zéphyrin proposera à l’élève Alcide de trouver la position de A (position que Zéphyrin a choisie au préalable) en faisant divers essais : il faudra ajouter une boucle TANT_QUE ; on peut également ajouter un compteur du nombre d’essais.
On pourrait d’ailleurs après test sur Algobox proposer une traduction avec le tableur.

F. 5 : Méthode de Hörner
Soit P un polynôme de degré $n$ : $P(x) = a_0 + a_1x + a_2x^2 + a_3x^3 + … + a_nx^n$.
$P(x)$ peut s’écrire sous la forme : $P(x) = a_0 + x(a_1 +x(a_2 + x(a_3 + \ldots)))$.
Cette forme est particulièrement intéressante pour sa rapidité de calcul : on pourra comparer le nombre de multiplications dans les deux cas. Elle peut également servir à introduire la notion de liste.

Demander le degré $n$ du polynôme
Demander la valeur de $x_0$
Demander les coefficients du polynôme

Affecter la valeur de $a_n$ à A

Pour $i$ allant de $n$ à 1, affecter la valeur de A$x$ $+ a_{i-1}$ à A

Afficher A

F. 6  : Trouver l’extremum d’une fonction sur un intervalle donné avec un pas donné. Il peut être intéressant de faire intervenir des fonctions trigonométriques à variations rapides, type $sin(\frac{1}{x})$ pas très loin de 0.

F. 7 : Méthodes de résolution approchée d’équations : balayage, essais aléatoires, dichotomie, méthode de Newton (Première, Terminale). Voici une mise en oeuvre de l’algorithme de la dichotomie inspiré du Bac L, spé maths 2009 ; on pourra bien sûr améliorer le programme, mais c’est une base intéressante.

On définit une fonction $f$ sur l’intervalle $[a~;~b]$.
1. Vérifier que $f$ s’annule une seule fois sur $[a~;~b]$, en $\alpha$.
2. On considère l’algorithme suivant :

Entrée :

Introduire un nombre entier naturel $n$

Initialisation :

Affecter à $N$ la valeur $n$

Affecter à $A$ la valeur $a$

Affecter à $B$ la valeur $b$

Traitement :

Tant que $B - A > 10^{- N}$

Affecter à $M$ la valeur $\frac{A+B}{2}$

Affecter à $p$ le produit $f(A)\timesf(M)$

Si $P>0$, affecter à $A$ la valeur $M$

Si $P<0$, affecter à $B$ la valeur $M$

Sortie :

Afficher $A$

Afficher $B$

a. On a fait fonctionner cet algorithme pour n = 2. Compléter le tableau en donnant les différentes étapes.

   $M$   $P$  $A$ $B$ $B-A$
Initialisation 0 1  
Étape 1
Étape 2
 $\ldots$

b. Cet algorithme détermine un encadrement de la solution $\alpha$ de l’équation $f (x) = 0$ sur l’intervalle $[a~;~b]$. Quelle influence le nombre entier $n$, introduit au début de l’algorithme, a-t-il sur l’encadrement obtenu ?

3.4. Niveau supérieur

JPEG - 6.2 ko

G. 7 : Voici un exercice particulièrement simple à énoncer mais dont il semble difficile de trouver les solutions sans programme :
On a planté un arbre en A et un arbre en B ; le problème est de placer quatre autres arbres aux intersections du quadrillage de sorte que les distances entre les arbres soient toutes différentes.

F. 8 : Deux algorithmes importants pour calculer la racine carrée : on pourra inciter les élèves à faire des comparaisons en termes de précision et de temps de calcul ; il n’y a rien d’évident à ce que l’un soit plus rapide que l’autre même si la complexité n’est pas la même.
– L’algorithme de Héron : on part d’une valeur $a$ pas trop éloignée du résultat attendu (en fait positif suffit), puis on lance le calcul grâce à la suite :

$$u_0=a,~u_{n+1}=\frac{1}{2}\left(u_n+\frac{R}{u_n}\right).$$

Le mécanisme peut s’expliquer facilement à partir d’une représentation géométrique (Promenades Mathématiques, p 82).
– L’algorithme de la fraction continue : une fraction continue qui permet le calcul de $\sqrt{R}=\sqrt{n^2+m}$ est donnée par $\sqrt{n^2+m}= n + \frac{m}{2n+\frac{m}{2n+\frac{m}{\ldots}}}$.

P. 3 : Le cake aux raisins.
Cette simulation classique est toujours très formatrice et spectaculaire : un boulanger prépare de la pâte pour faire C cakes aux raisins ; une fois sa pâte prête, il introduit R raisins et mélange. Quel est le nombre moyen de raisins par cake (il espère que c’est bien R/C) et quelle est la fluctuation autour de cette moyenne (il espère qu’elle est raisonnable…) ?

Pour réaliser la simulation, il faut numéroter chaque raisin et tirer au sort le numéro du cake où il va arriver ; pour chaque cake on compte alors le nombre de raisins qu’il contient, il reste à faire la moyenne et éventuellement l’écart-type. La réalisation avec le tableur est vraiment intéressante visuellement, même si le calcul des fluctuations est un peu compliqué (ici on fera intervenir ce que nous disions précédemment sur les possibilités itératives des tableurs) ; la réalisation avec un programme va obliger à manipuler la liste des raisins, la liste des cakes et une troisième liste contenant le nombre de raisins possibles par cake assorti de la probabilité correspondante. Bon appétit !

4. Documentation

Algobox : http://www.xm1math.net/algobox/
Calculatrices : http://www.planet-casio.com/Fr/ et http://www.ticalc.org/
Xcas : http://www-fourier.ujf-grenoble.fr/...
Utilisation en ligne de Xcas : http://vds1100.sivit.org/giac/giac_...
Site de CarMetal : http://db-maths.nuxit.net/CaRMetal/
Divers sujets et exercices : http://laroche.lycee.free.fr/profs.htm

(Article mis en ligne par Didier Trotoux)

[1] Contrairement à une idée trop souvent répandue chez les spécialistes, l’apprentissage par le tableur des rudiments sur les listes, sur les affectations de variables, sur les boucles, voire la récursivité peut se faire facilement : on peut passer le tableur en mode récursif de sorte qu’il accepte les références circulaires (sur Excel : Options, Calcul, Itérations ; il est recommandé de passer en Calcul sur Ordre). Le lecteur intéressé peut trouver divers exemples dans les fichiers Excel en téléchargement ici : http://promenades.free.fr/