"
]
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Conf\u00e9rence PYconFR 2014
\n",
"\n",
"\n",
"\n",
"\n",
" \n",
"\n",
"pour l'enseignement
"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
" [Marc BUFFAT](http://ufrmeca.univ-lyon1.fr/~buffat)
\n",
"\n",
" Professeur en m\u00e9canique des fluides \u00e0 l'UCB Lyon 1
\n",
" Responsable Master MEGA 1ere ann\u00e9e
\n",
" Directeur de la FLMSN
\n",
"[\"F\u00e9d\u00e9ration Lyonnaise de Mod\u00e9lisation et Sciences Num\u00e9riques\"](http://FLMSN.univ-lyon1.fr)\n",
"\n",
" marc.buffat@univ-lyon1.fr
\n",
"\n",
" ufrmeca.univ-lyon1.fr/~buffat
\n",
"\n",
" mbuffat
\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Contexte
\n",
"\n",
" Simulation num\u00e9rique
\n",
"Outil essentiel de la recherche et de l'innovation\n",
"\n",
" Formation au HPC
\n",
"Enjeu majeur dans les ann\u00e9es \u00e0 venir pour le HPC (rapport CSCI 2013)\n",
"\n",
" Formation des \u00e9tudiants
\n",
"Importance de la **formation initiale** en 1er cycle d'universit\u00e9"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Enseignement en science
\n",
"*Mathematics (and Science) is not a spectator sport*\n",
"\n",
"##Constat sur l'enseignement en Licence\n",
"\n",
"- \u00e9tudiants de formation tr\u00e8s disparate avec un manque de m\u00e9thode de travail\n",
"- peu de ma\u00eetrise de l'outil math\u00e9matique, et de la programmation scientifique\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_number": 5,
"slide_helper": "subslide_end"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"##Besoin en enseignement\n",
" - apprentissage par la pratique\n",
" - en dehors des heures encadr\u00e9es\n",
" - utilisation du Web"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 5,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Pourquoi
\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 7
},
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"\n",
" Suivre une mode
\n",
"\n",
"- **Python passe en t\u00eate des langages d'apprentissage** et d\u00e9tr\u00f4ne Java (enqu\u00eate dans les universit\u00e9s US, Le Monde Informatique Juillet 2014)"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
" Caract\u00e9ristiques du langage
\n",
"\n",
"- Python est un **excellent langage** pour l'apprentissage de la programmation scientifique, qui remplace avantageusement **MatLab**\n",
"\n",
"- tr\u00e8s large domaine applicatifs"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
" en science
\n",
"\n",
"## Projet \"NadiaSpectral\" \n",
"(M. Buffat, A. Cadiou, L. Le Penven)\n",
"\n",
"- simulation HPC en CFD sur $O(10^{6})$ coeurs\n",
"- 35 000 lignes de code en C++ (noyau de calcul)\n",
"- 20 000 lignes de code en Python (analyse, visualisation InSitu)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"YouTubeVideo('R1I9-vuv1GU',width=600,height=400)"
],
"language": "python",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"html": [
"\n",
" \n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 16,
"text": [
""
]
}
],
"prompt_number": 16
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Pourquoi
\n",
"\n",
" Environnement de programmation
\n",
"\n",
"- Python, R, Ruby, bash\n",
"\n",
" Utilise un navigateur Web
\n",
"\n",
"- Markdown + HTML \n",
"- texte + $\\LaTeX$ + image + vid\u00e9o\n",
"\n",
" Python scientifique
\n",
"\n",
"- Matplotlib, Numpy, Scipy\n",
"\n",
"###Notebook Ipython: \"Swinging pendulum\" et \"Elements finis\""
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
" IPython Notebook at SciPy 2014
\n",
"\"Teaching Numerical Methods with IPython Notebooks\", by Aron Ahmadia and David Ketcheson\n"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"YouTubeVideo('L-caFdJMR9E')"
],
"language": "python",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"html": [
"\n",
" \n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 17,
"text": [
""
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
" GitHub IPython notebook
\n",
"\"12 steps to Navier-Stokes\" par Lorena A. Barbara"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"IFrame(\"http://lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes/\",width=\"100%\",height=400)"
],
"language": "python",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"html": [
"\n",
" \n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 18,
"text": [
""
]
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
" IPython notebook in MOOC
"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "-"
}
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"MOOC INPROS
\n",
"\n",
"\n",
"## INtroduction \u00e0 la PROgrammation Scientifique##\n",
"\n",
"- Projet de FLOT http://INPROS.univ-lyon1.fr\n",
"\n",
"## Projet collaboratif\n",
"- objectif: apprentissage d'une m\u00e9thodologie en programmation scientifique\n",
"- cours d'initiation (public tr\u00e8s large)\n",
"- cours interactif avec mise en pratique\n",
"- accessible \u00e0 partir d'un simple navigateur\n",
"- utilise Webwork, Sagecell, Ipython Notebook"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
" dans INPROS
\n",
"\n",
"### Remplace une pr\u00e9sentation statique \n",
"- style beamer $\\LaTeX$ ou powerpoint\n",
"\n",
"### Permet des pr\u00e9sentations plus interactives\n",
"\n",
"- ex\u00e9cution de code en live\n",
"- configuration avec CSS + HTML 5\n",
"- moins formel\n",
"\n",
"### Source unique\n",
"\n",
"- video\n",
"- notes de cours en PDF\n",
"- notebook en HTML"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Le\u00e7on avec
\n",
"\n",
"\n",
"\n",
"
\n",
"\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"SageCell
\n",
""
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "-"
}
},
"source": [
" serveur Sage
\n",
"\n",
"- accessible en ligne (navigateur Web)\n",
"\n",
" \"Python Scientifique\"
\n",
"\n",
"- ideal pour l'apprentissage de la programmation \n",
"\n",
" cellule sage
\n",
"\n",
"- inclusion simple dans une page Web"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Ex\u00e9cution on-line des exemples"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"IFrame(\"http://inpros.univ-lyon1.fr/mod/page/view.php?id=74\",width=\"100%\",height=500)"
],
"language": "python",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"html": [
"\n",
" \n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 19,
"text": [
""
]
}
],
"prompt_number": 19
},
{
"cell_type": "heading",
"level": 2,
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Ex\u00e9cution on-line de programmes"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"IFrame('http://inpros.univ-lyon1.fr/mod/page/view.php?id=3',width=\"100%\", height=500)"
],
"language": "python",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"html": [
"\n",
" \n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 20,
"text": [
""
]
}
],
"prompt_number": 20
},
{
"cell_type": "heading",
"level": 2,
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Validation on-line de programmes"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"IFrame('http://inpros.univ-lyon1.fr/mod/page/view.php?id=95',width=\"100%\", height=500)"
],
"language": "python",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"html": [
"\n",
" \n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 21,
"text": [
""
]
}
],
"prompt_number": 21
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"MOOC InProS
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"### ouverture en F\u00e9vrier 2015 (actuellement en $\\beta$-test \u00e0 Lyon 1)\n",
"\n",
" http://INPROS.univ-lyon1.fr
\n",
"\n",
"\n",
"\n",
" [MOOCINPROS](https://www.facebook.com/MOOCINPROS)
\n",
"\n",
"\n",
"
"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 8,
"slide_type": "subslide"
},
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"Conclusion
\n",
"\n",
" Ipython formidable outil
\n",
"\n",
"- pour l'enseignement \n",
"\n",
"- pour la pr\u00e9sentation de r\u00e9sultats"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 31,
"slide_helper": "subslide_end"
},
"slide_helper": "subslide_end",
"slideshow": {
"slide_type": "fragment"
}
},
"source": [
"\n",
" Am\u00e9lioration
\n",
"\n",
"- qques bugs: nconvert, live reveal\n",
"\n",
" Besoin: serveur IPython avec partage des notebooks
\n",
"\n",
"### [Sage Math Cloud](https://cloud.sagemath.com/) [JUPYTHER](https://github.com/jupyter)\n",
"\n",
"[serveur Jupiter Meca](https://ipythonmeca.univ-lyon1.fr:443)"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 31,
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Remerciement
\n",
"\n",
" D\u00e9partement de M\u00e9canique:
\n",
"Delphine Doppler, Claude Inserra, Yannick Rozenberg, Pierre Valiorgue, Ivana Vinkovic,....\n",
"\n",
" Projet Mooc **INPROS**:
\n",
"Violaine Louvet, Michel Kern, Anne Cadiou, Loic Gouarin, Laurence Viry\n",
"\n",
" **IPython**:
\n",
"P\u00e9rez, Fernando and Granger, Brian E.\n",
"\n",
" **SageCell**:
\n",
"Jason Grout, department of Mathematics and Computer Science, Drake University, Des Moines"
]
},
{
"cell_type": "markdown",
"metadata": {
"internals": {
"frag_helper": "fragment_end",
"frag_number": 31,
"slide_helper": "subslide_end",
"slide_type": "subslide"
},
"slide_helper": "slide_end",
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"\n",
" \n",
"\n",
"Power by
"
]
}
],
"metadata": {}
}
]
}