SlideShare a Scribd company logo
1 of 110
Two Solitudes
Greg Wilson
SPLASH 2013
October 30, 2013
2
You are free to:
Copy, share, adapt, or re-mix;
Photograph, film, or broadcast;
Blog, live-blog, or post video of;
this presentation, provided that:
You attribute the work to its author and respect
the rights and licenses associated with its
components.
3
A Quick Quiz
Given the statement: for x in [10, 20, 30]; y in [1, 2]:
print x+y
Would you expect to see:
A) 'x' and 'y' move forward at the
same rate:
11
22
B) 'y' goes through the second list
once for each value of 'x':
11
12
21
22
31
32
C) an error message because the
two lists are not the same length?
4
I Used to Be a Prof
before after
5
But Before That, I Shipped Code
6
And These Days, I'm a Teacher
7
What I've Seen
academia vs. industry
8
What I've Seen
academia vs. industry
9
What I've Seen
research vs. practice
academia vs. industry
10
What I've Seen
research vs. practice
academia vs. industry
11
More Specifically
smart young people get CS degrees
12
More Specifically
smart young people get CS degrees
and never pay attention to CS again
13
More Specifically
smart young people get CS degrees
and never pay attention to CS again
most
some
14
More Specifically
smart young people get CS degrees
and never pay attention to CS again
most
some
Why?
15
Once Upon a Time...
1986: Start programming for physicists on
first-generation parallel computers
16
Once Upon a Time...
1986: Start programming for physicists on
first-generation parallel computers
1992: Realize I'm doing more harm than good
17
Once Upon a Time...
1986: Start programming for physicists on
first-generation parallel computers
1992: Realize I'm doing more harm than good
Giving a scientist a supercomputer
is like giving a Ferrari to a teenager
who can barely parallel park.
18
See a Problem, Fix a Problem
“I don't know what to teach scientists
about how to build software.”
19
See a Problem, Fix a Problem
“I don't know what to teach scientists
about how to build software.”
“I'll go learn from experts.”
20
See a Problem, Fix a Problem
“I don't know what to teach scientists
about how to build software.”
“I'll go learn from experts.”
21
See a Problem, Fix a Problem
“I don't know what to teach scientists
about how to build software.”
“I'll go learn from experts.”
(pause for laughter)
22
Ninjas and Rock Stars
If big companies are doing it wrong,
agile startups must be doing it right.
23
Ninjas and Rock Stars
(pause for further laughter)
If big companies are doing it wrong,
agile startups must be doing it right.
24
Meanwhile...
1996: “What Should Computer Scientists
Teach to Physical Scientists and
Engineers?” (IEEE CS&E)
25
Meanwhile...
1996: “What Should Computer Scientists
Teach to Physical Scientists and
Engineers?” (IEEE CS&E)
1997: John Reynders: “OK, show us”
26
Meanwhile...
1996: “What Should Computer Scientists
Teach to Physical Scientists and
Engineers?” (IEEE CS&E)
1997: John Reynders: “OK, show us”
1998: First Software Carpentry course
at Los Alamos National Laboratory
27
What I Learned
The problem with teaching scientists is
they expect evidence
28
What I Learned
The problem with being a computer scientist was
I didn't have any
The problem with teaching scientists is
they expect evidence
29
But Then...
30
But Then...
How come I didn't know we knew stuff about things?
31
So Ten Years Ago...
1. I had learned most of what I knew about
building software on the job
32
So Ten Years Ago...
1. I had learned most of what I knew about
building software on the job
2. Most of my colleagues knew nothing about
the hundreds of studies that had been done
of real programmers writing real programs
33
So Ten Years Ago...
1. I had learned most of what I knew about
building software on the job
2. Most of my colleagues knew nothing about
the hundreds of studies that had been done
of real programmers writing real programs
cared
34
So Ten Years Ago...
1. I had learned most of what I knew about
building software on the job
2. Most of my colleagues knew nothing about
the hundreds of studies that had been done
of real programmers writing real programs
Hands up if you think this has changed
in the last decade...
cared
35
As Doomed as Doomed Can Be
From the people who
brought you UML...
36
As Doomed as Doomed Can Be
From the people who
brought you UML...
...a re-founding of
software engineering...
37
As Doomed as Doomed Can Be
From the people who
brought you UML...
...a re-founding of
software engineering...
...that doesn't cite a
single empirical study
38
Computer Science Isn't
39
● How many experiments did you do as an
undergraduate?
Computer Science Isn't
40
● How many experiments did you do as an
undergraduate?
● How much experimental data did you
analyze?
Computer Science Isn't
41
● How many experiments did you do as an
undergraduate?
● How much experimental data did you
analyze?
● How many experimental papers did you read?
Computer Science Isn't
42
● How many experiments did you do as an
undergraduate?
● How much experimental data did you
analyze?
● How many experimental papers did you read?
Computer Science Isn't
Hands up if you think this has changed
in the last decade...
43
Where Are Our Examples?
It's how everybody else teaches...
44
Where Are Our Examples?
It's how everybody else teaches...
45
Where Are Our Examples?
It's how everybody else teaches...
This is not a new observation
46
From: Greg Wilson
Subject: Beautiful Code
Date: May 17, 2006
I hope you don't mind mail out of the blue, but I'm working on a
new book project with O'Reilly called "Beautiful Code" and would
like to ask you to contribute an article-length section. Profits
from the book will be donated to Amnesty International.
The book will be a collection of master classes in software design.
In each chapter, a well-known software developer will present one
of his or her favorite pieces of code, then explain what makes it
particularly appealing. The aim is to "think aloud" while walking
through its design and implementation, so that junior developers
can learn to see through more experienced developers’ eyes.
Thanks,
Greg
47
I expected
From: [name withheld]
Subject: re: Beautiful Code
Sorry, I'm too busy. Good luck.
48
I expected
From: [name withheld]
Subject: re: Beautiful Code
Sorry, I'm too busy. Good luck.
Most people said
From: [name withheld]
Subject: re: Beautiful Code
I don't think I've ever written any beautiful code,
but I'd really like to read the book when it's done.
49
I expected
From: [name withheld]
Subject: re: Beautiful Code
Sorry, I'm too busy. Good luck.
Most people said
From: [name withheld]
Subject: re: Beautiful Code
I don't think I've ever written any beautiful code,
but I'd really like to read the book when it's done.
But quite a few said
From: [name withheld]
Subject: re: Beautiful Code
Sure, count me in!
50
Beauty Takes Many Forms
51
Beauty Takes Many Forms
But it's not beautiful
if nobody uses it.
52
To: Practitioner
From: Researcher
If At First You Don't Succeed...
2010
53
To: Researcher
From: Practitioner
To: Practitioner
From: Researcher
If At First You Don't Succeed...
2011-132010
54
Impact
55
Yup, that's it,
right there
Impact
56
Two Solitudes
Academics don't respect practitioners'
timescales
57
Two Solitudes
Academics don't respect practitioners'
timescales
● 16 months to clear the Intellectual Property Office
58
Two Solitudes
Academics don't respect practitioners'
timescales
Also don't care if practitioners can't read
academic work
59
Two Solitudes
Academics don't respect practitioners'
timescales
Also don't care if practitioners can't read
academic work
● More on that later
60
Two Solitudes
Academics don't respect practitioners'
timescales
Also don't care if practitioners can't read
academic work
Practitioners don't understand that research isn't
about writing software
61
Two Solitudes
Academics don't respect practitioners'
timescales
Also don't care if practitioners can't read
academic work
Practitioners don't understand that research isn't
about writing software
● Computer science is about the science of computing
62
Two Solitudes
Academics don't respect practitioners'
timescales
Also don't care if practitioners can't read
academic work
Practitioners don't understand that research isn't
about writing software
● Computer science is about the science of computing
● Computer scientists are actually penalized for writing
product-quality code
63
How have other people solved this problem?
64
How have other people solved this problem?
65
It Took Medicine 200 Years
Seven Years' War (actually 1754-63)
66
It Took Medicine 200 Years
Britain lost 1512 sailors to enemy action...
Seven Years' War (actually 1754-63)
67
It Took Medicine 200 Years
Britain lost 1512 sailors to enemy action...
...and almost 100,000 to scurvy
Seven Years' War (actually 1754-63)
68
It Took Medicine 200 Years
1747: James Lind does the
first controlled medical
experiment in history
69
It Took Medicine 200 Years
1747: James Lind does the
first controlled medical
experiment in history
1950: Hill & Doll's case control
study of smokers and
non-smokers
70
Findings
1. Smoking causes lung cancer
71
Findings
1. Smoking causes lung cancer
2. Most people would rather
fail than change
72
Findings
1. Smoking causes lung cancer
2. Most people would rather
fail than change
“What happens 'on average' is of no help
when one is faced with a specific patient...
73
Like Water on Stone
Doctors know:
1. what science looks like
74
Like Water on Stone
Doctors know:
1. what science looks like
2. what it has to do with them
75
Like Water on Stone
Doctors know:
1. what science looks like
2. what it has to do with them
So they make the next generation learn it
76
Like Water on Stone
Doctors know:
1. what science looks like
2. what it has to do with them
So they make the next generation learn it
And around and around we go
77
I Have a Cunning Plan
Stop asking students to
try to do something our
system won't let them do
78
I Have a Cunning Plan
D.L. Parnas and P.C. Clements: “A Rational
Design Process: How and Why to Fake It.”
IEEE Trans. Softw. Eng., 12(2), Feb. 1986.
Stop asking students to
try to do something our
system won't let them do
79
I Have a Cunning Plan
Stop asking students to
try to do something our
system won't let them do
Have them do science instead
80
I Have a Cunning Plan
A new scientific truth does not
triumph by convincing its opponents
and making them see the light, but
rather because its opponents
eventually die, and a new generation
grows up that is familiar with it.
- Max Planck
81
I Have a Cunning Plan
A new scientific truth does not
triumph by convincing its opponents
and making them see the light, but
rather because its opponents
eventually die, and a new generation
grows up that is familiar with it.
- Max Planck
The next generation should do empirical studies
82
I Have a Cunning Plan
A new scientific truth does not
triumph by convincing its opponents
and making them see the light, but
rather because its opponents
eventually die, and a new generation
grows up that is familiar with it.
- Max Planck
The next generation should do empirical studies
(or at least read and analyze others' studies)
83
I Have a Cunning Plan
The next generation should do empirical studies
(or at least read and analyze others' studies)
so that they will understand and value science
A new scientific truth does not
triumph by convincing its opponents
and making them see the light, but
rather because its opponents
eventually die, and a new generation
grows up that is familiar with it.
- Max Planck
84
Assignment #1
You have been given 80K lines of C, and the output
of a static analysis tool that identifies lines containing
buffer overruns, memory leaks, and other issues
related to memory management. Determine whether
complex functions are more likely to contain such
errors than simple ones.
85
Assignment #1
You have been given 80K lines of C, and the output
of a static analysis tool that identifies lines containing
buffer overruns, memory leaks, and other issues
related to memory management. Determine whether
complex functions are more likely to contain such
errors than simple ones.
Requires:
● Tool use
86
Assignment #1
You have been given 80K lines of C, and the output
of a static analysis tool that identifies lines containing
buffer overruns, memory leaks, and other issues
related to memory management. Determine whether
complex functions are more likely to contain such
errors than simple ones.
Requires:
● Tool use
● Model building
87
Assignment #1
You have been given 80K lines of C, and the output
of a static analysis tool that identifies lines containing
buffer overruns, memory leaks, and other issues
related to memory management. Determine whether
complex functions are more likely to contain such
errors than simple ones.
Requires:
● Tool use
● Model building
● Statistics
88
Assignment #1
You have been given 80K lines of C, and the output
of a static analysis tool that identifies lines containing
buffer overruns, memory leaks, and other issues
related to memory management. Determine whether
complex functions are more likely to contain such
errors than simple ones.
Requires:
● Tool use
● Model building
● Statistics
89
The Biggest Challenge
http://tinyurl.com/nwit-randomo
Stefik et al: “An Empirical Comparison of the Accuracy Rates of Novices using the
Quorum, Perl, and Randomo Programming Languages.” PLATEAU'11
We present here an empirical study comparing the accuracy rates of novices writing
software in three programming languages: Quorum, Perl, and Randomo. The first
language, Quorum, we call an evidence-based programming language, where the
syntax, semantics, and API designs change in correspondence to the latest academic
research and literature on programming language usability. Second, while Perl is well
known, we call Randomo a Placebo-language, where some of the syntax was chosen
with a random number generator and the ASCII table. We compared novices that were
programming for the first time using each of these languages, testing how accurately
they could write simple programs using common program constructs (e.g., loops,
conditionals, functions, variables, parameters). Results showed that while Quorum
users were afforded significantly greater accuracy compared to those using Perl and
Randomo, Perl users were unable to write programs more accurately than those using
a language designed by chance.
90
The Biggest Challenge
http://tinyurl.com/nwit-randomo
Please read the comments
91
The Biggest Challenge
http://tinyurl.com/nwit-randomo
Please read the comments
I never thought
I'd say that
92
The Biggest Challenge
http://tinyurl.com/nwit-randomo
Please read the comments
And then read “The Distress of the Privileged”
http://tinyurl.com/distress-of-the-privileged
Please read the comments
93
The Biggest Challenge
http://tinyurl.com/nwit-randomo
...from reading the responses, what I think our community really needs to
do is to move away from a largely pseudo-scientific view of programming
language design toward one based on evidence. The scientific method
has a much better chance of ending the programming language wars
someday than does continuing to argue about it.
Please read the comments
94
The Biggest Challenge
http://tinyurl.com/nwit-randomo
...from reading the responses, what I think our community really needs to
do is to move away from a largely pseudo-scientific view of programming
language design toward one based on evidence. The scientific method
has a much better chance of ending the programming language wars
someday than does continuing to argue about it.
Finally...for those readers that absolutely must send hate mail, please
send it only to me, not my students.
Please read the comments
95
But That Won't Be Enough
http://exple.tive.org/blarg/2013/10/22/citation-needed/
...starting at 1 is not an unreasonable position at all; to
a typical human thinking about the zeroth element of an
array doesn’t make any more sense than trying to catch
the zeroth bus that comes by, but we’ve clearly ended
up here somehow. So what’s the story there?
96
But That Won't Be Enough
97
Wales' Law
Open information drives out closed.
98
Wales' Law
Open information drives out closed.
As far as most programmers are concerned,
your research doesn't exist.
99
Wales' Law
Open information drives out closed.
As far as most programmers are concerned,
your research doesn't exist.
And please don't say, “But they can just...”
100
Wilbanks' Rule
The opposite of “open” isn't “closed”.
The opposite of “open” is “broken”.
101
Wilbanks' Rule
The opposite of “open” isn't “closed”.
The opposite of “open” is “broken”.
Do you think your use of obviously broken systems
makes programmers more or less receptive
to your ideas?
102
Wilbanks' Rule
The opposite of “open” isn't “closed”.
The opposite of “open” is “broken”.
Do you think your use of obviously broken systems
makes programmers more or less receptive
to your ideas?
“They want me to upload a PDF? What is this, 1995?”
103
People who can read your research
are more likely to help you keep doing it.
104
People who can read your research
are more likely to help you keep doing it.
It is therefore in your interest
to create such people
and give them access to your work.
105
People who can read your research
are more likely to help you keep doing it.
It is therefore in your interest
to create such people
and give them access to your work.
It'll take a decade.
106
People who can read your research
are more likely to help you keep doing it.
It is therefore in your interest
to create such people
and give them access to your work.
It'll take a decade.
But isn't that what tenure is for?
107
Science, Cooperation, and Courage
108
Science, Cooperation, and Courage
109
Science, Cooperation, and Courage
110
Now in three volumes!
Thank You
Software Carpentry http://software-carpentry.org
Never Work in Theory http://neverworkintheory.org
Architecture of
Open Source Applications
http://aosabook.org

More Related Content

What's hot

The Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItThe Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItGail Murphy
 
What We've Learned From Building Basie
What We've Learned From Building BasieWhat We've Learned From Building Basie
What We've Learned From Building BasieGreg Wilson
 
International Robotics Workshop
International Robotics WorkshopInternational Robotics Workshop
International Robotics WorkshopIan Seed
 
Best Practices for Testing Open Source Projects
Best Practices for Testing Open Source ProjectsBest Practices for Testing Open Source Projects
Best Practices for Testing Open Source ProjectsAndrew Chalkley
 
sicsa-phd2016
sicsa-phd2016sicsa-phd2016
sicsa-phd2016turingfan
 
Psychology and Engineering of Testing
Psychology and Engineering of TestingPsychology and Engineering of Testing
Psychology and Engineering of TestingIlari Henrik Aegerter
 
How machines learn to talk. Machine Learning for Conversational AI
How machines learn to talk. Machine Learning for Conversational AIHow machines learn to talk. Machine Learning for Conversational AI
How machines learn to talk. Machine Learning for Conversational AIVerena Rieser
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemGiovanni Asproni
 
Machine Learning for Designers - UX Scotland
Machine Learning for Designers - UX ScotlandMachine Learning for Designers - UX Scotland
Machine Learning for Designers - UX ScotlandMemi Beltrame
 
2022 AAAI DSTC10 Invited Talk
2022 AAAI DSTC10 Invited Talk2022 AAAI DSTC10 Invited Talk
2022 AAAI DSTC10 Invited TalkVerena Rieser
 
The Rising Tide Raises All Boats: The Advancement of Science of Cybersecurity
The Rising Tide Raises All Boats:  The Advancement of Science of CybersecurityThe Rising Tide Raises All Boats:  The Advancement of Science of Cybersecurity
The Rising Tide Raises All Boats: The Advancement of Science of Cybersecuritylaurieannwilliams
 
The Complexity Toolkit: Techniques for Navigating Uncertainty
The Complexity Toolkit: Techniques for Navigating UncertaintyThe Complexity Toolkit: Techniques for Navigating Uncertainty
The Complexity Toolkit: Techniques for Navigating UncertaintySimon Lawrence
 
Mechanical Turk Demystified: Best practices for sourcing and scaling quality ...
Mechanical Turk Demystified: Best practices for sourcing and scaling quality ...Mechanical Turk Demystified: Best practices for sourcing and scaling quality ...
Mechanical Turk Demystified: Best practices for sourcing and scaling quality ...UXPA International
 
Do no harm: Tips for avoiding the unethical turn of events in user research (...
Do no harm: Tips for avoiding the unethical turn of events in user research (...Do no harm: Tips for avoiding the unethical turn of events in user research (...
Do no harm: Tips for avoiding the unethical turn of events in user research (...Jennifer (Jen) McGinn
 
Manage Your Time So It Doesn't Manage You
Manage Your Time So It Doesn't Manage YouManage Your Time So It Doesn't Manage You
Manage Your Time So It Doesn't Manage YouKaren Lopez
 
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012TEST Huddle
 

What's hot (20)

The Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find ItThe Elusive Nature of Context: Why We Need It and Were We Might Find It
The Elusive Nature of Context: Why We Need It and Were We Might Find It
 
Getting your work funded
Getting your work fundedGetting your work funded
Getting your work funded
 
What We've Learned From Building Basie
What We've Learned From Building BasieWhat We've Learned From Building Basie
What We've Learned From Building Basie
 
Win#23 it
Win#23 itWin#23 it
Win#23 it
 
International Robotics Workshop
International Robotics WorkshopInternational Robotics Workshop
International Robotics Workshop
 
Best Practices for Testing Open Source Projects
Best Practices for Testing Open Source ProjectsBest Practices for Testing Open Source Projects
Best Practices for Testing Open Source Projects
 
sicsa-phd2016
sicsa-phd2016sicsa-phd2016
sicsa-phd2016
 
Psychology and Engineering of Testing
Psychology and Engineering of TestingPsychology and Engineering of Testing
Psychology and Engineering of Testing
 
Technical excellence - practices matter
Technical excellence - practices matterTechnical excellence - practices matter
Technical excellence - practices matter
 
How machines learn to talk. Machine Learning for Conversational AI
How machines learn to talk. Machine Learning for Conversational AIHow machines learn to talk. Machine Learning for Conversational AI
How machines learn to talk. Machine Learning for Conversational AI
 
Creating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your SystemCreating An Incremental Architecture For Your System
Creating An Incremental Architecture For Your System
 
Machine Learning for Designers - UX Scotland
Machine Learning for Designers - UX ScotlandMachine Learning for Designers - UX Scotland
Machine Learning for Designers - UX Scotland
 
2022 AAAI DSTC10 Invited Talk
2022 AAAI DSTC10 Invited Talk2022 AAAI DSTC10 Invited Talk
2022 AAAI DSTC10 Invited Talk
 
The Rising Tide Raises All Boats: The Advancement of Science of Cybersecurity
The Rising Tide Raises All Boats:  The Advancement of Science of CybersecurityThe Rising Tide Raises All Boats:  The Advancement of Science of Cybersecurity
The Rising Tide Raises All Boats: The Advancement of Science of Cybersecurity
 
The Big Shift
The Big ShiftThe Big Shift
The Big Shift
 
The Complexity Toolkit: Techniques for Navigating Uncertainty
The Complexity Toolkit: Techniques for Navigating UncertaintyThe Complexity Toolkit: Techniques for Navigating Uncertainty
The Complexity Toolkit: Techniques for Navigating Uncertainty
 
Mechanical Turk Demystified: Best practices for sourcing and scaling quality ...
Mechanical Turk Demystified: Best practices for sourcing and scaling quality ...Mechanical Turk Demystified: Best practices for sourcing and scaling quality ...
Mechanical Turk Demystified: Best practices for sourcing and scaling quality ...
 
Do no harm: Tips for avoiding the unethical turn of events in user research (...
Do no harm: Tips for avoiding the unethical turn of events in user research (...Do no harm: Tips for avoiding the unethical turn of events in user research (...
Do no harm: Tips for avoiding the unethical turn of events in user research (...
 
Manage Your Time So It Doesn't Manage You
Manage Your Time So It Doesn't Manage YouManage Your Time So It Doesn't Manage You
Manage Your Time So It Doesn't Manage You
 
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
Rekard Edgren - Curing Our Binary Disease - EuroSTAR 2012
 

Similar to Two Solitudes

Greg Wilson - We Know (but ignore) More Than We Think
Greg Wilson - We Know (but ignore) More Than We ThinkGreg Wilson - We Know (but ignore) More Than We Think
Greg Wilson - We Know (but ignore) More Than We Think#DevTO
 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Aron Ahmadia
 
Tech Talk @ Dev Bootcamp Chicago
Tech Talk @ Dev Bootcamp ChicagoTech Talk @ Dev Bootcamp Chicago
Tech Talk @ Dev Bootcamp ChicagoFred Lee
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesAron Ahmadia
 
Building Social Software for the Anti-Social: Part I
Building Social Software for the Anti-Social: Part IBuilding Social Software for the Anti-Social: Part I
Building Social Software for the Anti-Social: Part Icodinghorror
 
David Williamson Shaffer: Epistemic Games (Paris juin 2011)
David Williamson Shaffer: Epistemic Games (Paris juin 2011)David Williamson Shaffer: Epistemic Games (Paris juin 2011)
David Williamson Shaffer: Epistemic Games (Paris juin 2011)Thomas Constant
 
Cyber securityeducation may2015
Cyber securityeducation may2015Cyber securityeducation may2015
Cyber securityeducation may2015Mark Guzdial
 
What is computer science
What is computer scienceWhat is computer science
What is computer scienceRonald Fuller
 
Writing A Hypothesis For Research Paper
Writing A Hypothesis For Research PaperWriting A Hypothesis For Research Paper
Writing A Hypothesis For Research PaperAngela Washington
 
A sample Lab report on a game.
A sample Lab report on a game. A sample Lab report on a game.
A sample Lab report on a game. Junayed Ahmed
 
Lesson 1
Lesson 1Lesson 1
Lesson 1Peleg
 
Discovery Posters
Discovery PostersDiscovery Posters
Discovery Postersadepaolis
 
Inside3DPrinting_DavidThornburg
Inside3DPrinting_DavidThornburgInside3DPrinting_DavidThornburg
Inside3DPrinting_DavidThornburgMecklerMedia
 
Artificial intelligence
Artificial intelligenceArtificial intelligence
Artificial intelligenceUmesh Meher
 
From Learning Networks to Digital Ecosystems
From Learning Networks to Digital EcosystemsFrom Learning Networks to Digital Ecosystems
From Learning Networks to Digital EcosystemsHendrik Drachsler
 
Deep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItDeep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItHolberton School
 
DL Classe 0 - You can do it
DL Classe 0 - You can do itDL Classe 0 - You can do it
DL Classe 0 - You can do itGregory Renard
 

Similar to Two Solitudes (20)

Greg Wilson - We Know (but ignore) More Than We Think
Greg Wilson - We Know (but ignore) More Than We ThinkGreg Wilson - We Know (but ignore) More Than We Think
Greg Wilson - We Know (but ignore) More Than We Think
 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013
 
Tech Talk @ Dev Bootcamp Chicago
Tech Talk @ Dev Bootcamp ChicagoTech Talk @ Dev Bootcamp Chicago
Tech Talk @ Dev Bootcamp Chicago
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
 
Building Social Software for the Anti-Social: Part I
Building Social Software for the Anti-Social: Part IBuilding Social Software for the Anti-Social: Part I
Building Social Software for the Anti-Social: Part I
 
David Williamson Shaffer: Epistemic Games (Paris juin 2011)
David Williamson Shaffer: Epistemic Games (Paris juin 2011)David Williamson Shaffer: Epistemic Games (Paris juin 2011)
David Williamson Shaffer: Epistemic Games (Paris juin 2011)
 
Cyber securityeducation may2015
Cyber securityeducation may2015Cyber securityeducation may2015
Cyber securityeducation may2015
 
Clean code
Clean codeClean code
Clean code
 
What is computer science
What is computer scienceWhat is computer science
What is computer science
 
Writing A Hypothesis For Research Paper
Writing A Hypothesis For Research PaperWriting A Hypothesis For Research Paper
Writing A Hypothesis For Research Paper
 
lecture_1.pptx
lecture_1.pptxlecture_1.pptx
lecture_1.pptx
 
A sample Lab report on a game.
A sample Lab report on a game. A sample Lab report on a game.
A sample Lab report on a game.
 
Artificial Intelligence
Artificial IntelligenceArtificial Intelligence
Artificial Intelligence
 
Lesson 1
Lesson 1Lesson 1
Lesson 1
 
Discovery Posters
Discovery PostersDiscovery Posters
Discovery Posters
 
Inside3DPrinting_DavidThornburg
Inside3DPrinting_DavidThornburgInside3DPrinting_DavidThornburg
Inside3DPrinting_DavidThornburg
 
Artificial intelligence
Artificial intelligenceArtificial intelligence
Artificial intelligence
 
From Learning Networks to Digital Ecosystems
From Learning Networks to Digital EcosystemsFrom Learning Networks to Digital Ecosystems
From Learning Networks to Digital Ecosystems
 
Deep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do ItDeep Learning Class #0 - You Can Do It
Deep Learning Class #0 - You Can Do It
 
DL Classe 0 - You can do it
DL Classe 0 - You can do itDL Classe 0 - You can do it
DL Classe 0 - You can do it
 

Recently uploaded

BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMarkus Moeller
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Lisi Hocke
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Chirag Panchal
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringPrakhyath Rai
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024MulesoftMunichMeetup
 
[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)Dimitrios Platis
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaNeo4j
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAShane Coughlan
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)Roberto Bettazzoni
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...Neo4j
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jNeo4j
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfSrushith Repakula
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024SimonedeGijt
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Clinic
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNeo4j
 

Recently uploaded (20)

BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Microsoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdfMicrosoft365_Dev_Security_2024_05_16.pdf
Microsoft365_Dev_Security_2024_05_16.pdf
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024Food Delivery Business App Development Guide 2024
Food Delivery Business App Development Guide 2024
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
Abortion Pill Prices Jozini ](+27832195400*)[ 🏥 Women's Abortion Clinic in Jo...
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)
 
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale IbridaUNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
UNI DI NAPOLI FEDERICO II - Il ruolo dei grafi nell'AI Conversazionale Ibrida
 
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
Abortion Pill Prices Mthatha (@](+27832195400*)[ 🏥 Women's Abortion Clinic In...
 
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCAOpenChain Webinar: AboutCode and Beyond - End-to-End SCA
OpenChain Webinar: AboutCode and Beyond - End-to-End SCA
 
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
 
The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)The mythical technical debt. (Brooke, please, forgive me)
The mythical technical debt. (Brooke, please, forgive me)
 
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
CERVED e Neo4j su una nuvola, migrazione ed evoluzione di un grafo mission cr...
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
 
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Turfloop ](+27832195400*)[ 🏥 Women's Abortion Clinic in ...
 
Lessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdfLessons Learned from Building a Serverless Notifications System.pdf
Lessons Learned from Building a Serverless Notifications System.pdf
 
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
Wired_2.0_CREATE YOUR ULTIMATE LEARNING ENVIRONMENT_JCON_16052024
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 

Two Solitudes

  • 1. Two Solitudes Greg Wilson SPLASH 2013 October 30, 2013
  • 2. 2 You are free to: Copy, share, adapt, or re-mix; Photograph, film, or broadcast; Blog, live-blog, or post video of; this presentation, provided that: You attribute the work to its author and respect the rights and licenses associated with its components.
  • 3. 3 A Quick Quiz Given the statement: for x in [10, 20, 30]; y in [1, 2]: print x+y Would you expect to see: A) 'x' and 'y' move forward at the same rate: 11 22 B) 'y' goes through the second list once for each value of 'x': 11 12 21 22 31 32 C) an error message because the two lists are not the same length?
  • 4. 4 I Used to Be a Prof before after
  • 5. 5 But Before That, I Shipped Code
  • 6. 6 And These Days, I'm a Teacher
  • 9. 9 What I've Seen research vs. practice academia vs. industry
  • 10. 10 What I've Seen research vs. practice academia vs. industry
  • 11. 11 More Specifically smart young people get CS degrees
  • 12. 12 More Specifically smart young people get CS degrees and never pay attention to CS again
  • 13. 13 More Specifically smart young people get CS degrees and never pay attention to CS again most some
  • 14. 14 More Specifically smart young people get CS degrees and never pay attention to CS again most some Why?
  • 15. 15 Once Upon a Time... 1986: Start programming for physicists on first-generation parallel computers
  • 16. 16 Once Upon a Time... 1986: Start programming for physicists on first-generation parallel computers 1992: Realize I'm doing more harm than good
  • 17. 17 Once Upon a Time... 1986: Start programming for physicists on first-generation parallel computers 1992: Realize I'm doing more harm than good Giving a scientist a supercomputer is like giving a Ferrari to a teenager who can barely parallel park.
  • 18. 18 See a Problem, Fix a Problem “I don't know what to teach scientists about how to build software.”
  • 19. 19 See a Problem, Fix a Problem “I don't know what to teach scientists about how to build software.” “I'll go learn from experts.”
  • 20. 20 See a Problem, Fix a Problem “I don't know what to teach scientists about how to build software.” “I'll go learn from experts.”
  • 21. 21 See a Problem, Fix a Problem “I don't know what to teach scientists about how to build software.” “I'll go learn from experts.” (pause for laughter)
  • 22. 22 Ninjas and Rock Stars If big companies are doing it wrong, agile startups must be doing it right.
  • 23. 23 Ninjas and Rock Stars (pause for further laughter) If big companies are doing it wrong, agile startups must be doing it right.
  • 24. 24 Meanwhile... 1996: “What Should Computer Scientists Teach to Physical Scientists and Engineers?” (IEEE CS&E)
  • 25. 25 Meanwhile... 1996: “What Should Computer Scientists Teach to Physical Scientists and Engineers?” (IEEE CS&E) 1997: John Reynders: “OK, show us”
  • 26. 26 Meanwhile... 1996: “What Should Computer Scientists Teach to Physical Scientists and Engineers?” (IEEE CS&E) 1997: John Reynders: “OK, show us” 1998: First Software Carpentry course at Los Alamos National Laboratory
  • 27. 27 What I Learned The problem with teaching scientists is they expect evidence
  • 28. 28 What I Learned The problem with being a computer scientist was I didn't have any The problem with teaching scientists is they expect evidence
  • 30. 30 But Then... How come I didn't know we knew stuff about things?
  • 31. 31 So Ten Years Ago... 1. I had learned most of what I knew about building software on the job
  • 32. 32 So Ten Years Ago... 1. I had learned most of what I knew about building software on the job 2. Most of my colleagues knew nothing about the hundreds of studies that had been done of real programmers writing real programs
  • 33. 33 So Ten Years Ago... 1. I had learned most of what I knew about building software on the job 2. Most of my colleagues knew nothing about the hundreds of studies that had been done of real programmers writing real programs cared
  • 34. 34 So Ten Years Ago... 1. I had learned most of what I knew about building software on the job 2. Most of my colleagues knew nothing about the hundreds of studies that had been done of real programmers writing real programs Hands up if you think this has changed in the last decade... cared
  • 35. 35 As Doomed as Doomed Can Be From the people who brought you UML...
  • 36. 36 As Doomed as Doomed Can Be From the people who brought you UML... ...a re-founding of software engineering...
  • 37. 37 As Doomed as Doomed Can Be From the people who brought you UML... ...a re-founding of software engineering... ...that doesn't cite a single empirical study
  • 39. 39 ● How many experiments did you do as an undergraduate? Computer Science Isn't
  • 40. 40 ● How many experiments did you do as an undergraduate? ● How much experimental data did you analyze? Computer Science Isn't
  • 41. 41 ● How many experiments did you do as an undergraduate? ● How much experimental data did you analyze? ● How many experimental papers did you read? Computer Science Isn't
  • 42. 42 ● How many experiments did you do as an undergraduate? ● How much experimental data did you analyze? ● How many experimental papers did you read? Computer Science Isn't Hands up if you think this has changed in the last decade...
  • 43. 43 Where Are Our Examples? It's how everybody else teaches...
  • 44. 44 Where Are Our Examples? It's how everybody else teaches...
  • 45. 45 Where Are Our Examples? It's how everybody else teaches... This is not a new observation
  • 46. 46 From: Greg Wilson Subject: Beautiful Code Date: May 17, 2006 I hope you don't mind mail out of the blue, but I'm working on a new book project with O'Reilly called "Beautiful Code" and would like to ask you to contribute an article-length section. Profits from the book will be donated to Amnesty International. The book will be a collection of master classes in software design. In each chapter, a well-known software developer will present one of his or her favorite pieces of code, then explain what makes it particularly appealing. The aim is to "think aloud" while walking through its design and implementation, so that junior developers can learn to see through more experienced developers’ eyes. Thanks, Greg
  • 47. 47 I expected From: [name withheld] Subject: re: Beautiful Code Sorry, I'm too busy. Good luck.
  • 48. 48 I expected From: [name withheld] Subject: re: Beautiful Code Sorry, I'm too busy. Good luck. Most people said From: [name withheld] Subject: re: Beautiful Code I don't think I've ever written any beautiful code, but I'd really like to read the book when it's done.
  • 49. 49 I expected From: [name withheld] Subject: re: Beautiful Code Sorry, I'm too busy. Good luck. Most people said From: [name withheld] Subject: re: Beautiful Code I don't think I've ever written any beautiful code, but I'd really like to read the book when it's done. But quite a few said From: [name withheld] Subject: re: Beautiful Code Sure, count me in!
  • 51. 51 Beauty Takes Many Forms But it's not beautiful if nobody uses it.
  • 52. 52 To: Practitioner From: Researcher If At First You Don't Succeed... 2010
  • 53. 53 To: Researcher From: Practitioner To: Practitioner From: Researcher If At First You Don't Succeed... 2011-132010
  • 55. 55 Yup, that's it, right there Impact
  • 56. 56 Two Solitudes Academics don't respect practitioners' timescales
  • 57. 57 Two Solitudes Academics don't respect practitioners' timescales ● 16 months to clear the Intellectual Property Office
  • 58. 58 Two Solitudes Academics don't respect practitioners' timescales Also don't care if practitioners can't read academic work
  • 59. 59 Two Solitudes Academics don't respect practitioners' timescales Also don't care if practitioners can't read academic work ● More on that later
  • 60. 60 Two Solitudes Academics don't respect practitioners' timescales Also don't care if practitioners can't read academic work Practitioners don't understand that research isn't about writing software
  • 61. 61 Two Solitudes Academics don't respect practitioners' timescales Also don't care if practitioners can't read academic work Practitioners don't understand that research isn't about writing software ● Computer science is about the science of computing
  • 62. 62 Two Solitudes Academics don't respect practitioners' timescales Also don't care if practitioners can't read academic work Practitioners don't understand that research isn't about writing software ● Computer science is about the science of computing ● Computer scientists are actually penalized for writing product-quality code
  • 63. 63 How have other people solved this problem?
  • 64. 64 How have other people solved this problem?
  • 65. 65 It Took Medicine 200 Years Seven Years' War (actually 1754-63)
  • 66. 66 It Took Medicine 200 Years Britain lost 1512 sailors to enemy action... Seven Years' War (actually 1754-63)
  • 67. 67 It Took Medicine 200 Years Britain lost 1512 sailors to enemy action... ...and almost 100,000 to scurvy Seven Years' War (actually 1754-63)
  • 68. 68 It Took Medicine 200 Years 1747: James Lind does the first controlled medical experiment in history
  • 69. 69 It Took Medicine 200 Years 1747: James Lind does the first controlled medical experiment in history 1950: Hill & Doll's case control study of smokers and non-smokers
  • 71. 71 Findings 1. Smoking causes lung cancer 2. Most people would rather fail than change
  • 72. 72 Findings 1. Smoking causes lung cancer 2. Most people would rather fail than change “What happens 'on average' is of no help when one is faced with a specific patient...
  • 73. 73 Like Water on Stone Doctors know: 1. what science looks like
  • 74. 74 Like Water on Stone Doctors know: 1. what science looks like 2. what it has to do with them
  • 75. 75 Like Water on Stone Doctors know: 1. what science looks like 2. what it has to do with them So they make the next generation learn it
  • 76. 76 Like Water on Stone Doctors know: 1. what science looks like 2. what it has to do with them So they make the next generation learn it And around and around we go
  • 77. 77 I Have a Cunning Plan Stop asking students to try to do something our system won't let them do
  • 78. 78 I Have a Cunning Plan D.L. Parnas and P.C. Clements: “A Rational Design Process: How and Why to Fake It.” IEEE Trans. Softw. Eng., 12(2), Feb. 1986. Stop asking students to try to do something our system won't let them do
  • 79. 79 I Have a Cunning Plan Stop asking students to try to do something our system won't let them do Have them do science instead
  • 80. 80 I Have a Cunning Plan A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it. - Max Planck
  • 81. 81 I Have a Cunning Plan A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it. - Max Planck The next generation should do empirical studies
  • 82. 82 I Have a Cunning Plan A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it. - Max Planck The next generation should do empirical studies (or at least read and analyze others' studies)
  • 83. 83 I Have a Cunning Plan The next generation should do empirical studies (or at least read and analyze others' studies) so that they will understand and value science A new scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die, and a new generation grows up that is familiar with it. - Max Planck
  • 84. 84 Assignment #1 You have been given 80K lines of C, and the output of a static analysis tool that identifies lines containing buffer overruns, memory leaks, and other issues related to memory management. Determine whether complex functions are more likely to contain such errors than simple ones.
  • 85. 85 Assignment #1 You have been given 80K lines of C, and the output of a static analysis tool that identifies lines containing buffer overruns, memory leaks, and other issues related to memory management. Determine whether complex functions are more likely to contain such errors than simple ones. Requires: ● Tool use
  • 86. 86 Assignment #1 You have been given 80K lines of C, and the output of a static analysis tool that identifies lines containing buffer overruns, memory leaks, and other issues related to memory management. Determine whether complex functions are more likely to contain such errors than simple ones. Requires: ● Tool use ● Model building
  • 87. 87 Assignment #1 You have been given 80K lines of C, and the output of a static analysis tool that identifies lines containing buffer overruns, memory leaks, and other issues related to memory management. Determine whether complex functions are more likely to contain such errors than simple ones. Requires: ● Tool use ● Model building ● Statistics
  • 88. 88 Assignment #1 You have been given 80K lines of C, and the output of a static analysis tool that identifies lines containing buffer overruns, memory leaks, and other issues related to memory management. Determine whether complex functions are more likely to contain such errors than simple ones. Requires: ● Tool use ● Model building ● Statistics
  • 89. 89 The Biggest Challenge http://tinyurl.com/nwit-randomo Stefik et al: “An Empirical Comparison of the Accuracy Rates of Novices using the Quorum, Perl, and Randomo Programming Languages.” PLATEAU'11 We present here an empirical study comparing the accuracy rates of novices writing software in three programming languages: Quorum, Perl, and Randomo. The first language, Quorum, we call an evidence-based programming language, where the syntax, semantics, and API designs change in correspondence to the latest academic research and literature on programming language usability. Second, while Perl is well known, we call Randomo a Placebo-language, where some of the syntax was chosen with a random number generator and the ASCII table. We compared novices that were programming for the first time using each of these languages, testing how accurately they could write simple programs using common program constructs (e.g., loops, conditionals, functions, variables, parameters). Results showed that while Quorum users were afforded significantly greater accuracy compared to those using Perl and Randomo, Perl users were unable to write programs more accurately than those using a language designed by chance.
  • 91. 91 The Biggest Challenge http://tinyurl.com/nwit-randomo Please read the comments I never thought I'd say that
  • 92. 92 The Biggest Challenge http://tinyurl.com/nwit-randomo Please read the comments And then read “The Distress of the Privileged” http://tinyurl.com/distress-of-the-privileged Please read the comments
  • 93. 93 The Biggest Challenge http://tinyurl.com/nwit-randomo ...from reading the responses, what I think our community really needs to do is to move away from a largely pseudo-scientific view of programming language design toward one based on evidence. The scientific method has a much better chance of ending the programming language wars someday than does continuing to argue about it. Please read the comments
  • 94. 94 The Biggest Challenge http://tinyurl.com/nwit-randomo ...from reading the responses, what I think our community really needs to do is to move away from a largely pseudo-scientific view of programming language design toward one based on evidence. The scientific method has a much better chance of ending the programming language wars someday than does continuing to argue about it. Finally...for those readers that absolutely must send hate mail, please send it only to me, not my students. Please read the comments
  • 95. 95 But That Won't Be Enough http://exple.tive.org/blarg/2013/10/22/citation-needed/ ...starting at 1 is not an unreasonable position at all; to a typical human thinking about the zeroth element of an array doesn’t make any more sense than trying to catch the zeroth bus that comes by, but we’ve clearly ended up here somehow. So what’s the story there?
  • 96. 96 But That Won't Be Enough
  • 97. 97 Wales' Law Open information drives out closed.
  • 98. 98 Wales' Law Open information drives out closed. As far as most programmers are concerned, your research doesn't exist.
  • 99. 99 Wales' Law Open information drives out closed. As far as most programmers are concerned, your research doesn't exist. And please don't say, “But they can just...”
  • 100. 100 Wilbanks' Rule The opposite of “open” isn't “closed”. The opposite of “open” is “broken”.
  • 101. 101 Wilbanks' Rule The opposite of “open” isn't “closed”. The opposite of “open” is “broken”. Do you think your use of obviously broken systems makes programmers more or less receptive to your ideas?
  • 102. 102 Wilbanks' Rule The opposite of “open” isn't “closed”. The opposite of “open” is “broken”. Do you think your use of obviously broken systems makes programmers more or less receptive to your ideas? “They want me to upload a PDF? What is this, 1995?”
  • 103. 103 People who can read your research are more likely to help you keep doing it.
  • 104. 104 People who can read your research are more likely to help you keep doing it. It is therefore in your interest to create such people and give them access to your work.
  • 105. 105 People who can read your research are more likely to help you keep doing it. It is therefore in your interest to create such people and give them access to your work. It'll take a decade.
  • 106. 106 People who can read your research are more likely to help you keep doing it. It is therefore in your interest to create such people and give them access to your work. It'll take a decade. But isn't that what tenure is for?
  • 110. 110 Now in three volumes! Thank You Software Carpentry http://software-carpentry.org Never Work in Theory http://neverworkintheory.org Architecture of Open Source Applications http://aosabook.org