Version prof → Mathématiques · Lycée professionnel · Tle · Terminale

Séquence 9 · Algorithmique et programmation : fonctions, listes et seuils en Python

Comment un petit programme modulaire peut‑il répondre à une question professionnelle : au bout de combien d'années ? quelle valeur approchée ?

Repères pour le professeur

Voie · niveauLycée professionnel (Bac Pro) · Terminale
DisciplineMathématiques
Programme officielProgramme de mathématiques de Terminale professionnelle, BO spécial n°1 du 6 février 2020 : suites géométriques, fonctions exponentielles et logarithme décimal (module mis en oeuvre avec la physique-chimie). Certification : arrêté du 17 juin 2020.
Place dans le programmeProgramme de mathématiques de terminale professionnelle (BO spécial n°1 du 6 février 2020), module « Algorithmique et programmation » (groupements A, B et C)
Durée totale2 séances + 1 évaluation ≈ 3 h 05
ModalitéEnseignement à distance : classe virtuelle + travail autonome + rendu sur l'ENT

Objectifs et capacités

Objectifs

Capacités travaillées (BO)

Notions et définitions

fonction, arguments, valeur renvoyéeprogrammation modulaireliste en extension, par ajouts, en compréhensionboucle while, seuilbalayage, encadrement d'une solution

Repères historiques

Ressources de la séquence

Ancrage dans le programme, notions, repères, débats, bibliographie et différenciation, communs à toutes les séances.

Ancrage dans le programme officiel

Objectif du module : « Ce module permet aux élèves de consolider et d'approfondir l'étude de l'algorithmique et de la programmation commencée dans les classes antérieures. »

Programmation modulaire : « L'accent est mis sur la programmation modulaire qui permet de découper une tâche complexe en tâches plus simples. »

Langage : « En continuité avec les classes de seconde et de première, le langage utilisé est le langage Python. »

Compétences : « valider : critiquer un résultat, argumenter ; contrôler la vraisemblance d'une conjecture ; mener un raisonnement logique et établir une conclusion »

Certification (arrêté du 17 juin 2020, annexe III) : en contrôle en cours de formation, deux situations d'évaluation en première et terminale : « Ces situations d'évaluation ont chacune une durée de quarante-cinq minutes environ et sont notées sur 10 points. » « Un exercice au moins comporte une ou deux questions dont la résolution se fait en présence de l'examinateur. » Pour les candidats hors CCF : « L'épreuve, d'une durée d'une heure, est une évaluation écrite et pratique, notée sur 20 points se déroule en fin de cursus de formation. »

Notions : définitions rigoureuses

Fonction
def nom(arguments) : … return résultat.
Programmation modulaire
Découper un problème en petites fonctions simples et testables.
Liste
Générée en extension, par ajouts successifs (append) ou en compréhension.
Boucle while
Répète tant qu'une condition est vraie ; sert à trouver un seuil.
Balayage
On avance par petits pas jusqu'au changement de signe ou au dépassement d'une valeur, ce qui donne un encadrement.

Repères

DateÉvénement
IXe siècleAl‑Khwarizmi décrit des procédures de calcul ; son nom a donné le mot « algorithme ».
1843Ada Lovelace publie un programme pour la machine analytique de Babbage.
1991Guido van Rossum publie Python.
Aujourd'huiPython est l'un des langages les plus utilisés dans l'industrie et la recherche.

Les historiens en débat

Le mot algorithme rend hommage au savant de Bagdad Al‑Khwarizmi. Ada Lovelace a compris la première qu'une machine pouvait exécuter une suite d'instructions générale. Python, libre et gratuit, permet aujourd'hui à chacun d'écrire en quelques lignes des programmes qui répondent à des questions professionnelles. Synthèse du professeur.

Pour aller plus loin

Sources et bibliographie

Différenciation : un rythme de travail différent

Déroulé d'ensemble

SéanceTitreDuréeObjectif
Séance 1Fonctions et listes65 minécrire des fonctions et générer des listes de termes d'une suite
Séance 2Seuils et balayage65 mindéterminer un seuil avec while et encadrer une solution par balayage
ÉvaluationÉvaluation de fin de séquence (/20)55 minVérifier les acquis : connaissances, capacités, rédaction

Chaque séance dure environ 55 minutes à distance : lancement en classe virtuelle ou par message sur l'ENT, recherche du problème (calculatrice, tableur, GeoGebra ou Python dans le navigateur), mise en commun, cours et trace écrite. Les élèves renvoient la fiche à trous et leur production par l'ENT ou en photo.

Séance 1 · Fonctions et listes

65 min

Séance approfondie : cours développé, documents sourcés, activités exigeantes, corrigés et barème.

Problématique de la séance

Comment calculer d'un coup les recettes de six années ?

Déroulé minuté à distance

Le cours développé (récit du professeur) · Fonctions et listes

Une fonction Python regroupe des instructions : def valeur(c, t, n) : reçoit des arguments, effectue un calcul et renvoie un résultat avec return. On l'appelle avec des valeurs : valeur(1000, 0.03, 2). La programmation modulaire consiste à découper un problème en petites fonctions faciles à tester. Une liste peut être générée en extension ([200, 220, 242]), par ajouts successifs (liste vide, puis append dans une boucle) ou en compréhension. La fonction sum additionne les éléments d'une liste. On travaille dans Basthon, gratuit, dans le navigateur.

Document 1 · Le chiffre d'affaires prévisionnel

Situation-problème.

Une jeune entreprise de services prévoit un chiffre d'affaires de 200 milliers d'euros la première année, puis une hausse de 10 % par an. Elle veut la liste des six premières années et le total.

Source : Situation construite pour la séance par le professeur (données fictives, choisies pour être réalistes).

Activité 1 · S'approprier

12 min
Essentiel

Supports : Document 1

Consigne :

Calculez à la main.

  1. Chiffre d'affaires des années 2 et 3 ?
    ✔ Corrigé :

    220 et 242.

  2. Type de suite ?
    ✔ Corrigé :

    Géométrique de raison 1,1.

  3. Six premiers termes ?
    ✔ Corrigé :

    200 ; 220 ; 242 ; 266,2 ; 292,82 ; 322,10.

Critère de réussitePoints
S'approprier, réaliser6
Total de l'activité6

Activité 2 · Réaliser

18 min
Essentiel

Supports : Cours

Consigne :

Programmez dans Basthon.

  1. Liste par ajouts successifs ?
    ✔ Corrigé :

    ca = [] ; u = 200 ; for k in range(6) : ca.append(u) ; u = u × 1.1.

  2. Total des six années ?
    ✔ Corrigé :

    sum(ca) ≈ 1 543,12 milliers d'euros.

  3. Fonction valeur(1000, 0.03, 2) qui multiplie n fois par 1 + t ?
    ✔ Corrigé :

    Elle renvoie 1 060,90.

Critère de réussitePoints
Analyser, raisonner, réaliser7
Total de l'activité7

Activité 3 · Communiquer

15 min
Travail à rendre

Supports : Documents et cours

Consigne :

Rédigez une présentation (6 lignes) de votre programme pour la gérante : ce qu'il calcule, comment le modifier si la hausse est de 8 %. Pour bien commencer : Le programme crée une liste… · Pour une hausse de 8 %, il suffit de… · Le total obtenu représente…

✔ Corrigé rédigé :

Description juste ; modification du coefficient 1,1 en 1,08 ; total interprété ; clarté.

Critère de réussitePoints
Valider5
Communiquer2
Total de l'activité7

Trace écrite (à faire recopier ou à déposer sur l'ENT)

Une fonction commence par def. Elle renvoie son résultat avec return. append ajoute un élément à une liste. sum donne la somme des éléments d'une liste.

Barème récapitulatif des activités notées

ActivitéPoints
Activité 1 · S'approprier6
Activité 2 · Réaliser7
Activité 3 · Communiquer7
Total20 / 20

Séance 2 · Seuils et balayage

65 min

Séance approfondie : cours développé, documents sourcés, activités exigeantes, corrigés et barème.

Problématique de la séance

Au bout de combien d'années ? Avec quelle précision ?

Déroulé minuté à distance

Le cours développé (récit du professeur) · Boucle while et balayage

Pour trouver un seuil (le premier rang n où une suite dépasse une valeur), on utilise une boucle while : tant que la condition n'est pas atteinte, on calcule le terme suivant et on augmente un compteur. Pour trouver une valeur approchée d'une solution de f(x) = c dont on sait qu'elle existe dans un intervalle, on fait un balayage : on part de la borne inférieure et on avance d'un pas (0,1 puis 0,01) tant que f(x) < c ; on obtient un encadrement de la solution. On écrit la fonction f à part : c'est la programmation modulaire.

Document 1 · Le placement et l'équation

Situation-problème.

Une coopérative place 1 000 € à 3 % par an et veut savoir quand elle atteindra 1 500 €. Son bureau d'études cherche aussi la solution de x³ − 3x = 1 comprise entre 1 et 2 (dimension d'une pièce).

Source : Situation construite pour la séance par le professeur (données fictives, choisies pour être réalistes).

Activité 1 · S'approprier

12 min
Essentiel

Supports : Document 1

Consigne :

Préparez.

  1. Condition de la boucle pour le placement ?
    ✔ Corrigé :

    Tant que c < 1 500.

  2. Que fait‑on à chaque tour ?
    ✔ Corrigé :

    c = c × 1.03 et n = n + 1.

  3. Pour le balayage, que calcule la fonction g ?
    ✔ Corrigé :

    g(x) = x × x × x − 3 × x.

Critère de réussitePoints
S'approprier, réaliser6
Total de l'activité6

Activité 2 · Analyser, raisonner

18 min
Essentiel

Supports : Cours

Consigne :

Programmez et testez.

  1. Résultat de seuil(1000, 0.03, 1500) ?
    ✔ Corrigé :

    14 ans, capital ≈ 1 512,59 €.

  2. Balayage au pas de 0,1 ?
    ✔ Corrigé :

    g(1,8) ≈ 0,43 et g(1,9) ≈ 1,16 : solution entre 1,8 et 1,9.

  3. Balayage au pas de 0,01 ?
    ✔ Corrigé :

    g(1,87) ≈ 0,929 et g(1,88) ≈ 1,005 : solution entre 1,87 et 1,88.

Critère de réussitePoints
Analyser, raisonner, réaliser7
Total de l'activité7

Activité 3 · Valider, communiquer

15 min
Travail à rendre

Supports : Documents et cours

Consigne :

Rédigez un compte rendu (6 à 8 lignes) pour le bureau d'études : méthode de balayage, encadrement obtenu, précision et intérêt d'avoir écrit g comme une fonction séparée. Pour bien commencer : J'ai écrit une fonction g qui… · Le balayage au pas de 0,01 donne… · Écrire g à part permet de…

✔ Corrigé rédigé :

Méthode claire ; encadrement juste ; précision au centième ; réutilisation de g ; vocabulaire précis.

Critère de réussitePoints
Valider5
Communiquer2
Total de l'activité7

Trace écrite (à faire recopier ou à déposer sur l'ENT)

Une boucle while répète tant qu'une condition est vraie. Un compteur compte les tours de boucle. Le balayage donne un encadrement de la solution. Écrire g comme une fonction séparée relève de la programmation modulaire.

Barème récapitulatif des activités notées

ActivitéPoints
Activité 1 · S'approprier6
Activité 2 · Analyser, raisonner7
Activité 3 · Valider, communiquer7
Total20 / 20

Fiche à trous · corrigé

Une fonction Python commence par le mot‑clé def.

Le mot‑clé return renvoie le résultat d'une fonction.

Une boucle while répète des instructions tant qu'une condition est vraie.

Le balayage donne un encadrement d'une solution.

La version élève contient la même fiche avec une banque de mots (papier ou ENT).

Évaluation de fin de séquence (/20) · barème et corrigé

Évaluation sur 20 à faire en temps limité sur l'ENT ou sur papier, puis à renvoyer en photo ; le corrigé et le barème servent aussi à l'autoévaluation. En Bac Pro, elle est construite comme une situation de contrôle en cours de formation (problème contextualisé, compétences évaluées) ; en 1re générale, elle prépare à l'épreuve anticipée (automatismes sans calculatrice et exercices) ; en Terminale générale, aux exercices indépendants de l'épreuve de spécialité.

N°QuestionBarèmeCorrigé et critères
1Que renvoie la fonction suivante pour valeur(1000, 0.03, 2) ? def valeur(c, t, n) : on répète n fois c = c × (1 + t), puis return c.4 pts1 000 × 1,03 × 1,03 = 1 060,90. 4 points.
2Écrivez une fonction seuil(c, t, objectif) qui renvoie le nombre d'années nécessaires pour qu'un capital c placé au taux t atteigne objectif. Testez‑la avec 1 000 €, 3 % et 1 500 €.8 ptsn = 0 ; while c < objectif : c = c × (1 + t) ; n = n + 1 ; return n. Résultat 14 (capital ≈ 1 512,59 €). Boucle while (4 pts), test (4 pts).
3On cherche une solution de x³ − 3x = 1 entre 1 et 2. Décrivez un programme de balayage au pas de 0,01 et donnez l'encadrement obtenu. Expliquez l'intérêt de découper le programme en fonctions. Pour bien commencer : *Je définis d'abord une fonction…* · *La boucle s'arrête quand…* · *Découper en fonctions permet de…*8 ptsFonction g(x) qui renvoie x × x × x − 3 × x ; on part de x = 1 et on augmente x de 0,01 tant que g(x) < 1 : on s'arrête à 1,88, d'où l'encadrement 1,87 < solution < 1,88 (g(1,87) ≈ 0,929 et g(1,88) ≈ 1,005). Fonctions réutilisables et faciles à tester. Programme (4 pts), encadrement (2 pts), explication (2 pts).
Total20 pts

Pistes pour un rythme de travail différent