Vote utilisateur: 4 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles inactives
 

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.
Présentation des JND : JND.


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.

On peut voir sur ce site les différents langages utilisés par les programmeurs :

 

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.

  • Pas besoin d'installer de logiciel ; les mises à jour sont automatiques ; les travaux sont enregistrés et accessibles partout ; 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/
     
  2. La plateforme Capytale développée par l'académie de Paris (et Nicolas Poulain)  vous permet de produire des documents pédagogiques, d'y intégrer du code Python et de le diffuser à vos élèves.
    Par contre, il faut que votre établissement dispose d'un ENT et que vos élève y soient inscrits.

 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.
      
  • JupyterHub : https://nuage.scola.ac-paris.fr/
    En développement sur l'espace collaboratif de l'académie de Paris

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. Débuter en Python : les ressources Python de Math93.com


Débuter : du collège avec scratch au lycée avec Python

Quelques éléments intéressants :

  • De scratch à Python : http://fr.vittascience.com/python/
    Vittascience est un site qui permet sur deux fenêtres conjointes de programmer en scratch et de voir le code Python correspondant. C’est assez bluffant ! On peut imaginer commencer à l'utiliser en fin de troisième.
    On peut de plus programmer pour Arduino et Microbit, un vrai coup de cœur.
     
  • Programmer en jouant sous Python
    On peut programmer en jouant : CheckIO propose de petits challenges à programmer. On peut demander la traduction en Français des problèmes. Il y a une auto-évaluation grâce à des fonctions tests intégrées, c'est très ludique, avec beaucoup d'aide. Vraiment excellent.
    https://py.checkio.org/

 

Les ressources Python de Math93.com

 

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 (recommandé).
    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 (à éviter)
    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 avoir la liste des principaux modules : les modules

 

4. Produire des documents intégrant du code Python


Pour concevoir des fiches intégrant du code Python avec un affichage claire respectant et l'indentation, et les couleurs plusieurs solutions sont possibles : Jupyter, Word, LaTex, page html...
Toutes les explications sur la page dédiée : produire des documents intégrant du code Python.
 

 

5. 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" ...
     
  • Le document de Nicolas Poulain (formateur de l'académie de Paris)lien .
    Complet et très riche, une mine d'informations.
      
  • Programmer en jouant
    On peut aussi programmer en jouant CheckIO propose de petits challenges à programmer. On peut demander la traduction en Français des problèmes.
    https://py.checkio.org/

 

6. 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.

 

 

Articles Connexes