Innovation Pédagogique
Institut Mines-Telecom

Une initiative de l'Institut Mines-Télécom avec un réseau de partenaires

Notebooks Ipython pour la programmation scientifique

17 mars 2015 par Thierry CHONAVEL Fiches pédagogiques 13193 visites 0 commentaire

A la recherche d’un outil interactif intégrant, dans une même interface, les ressources de cours et les simulations informatiques basées sur la programmation Python.

Ce projet trouve ses origines dans une double préoccupation de l’enseignant porteur :

  • La recherche d’une alternative libre à Matlab pour le calcul numérique qui ne soit pas restreinte au calcul scientifique (comme le sont Scilab ou Octave) et qui puisse éventuellement remplacer Mapple et Mathematica pour les opérations de base de calcul formel.
  • La mise en place d’un outil interactif pour les enseignements scientifiques intégrant l’exposition des principes (type Powerpoint ou Latex-beamer) et la simulation informatique sur une même interface, voire permettant d’accéder à des ressources en ligne (pages wikipedia, video youtube, ...).

La réponse apportée

Le langage informatique Python offre depuis quelques années des librairies performantes pour les calculs numériques « à la Matlab » (telles numpy et scipy), la représentation graphique (Matplotlib, Mayavi) ou de graphes (gato), le calcul formel (sympy), statistiques (pandas, scikit) …, tout en demeurant un langage généraliste populaire (près de la moitié des codes développés par Google sont en python).

Depuis quelques mois, l’outil Ipython (interface interactive pour la programmation avec python) s’est enrichi de possibilités de travail avec des pages web interactives qui offrent les fonctionnalités de présentation de contenus et de simulations informatiques, d’exécution de code sur une même page.

Bien que l’outil soit encore récent, cet enseignant a pu vérifier sa qualité dans le cadre d’une Formation Continue d’introduction au calcul scientifique avec le langage Python.
Exemple de Notebook Ipython

La valeur ajoutée

Ces outils sont gratuits et accessibles à tous. Ils permettent de fusionner des informations d’origines variées (code, documents texte, audio, vidéo) sur un même écran. Par exemple :

  • Dans certains TP, les élèves sont renvoyés vers des pages Wikipedia. Ici les pages web sont directement accessibles dans la page d’énoncé.
  • Une étude bibliographique devient, à travers cet outil, plus simple à présenter et à exploiter : il suffit d’attacher les références au document. Ainsi, les élèves peuvent s’approprier le principe des notebooks pour la restitution de certains de leurs travaux.
  • Les pages web interactives apportent une aide à l’apprentissage de la programmation et à la compréhension de notions scientifiques et techniques en illustrant chacune des notions abordées par une séquence de code, ceci sans avoir à commuter entre divers outils. La continuité et la clarté de l’exposé s’en trouvent améliorées. Pour l’enseignant, cela permet également d’organiser plus facilement ses idées.

Les conditions de mise en oeuvre

Cet enseignant-concepteur a mené un travail de recherche d’outils adaptés à ses enseignements et à une solution alternative libre à Mathlab, de façon autonome, plus par curiosité qu’avec la certitude de l’utilisabilité des outils. Il fait aujourd’hui le constat qu’ils méritent toute l’attention des enseignants.

Outre Ipython, le principe des notebooks interactifs n’a été retrouvé que sur les plateformes Mathematica (payant) et SAGE (plateforme de calcul scientifique basée sur Python). De nombreux projets similaires, existent, parmi le foisonnement des projets informatiques récents, et les notebooks Ipython peuvent constituer un bon point de départ.

Pour les moyens humains à mobiliser, le rapprochement avec des enseignants du domaine informatique s’avère bénéfique. Les projets d’élèves, voire des stages, peuvent être l’occasion de renforcer la connaissance de ces outils et leur mise en oeuvre.

Pour les moyens matériels, il est intéressant d’utilisation d’une machine dédiée, notamment afin de tester des configurations variées. La mise en œuvre sur des nano-PC (voir plus loin) peut aussi constituer un projet pédagogique intéressant.

Les améliorations possibles

Cet enseignant envisage maintenant de poursuivre les développements de ces Notebooks, notamment à travers des projets d’élèves et de travailler à l’émergence de groupes d’enseignants susceptibles d’échanger et d’enrichir mutuellement leurs connaissances. Il est également intéressé par l’implantation de ces outils sur des nano-PC (PC à 30-70€ selon les versions) afin d’améliorer l’attractivité de l’étude de l’informatique en général et du langage Python en particulier.

Ainsi, l’utilisation de nano-PC permettrait par exemple de traiter certains aspects de communication avec des capteurs, sans avoir à utiliser des langages plus spécifiques de type contrôleur/Arduino. Cela pourrait être attractif, par exemple pour la Formation Continue qui pourrait fournir, à ses stagiaires, un nano-PC avec les supports logiciels et pédagogiques de formation.

La réutilisation dans d’autres cours

Ces outils peuvent convaincre des enseignants des domaines scientifiques. Le langage Python est déjà employé dans de nombreuses institutions, notamment en cours de théorie des graphes. Il est, par exemple, possible d’illustrer de façon animée un parcours dans un graphe avec la librairie gato.

Ces outils peuvent également répondre efficacement pour divers enseignements de signal, d’informatique ou de réseau.

Par ailleurs, à la différence d’un outil comme Matlab qui se cantonne essentiellement à l’ingénierie pour le calcul scientifique, un langage comme Python est réutilisable dans différents domaines des STIC. Pour ses qualités, il est d’ailleurs enseigné comme langage de base dans divers établissement.

Quelques démonstrations ont été faites aux enseignants de Télécom Bretagne. Ces derniers ont apprécié la puissance du langage Python ainsi que la richesse de l’interactivité apportée par les notebooks Ipython. Ils ont pu se rendre compte que cet outil n’a rien à envier à Matlab.

Documents joints

Répondre à cet article

Qui êtes-vous ?
  • [Se connecter]
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Suivre les commentaires : RSS 2.0 | Atom