► Algorithme et programmation au BAC

 Capacités et connaissances

  • Analyser un problème. 
  • Décomposer un problème en sous-problèmes.
     
  • Repérer les enchaînements logiques et les traduire en instructions conditionnelles et en boucles. 
    [Séquences d’instructions, instructions conditionnelles, boucles bornées (for) et non bornées (while)]
  • ?le type d’une variable. reconnaître ou  Choisir
  • Réaliser un calcul à l’aide d’une ou de plusieurs variables. 
    [Types de variables : entiers, flottants, chaînes de caractères, booléens. Affectation d’une variable]
  • un algorithme ou un programme.compléter ou Modifier
  • concevoir un algorithme ou un programme simple pour résoudre un problème
  • Comprendre et  utiliser des fonctions
  • Compléter la définition d’une fonction
  • Structurer un programme en ayant recours à es fonctions pour résoudre un problème donné
    [Arguments d’une fonction. Valeur(s) renvoyée(s) par une fonction.]

Commentaires:
- Les notions abordées dans ce module ne font pas l’objet d’un cours spécifique et sont travaillées en situation.
- Aucune maîtrise n’est attendue pour les propriétés des différents types de variables.
- Pour les fonctions en Python, on donne aux élèves l’entête de la fonction (nom et arguments).

Exemples d’algorithme et d'activités numériques

1.1 Statistiques à 1 variable

  • Déterminer la fréquence d’apparition d’une lettre dans un texte. 

1.2 Fluctuation d’une fréquence selon les échantillons, probabilités

  • Modifier une simulation donnée (par exemple, en augmentant la taille de l’échantillon pour percevoir une version vulgarisée de la loi des grands nombres : « Lorsque n est grand, sauf exception, la fréquence observée est proche de la probabilité »).
  • Utiliser une simulation fournie pour estimer une probabilité non triviale.
  • Écrire des fonctions permettant de simuler une expérience aléatoire, une répétition d’expériences aléatoires indépendantes.

2.1  Résolution d’un problème du 1° degré

  • Formaliser par un organigramme la résolution d’une inéquation du premier degré à une inconnue du type ax < b. 

2.2. Notion de fonction

  • Traduire un programme de calcul à l’aide d’une fonction en Python.
  • Calculer les images de nombres par une fonction.
  • Déterminer l’équation réduite d’une droite non parallèle à l’axe des ordonnées.
  • Rechercher un extremum par balayage sur un intervalle donné.
  • Rechercher un encadrement ou une valeur approchée d’une solution d’une équation du type ƒ(x) = 0 par balayage sur un intervalle donné.

2.3 Calculs commerciaux et financiers

  • Calculer le montant d’un intérêt simple.
  • Calculer le montant net à payer après une remise pour une facture.

3.1. Géométrie

  •  Chercher les triplets d’entiers pythagoriciens jusqu’à 1 000.
  • Calculer des aires ou des volumes.
  • Calculer le diamètre d’un cylindre connaissant sa hauteur et son volume.
  •  Calculer l’aire d’un carré de périmètre connu.
  • Construire une figure géométrique.

 Capacités et connaissances

  • Analyser un problème. 
  • Décomposer un problème en sous-problèmes.
     
  • Repérer les enchaînements logiques et les traduire en instructions conditionnelles et en boucles. 
    [Séquences d’instructions, instructions conditionnelles, boucles bornées (for) et non bornées (while)]
  • ?Choisir ou reconnaître le type d’une variable.
  • Réaliser un calcul à l’aide d’une ou de plusieurs variables. 
    [Types de variables : entiers, flottants, chaînes de caractères, booléens. Affectation d’une variable]
  • Modifier ou compléter un algorithme ou un programme
  • concevoir un algorithme ou un programme simple pour résoudre un problème
  • Comprendre et  utiliser des fonctions
  • Compléter la définition d’une fonction
  • Structurer un programme en ayant recours à es fonctions pour résoudre un problème donné
    [Arguments d’une fonction. Valeur(s) renvoyée(s) par une fonction.]
  • ?Générer une liste.
  • Manipuler des éléments d’une liste (ajouter, supprimer, extraire…).
  • Parcourir une liste.
  • Itérer une ou plusieurs instructions sur les éléments d’une liste
    [Liste]

    Commentaires:
    - Les notions abordées dans ce module ne font pas l’objet d’un cours spécifique et sont travaillées en situation.
    - Aucune maîtrise n’est attendue pour les propriétés des différents types de variables.
    - Pour les fonctions en Python, on donne aux élèves l’entête de la fonction (nom et arguments).

    - Les notions relatives aux types de variables et à l’affectation sont consolidées. Pour un algorithme écrit en langage naturel, on utilise le symbole ←  pour désigner l’affectation, alors qu’en langage Python on utilise le signe =.
    - L’accent est mis sur la programmation modulaire qui consiste à découper une tâche complexe en tâches plus simples.

    - Les listes peuvent être générées en extension, par ajouts successifs d’éléments, et en compréhension.
    - La génération de liste en compréhension et en extension est mise en lien avec la notion  d’ensemble.  Les  conditions  apparaissant  dans  les  listes  définies  en compréhension permettent de travailler la logique.
    -  La statistique à une variable et les suites numériques sont des domaines propices à l’utilisation des listes.
    - Afin d’éviter toute confusion, il est recommandé de se limiter aux listes sans présenter d’autres types de collections.

Exemples d’algorithme et d'activités numériques

1.1 Statistique à deux variables quantitatives

  • Déterminer des indicateurs de position et de dispersion d’une série statistique en utilisant les listes.
  • Déterminer l’équation réduite d’une droite d’ajustement par la méthode des moindres carrés à l’aide d’outils numériques.
  • Déterminer le coefficient de détermination d’une série statistique à deux variables quantitatives à l’aide d’outils numériques.

1.2 Probabilités

  • Estimer P(A ? B) et P(A ? B) à l’aide d’un tableur puis conjecturer la relation P(A ? B) = P(A) + P(B) - P(A ? B)

2.1 Suites numériques

  • Calculer un terme de rang donné d’une suite numérique.
  • Calculer la somme d’un nombre fini de termes d’une suite numérique 
  • Générer une liste de termes d’une suite numérique et les représenter par un nuage de points de coordonnées (n ; un).
  • Déterminer le rang à partir duquel les termes d’une suite numérique monotone sont supérieurs ou inférieurs à une valeur donnée.

2.2 Résolution graphique d’équations et d'inéquations

  • Déterminer par balayage un encadrement ou une valeur approchée d’une solution d’une équation du type ƒ(x) = g(x) lorsqu’on sait qu’elle existe dans un intervalle donné.

2.3 Fonctions polynômes de degré 2

  • Déterminer par balayage un encadrement ou une valeur approchée d’une racine d’une fonction polynôme de degré 2 qui n’est pas donnée sous forme factorisée lorsqu’on sait qu’elle existe dans un intervalle donné.

2.4 Fonction dérivée et étude des variations d’une fonction

  • Visualiser la tangente comme meilleure approximation affine de la fonction « à proximité » du point considéré.

3.1 Calculs commerciaux et financiers (Groupement C) 

  • Calculer le montant d’un capital obtenu après n périodes de placement à intérêts simples.
  • Déterminer un coût marginal.
  • Déterminer un coût moyen unitaire.

3.1 Géométrie dans l’espace (groupements A, B et C)

3.2 Vecteurs du plan (groupements A et B)

3.3 Trigonométrie (groupements A et B)

 Capacités et connaissances

  • Analyser un problème. 
  • Décomposer un problème en sous-problèmes.
     
  • Repérer les enchaînements logiques et les traduire en instructions conditionnelles et en boucles. 
    [Séquences d’instructions, instructions conditionnelles, boucles bornées (for) et non bornées (while)]
  • ?Choisir ou reconnaître le type d’une variable.
  • Réaliser un calcul à l’aide d’une ou de plusieurs variables. 
    [Types de variables : entiers, flottants, chaînes de caractères, booléens. Affectation d’une variable]
  • Modifier ou compléter un algorithme ou un programme
  • concevoir un algorithme ou un programme simple pour résoudre un problème
  • Comprendre et  utiliser des fonctions
  • Compléter la définition d’une fonction
  • Structurer un programme en ayant recours à es fonctions pour résoudre un problème donné
    [Arguments d’une fonction. Valeur(s) renvoyée(s) par une fonction.]
  • ?Générer une liste.
  • Manipuler des éléments d’une liste (ajouter, supprimer, extraire,etc.).
  • Parcourir une liste.
  • Itérer une ou plusieurs instructions sur les éléments d’une liste
    [Liste]

    Commentaires:
    - Les notions abordées dans ce module ne font pas l’objet d’un cours spécifique et sont travaillées en situation.
    - Aucune maîtrise n’est attendue pour les propriétés des différents types de variables.
    - Pour les fonctions en Python, on donne aux élèves l’entête de la fonction (nom et arguments).

    - Les notions relatives aux types de variables et à l’affectation sont consolidées. Pour un algorithme écrit en langage naturel, on utilise le symbole ←  pour désigner l’affectation, alors qu’en langage Python on utilise le signe =.
    - L’accent est mis sur la programmation modulaire qui consiste à découper une tâche complexe en tâches plus simples.

    - Les listes peuvent être générées en extension, par ajouts successifs d’éléments, et en compréhension.
    - La génération de liste en compréhension et en extension est mise en lien avec la notion  d’ensemble.  Les  conditions  apparaissant  dans  les  listes  définies  en compréhension permettent de travailler la logique.
    -  La statistique à une variable et les suites numériques sont des domaines propices à l’utilisation des listes.
    - Afin d’éviter toute confusion, il est recommandé de se limiter aux listes sans présenter d’autres types de collections.

Exemples d’algorithme et d'activités numériques

1.1 Statistique à deux variables quantitatives (groupements A, B et C)

  • Déterminer des indicateurs de position et de dispersion d’une série statistique en utilisant les listes.
  • Déterminer l’équation réduite d’une droite d’ajustement par la méthode des moindres carrés à l’aide d’outils numériques.
  • Déterminer le coefficient de détermination d’une série statistique à deux variables quantitatives à l’aide d’outils numériques.

1.2 Probabilités (groupements A, B et C)

  • Estimer P(A ? B) et P(A ? B) à l’aide d’un tableur puis conjecturer la relation P(A ? B) = P(A) + P(B) - P(A ? B)

2.1 Suites numériques (groupements A, B et C)

 

  • Déterminer un encadrement ou une valeur approchée par balayage d’une solution d’une équation du type ƒ(x) = g(x) lorsqu’on sait qu’elle existe dans un intervalle donné.

2.2 Fonctions polynômes de degré 3 (groupements A, B et C)

  • Déterminer un encadrement ou une valeur approchée par balayage d’une solution d’une équation du type ƒ(x) = g(x) lorsqu’on sait qu’elle existe dans un intervalle donné.

2.3 Fonctions exponentielles et logarithme décimal (groupements A, B et C)

  • Déterminer un encadrement ou une valeur approchée par balayage d’une solution d’une équation du type ƒ(x) = g(x) lorsqu’on sait qu’elle existe dans un intervalle donné.

3.1 Calculs commerciaux et financiers pour les spécialités de baccalauréat professionnel ne comportant pas d’enseignement de physique-chimie

  • Calculer le capital obtenu après n périodes de placement à intérêts composés.
  • Calculer une durée de placement pour obtenir un capital donné à un taux de placement à intérêts composés connu.
  • Calculer le montant des annuités, des mensualités dans le cadre d’un crédit.
  • Calculer le coût d’un crédit.
  • Calculer un taux moyen.

3.1 Vecteurs (groupement B)
3.2 Trigonométrie (groupement A)

Programme complémentaire en vue de la préparation à une poursuite d’études

Calcul intégral
Fonctions logarithme népérien et exponentielle
Nombres complexes
Produit scalaire de deux vecteurs du plan rapporté à un repère orthonormé

Capture image edu pythonCapture livre

OBJECTIF: Test de l'interface EduPython
INTERFACE DE PROGRAMMATION:
  EduPython version 2.6
SCRIPT et CONSOLE d'EXECUTION EN LANGAGE PYTHONPyScripter  version 3.4.5.

Auteur du programme  :   Christian, Louis, MATHIEU

Capture edupython p1 1

Utilisation d’une variable globale:  
Il peut se faire par exemple que vous ayez à définir une fonction qui soit capable de modifier une variable globale. Pour atteindre ce résultat, il vous suffira d’utiliser l’instruction global. Cette instruction permet d’indiquer - à l’intérieur de la définition d’une fonction - quelles sont les variables à traiter globalement.

On va ici créer une fonction qui a accès à la variable globale b

def test():
    global b
    b = 5
    print(a, b)
    
a = 2
b = 7
test()
print(a, b)

Utilisation d’une variable globale:  
REF: courspython.com
Tutoriel d'analyse de programme

Utilisation d’une variable globale:  
REF: courspython.com
Ecran de la console

INTEGRATION de BIBLIOTHEQUES DANS EDUPYTHON
LECTURE et REPRESENTATION DE DONNEES TABULAIRES format CSV

Procédure d'installation sous EduPython en format PDF
 
→ Integration edupython bibliotheques pandas et seaborn ssiIntégration bandas et seaborn dans EduPython - SSI.pdf

Capture lecture fichier csv et represenation graphique

INTEGRATION de BIBLIOTHEQUES DANS EDUPYTHON
... EN COURS DE PRÉPARATION :
MAQUETTES ET PROGRAMMES P
ÉDAGOGIQUES

appliqués aux spécialités en CAP, BAC PRO et BTS 

INFO: PROGRAMMATION DE CARTE ELECTRONIQUE

Distributeur  →https://www.kubii.fr/  
Cliquez ici → Test sur carte Micro:Bit BBC Go

Collaborateur: Elias BERRABAH, mon premier ollaborateur et enseignant en soutien scolaire pour mon fils Geoffroy MATHIEU (2014: Champion de France junior de natation et sélectionné  au Jeux Olympiques de la Jeunesse en CHINE)   à GeoPROF Clermont  www.geoprof.fr fondée le 10 septembre 2012. Elias était alors étudiant en Licence 2 (L2) de Mathématiques à la Faculté des Sciences Mathématiques de Clermont-Ferrand et depuis 2017,Professeur agrégé de Mathématiques en poste en lycée public.

Programme en Python "Etoile scintillante" sous Microbit en Python
from microbit import *
import random

while True:
    colonne = random.randint(0,4)
    ligne = random.randint(0,4)
    intensite = random.randint(0,9)
    display.set_pixel(colonne,ligne,intensite)

CODE SOURCE EN PYTHON
Recherche d'occurrence dans une phrase
Version séquentielle

print('Bonjour !')
phrase=input("Entrer la phrase :") #demander à l'utilisateur d'entre la phrase
lettre=input("Entrer la lettre :") #demander à l'utilisatueur d'entre la lettre
cpt =0 #initialiser le compteur à 0
for l in phrase: #parcourir la phrase
    if l == lettre:
        cpt=cpt+1 #incrémenter le compteur
print("le nombre d'occurence de",lettre,"dans votre phrase est",cpt) #afficher le résultat


Visualisation console

Bonjour !

Entrer la phrase : dddd Entrer la lettre : g

le nombre d'occurence de g dans votre phrase est 0

>>>

CODE SOURCE EN PYTHON
Recherche d'occurrence dans une phrase
Version sous forme de "Fonction"

def compte_occurrence( phrase, lettre):

    cpt =0 #initialiser le compteur à 0
    for l in phrase: #parcourir la phrase
    if l == lettre:
        cpt=cpt+1 #incrémenter le compteur

    return cpt

 

Appel de la fonction:
compte_occurrence( "coucou", "c")


CODE SOURCE EN PYTHON
Recherche d'occurrence dans une phrase
Version sous forme de "Fonction"
avec interactivité

print('Bonjour !')
phrase=input("Entrer la phrase :") #demander à l'utilisateur d'entre la phrase
lettre=input("Entrer la lettre :") #demander à l'utilisatueur d'entre la lettre

print("le nombre d'occurence de",lettre,"dans votre phrase est",compte_occurrence(phrase,lettre) #afficher le résultat

Appel de la fonction:
compte_occurrence( "coucou", "c")

print("******************************************************")
print("*      Algorithmique et programmation en PYTHON                    *")
print("*      Nouveaux programme 2020 : Bac / Première                       *")
print("*              Séquence: Probabilités                              *")
print("****************************************************")
print("* Tirage aléatoire pour lequel la probabilité de succès est de 0,5.*")
print("* Restitue aléatoirement un nombre compris entre 0 et 1            *")
print("****************************************************")

from random import *

def programme():
    n = random()
    if  n < 0.5:
        variable = 'pile'
    else :
        variable = 'face'
    return variable

print(programme())


print("*************************************************")
print("*   Tirer aléatoirement un entier compris entre 1 et 10         *")
print("*   Ce nombre est un entier. Si l'on souhaitait obtenir         *")
print("*   un nombre non entier (float), il faudrait utiliser uniform. *")

from random import *

def programme():
    n = randint(1,10)
    return n

print(programme())


print("*****************************************")
print("      Lançons virtuellement une pièce dix fois       ")
print("  et notons si le résultat obtenu est pile ou face.  ")
print("****************************************")
import random
liste = ['pile','face']
for i in range(0,10):
    cote = random.choice(liste)
    print (cote)
    


print("******************************************************")
print("*  Le programme compte combien de fois le côté pile est apparu.  *")
print("*****************************************************")

import random
liste = ['pile','face']
compteur = 0
for i in range(0,100):
    cote = random.choice(liste)
    if cote == 'pile':
        compteur = compteur + 1
print (compteur)


print("**********************************************")
print("*    Exercice de niveau première technologique       *")
print("*    puisqu’ils font intervenir la notion de liste.. *")
print("*********************************************")

import random
liste = ['aigle','buse','faucon','milan']
rapace = random.choice(liste)
print (rapace)

CONTEXTE: 
Selon la légende, en Inde 3 000 ans avant J.C., le Roi Belkib souhaita récompenser le sage Sissa pour son invention : le jeu d'Echecs (qui comporte 64 cases).
Alors Sissa demanda au Roi de déposer un grain de blé sur la première case, deux sur la deuxième, quatre sur la troisième, et ainsi de suite pour remplir l'échiquier, en doublant la quantité de grains à chaque case.
Le Roi accepta mais ne put jamais honorer sa parole. 

Problématique: Expliquer, chiffres à l'appui, pourquoi le roi ne put honorer sa parole.

→ SissaJeu d'échec (Sissa)
Capture edupython pysripter

AMELIORATION DU PROGRAMME SUR LE FORMATAGE DE DONNEES A L'AFFICHAGE


♦ Programme SISSA: ci-dessous résolution de la problématique avec mise en forme à 2 décimales du résultat ♦

Le programme?Capture programme sissaExécution du programme
Capture execution sissa