WEBWORK et SAGECELL – des outils web 2.0 pour l’apprentissage de la "programmation scientifique" – CANUM 2014



WEBWORK et SAGECELL – des outils web 2.0 pour l’apprentissage de la "programmation scientifique" – CANUM 2014

0 0


CANUM2014

Congrès d'analyse numérique CANUM 2014

On Github mbuffat / CANUM2014

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

WEBWORK et SAGECELL

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

CANUM 2014

Marc BUFFAT @ univ-lyon1.frDpt 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.htmlJason Grout, department of Mathematics and Computer Science, Drake University, Des Moines
In [2]:
display(Image(filename="logoIpython.png"))
In [3]:
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 [4]:
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[4]:

Video locale

transition by-pass (Buffat et al 2013)\(\approx 10^{10}\) modes sur \(O(10^{6})\) coeurs
In [5]:
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)
In [6]:
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é

Contexte Objectif pédagogique WebWork SageCell FLOT (Mooc) INPROS 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

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

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

Problème version PDF

Entrée des réponses

validation des réponses

Sage

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/

cellule Sage dans une page html d'un navigateur

execution code Sage

SageCell: inclusion de code Python

SageCell: inclusion de code Python

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

SageCell dans INPROS

Webwork + SageCell dans 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 !!

Des questions ?

In [8]:
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[8]:
<matplotlib.text.Text at 0x3ee52d0>