Deploying a Reproducible Course
Lindsey Heagy, Rowan Cockett
& GeoSci Team
Jupyter Con
August 25, 2017
@lindsey_jh, @rowancockett
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
The subsurface
geophysics?!
Slide 4
Slide 4 text
Option 1: Dig it up?
Slide 5
Slide 5 text
Option 2: Drill it?
Slide 6
Slide 6 text
Option 3: Use geophysics!
Slide 7
Slide 7 text
Physical properties
Slide 8
Slide 8 text
Direct current resistivity
Slide 9
Slide 9 text
Direct current resistivity
Conductivity
Slide 10
Slide 10 text
Currents Charges Voltages
tools
Slide 11
Slide 11 text
Implemented in Python!
tools
Slide 12
Slide 12 text
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
Slide 13
Slide 13 text
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
Slide 14
Slide 14 text
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
Slide 15
Slide 15 text
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
Slide 16
Slide 16 text
teach a course on computation
vs
computation to teach a course
@jakevdp, @lorenaabarba, @Cmrn_DP, @ProjectJupyter, @jhamrick
● 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
Slide 25
Slide 25 text
this is a
problem
currently
Slide 26
Slide 26 text
● iterate in place
● versioned
● reproducible
● tested
● collaborative
● track issues
● continuous peer review
● feedback
● extensible
● ...
capture
share
iterate in place
Slide 27
Slide 27 text
● iterate in place
● versioned
● reproducible
● tested
● collaborative
● track issues
● continuous peer review
● feedback
● extensible
● ...
capture
share
open source
Slide 28
Slide 28 text
open source philosophy
for
developing educational resources
Slide 29
Slide 29 text
education stack
after @jakevdp
Slide 30
Slide 30 text
education stack
after @jakevdp
Slide 31
Slide 31 text
No content
Slide 32
Slide 32 text
http://disc2017.geosci.xyz
from the top
Doug Oldenburg Doug Oldenburg
Denver, CO
Doug Oldenburg
Denver, CO
Slide 33
Slide 33 text
from the top
deploy
course
Slide 34
Slide 34 text
Kyoto, Japan
Slide 35
Slide 35 text
digging deeper
http://em.geosci.xyz
Slide 36
Slide 36 text
from the top
deploy
course
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
deploy
course
from the top
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
building in context
start here
Slide 41
Slide 41 text
at the base
http://simpeg.xyz
Slide 42
Slide 42 text
DC Resistivity
Frequency Domain EM
Natural Sources
Time Domain EM
https://notebooks.azure.com/library/em_apps
x 26
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.
*
*
Slide 51
Slide 51 text
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
Slide 52
Slide 52 text
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
Slide 53
Slide 53 text
on reproducibility
start here
Slide 54
Slide 54 text
on reproducibility
start here
Slide 55
Slide 55 text
on reproducibility
start here
on extensibility
deploy
course
Slide 56
Slide 56 text
on reproducibility
start here
on extensibility
deploy
course
Slide 57
Slide 57 text
on reproducibility
start here
on extensibility
deploy
course
Slide 58
Slide 58 text
on reproducibility
start here
on extensibility
deploy
course
contribution
Slide 59
Slide 59 text
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