Version prof → Mathématiques · Lycée professionnel · 2de · Seconde

Séquence 9 · Algorithmique et programmation en Python : variables, conditions, boucles, fonctions

Comment faire calculer automatiquement un devis, un tarif ou une série de mesures par un programme ?

Repères pour le professeur

Voie · niveauLycée professionnel (Bac Pro) · Seconde
DisciplineMathématiques
Programme officielProgramme de mathématiques de 2de professionnelle, BO spécial n°5 du 11 avril 2019 : statistique et probabilités, algèbre et analyse, géométrie, algorithmique et programmation, automatismes.
Place dans le programmeProgramme de mathématiques de seconde professionnelle (BO spécial n°5 du 11 avril 2019), domaine « Algorithmique et programmation »
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

variable, type (entier, flottant, chaîne, booléen)affectationinstruction conditionnelle if … elseboucle for, boucle whilefonction : arguments, return

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

Choix du langage : « Python. Ce dernier a été choisi pour sa concision, sa simplicité, son implémentation dans de multiples environnements et son utilisation dans l'enseignement supérieur. »

Intention : « On ne vise pas la maîtrise d'un langage de programmation ni une virtuosité technique ; la programmation est un outil au service de la formation des élèves à la pensée algorithmique. »

Rigueur : « L'écriture d'algorithmes et de programmes est également l'occasion de transmettre aux élèves l'exigence d'exactitude et de rigueur et de les entraîner à la vérification et au contrôle »

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

Variable
Nom associé à une valeur stockée en mémoire, qui peut changer au cours du programme.
Types
Entier (int), flottant (float, nombre à virgule écrit avec un point), chaîne de caractères (str), booléen (True ou False).
Affectation
x = 3 donne la valeur 3 à la variable x (notée x ← 3 en langage naturel).
Instruction conditionnelle
if condition : … else : … exécute des instructions selon qu'une condition est vraie ou fausse.
Boucles
for i in range(n) répète n fois ; while condition répète tant que la condition est vraie.
Fonction
def nom(arguments) : … return résultat ; on l'appelle avec des valeurs.

Repères

DateÉvénement
IXe siècleAl‑Khwarizmi décrit des procédés de calcul pas à pas.
1843Ada Lovelace publie un programme pour la machine analytique de Babbage.
1936Alan Turing définit mathématiquement ce qu'est un calcul.
1991Guido van Rossum publie la première version de Python.

Les historiens en débat

Un algorithme est une suite finie d'instructions qui résout un problème ; le mot vient du nom d'Al‑Khwarizmi. La programmation permet de confier à une machine des calculs répétitifs : devis, tableaux de mesures, simulations. Le programme de Bac Pro insiste sur la rigueur et le contrôle des résultats plutôt que sur la technicité. 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 1Variables, conditions et fonctions65 minécrire une fonction qui calcule un tarif
Séance 2Boucles bornées et non bornées65 minrépéter un calcul avec for et while
É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 · Variables, conditions et fonctions

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 automatiser le calcul d'un prix d'entrée ?

Déroulé minuté à distance

Le cours développé (récit du professeur) · Les bases de Python

Une variable stocke une valeur ; on lui donne une valeur par une affectation : prix = 12.5. Chaque valeur a un type : entier (12), flottant (12.5, avec un point), chaîne de caractères ("bonjour"), booléen (True ou False, résultat d'un test comme age < 12). L'instruction conditionnelle if condition : … elif … : … else : … choisit les instructions à exécuter. Une fonction regroupe des instructions : def tarif(age) : … return prix ; on l'appelle avec tarif(15). L'indentation (décalage des lignes) délimite les blocs. On travaille dans Basthon, dans le navigateur.

Document 1 · La billetterie du cinéma

Situation-problème.

Un cinéma associatif pratique les tarifs suivants : moins de 12 ans 4 € ; de 12 à 25 ans inclus 6 € ; plus de 25 ans 9 €. Le mercredi, tous les tarifs baissent de 1 €. Le bénévole de la billetterie veut un programme qui calcule le prix.

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 :

Analysez l'algorithme.

  1. Quelles données d'entrée ?
    ✔ Corrigé :

    L'âge et le jour.

  2. Quels types ?
    ✔ Corrigé :

    Âge : entier ; jour : chaîne de caractères.

  3. Prix pour 25 ans un mercredi ?
    ✔ Corrigé :

    6 − 1 = 5 €.

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

Activité 2 · Réaliser

18 min
Essentiel

Supports : Cours

Consigne :

Écrivez la fonction dans Basthon.

  1. Écrivez tarif(age) sans le mercredi.
    ✔ Corrigé :

    if age < 12 : return 4 ; elif age <= 25 : return 6 ; else : return 9.

  2. Ajoutez l'argument jour.
    ✔ Corrigé :

    Calculer p = tarif(age) puis, si jour == "mercredi", p = p − 1 ; return p.

  3. Tests : (10, "lundi"), (30, "mercredi") ?
    ✔ Corrigé :

    4 et 8.

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 une notice (6 à 8 lignes) pour le bénévole : comment utiliser la fonction, et quels tests faire pour vérifier qu'elle est juste (valeurs limites 12 et 25). Pour bien commencer : Pour obtenir un prix, on appelle… · Il faut tester en particulier… · Si le résultat n'est pas…

✔ Corrigé rédigé :

Appel de la fonction ; tests des cas limites 11, 12, 25, 26 ; vérification avec le tableau des tarifs ; langage clair.

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

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

prix = 12.5 est une affectation. 12.5 est de type flottant. L'instruction if permet d'exécuter des instructions selon une condition. Une fonction renvoie son résultat avec return.

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

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

Séance 2 · Boucles bornées et non bornées

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 un placement dépasse‑t‑il un seuil ?

Déroulé minuté à distance

Le cours développé (récit du professeur) · Boucles

Une boucle bornée for i in range(n) : répète un bloc n fois (i prend les valeurs 0, 1, …, n − 1). Une boucle non bornée while condition : répète le bloc tant que la condition est vraie ; il faut que la condition finisse par devenir fausse, sinon le programme ne s'arrête pas. On utilise souvent un compteur (n = n + 1) et un accumulateur (total = total + …). Exemple : pour trouver le nombre d'années pour qu'un capital de 1 000 € à 4 % dépasse 1 500 €, on multiplie par 1,04 tant que le capital est inférieur ou égal à 1 500.

Document 1 · Le placement

Situation-problème.

Une association place 1 000 € à 4 % par an (les intérêts s'ajoutent chaque année au capital). Elle veut savoir dans combien d'années elle aura plus de 1 500 €, et quel sera le capital chaque année pendant 5 ans.

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. Capital après 1 an ? 2 ans ?
    ✔ Corrigé :

    1 040 € ; 1 081,60 €.

  2. Par quel nombre multiplie‑t‑on chaque année ?
    ✔ Corrigé :

    1,04.

  3. Quel type de boucle pour afficher 5 années ?
    ✔ Corrigé :

    Une boucle for (nombre de répétitions connu).

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. Programme qui affiche le capital pendant 5 ans.
    ✔ Corrigé :

    capital = 1000 ; for i in range(5) : capital = capital × 1.04 ; print(capital).

  2. Programme qui trouve l'année du dépassement.
    ✔ Corrigé :

    while capital <= 1500 : capital = capital × 1.04 ; annees = annees + 1.

  3. Résultat ?
    ✔ Corrigé :

    11 ans, capital ≈ 1 539,45 €.

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 une réponse au trésorier (6 à 8 lignes) avec le résultat et une vérification indépendante à la calculatrice ou au tableur. Pour bien commencer : Le programme répète… · Il s'arrête lorsque… · On vérifie avec la calculatrice : …

✔ Corrigé rédigé :

Explication de la boucle while ; 11 ans ; vérification 1,04¹⁰ ≈ 1,480 et 1,04¹¹ ≈ 1,539 ; conclusion claire.

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

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

Une boucle for répète des instructions un nombre de fois connu. Une boucle while répète tant qu'une condition est vraie. Un compteur augmente de 1 à chaque passage. La condition d'une boucle while doit finir par devenir fausse.

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

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

Fiche à trous · corrigé

L'instruction prix = 12.5 est une affectation.

Le type de la valeur 12.5 est flottant.

Une boucle for répète des instructions un nombre de fois fixé.

Une fonction renvoie un résultat avec l'instruction return.

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
1Donnez le type de chaque valeur : 7 ; 7.0 ; "7" ; 7 > 3. Que vaut a après : a = 5 ; a = a + 2 ; a = 2 × a ?4 ptsEntier ; flottant ; chaîne ; booléen. a vaut 14. Deux points et deux points.
2Écrivez une fonction tarif(age) qui renvoie 4 si l'âge est inférieur à 12, 6 si l'âge est compris entre 12 et 25 (inclus), et 9 sinon. Testez‑la sur 10, 18 et 40.8 ptsdef tarif(age) : si age < 12, return 4 ; sinon si age <= 25, return 6 ; sinon return 9. Résultats 4, 6, 9. Structure conditionnelle (4 pts), tests (4 pts).
3Un capital de 1 000 € augmente de 4 % par an. Écrivez un programme avec une boucle while qui détermine le nombre d'années nécessaires pour dépasser 1 500 €. Expliquez son fonctionnement et donnez le résultat. Pour bien commencer : *Le programme initialise…* · *À chaque passage dans la boucle, …* · *La boucle s'arrête quand…*8 ptscapital = 1000, annees = 0 ; tant que capital <= 1500 : capital = capital × 1.04, annees = annees + 1 ; afficher annees. Résultat : 11 ans (1 539,45 €). Programme (4 pts), explication (2 pts), résultat (2 pts).
Total20 pts

Pistes pour un rythme de travail différent