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

Transcript

How to Become Rich, Famous, and

Popular While Using Your Programming Skills to Make the

World a Better Place

(Maybe)Greg Wilson

2

5-15% use GPU clustersto analyze petabytes

in the cloud

85-95% send eachother 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 of his life.

— Terry Pratchett

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 programming

SQL => Data management

Make => Reproducibility

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

How It's Going

2011-11-072012-07-19

2013-01-062013-04-08

2013-06-242013-09-23

2014-01-082014-03-18

2014-06-152014-08-06

2014-09-272014-12-14

2015-02-092015-03-30

2015-05-252015-07-06

2015-08-272015-10-17

0

100

200

300

400

500

600

Workshops

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-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

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

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 careers● And prepare them for petabytes and

clouds

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

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-instruction● Opportunity #1

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": [

{

"data": {

"image/png":"iVBORw0KGgoAAAANSUhEUgAAArMAAAJA

CAYAAACe4e6sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n

AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFfbBvB7qSIsH

...

20

The Jupyter Notebook

{

"cell_type": "code",

"execution_count": 9,

"metadata": {

"collapsed": false

},

"outputs": [

{

"data": {

"image/png":"iVBORw0KGgoAAAANSUhEUgAAArMAAAJA

CAYAAACe4e6sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n

AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFfbBvB7qSIsH

...

Good luck diffing and

merging this.

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 control than

anything else we can do.

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

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

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

A Puzzle

● Thousands contribute patches to open source software projects

● Millions have edited Wikipedia

● Why don't people build lessons this way?

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 displayed, and copy it

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

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● Browsercast● Rocket science● Fill in the gaps

33

For More Information

http://software-carpentry.org

[email protected]

@swcarpentry

Thank You