Binder NbViewer

Enseigner avec Jupyter¶

Les carnets Jupyter sont de bons outils d’enseignement.

Scénario 1¶

L'alternance de cellules de code et de cellules de texte formaté pour expliquer un langage informatique.

Exemple¶

Une liste Python est un conteneur d'objets Python de type différent.

In [1]:
[1, 2, 3]  # liste de trois entiers
[1, "bonjour", 3.2]  # liste de trois éléments de type différent
[1, 2, ["a", "b", "c"]]  # Liste contenant une liste comme élément
Out[1]:
[1, 2, ['a', 'b', 'c']]

La méthode append() permet d'ajouter un élément à une liste.

In [2]:
l1 = [1, 2, 3]
l1.append(4)

Scénario 2¶

Utilisation des carnets Jupyter pour organiser des exercices de programmation en classe. Les instructions sont décrites dans des cellules de texte formaté et les étudiant(e)s sont invités à suivre ces instructions pour résoudre des problèmes dans des cellules de code vides ou partiellement remplies.

Exemple¶

Coder une fonction qui retourne la somme des entiers positifs pairs inférieurs ou égale à $n$. Le paramètre d'entrée de la fonction est $n$. Si ce paramètre n'est pas une valeur numérique positive ou nulle, la fonction renvoie $-1$.

In [3]:
def volume_cylindre(rayon, hauteur):
    pass # placer le code ici à la placce de l'instruction pass

Pour tester votre code, exécuter les assertions suivantes, elles ne doivent pas lever d'exception si votre fonction répond au cahier des charges.

In [ ]:
assert somme_paire(0) == 0
assert somme_paire(2) == 2
assert somme_paire(10) == 30
assert somme_paire(100) == 2550
assert somme_paire(12.2) == 42
assert somme_paire("8") == -1

Proposition d'une solution

In [5]:
def somme_paire(n):
    """Renvoie la somme des entiers positifs paires inférieur a n."""
    res = -1
    if isinstance(n, (float, int)):
        if n >= 0:
            res = sum([i for i in range(0, int(n)+1, 2)])
    return res

Scénario 3¶

L'interactivité d'un carnet Jupyter permet des explorations de données en ligne.

Exemple¶

La base de toutes les adresses postales de France est disponible sur l'API http https://adresse.data.gouv.fr/api-doc/adresse

Le code suivant envoie une requête et affiche les 5 premiers résultats. La requête paramétrable en adaptant le dictionnaire params.

In [6]:
import requests
import pandas

api_url="https://api-adresse.data.gouv.fr/search/"
params = {
    "q": "avenue",
    "limit": 100,
    "type": "street", # housenumber, street, locality, municipality
    "postcode": 91190,
}

data_json = requests.get(api_url, params=params).json()
data_frame = pandas.json_normalize(data_json["features"])

print(len(data_frame), "réponses obtenues")
34 réponses obtenues
In [7]:
data_frame.head(5)
Out[7]:
type geometry.type geometry.coordinates properties.label properties.score properties.id properties.name properties.postcode properties.citycode properties.x properties.y properties.city properties.context properties.type properties.importance properties.street
0 Feature Point [2.116187, 48.704444] Avenue du Génèral Leclerc 91190 Gif-sur-Yvette 0.882027 91272_1260 Avenue du Génèral Leclerc 91190 91272 634963.33 6845286.41 Gif-sur-Yvette 91, Essonne, Île-de-France street 0.70230 Avenue du Génèral Leclerc
1 Feature Point [2.115624, 48.694571] Avenue du Panorama 91190 Gif-sur-Yvette 0.877754 91272_1930 Avenue du Panorama 91190 91272 634909.61 6844189.27 Gif-sur-Yvette 91, Essonne, Île-de-France street 0.65529 Avenue du Panorama
2 Feature Point [2.115367, 48.693057] Avenue Centrale 91190 Gif-sur-Yvette 0.876670 91272_0470 Avenue Centrale 91190 91272 634888.81 6844021.17 Gif-sur-Yvette 91, Essonne, Île-de-France street 0.64337 Avenue Centrale
3 Feature Point [2.125022, 48.710608] Avenue du Bois des Roches 91190 Gif-sur-Yvette 0.875477 91272_0380 Avenue du Bois des Roches 91190 91272 635621.04 6845964.45 Gif-sur-Yvette 91, Essonne, Île-de-France street 0.63025 Avenue du Bois des Roches
4 Feature Point [2.118026, 48.692642] Avenue des Carrières 91190 Gif-sur-Yvette 0.875477 91272_0450 Avenue des Carrières 91190 91272 635084.00 6843972.84 Gif-sur-Yvette 91, Essonne, Île-de-France street 0.63025 Avenue des Carrières