how to become rich, famous, and popular while using your programming skills to make the world a...
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
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
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
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
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
17
● Today's MOOC platforms don't support PI● Piotr Banaszkiewicz showed it's possible
github.com/pbanaszkiewicz/peer-instruction● Opportunity #1
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.
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)
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