Marc BUFFAT

Professeur au département de Mécanique, Lyon 1 e-mail

Blog scientifique et pédagogique utilisant des notebooks IPython et Linux

Conférence PYconFR Lyon 2014


In [1]:
%matplotlib inline
%autosave 300
from IPython.display import display
from IPython.display import Image, HTML
from IPython.display import IFrame,YouTubeVideo
display(HTML(open('style.css').read()))
Autosaving every 300 seconds

Conférence PYconFR 2014

PYconFR

pour l’enseignement

[Marc BUFFAT](http://ufrmeca.univ-lyon1.fr/~buffat)

Professeur en mécanique des fluides à l’UCB Lyon 1

Responsable Master MEGA 1ere année

Directeur de la FLMSN

[“Fédération Lyonnaise de Modélisation et Sciences Numériques”](http://FLMSN.univ-lyon1.fr)

marc.buffat@univ-lyon1.fr

ufrmeca.univ-lyon1.fr/~buffat

 mbuffat

Contexte

Simulation numérique

Outil essentiel de la recherche et de l’innovation

Formation au HPC

Enjeu majeur dans les années à venir pour le HPC (rapport CSCI 2013)

Formation des étudiants

Importance de la formation initiale en 1er cycle d’université

Enseignement en science

*Mathematics (and Science) is not a spectator sport*

Constat sur l’enseignement en Licence

  • étudiants de formation très disparate avec un manque de méthode de travail
  • peu de maîtrise de l’outil mathématique, et de la programmation scientifique

Besoin en enseignement

  • apprentissage par la pratique
  • en dehors des heures encadrées
  • utilisation du Web

Pourquoi

Suivre une mode

  • Python passe en tête des langages d’apprentissage et détrône Java (enquête dans les universités US, Le Monde Informatique Juillet 2014)

Caractéristiques du langage

  • Python est un excellent langage pour l’apprentissage de la programmation scientifique, qui remplace avantageusement MatLab

  • très large domaine applicatifs

en science

Projet “NadiaSpectral”

(M. Buffat, A. Cadiou, L. Le Penven)

  • simulation HPC en CFD sur $O(10^{6})$ coeurs
  • 35 000 lignes de code en C++ (noyau de calcul)
  • 20 000 lignes de code en Python (analyse, visualisation InSitu)
In [2]:
YouTubeVideo('R1I9-vuv1GU',width=600,height=400)
Out[2]:

Pourquoi

Environnement de programmation

  • Python, R, Ruby, bash

Utilise un navigateur Web

  • Markdown + HTML, texte + $\LaTeX$ + image + vidéo

Python scientifique

  • Matplotlib, Numpy, Scipy

Notebook Ipython: “Swinging pendulum” et “Elements finis”

IPython Notebook at SciPy 2014

“Teaching Numerical Methods with IPython Notebooks”, by Aron Ahmadia and David Ketcheson

In [3]:
YouTubeVideo('L-caFdJMR9E')
Out[3]:

GitHub IPython notebook

“12 steps to Navier-Stokes” par Lorena A. Barbara

In [4]:
IFrame("http://lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes/",width="100%",height=400)
Out[4]:

IPython notebook in MOOC

MOOC

MOOC INPROS

INPROS

INtroduction à la PROgrammation Scientifique

Projet collaboratif

  • objectif: apprentissage d’une méthodologie en programmation scientifique
  • cours d’initiation (public très large)
  • cours interactif avec mise en pratique
  • accessible à partir d’un simple navigateur
  • utilise Webwork, Sagecell, Ipython Notebook

dans INPROS

Remplace une présentation statique

  • style beamer $\LaTeX$ ou powerpoint

Permet des présentations plus interactives

  • exécution de code en live
  • configuration avec CSS + HTML 5
  • moins formel

Source unique

  • video
  • notes de cours en PDF
  • notebook en HTML

SageCell

serveur Sage

  • accessible en ligne (navigateur Web)

Python Scientifique”

  • ideal pour l’apprentissage de la programmation

cellule sage

  • inclusion simple dans une page Web

Exécution on-line des exemples

In [5]:
IFrame("http://inpros.univ-lyon1.fr/mod/page/view.php?id=74",width="100%",height=500)
Out[5]:

Exécution on-line de programmes

In [6]:
IFrame('http://inpros.univ-lyon1.fr/mod/page/view.php?id=3',width="100%", height=500)
Out[6]:

Validation on-line de programmes

In [7]:
IFrame('http://inpros.univ-lyon1.fr/mod/page/view.php?id=95',width="100%", height=500)
Out[7]:

MOOC InProS

INPROS

ouverture en Février 2015 (actuellement en $\beta$-test à Lyon 1)

http://INPROS.univ-lyon1.fr

[MOOCINPROS](http://twitter.com/MOOCINPROS)

[MOOCINPROS](https://www.facebook.com/MOOCINPROS)

Licence Creative Commons

Conclusion

Ipython formidable outil

  • pour l’enseignement

  • pour la présentation de résultats

 Amélioration

  • qques bugs: nconvert, live reveal

Besoin: serveur IPython avec partage des notebooks

<img style=”float:center; display:inline; width:80px;”, src=”sagemath-cloud.png”/> Sage Math Cloud <img style=”float:center; display:inline; width:80px;”, src=”Jupiter.png”/>JUPYTHER

[serveur Jupiter Meca](https://ipythonmeca.univ-lyon1.fr:443)

Remerciement

Département de Mécanique:

Delphine Doppler, Claude Inserra, Yannick Rozenberg, Pierre Valiorgue, Ivana Vinkovic,….

Projet Mooc **INPROS**:

Violaine Louvet, Michel Kern, Anne Cadiou, Loic Gouarin, Laurence Viry

 **IPython**:

Pérez, Fernando and Granger, Brian E.

 **SageCell**:

Jason Grout, department of Mathematics and Computer Science, Drake University, Des Moines

Power by