Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
How to Become
Rich, Famous, and
Popular While Using
Your Programming
Skills to Make the
World a Better
Place
(Maybe)
Greg ...
2
5-15% use GPU clusters
to analyze petabytes
in the cloud
85-95% send each
other spreadsheets
by email
Scientists
3
It Is Therefore Obvious That...
We should put more computing in the curriculum!
But it's already full
4
It Is Therefore Obvious That...
And even if we did...
...who would teach those classes?
5
If you build a man a fire,
you'll keep him warm for a night.
If you set a man on fire,
you'll keep him warm for the rest...
6
What We Teach
Unix shell
Version control
Python/R/MATLAB
SQL
Make
7
What We Actually Teach
Unix shell => Task automation
Version control => Track and share work
Python/R/MATLAB => Modular ...
8
How We Teach
● Peer instructors
● Teach in pairs
● Learners use their own machines
● Live coding
● Sticky notes
● Collab...
9
How It's Going
2011-11-07
2012-07-19
2013-01-06
2013-04-08
2013-06-24
2013-09-23
2014-01-08
2014-03-18
2014-06-15
2014-0...
10
How It's Going
Workshops
11
How It's Going
Learners
2011-11-07
2012-05-16
2012-10-08
2012-11-30
2013-02-06
2013-04-18
2013-05-30
2013-07-18
2013-09...
12
How It's Going
Instructors
2012-05-27
2013-07-20
2013-11-17
2014-04-19
2014-07-07
2014-08-07
2014-10-03
2014-11-05
2014...
13
How It's Going
Instructors
14
What We've Accomplished
● Honestly don't know
● Anecdotally, save people 10-20% of
their time for the rest of their car...
15
What I've Learned
1. We know a lot
about learning
2. Most people
would rather fail
than change
3. There are lots of
gap...
16
For Example
https://www.youtube.com/watch?v=2LbuoxAy56o
17
●
Today's MOOC platforms don't support PI
●
Piotr Banaszkiewicz showed it's possible
github.com/pbanaszkiewicz/peer-ins...
18
The Jupyter Notebook
Text, math, code,
and images
What hypertext
was meant to
be
19
The Jupyter Notebook
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"d...
20
The Jupyter Notebook
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"d...
21
It Doesn't Have to Be This Way
Tavish Armstrong and others
nbdiff.org
Opportunity #2
22
Generalizes Well
First-class support for diffing and
merging spreadsheets will get more
scientists to use version contr...
23
Generalizes Well
First-class support for diffing and
merging spreadsheets will get more
scientists to use version contr...
24
Speaking of Version Control
● Git is an awful tool
● git-man-page-generator.lokaltog.net
● But it's the price people ha...
25
Speaking of Version Control
● A rational re-design of Git is possible
and worthwhile
● Opportunity #3
● Also generalize...
26
A Puzzle
● Thousands contribute
patches to open source
software projects
● Millions have edited
Wikipedia
● Why don't p...
27
All Together Now
● We've shown it can be done
● And that it's useful
● This presents more opportunities
28
A Small Part of the Reason
● Slideshow formats
aren't diffable either
● But HTML alternatives
are impoverished
29
A Small Part of the Reason
● Neither can create web-
native videos
● Proof: pause a video, highlight the
text being dis...
30
Solution: Browsercast
HTML slideshow...
...with start times for slides...
...and a player that syncs with audio
github....
31
Advantages
● Plays everywhere
● Mobile-friendly
● Accessible!
● Searchable!
● Diffable! (ish)
32
To Sum Up
● First-class support for peer instruction
● Diff for all! (Excel first)
● A rational reconstruction of Git
●...
33
For More Information
http://software-carpentry.org
gvwilson@software-carpentry.org
@swcarpentry
Thank You
Upcoming SlideShare
Loading in …5
×

How to Become Rich, Famous, and Popular While Using Your Programming Skills to Make the World a Better Place

1,258 views

Published on

What could programmers build to help scientists use computers in their day-to-day work? The answer might surprise you.

Published in: Technology

How to Become Rich, Famous, and Popular While Using Your Programming Skills to Make the World a Better Place

  1. 1. How to Become Rich, Famous, and Popular While Using Your Programming Skills to Make the World a Better Place (Maybe) Greg Wilson
  2. 2. 2 5-15% use GPU clusters to analyze petabytes in the cloud 85-95% send each other spreadsheets by email Scientists
  3. 3. 3 It Is Therefore Obvious That... We should put more computing in the curriculum! But it's already full
  4. 4. 4 It Is Therefore Obvious That... And even if we did... ...who would teach those classes?
  5. 5. 5 If you build a man a fire, you'll keep him warm for a night. If you set a man on fire, you'll keep him warm for the rest of his life. — Terry Pratchett
  6. 6. 6 What We Teach Unix shell Version control Python/R/MATLAB SQL Make
  7. 7. 7 What We Actually Teach Unix shell => Task automation Version control => Track and share work Python/R/MATLAB => Modular programming SQL => Data management Make => Reproducibility
  8. 8. 8 How We Teach ● Peer instructors ● Teach in pairs ● Learners use their own machines ● Live coding ● Sticky notes ● Collaborative note-taking ● Iterate, iterate, iterate...
  9. 9. 9 How It's Going 2011-11-07 2012-07-19 2013-01-06 2013-04-08 2013-06-24 2013-09-23 2014-01-08 2014-03-18 2014-06-15 2014-08-06 2014-09-27 2014-12-14 2015-02-09 2015-03-30 2015-05-25 2015-07-06 2015-08-27 2015-10-17 0 100 200 300 400 500 600 Workshops
  10. 10. 10 How It's Going Workshops
  11. 11. 11 How It's Going Learners 2011-11-07 2012-05-16 2012-10-08 2012-11-30 2013-02-06 2013-04-18 2013-05-30 2013-07-18 2013-09-21 2013-11-14 2014-01-18 2014-02-24 2014-04-29 2014-06-16 2014-07-19 2014-08-23 2014-09-24 2014-11-07 2014-12-18 2015-01-29 2015-03-02 2015-03-30 2015-04-29 2015-06-04 2015-06-29 2015-08-03 2015-09-06 2015-10-01 0 2000 4000 6000 8000 10000 12000 14000 16000 18000
  12. 12. 12 How It's Going Instructors 2012-05-27 2013-07-20 2013-11-17 2014-04-19 2014-07-07 2014-08-07 2014-10-03 2014-11-05 2014-11-13 2014-11-20 2014-11-27 2014-12-13 2015-01-07 2015-02-06 2015-03-01 2015-03-12 2015-04-20 2015-05-26 2015-06-12 2015-06-26 2015-07-05 2015-07-10 2015-07-14 2015-07-28 2015-09-02 2015-09-25 2015-10-13 0 50 100 150 200 250 300 350 400 450 500
  13. 13. 13 How It's Going Instructors
  14. 14. 14 What We've Accomplished ● Honestly don't know ● Anecdotally, save people 10-20% of their time for the rest of their careers ● And prepare them for petabytes and clouds
  15. 15. 15 What I've Learned 1. We know a lot about learning 2. Most people would rather fail than change 3. There are lots of gaps to fill
  16. 16. 16 For Example https://www.youtube.com/watch?v=2LbuoxAy56o
  17. 17. 17 ● Today's MOOC platforms don't support PI ● Piotr Banaszkiewicz showed it's possible github.com/pbanaszkiewicz/peer-instruction ● Opportunity #1
  18. 18. 18 The Jupyter Notebook Text, math, code, and images What hypertext was meant to be
  19. 19. 19 The Jupyter Notebook { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png":"iVBORw0KGgoAAAANSUhEUgAAArMAAAJA CAYAAACe4e6sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzn AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFfbBvB7qSIsH ...
  20. 20. 20 The Jupyter Notebook { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png":"iVBORw0KGgoAAAANSUhEUgAAArMAAAJA CAYAAACe4e6sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzn AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFfbBvB7qSIsH ... Good luck diffing and merging this.
  21. 21. 21 It Doesn't Have to Be This Way Tavish Armstrong and others nbdiff.org Opportunity #2
  22. 22. 22 Generalizes Well First-class support for diffing and merging spreadsheets will get more scientists to use version control than anything else we can do.
  23. 23. 23 Generalizes Well First-class support for diffing and merging spreadsheets will get more scientists to use version control than anything else we can do. 3 developers x 8 months (?) (even if it's optimistic...)
  24. 24. 24 Speaking of Version Control ● Git is an awful tool ● git-man-page-generator.lokaltog.net ● But it's the price people have to pay in order to use GitHub
  25. 25. 25 Speaking of Version Control ● A rational re-design of Git is possible and worthwhile ● Opportunity #3 ● Also generalizes well Andreas Stefik and Susanna Siebert: "An Empirical Investigation into Programming Language Syntax." ACM Transactions on Computing Education, 13(4), Nov. 2013.
  26. 26. 26 A Puzzle ● Thousands contribute patches to open source software projects ● Millions have edited Wikipedia ● Why don't people build lessons this way?
  27. 27. 27 All Together Now ● We've shown it can be done ● And that it's useful ● This presents more opportunities
  28. 28. 28 A Small Part of the Reason ● Slideshow formats aren't diffable either ● But HTML alternatives are impoverished
  29. 29. 29 A Small Part of the Reason ● Neither can create web- native videos ● Proof: pause a video, highlight the text being displayed, and copy it
  30. 30. 30 Solution: Browsercast HTML slideshow... ...with start times for slides... ...and a player that syncs with audio github.com/twitwi/deck.browsercast.js-demo (Bonus marks for a GUI timestamp editor)
  31. 31. 31 Advantages ● Plays everywhere ● Mobile-friendly ● Accessible! ● Searchable! ● Diffable! (ish)
  32. 32. 32 To Sum Up ● First-class support for peer instruction ● Diff for all! (Excel first) ● A rational reconstruction of Git ● Browsercast ● Rocket science ● Fill in the gaps
  33. 33. 33 For More Information http://software-carpentry.org gvwilson@software-carpentry.org @swcarpentry Thank You

×