Python au Lycée
Création de documents et gestion des devoirs élèves (via Capytale)
1. Capytale V2 : Service de partage d'activités de codage
Capytale, c'est :
- Python sans installation pour enseignants et élèves : accessible depuis tout navigateur ;
- Un service qui fonctionne sur tout périphérique : ordinateur, tablette ou téléphone ;
- Des travaux enregistrés automatiquement dans un cloud et disponibles partout ;
- Un cadre institutionnel proposé par l'académie de Paris.
Via cette plateforme, vous pouvez proposer, diffuser, récupérer, corriger, annoter et noter des activités porposées sous différentes formes.
1.a. Activités Notebooks
Les activités Notebboks sont créées via une application web nommée Jupyter.
On peut donc via Capytale :
- créer des documents appelés Notebooks (via Jupyter) c'est-à-dire des documents contenant à la fois du texte (en markdown) et du code en Python.
Ces notebooks peuvent être convertis en fichiers Pdf ou Tex (voir exemples ci-après) ; - diffuser ces documents aux élèves via un code ;
- récupérer les travaux des élèves, les corriger et les évaluer.
1.b. Les activités script-console
Les activités script-console sont plus simples d'utilisation. Le concept est similaire à celui du site repl.it mais bien plus pratique pour l'enseignant.
On peut aussi via Capytale :
- partager un documents (pdf ou autre) ou proposer un énoncé de problème sur l'espace script-console, y compris en LaTeX ;
- diffuser le sujet ;
- récupérer les travaux des élèves, les corriger et les évaluer.
1.c. Les tutoriels : Comment utiliser Capytale ?
De nombreux tutos de qualités sont disponibles.
- Créer et partager une activité notebook
- Créer et partager une activité script-console
- Ce que voient les élèves
- Évaluation et appréciation des travaux des élèves
À votre disposition dans la bibliothèque de documents partagés, une liste de tutos sur la construction de notebooks.
2. Création de documents intégrants du code Python
Pour concevoir des d'activités intégrant du code Python avec un affichage claire respectant et l'indentation, et les couleurs plusieurs solutions sont possibles.
- Jupyter
Jupyter est une application web utilisée pour programmer dans plus de 40 langages de programmation, dont Python.
Jupyter permet de réaliser des notebooks, c'est-à-dire des documents contenant à la fois du texte (en markdown) et du code en Python.
Ces notebooks peuvent être convertis en fichiers Pdf ou Tex.
On peut l'installer seul (site officiel : https://jupyter.org/ ) mais il est intégré directement dans la solution anaconda (site officiel : https://www.anaconda.com/ ).
L'académie de Paris propose aussi un Jupyter en ligne, via Capytale.
- Avec un traitement de texte classique.
On peut utiliser un traitement de texte de typer Word ou Open Office et y insérer des copies d'écran avec l'outil Capture d'écran (snipping tool) installé nativement sous windows.
- Lien : Support Windows
- Lien : Support Windows
- Sous un environnement LaTex.
Évidement il existe des packages permettant d'intégrer du code au format Python en respectant indentations et couleurs. De nombreuses incompatibilités subsistent entre les packages, comme souvent sous LaTex mais voici quelques possibilités.- Avec le package Listings
- Une documentation : http://borntocode.fr/latex-comment-inserer-et-customiser-du-code-source/
- Une solution possible proposée par Nicolas Poulain : lien sur Overleaf .
- Avec le package minted qui est une amélioration de Listings (bien plus simple en fait)
- Une documentation : https://ctan.org/pkg/minted /
- Un exemple : lien overleaf .
- Un tutoriel : https://zestedesavoir.com/tutoriels/1848/presenter-du-code-source-dans-un-document-latex/
- Avec le package Listings
- Dans une page web
On peut intégrer du code via le site http://hilite.me/
Un exemple :
import random import matplotlib.pyplot as plt # def echantillon(n): return [random.randint(1,6) for i in range(n)] # fig = plt.figure() plt.hist(echantillon(100),12, density=0, facecolor='b', alpha=1) # density = 1 : pour les fréquences # density = 0 : pour les occurences fig.savefig('graph.png') # ou plt.show() sur anaconda