Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deploying a Reproducible Course

Deploying a Reproducible Course

Lindsey Heagy and Rowan Cockett

Web-based textbooks and interactive simulations built in Jupyter notebooks provide an entry point for course participants to reproduce content they are shown and dive into the code used to build them. Lindsey Heagy and Rowan Cockett share strategies and tools for developing an educational stack that emerged from the deployment of a course on geophysics (which will be delivered in about 30 locations worldwide this year) and some lessons learned along the way.

At a minimum, the ability to reproduce a numerical simulation or associated figure requires open source software. However, opening the software is insufficient for enabling course participants, many of whom have never programmed before, to engage with and explore the numerical simulations in a nonthreatening way. The first goal is to make concepts accessible—introduce them in context through examples, case histories, and explanations—and provide an interactive way for participants to build intuition around the underlying physical principles. The implemented approach is two-fold: developing web-based textbooks built using Python documentation tools to provide the context and Jupyter Notebook apps that use ipywidgets as the interface for driving numerical simulations around specific concepts. (The numerical software that enables the exploration of these concepts is the same set of tools that Lindsey and Rowan use in their own research—SimPEG.) During the course, the “apps” are introduced over the lunch break, and participants have the opportunity to reproduce figures and to purposefully explore and investigate concepts and questions that came up during the presentation.

The second goal is to make these computational tools accessible so that participants can add them to their own toolboxes. This requires providing resources for participants to look at the code under the hood. Within the GeoSci “textbooks,” source code for static figures is provided, so the figures themselves provide a way for readers to dive a level deeper (e.g., electrostatic sphere). Parallel to this, a second set of Jupyter notebooks have been deployed that walk through the steps taken to set up a numerical simulation (with SimPEG), exposing all of the code required to do so. By having all of the layers, from numerical simulation software to simulation “apps” to the case histories and theory that provide context, available for exploration, there is now a trajectory for participants to dive from course content all the way to the research software used to build that content.

Topics include:

- The approach, tools, and philosophy that used to develop the tools and ideas that enable an educational stack
- The strategies used to foster a community
- Some of the pain points and opportunities for development inside the Jupyter community that support this style of reproducible scientific communication

https://conferences.oreilly.com/jupyter/jup-ny/public/schedule/detail/60045

Lindsey Heagy

August 25, 2017
Tweet

More Decks by Lindsey Heagy

Other Decks in Technology

Transcript

  1. Deploying a Reproducible Course Lindsey Heagy, Rowan Cockett & GeoSci

    Team Jupyter Con August 25, 2017 @lindsey_jh, @rowancockett
  2. What? • 1 day course ◦ 1 web-based “textbook” ◦

    26 notebook-apps ◦ 560 slides • + 1 day “lab” ◦ Discussion, tutorials ◦ Presentations from participants http://disc2017.geosci.xyz Kyoto, Japan
  3. Who? • Participants ◦ Industry professionals, applied academics ◦ 1400

    people, 21 countries • Contributors ◦ Graduate students, academics ◦ 52 people, 16 are on github http://disc2017.geosci.xyz Hyderabad, India
  4. Goals • Inspire through applications ◦ See variety of case

    histories • Build a foundation ◦ Basic principles of EM ◦ Set realistic expectations of EM • Promote development of an EM community http://disc2017.geosci.xyz Brisbane, Australia
  5. Not Goals • Not a course in computation ◦ No

    code!! • Not assessing the learners ◦ No pop quiz!! • Not building infrastructure ◦ No IT staff!! http://disc2017.geosci.xyz Perth, Australia
  6. teach a course on computation vs computation to teach a

    course @jakevdp, @lorenaabarba, @Cmrn_DP, @ProjectJupyter, @jhamrick
  7. • Bugs • Reviewed by ~2 people • No discussion

    / issue board? • How did they make that figure? • Is it Current? out of date? • Limited input / feedback • Reuse is limited ◦ copy paste writing ◦ licensing restrictions • Roadmap? Is there one? • Who do I ask? are there stewards of this work? • Limited collaboration opportunities ◦ 1 or 2 (the good ones have 2) • Diff? What changed in this version? ◦ version 1 is in the used book store and is $100 cheaper. What changed? - only question order? currently
  8. • iterate in place • versioned • reproducible • tested

    • collaborative • track issues • continuous peer review • feedback • extensible • ... capture share iterate in place
  9. • iterate in place • versioned • reproducible • tested

    • collaborative • track issues • continuous peer review • feedback • extensible • ... capture share open source
  10. DC Resistivity Frequency Domain EM Natural Sources Time Domain EM

    https://notebooks.azure.com/library/em_apps x 26
  11. on chaos (and deadlines) • The course will happen •

    Apps will be deployed 100 ppl (not okay) Used in real time during the course. Original developer not in the room. Batteries not included. * *
  12. on chaos (and deadlines) Who are the contributors? Graduate students

    (not software developers) • The course will happen • Apps will be deployed Used in real time during the course. Original developer not in the room. Batteries not included. * * 100 ppl It works? ❏ It runs on my computer what’s a branch? ❏ The code is tested it actually runs!! ❏ Someone else understands how it works ❏ There are docs in the code ❏ The code is structured (inheritance) ❏ There are docs on a website ❏ The code is styled to standard
  13. on organization Who are the contributors? Graduate students (not software

    developers) It works? ❏ It runs on my computer what’s a branch? ❏ The code is tested it actually runs!! ❏ Someone else understands how it works ❏ There are docs in the code ❏ The code is structured (inheritance) ❏ There are docs on a website ❏ The code is styled to standard usable shareable reliable community scope & expectations
  14. ecosystem • Challenges ◦ What is tied into the ecosystem?

    ◦ Where are the on-ramps? • Iterate in place ◦ Be purposeful about tools & strategies to create positive feedbacks • Goal is extensibility ◦ Reproducibility is step one