Algorithmique au Lycée sous Python

 

Le nouveau programme 2017 nous propose d'utiliser le langage Python dès la seconde et d'oublier Algobox qui était alors préconisé au Lycée.

1. Python : sur poste ou online


Python est un langage de programmation objet et multiplateformes.
Le langage Python est placé sous une licence libre proche de la licence BSD et fonctionne sur la plupart des plates-formes informatiques, des supercalculateurs aux ordinateurs centraux, de Windows à Unix avec notamment GNU/Linux en passant par macOS, ou encore Android, iOS, et aussi avec Java ou encore .NET.

1a. Installer Python sur un ordinateur

Pour installer Python :

  1. Rendez-vous sur le site Python.org et choisissez votre OS.
  2. Télécharger la version de votre choix Windows ou IOs.

Il est utile d'installer un logiciel nommé IDE (environnement de développement) afin de faciliter l'utilisation de Python. De nombreux sont disponibles (liste IDE Python)

Python sous Windows ou Mac OS

  1. En téléchargeant la version Python du site Python.org, vous pouvez alors directement coder grâce au logiciel natif IDLE  « Integrated DeveLopment Environment »
    Voici un exemple d'utilisation du debugger IDLE présent avec l'installation de Python :
    https://www.cs.uky.edu/
      
  2. Anaconda : https://www.anaconda.com/
    La distribution anaconda (Python Scientific Distributions) présente l'avantage d'être disponible sous Windows/macOS et Linux.
    Elle intègre le logiciel Spyder (environnement de développement), plus sophistiqué que le simple IDLE natif, et facilite l'importation de modules. Anaconda possède plus de 250 modules scientifiques.
    • Jupyter : http://jupyter.org/
      Un des gros plus d'Anaconda est l'intégration native de Jupyter Notebook qui permet de faire des TD d'algorithmique très facilement.
      On peut même y faire travailler les élèves mais cela nécessite une installation sur poste.

1b. Python en ligne

Plusieurs sites proposent la possibilité de programmer directement sur une console de votre navigateur. Les avantages de cette solution sont nombreux, surtout pour un établissement scolaire.

  1. Pas besoin d'installer de logiciel ;
  2. Les mises à jour sont automatiques ;
  3. Les travaux sont enregistrés et accessibles partout ;
  4. On peut partager son travail, avec son professeur par exemple.

Voici des sites gratuits en version Beginner :

Le choix du Prof

  1. Repl : https://repl.it/
    Repl est très pratique car il permet de s'inscrire en tant que professeur et créer des classes. On peut alors donner des assignments (devoirs) aux élèves et récupérer directement leurs productions (avec plusieurs feedbacks possibles). Idéal ... tant que cela reste gratuit !
    Le module turtle y est disponible pour des tracés dynamiques.
    L'Initiation à Python de Nicolas Poulain (groupe GIPTIC Paris) propose une prise en main utilisant repl.it : https://www.ac-paris.fr/

 Mais il y a aussi :

  • PythonAnywhere : https://www.pythonanywhere.com/
    Des limitations gênantes en version gratuite comme la limitation du temps de connexion. Possibilité d'enregistrer les programmes mais pas encore de faire des graphiques (avec turtle). On peut cependant produire des graphiques au format.png avec le module pylab.
     
  • SoloLearn : https://www.sololearn.com/
     
  • Pythontutor.com : http://pythontutor.com/
    Pour débugger un programme ou le faire tourner pas à pas, excellent.
     
  • Atom.io : https://atom.io/
        
  • Site officiel : Python.org
    On peut aussi directement commencer à programmer en utilisant la console (cliquez sur Launch Interactive Shell).
    Par contre on ne peut pas enregistrer le travail effectué, il faut faire un copier/coller sur une page WordPad par exemple.

1c. Python sur Tablettes ou smartphones

On peut programmer directement sur ces supports en se connectant aux sites précédemment cités ou en téléchargeant certaines applications intéressantes : (en proposer ici)

Sur IOS (Apple)
  1. Python3python apps apple python3  By sutheesh sukumaran (This app is only available on the App Store for iOS devices).
Sur Androide
  1. QPythonpython_apps_androide_qpython.png  . Site de développeurs très complet

2. Algorithmique : documents officiels et programmes


Conformément au document officiel présentant les évolutions du programme 2017 (disponible sur eduscol), les notions d'entrées-sorties (fonctions input et print) ne sont pas à mettre en avant : elles ne relèvent pas de la pensée algorithmique et l'accent mis par le programme sur la notion de fonction permet de s'en libérer complètement.
Le langage Python qui propose une utilisation native des fonctions est de ce fait un outil idéal pour les séances d'algorithmique.

 

 

3. Les modules ou bibliothèques sous Python


Tout comme avec les packages du langage et système de composition de documents scientifiques \(\LaTeX\), Python est amélioré par de nombreux modules (ou bibliothèques).
Ces modules sont importés au début de votre programme via l'instruction import, avec plusieurs variantes :

  • import mod : il faudra alors faire précéder les fonctions de ce module du préfixe mod.
    Par exemple math.sqrt(2) va renvoyer la racine carrée de 2 avec le module math si on a écrit en début de programme :
    • import math
  • from mod import fonct : la fonction fonct peut alors s'utiliser directement
    Par exemple sqrt(2) va renvoyer la racine carrée de 2 avec le module math si on a écrit en début de programme  :
    • from math import sqrt
  • from mod import * : toutes les fonctions du module mod sont alors importées
    Par exemple sqrt(2) va renvoyer la racine carrée de 2 avec le module math si on a écrit en début de programme  :
    • from math import *

Pour les activités réalisées au Lycée, ces quelques modules sont surtout nécessaires :

  1. math
    Pour importer des fonctions mathématiques comme :
  2. random
    Ce module implémente des générateurs de nombres pseudo-aléatoires pour diverses distributions :
  3. mathplotlib
    Ce module permet de générer des graphiques, histogrammes ... 
  4. cmath
    Pour gérer les nombres complexes :
  5. Turtle : https://docs.python.org/3.6/library/turtle.html    ou    https://fr.wikibooks.org/wiki/Programmation_Python/Turtle
    Turtle est un module graphique du langage de programmation Python. Il est inspiré de la programmation Logo et permet de déplacer une tortue sur l’écran.
      
  6. On a aussi :

 

 

4. Documentations et tutoriels


  • Giptic Paris
  • Un tutoriel de référence : http://mathprepa.fr/
    M. Jean Michel Ferrard, professeur de mathématiques en MPSI au lycée Saint-Louis (Paris), met à la disposition un document permettant une découverte de Python, tant pour les enseignants que pour les élèves.
     
  • OpenClassroomhttps://openclassrooms.com/ apprenez à programmer en Python
    Un tutoriel très riche mais assez "verbeux" ...

 

5. Les ressources Python de Math93.com


  • Les Fiches ressources

Les activités réalisées lors des séances d'algorithmique sont toujours liées à une partie du programme. L'accent est mis sur l'utilisation des fonctions et les notions d'entrées-sorties (input et print) ne sont pas à mettre en avant.

6. Compléments



 

 

Articles Connexes