Marc BUFFAT

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

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

Congrès d’Analyse Numérique CANUM2014


In [17]:
%matplotlib inline
%autosave 0
from numpy import *
from talktools import *
Autosave disabled

WEBWORK et SAGECELL

des outils web 2.0 pour l’apprentissage
de la “programmation scientifique”

WebWork

CANUM 2014

**Marc BUFFAT** @ univ-lyon1.fr
*Dpt Mécanique, Université Claude Bernard Lyon 1 *

Remerciement

  • projet WebWork:
    Delphine Doppler,Claude Inserra, Pierre Valiorgue, Ivana Vinkovic
  • Projet Mooc INPROS:
    Violaine Louvet, Michel Kern, Anne Cadiou, Loic Gouarin, Laurence Viry
  • WebWork: http://webwork.maa.org:
    Pr. Michael Gage, department of mathematics, university of Rochester
  • SageCell: http://www.sagemath.org/eval.html
    Jason Grout, department of Mathematics and Computer Science, Drake University, Des Moines
In [18]:
display(Image(filename="logoIpython.png"))
In [19]:
with plt.xkcd():
    R=7.; r=4; d=6; t=linspace(0,8*pi,100)
    x = (R-r)*cos(t)+d*cos( (R-r)*t / r )
    y = (R-r)*sin(t)-d*sin( (R-r)*t / r )
    plt.figure(figsize=(8,6))
    plt.plot(x,y,'r',lw=2)
    plt.axis('equal')
    plt.text(-9,-0.5,"CANUM 2014",fontsize=48,color='c')
In [20]:
display(HTML('<center><h2>Video externe (YouTube)</h2></center>'))
display(HTML('Simulation pétaflopique sur PRACE'))
display(HTML('transition by-pass (Buffat et al 2013)<br>$\\approx 10^{10}$ modes sur $O(10^{6})$ coeurs<br>'))
from IPython.display import YouTubeVideo
YouTubeVideo('R1I9-vuv1GU',width=800,height=500)

Video externe (YouTube)

Simulation pétaflopique sur PRACE
transition by-pass (Buffat et al 2013)
$\approx 10^{10}$ modes sur $O(10^{6})$ coeurs
Out[20]:

Video locale

transition by-pass (Buffat et al 2013)
$\approx 10^{10}$ modes sur $O(10^{6})$ coeurs

In [21]:
display(HTML('<center><h2>Site WEB</h2></center>'))
url='http://elsa.onera.fr/elsA/gallery/data/dvlong/GAL-07032.html'
#website(url,name="Simulation industrielle ELSA ONERA<br>Calcul autour d'un avion complet",width=700,height=400)

Site WEB

In [22]:
display(HTML('<center><h1>Partage sur le web</h1></center>'))
url2="http://ufrmeca.univ-lyon1.fr/~buffat/CANUM2014"
display(HTML('<a href="%s"><h3>%s</h3></a>'%(url2,url2)))
url1="http://nbviewer.ipython.org/url/ufrmeca.univ-lyon1.fr/~buffat/CANUM2014/CANUM2014.ipynb"
display(HTML('<a href="%s"><h3>%s</h3></a>'%(url1,url1)))
url='http://nbviewer.ipython.org/'
website(url,name="Notebook nbviewer",width=800,height=400)

Plan de l’exposé

  1. Contexte
  2. Objectif pédagogique
  3. WebWork
  4. SageCell
  5. FLOT (Mooc) INPROS
  6. Conclusion

Contexte

  • La modélisation et la simulation numérique sont devenues des outils essentiels de la recherche et de l’innovation
  • L’université ne prépare pas suffisamment nos étudiants à l’utilisation de ces nouveaux outils
  • La formation à la “programmation scientifique” et au “calcul intensif” (HPC) est un enjeu majeur dans les années à venir (rapport CSCI par O. Pironneau, 2013)
  • En particulier importance de la formation initiale en 1er cycle d’université

Programmation scientifique

démarche scientifique pour passer d’un problème physique à sa résolution sur un ordinateur”

Démarche scientifique

  • analyse du problème physique
  • modèle mathématique
  • méthode de discrétisation
  • algorithme de résolution du problème discret
  • programmation et validation
  • simulations et analyse des résultats

Enseignement des mathématiques et de la programmation

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

Constat

Enseignement classique en présentiel (Licence)

  • étudiants de formation très disparate avec un manque de méthode de travail
  • peu de maîtrise de l’outil mathématique
  • peu de maîtrise de la programmation
  • logiciels utilisés en TP peu adaptés (Maple, Matlab, Comsol, ….)

Besoin

apprentissage par la pratique

  • $\Rightarrow$ exercices pour les étudiants
  • $\Rightarrow$ résolution de problème pour acquérir méthode et formalisme
  • en dehors des heures encadrés

Outils Web 2.0

  • Webwork
  • SageCell
  • IPython notebook

WebWork Webwork

système de devoirs en ligne

  • développé à l’université de Rochester
  • très utilisé dans les enseignements de Maths
  • énorme bibliothèque d’exercices: $\approx 20 000$
    algèbre, probabilité, calculus, equa. diff., algèbre linéaire, analyse complexe,..

  • système ouvert (libre) et interfaçable (LMS Moodle, SageCell)

Intérêts de WebWork

Webwork

rendre les devoirs à la maison plus efficaces

  • réponse immédiate pour les étudiants

  • version individualisée des devoirs

  • notation automatique

interface WEB

http://inpros.univ-lyon1.fr/webwork2

Webwork Webwork

Problème version PDF

Webwork

Entrée des réponses

Webwork

validation des réponses

Sage SageCell

SageCell=Interface Web à Sage

  • SAGE: collection de logiciels libres:
    Python, Numpy, Mathplotlib, Sympy, Maxima, R, Gap

  • cellule de calcul Sage dans une page HTML

  • serveur de calcul SAGE
  • aucune installation locale
  • système ouvert interfaçable (LMS Moodle, WebWork)

Sage server http://sagecellmeca.univ-lyon1.fr:8080/

SageCell

cellule Sage dans une page html d’un navigateur

SageCell

execution code Sage

SageCell

SageCell: inclusion de code Python

SageCell

SageCell: inclusion de code Python

INPROS INPROS

INtroduction à la PROgrammation Scientifique

Prototype de FLOT http://inpros.univ-lyon1.fr

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
In [23]:
url='http://inpros.univ-lyon1.fr'
website(url,"MOOC INPROS",width=800,height=500)
Out[23]:

INPROS

SageCell dans INPROS

INPROS

Webwork + SageCell dans INPROS

INPROS

Code de l’exercise

Conclusion

Webwork/Sage en L3/M1 méca.

  • étudiants travaillent à leur rythme
  • plusieurs tentatives (80 à 100% réussite)
  • mise en place L1 portail PCSI
  • projet FLOT INPROS

Difficultés

  • temps de mise en oeuvre
  • valorisation pour les enseignants

Merci de votre attention !!

Questions

Des questions ?

In [24]:
R=7.; r=4; d=6; t=linspace(0,8*pi,200)
x = (R-r)*cos(t)+d*cos( (R-r)*t / r )
y = (R-r)*sin(t)-d*sin( (R-r)*t / r )
plt.figure(figsize=(8,6))
plt.title("Hypotrochoide")
plt.plot(x,y,'r',lw=1)
plt.axis('equal')
plt.text(-8,-0.5,"CANUM 2014",fontsize=48,color='c')
Out[24]:
<matplotlib.text.Text at 0x7f3501ceffd0>
In [ ]: