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 :
- Rendez-vous sur le site Python.org et choisissez votre OS.
- 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
- 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/
- 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
- 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/
- 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.
- 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)
Sur Androide
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
- Python l'essentiel : débuter en Python, l'essentiel.
Un TD, une fiche bilan et des tutos pour débuter Python.
-
Les activitées sous Python
- Les activités algorithmiques de seconde : Seconde-Math93.com
- Les activités algorithmiques de première : Première-Math93.com
- Les activités algorithmiques de terminale : Terminale-Math93.com
- Les activité au Lycée : Activités sous Python
Les activités d'algorithmiques imposées par le programme de mathématiques.
- Des compléments : NSI (Numérique et Sciences Informatiques)
Les TD de NSI sont disponibles, ils permettent de prolonger les notions du programme de mathématiques.
- NSI : classe de première.
- NSI : classe de première.
- Le M@gistère : M@gistère Algorithmique et Python au Lycée.
Un magistère proposé par l'académie de Paris qui est disponible pour tous les enseignants.
- Consultez la page : se former sous Python.
Des documents proposés lors des ateliers de formations à Python et destinés aux enseignants.
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 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
- Débuter en Python : https://www.ac-paris.fr/
- Initiation à Python (Par Nicolas Poulain du Gyptic de Paris) : https://www.ac-paris.fr/
- 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.
- OpenClassroom : https://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.
- Eduscol :
Un document de formation sur l'algorithmique et la programmation au lycée est à présent en ligne sur éduscol, dans la page « mathématiques au lycée ».
- Ac-Paris : https://www.ac-paris.fr/portail/jcms/d_5353/programmes
Le portail dédié - Ac-Paris : https://www.ac-paris.fr/portail/jcms/d_5338/accueil
Ecriture des algorithmes pour le Bac 2018 : Document ressource
- Programmes de Lycée : site académique de Paris
Les nouveaux programmes de Lycée proposent de nombreux exemples d'activités en algorithmique.