Title: Eric Roberts
1Restoring the Passion, Beauty, Joy and
Awe Making Computing Fun Again
Eric Roberts Professor of Computer
Science Stanford University
University of Auckland 15 July 2009
2Grady Booch at SIGCSE 2007
3The View from 2008
- As everyone has now been aware for some time,
computing enrolments in the United States and
most of Europe have plummeted since 2001. - This drop is of significant economic concern
because those same countries are training far
fewer people than they need to fill the available
positions. In the United States, there are now
many more jobs in the IT sector than there were
at the height of the dot-com boom, with all
projections pointing toward continued growth.
4What a Difference a Year Makes
- As everyone has now been aware for some time,
computing enrolments in the United States and
most of Europe have plummeted since 2001. - This drop is of significant economic concern
because those same countries are training far
fewer people than they need to fill the available
positions. In the United States, there are now
many more jobs in the IT sector than there were
at the height of the dot-com boom, with all
projections pointing toward continued growth. - In Silicon Valley and at Stanford, the answers
are clear - Demand for talented software developers is as
high as ever. - CS enrolments are skyrocketing, nearly erasing
any previous loss.
Are enrolments still falling?
Is this still true after the meltdown?
5Enrolment Trends at Stanford
1800
1600
1400
1200
1000
800
600
400
200
0
2008-09
1994-95
1985-86
1986-87
1987-88
1988-89
1989-90
1990-91
1991-92
1992-93
1995-96
1996-97
1997-98
1998-99
1999-00
2000-01
2001-02
2002-03
2003-04
2004-05
2005-06
2006-07
2007-08
1993-94
6The Single Best Enrolment Predictor
5000
4000
3000
2000
1000
500
400
300
2008
2006
2004
2002
2000
1998
1996
1994
1992
1990
1988
1986
1984
A statistical analysis undertaken by my
colleague, Mehran Sahami, found that 88 of the
1993-2003 enrollment variance at Stanford can be
explained by the NASDAQ average of the preceding
year.
7There are Fewer Places to Go
8Industry Demand Remains High
- The computing industry offers some of the best
employment opportunities for university
graduates. The following data are from the
United States, but the situation is similar
elsewhere - 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 high, sometimes exceeding
the 100,000 mark. - In 2005, Money magazine rated software engineer
as the number one job in America. - Labour statistics show that the ratio of the
number of available jobs per graduate is higher
in computing than any other employment category.
9Degree Production vs. Job Openings
160,000
Ph.D.
140,000
Masters
120,000
Bachelors
100,000
Projected job openings
80,000
60,000
40,000
20,000
Engineering
Physical Sciences
Biological Sciences
Adapted from a presentation by John Sargent,
Senior Policy Analyst, Department of Commerce, at
the CRA Computing Research Summit, February 23,
2004. Original sources listed as National
Science Foundation/Division of Science Resources
Statistics degree data from Department of
Education/National Center for Education
Statistics Integrated Postsecondary Education
Data System Completions Survey and NSF/SRS
Survey of Earned Doctorates and Projected Annual
Average Job Openings derived from Department of
Commerce (Office of Technology Policy) analysis
of Bureau of Labor Statistics 2002-2012
projections. See http//www.cra.org/govaffairs/co
ntent.php?cid22.
Sources
10But We Still Have Work to Do
1.
The kind of exposure students get to computing at
the elementary and secondary level tends to push
people away from the discipline long before they
reach the university.
2.
The image of work in the fieldand, more
importantly, all too much of the reality of work
in the fieldis unattractive to most students and
no longer seems fun, particularly in comparison
to other opportunities that bright students might
pursue.
11The Real Image Problem
http//www.youtube.com/watch?vCmYDgncMhXw
12The Reality Is Also a Problem
Has anyone considered the possibility that its
just not fun anymore?
Don Knuth, October 11, 2006
- Students at Stanford have expressed the following
concerns - Long hours with little chance for a balanced life
- A less pleasant social milieu than other
occupations - A sense that success in programming is possible
only for those who are much brighter than they
see themselves to be - Work that is often repetitive and unchallenging,
particularly when it involves maintaining legacy
technology - Work that has become more difficult than it used
to be - No chance for a lasting impact because of rapid
obsolescence - Fears that employment with an individual company
is dicey even though opportunities are good in
the industry as a whole - Frustration at being managed by nontechnical
people who make more money but are not as bright
(Dilberts boss)
13Dilbert vs. the Boss
Interestingly, during the bubble of 2001 to 2007,
students with strong technical skills opted for
careers in management or finance, giving them a
seemingly secure place on the capital side of the
capital/labour divide.
14For Some, Programming Is the Enemy
- Because students respond more negatively to
programming than they once did, some have argued
for reducing its emphasis in the university
curriculum. - As an illustration of this trend, consider the
following post that appeared on SIGCSE-MEMBERS on
August 14, 2006
15Industry Is Not Amused
- Every technical person in the industry with whom
Ive spoken is horrified by the prospect of
reducing the emphasis on programming in the
undergraduate curriculum.
- Employers in developed countries with high-tech
sectors are desperate for more people with
programming talent. In his keynote at ITiCSE
2007 in Dundee, Scottish entrepreneur Chris van
der Kuyl said that the lack of programming talent
was the greatest limiting factor in the industry.
- At meetings of the ACM Education Council in
recent years, industry representatives have been
united in their concern about the scarcity of
competent software developers.
- In a new graduate-level course taught at Stanford
by Monica Lam and Martin Rinard, the course
description begins like this The key to
delivering a successful software project is to
hire top notch programmers.
16Programming Remains Central
- Calls to reduce or eliminate programming from
computing curricula arise from some undeniable
assumptions - There are more jobs in IT that dont require
programming. - Programming is not particularly popular with
students today. - Offshoring of programming jobs has increased.
- Unfortunately, this analysis ignores the
following equally valid propositions - There are more jobs in IT that do require
programming. - Programming has historically been what attracts
students the most. - Globalization has created more IT jobs in
India/China and the U.S. - Offshoring exists largely because of a shortfall
of skilled employees.
17But It Has Gotten More Complex
18Sobering Thoughts
- There are more public methods in the java and
javax package hierarchies than there are words in
Jensen and Wirths 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?
19We Need to Make Things Simpler
- In the future, producing enough computing
graduates to meet the demand will occur only if
it is possible to hide much of the complexity
from students as they learn the basic concepts. - Many strategies already exist along these lines
- Microworlds (Karel the Robot, Alice, Scratch)
- Teaching libraries (the ACM Java libraries)
- Using high-level APIs in place of low-level
implementations - Using languages with easier learning curves
(Scheme, Python) - Using these strategies can delay acquisition of
specific language skills in C and Java that
many employers expect. - Universities would be an ideal setting to explore
strategies for simplifying software development,
but there is little funding available in this
area.
20The End