Contenu

mathématiques

Recherche simple Vous recherchez ...

espace pédagogique > disciplines du second degré > mathématiques > enseignement > groupes de recherche > TraAM > actions nationales 2017-2018

du tableur vers python

mis à jour le 23/05/2018


logo_tableur_python.png

Utiliser le tableur pour introduire Python

mots clés : tableur, collège vers python



Objectif


L’objectif de ce document est de présenter une activité qui permet d’introduire la programmation Python à partir du tableur. Elle a été faite en seconde sur plusieurs séances, en demi-groupe et en salle informatique. L’activité a été proposée au format numérique sur la plateforme Moodle du lycée. Elle aurait très bien pu être distribuée au format papier. L’essentiel était que les élèves soient autonomes et travaillent à leur rythme pour s’approprier au mieux les notions abordées. Un accès à Internet était permis. Cela leur permettait de chercher comment coder certaines fonctions tableur ou Python.

Pourquoi passer du tableur à Python ?


Ce sont deux utilisations complémentaires. Comme nous allons le voir, le tableur permet de décomposer les différentes étapes d’un calcul ou d’un programme tout en offrant la visualisation immédiate des résultats des fonctions utilisées. Cela aide les élèves à comprendre l’algorithme qu’ils ont à programmer en Python qui est plus performant que le tableur lorsque l’on veut simuler des échantillons de très grande taille.

Thème


Simulation d’une expérience aléatoire

Notions abordées


Voici une liste non exhaustive de notions abordées :

  • La fonction random et la création de nombres pseudo-aléatoires (distribution uniforme)
  • La fonction partie entière (sa définition et son utilisation)
  • Composition de fonctions
  • Création de la simulation d’une expérience aléatoire
  • Utilisation d’une simulation pour conjecturer des probabilités
  • Notion et observation de fluctuation de fréquences (loi des grands nombres)
  • De la moyenne d’une série statistique à la notion d’espérance mathématiques
  • Manipulation du tableur : utilisation du $, fonctions random(), ent(...), somme(...), nb.si(...;...), ...
  • Programmation Python : fonctions Python (procédure et fonctions), liste Python, fonctions floor(...) etrandom() , structure for (en donnant du sens à range(...) ), structure conditionnelle

Description


Dans cette activité, on souhaite étudier le nombre de filles dans les familles de 4 enfants.

On fait les hypothèses (1)  suivantes :

  • Chaque naissance a autant de chances d’être celle d’un garçon ou celle d’une fille.
  • Le sexe d’un enfant d’une famille ne dépend pas du sexe des enfants précédents.

Population étudiée  : Famille de 4 enfants
Caractère étudié sur cette population : nombre de filles
Événements élémentaires (résultats possibles)  : le nombre de fille appartient à {0 ; 1 ; 2 ; 3 ; 4}

On souhaite simuler un très grand nombre de familles de manière à répondre aux questions posées par les élèves :

  • Quel est l’événement élémentaire le plus fréquent ?
  • Quel est l’événement élémentaire le plus probable ?
  • Quelles sont les probabilités des différents événements élémentaires ?
  • Quel est le nombre moyen de fille dans une famille de 4 enfants ?

Pour cela, on se donne comme objectif de remplir les tableaux suivants.

Résultats possibles 0 1 2 3 4 Somme
Effectifs  ...   ...   ...   ...   ...   ...
Fréquences   ...   ...   ...   ...   ...   ...

Pour construire cette simulation, on commence, dans un premier temps, par utiliser le tableur pour comprendre comment simuler, pour décomposer les différentes étapes et pour visualiser les résultats intermédiaires et les résultats finaux. Dans un deuxième temps, on utilise Python pour obtenir des échantillons de tailles de très grande taille et des résultats plus précis.

Les élèves ont à leur disposition une activité sous format numérique, un fichier tableur (à ouvrir par exemple avec libre Office) et un modèle de fichier Python (à ouvrir par exemple avec Pyscripter que l’on trouve dans la version portable de Python).

Les différentes étapes


L’activité a été faites sur plusieurs séances, en classe de seconde, en demi-groupe et en salle informatique.

Elle peut se décomposer en 6 étapes.

Etape 1 : Simulation d’une naissance ...

Etape 2 : Simulation d’un famille de 4 enfants ...


Etape 3 : Calcul du nombre de filles dans une famille de 4 enfants ...


Etape 4 : Création d’un échantillon de plusieurs familles ...

Etape 5 : Tableau des effectifs et des fréquences ...


 
Etape 6 : Calcul de la moyenne de la série ...

Bilan


Avec le tableur, on peut travailler avec des échantillons de taille 1000 (c’est le cas dans notre exemple) ou de taille 5000 ou encore de taille 10000. Au delà, on constate que les copier-coller des formules sont de plus en plus pénibles et que les calculs se font moins rapidement.

Avec Python, on peut obtenir des simulations pour des échantillons de tailles 106 voir même de taille 5 × 106 .Au delà les résultats mettent plus de temps à s’afficher mais travailler avec un échantillon de taille 5 × 10 est déjà largement suffisant !

Avoir utilisé le tableur avant de programmer en Python a permis aux élèves de visualiser les objets qu’ils avaient à utiliser dans leur programme Python. Par exemple, dans l’étape 2, le tableur permet de voir le contenu de la variable listeEnfant de Python. Même chose dans l’étape 4, pour la liste listeNbFille de Python que l’on observe dans le tableur dans la colonne F. Dans l’étape 3, le tableur permet de comprendre ce que compte la fonction nbFille(…).

L’utilisation en parallèle du tableur et de Python permet aussi de mieux comprendre la structure répétitive bornée for comme le montre le tableau ci-dessous.

Dans l’étape 2 les lignes de code


se traduisent dans le tableur par un simple copier-coller
Dans l’étape 5 les lignes de code


dans lesquelles la variable i est utilisée permettent de comprendre qu’il ne s’agit pas seulement de répéter 5 fois les instructions qu’elle contient mais que i prend les valeurs 0, 1, 2, 3 et 4.

Dans l’étape 6, les lignes de code



peuvent être expliquée en demandant aux élèves de calculer de tête la somme des valeurs contenues dans la plage F2:F1001 ! Ils comprennent très vite le principe d’hérédité utilisé dans le code Python. Lorsqu’on en est à la n+1 ième ligne du tableau, on doit ajouter la valeur de la n+1 ième ligne à la somme des valeurs des n premières lignes.

Cette activité est l’occasion de faire constater aux élèves que :

  • pour 2 échantillons de même taille la fréquence d’un événement, {« 1 Fille par famille »} par exemple, fluctue autour de 0,25
  • plus la taille de l'échantillon augmente moins cette fluctuation est importante.
  • si on fait tendre la taille de l'échantillon vers +?, alors la fréquence de l'évènement {« 1 Fille par famille »} tend vers 0,25 qui est la « fréquence théorique » ou la probabilité de l'évènement. Cette propriété est appelée la loi des grands nombres.

Après toutes ces simulations, on peut demander, dans un premier temps, aux élèves de conjecturer les probabilités de chaque événements élémentaires puis, dans un deuxième temps, de modéliser la situation à l’aide d’un arbre pondéré pour construire la loi de probabilité et ainsi vérifier leurs conjectures.
 
auteur(s) :

Yann Bertrand, enseignant au lycée Aristide Briand à Saint-Nazaire (44)

information(s) pédagogique(s)

niveau : tous niveaux, Collèges tous niveaux, Lycée tous niveaux

type pédagogique :

public visé : non précisé, élève, enseignant

contexte d'usage :

référence aux programmes :

documents complémentaires

Documents complémentaires
PDFLe document complet

Les scrpits

haut de page

mathématiques - Rectorat de l'Académie de Nantes