The Impact of Computers on our World The View from Stanford Computer Science Eric Roberts Professor of Computer Science Stanford Club for European Affairs Paris,

Download Report

Transcript The Impact of Computers on our World The View from Stanford Computer Science Eric Roberts Professor of Computer Science Stanford Club for European Affairs Paris,

The Impact of Computers on our World
The View from Stanford Computer Science
Eric Roberts
Professor of Computer Science
Stanford Club for European Affairs
Paris, France
3 June 2013
Why Study Computer Science
• The computing industry offers some of the best employment
opportunities for college graduates today:
– The number of jobs in the domestic software industry are at an all-time
high and are projected to grow dramatically over the next decade.
– Salaries for newly minted B.S. graduates in Computer
Science are
Employment
(thousands)
high, often exceeding the $100,000 mark.
Growth
Top 10 job growth categories (2006-2016)
2006
2016
– In 2005, Money magazine rated software engineer 262
as the number
one
1. Network systems and data communications analysts
402
53.4
job in America; careercast.com rates it as #1 in both 2011 and 2012.
2. Personal and home care aides
767 1,156
50.6
– Employment in this area is vital for every national economy.
3.
4.
5.
6.
7.
8.
9.
10.
Home health aides
Computer software engineers, applications
Veterinary technologists and technicians
Google and
Facebookadvisors
are fighting hard to hire this year’s
Personal
financial
crop of computer science graduates, we’ve heard, and
ground zero is Stanford. Most of the class of 2008 already
Makeup
theatrical
and performance
have jobartists,
offers even
though graduation
is months away.
Last year, salaries of up to $70,000 were common for the
Medical
assistants
best students.
This year, Facebook is said to be offering
$92,000, and Google has increased some offers to $95,000
Veterinarians
to get their share of graduates. Students with a Master’s
degree in Computer Science are being offered as much as
Substance
abuse
andproduct
behavioral
counselors
$130,000 for
associate
manager disorder
jobs at Google.
787
507
71
176
2
465
62
83
1,171
733
100
248
3
148
84
112
48.7
44.6
41.0
41.0
39.8
35.4
35.0
34.3
Source: U.S. Department of Labor, Bureau of Labor Statistics, Employment Projections: 2006-16, December 2007.
Industry Reports a Labor Shortage
— April 28, 2005
Gates Cites Hiring Woes, Criticizes Visa Restrictions
By David A. Vise
Microsoft Corp. Chairman Bill Gates said yesterday the software giant is having
enormous difficulty filling computer jobs in the United States as a result of tight visa
restrictions on foreign workers and a declining interest among U._S. students in computer
science.
<tab>Speaking on a technology panel at the Library of Congress, Gates said a decline in the
number of U._S. students pursuing careers in science and technology is hurting Microsoft
in the short run, and could have serious long-term consequences for the U._S. economy if
the problem is not addressed.
<tab>“We are very concerned that the U._S. will lose its competitive position. For
Microsoft, it means we are having a tougher time hiring,” Gates said. “The jobs are there,
and they are good-paying jobs, but we don’t have the same pipeline.”
http://www.washingtonpost.com/wp-dyn/content/article/2005/04/27/AR2005042702241.html
The Demand for Computer Science
Phil Levis, http://csl.stanford.edu/~pal/ed/
Doctorate
Master’s
Bachelor’s
Job openings
161,857
129,045
94,889
49,200
57,127
55,208
31,357
10,075
Physical Sciences
Biological Sciences
Engineering
Computer Science
The educational data comes from the National Center for Education Statistics IPEDS (Integrated
Postsecondary Education Data System) Data Center. The data used is for degrees granted in the
2008-2009
academic
year. happy with the students that we get from this
We
are very
university. . . . We just wish we could hire two to three
The employment data comes from the Department of Labor’s Occupational Outlook Handbook for
times as many of them.
2010-11. This handbook includes employment for 2008 as well as a 10-year projection to 2018. I
— which
Gates
at IStanford,
February
manually selected which occupations mapped toBill
degrees.
calculated job
openings 19,
per year as
2008
10% of the expected job growth over 2008-2018 plus 2.5% of the number of jobs in 2008. This second
term describes the number of jobs opening as people retire. It assumes that people work for 40 years
and leave a job at a uniform rate; the latter is of course not true in difficult economic times.
Economic Utility of Disciplinary Degrees
Working
in thethe
lifepattern
sciences
requires a vs.
degree
in biology
In computing,
of typically
degree production
employment
is
or
some closely related field, but relatively few biology majors
reversed.
actually end up working in the field.
• 80%
in the
sciences have
39% ofofworkers
workers
in life
computing
degrees in the
life sciences.
computing.
• 14%
graduates
withwith
degrees
in the life
71% ofof
students
degrees
in
sciences
work
in those
fields.
computing
remain
in the
field.
Sources: National Science Foundation/Division of Science Resources Statistics, SESTAT (Scientists and Engineers
Statistical Data System), 1999, as presented by Caroline Wardle at Snowbird 2002.
Challenges for Stanford
• Computer science has become increasingly popular, both as a
choice of major and as a field for elective study.
– Computer science is now the largest major at Stanford
Top Ten Majors at Stanford
(as of Winter 2013)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Computer Science
Human Biology
Engineering IDMs (mostly Product Design)
Biology
Science, Technology, and Society
Economics
Psychology
International Relations
Management Science and Engineering
History
Challenges for Stanford
• Computer science has become increasingly popular, both as a
choice of major and as a field for elective study.
– Computer science is now the largest major at Stanford
– More than 90% of undergraduates now take at least one CS course
– CS 106A is now the largest course at Stanford by almost a factor of two
• Even though the number of majors and overall enrollments have
each doubled in the past five years, the size of the Computer
Science faculty has remained essentially flat.
– We have hired new faculty (this year, we’ve made offers to seven)
– We are losing faculty to industry
• The problem is far more serious at institutions that don’t have
Stanford’s capacity to hire.
Critical Observations about Software
1. Software development is an extraordinarily difficult task,
exceeding in complexity most other engineering work.
That difficulty, moreover, is intrinsic to the discipline and
is not likely to change in the foreseeable future.
2. Despite advances in tools and methodologies (and
because of those advances to some extent), software
development and software education have become more
difficult over the history of the field.
3. Software development requires people with an unusual
combination of skills. Those people are in short supply,
but their economic value is enormous. Experienced
programmers differ in productivity by several orders of
magnitude.
Critical Observations about Software
1. Software development is an extraordinarily difficult task,
exceeding in complexity most other engineering work.
That difficulty, moreover, is intrinsic to the discipline and
is not likely to change in the foreseeable future.
2. Despite advances in tools and methodologies (and
because of those advances to some extent), software
development and software education have become more
difficult over the history of the field.
3. Software development requires people with an unusual
combination of skills. Those people are in short supply,
but their economic value is enormous. Experienced
programmers differ in productivity by several orders of
magnitude.
Essential and Accidental Complexity
To see what rate of progress one can
expect in software technology, let us
examine the difficulties of that
technology. Following Aristotle, I divide
them into essence, the difficulties
inherent in the nature of software, and
accidents, those difficulties that today
attend its production but are not
inherent. . . .
The complexity of software is an
essential property not an accidental one.
Hence, descriptions of a software entity
that abstract away its complexity often
abstract away its essence.
— Fred Brooks
“No Silver Bullet”
IEEE Computer, April 1987
Critical Observations about Software
1. Software development is an extraordinarily difficult task,
exceeding in complexity most other engineering work.
That difficulty, moreover, is intrinsic to the discipline and
is not likely to change in the foreseeable future.
2. Despite advances in tools and methodologies (and
because of those advances to some extent), software
development and software education have become more
difficult over the history of the field.
3. Software development requires people with an unusual
combination of skills. Those people are in short supply,
but their economic value is enormous. Experienced
programmers differ in productivity by several orders of
magnitude.
The March of Progress
1536 pages
911 pages
266 pages
274 pages
Sobering Thoughts
• There are more public methods in the java and javax
package hierarchies than there are words in Jensen and Wirth’s
Pascal User Manual and Report. The amount of explanation
once deemed sufficient to teach the standard introductory
programming language is thus no longer sufficient for an index
of the operations available today.
• Typical software today exists at a level of scale and complexity
that would have been unthinkable a generation ago. The most
common operating system used in mobile phones, for example,
contains approximately 100 million lines of code.
• Given the scale of modern software systems, it is typically
impossible for students to develop projects as extensions to
existing code frameworks. An academic term is now barely
sufficient to understand what is already there, leaving no time
for further development?
Critical Observations about Software
1. Software development is an extraordinarily difficult task,
exceeding in complexity most other engineering work.
That difficulty, moreover, is intrinsic to the discipline and
is not likely to change in the foreseeable future.
2. Despite advances in tools and methodologies (and
because of those advances to some extent), software
development and software education have become more
difficult over the history of the field.
3. Software development requires people with an unusual
combination of skills. Those people are in short supply,
but their economic value is enormous. Experienced
programmers differ in productivity by several orders of
magnitude.
Variations in Programmer Productivity
• In 1968, a study by Sackman, Erikson, and Grant revealed that
programmers with the same level of experience exhibit variations
of more than 20 to 1 in the time required to solve particular
programming problems.
• More recent studies [Curtis 1981, DeMarco and Lister 1985,
Brian 1997] confirm this high variability.
• Most industry insiders believe that the productivity variance is
even higher today. In 2005, Google’s VP for Engineering, Alan
Eustace, told The Wall Street Journal that one top-notch engineer
is worth 300 times or more than the average.
The Microsoft Programming Personae
Microsoft’s cultural lore defines three types of programmers:
Mort is your most common developer, who doesn’t have a CS
background, may even be a recent newcomer, and doesn’t quite
understand what the computer is doing under the covers, but who
writes the dinky IT programs that make businesses run. Elvis, more
knowledgeable, cares about code quality, but has a life too. Einstein
writes some serious-ass piece of code like device drivers, wants to
get things done, needs to be able to go low level and high level,
needs a language without restrictions to get his job done.
— Wesner Moise, “Who are you? Mort, Elvis or Einstein,” September 25, 2003
http://wesnerm.blogs.com/net_undocumented/2003/09/who_are_you_mor.html
For the most part, Microsoft (along with Google
and other first-rank companies) are seeking to
hire the Einsteins, which explains the fact that
these companies hire only a tiny fraction of their
applicant pool.
Productivity Variations Are Common
• The idea that individuals might differ in productivity by two
orders of magnitude or more initially seems hard to believe.
• In fact, such differences in effectiveness occur across a range of
occupational categories:
–
–
–
–
–
–
Mathematicians
Creative artists (writers, composers, poets, painters)
Performers (musicians, actors)
Motion picture directors
Financial wizards, CEOs
Professional athletes
• No one achieves mastery in any of these fields on the basis of
raw talent alone. Training and practice are essential.
• This fact suggests that the education of software developers
may need to adopt pedagogical strategies from these disciplines.
Dick Gabriel’s Proposal for a Software MFA
Softwareapt
education
todaycan
is be
embodied
Computer
Another
comparison
found ininthe
creative Science
writing
and ItSoftware
programs,
supplemented
by
arts.
is entirelyEngineering
possible to become
an extraordinary
writer
informal
mentoring
on the
job. and
I find
this and
approach
by
one’s self,
by simply
writing
reading,
many
unsatisfactory.
development
is a way
performance
excellent
writers Software
progress this
way. A faster
to gain
exhibiting skills
developed
an individual—often
in
competence
is through
a Masterbyof Fine
Arts program, which
groups
of teams
in order
to achieve
is
designed
to rapidly
increase
one’s the
skillsscale
and ofto software
get one
required. toInbring
this way,
software
is like
putting
prepared
to bear
criticaldevelopment
thinking to the
process
of
on a play, which
requires Some
the skills
and that
performances
continuing
improvement.
believe
all aspectsofofa
number of
people
in tandem
on stage
and behind
software
design
andworking
development
are really
engineering
or
the scenes.disciplines
Such skillswhere
can bethe
developed
in isolation
through
scientific
models of
engineering
and
practice apply,
with other
even by
putting
in
science
and Iamateurs
will notorquarrel
with
themon
norplays
try to
public without
any training
convince
them otherwise.
. . . at all. But how much faster
could
be is
developed
educational
that
<tab>
Thistalent
proposal
predicatedinona the
belief that program
being a good
recognizeddesigner
that writing
software has
enoughtalent,
of an and
arts-like
software
and developer
requires
that
performance
programliken
was the
tailored
to it?of
talent
can be component
developed. that
We the
explicitly
practice
software to the practice of fine art.
http://www.dreamsongs.com/MFASoftware.html
Dick Gabriel
software wizard
prizewinning poet
Alternative Models of Software Education
Although Dick Gabriel’s model of an MFA
in software is worth investigating, it may be
more appropriate to create “conservatories”
for the teaching of software arts, similar to
music conservatories. One possibility might
be some sort of New England Conservatory
of Coding. (Or
Or perhaps
perhaps a Hogwarts School
for Software Wizardry.)
Wizardry.
SEMESTER AT C++
SEA
Another model might be to create intensive
programs that encourage students to focus on
the art of software development, in much the
same way that programs like the University
of Virginia’s Semester at Sea program offers
a concentrated immersion in oceanography,
geography, and cultural anthropology.
The Ultimate Answer?
Education and the French mindset
Bangalore-sur-Seine?
May 11, 2013
WHEN French entrepreneurs decided in March to launch a swanky new school for software
developers, they thought they were on to something. But even they were startled by its
popularity. For 1,000 student places starting this autumn on a three-year course, they have fully
50,000 applications.
France has a skills mismatch. Joblessness has reached 10.6%, a 14-year high. For the under25s, it is 26%. Yet, according to a poll by the French Association of Software Publishers and
Internet Solutions, 72% of software firms are having trouble recruiting—and 91% of those are
seeking software engineers and developers.
The End