No Slide Title
Download
Report
Transcript No Slide Title
Restoring the
Passion, Beauty, Joy and Awe:
Making Computing Fun Again
Eric Roberts
Professor of Computer Science
Stanford University
University of Auckland
15 July 2009
Grady Booch at SIGCSE 2007
The View from 2008
That there is currently a crisis in computing education is not in doubt.
— McGettrick et al., SIGCSE 2007
• 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.
What a Difference a Year Makes
That there is currently a crisis in computing education is not in doubt.
— McGettrick et al., SIGCSE 2007
• As everyone has now been aware for some time, computing
enrolments in the United States and most of Europe have
plummeted since 2001. Are enrolments still falling?
• 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. Is this still true after the meltdown?
• 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.
1985-86
1986-87
1987-88
1988-89
1989-90
1990-91
1991-92
1992-93
1993-94
1994-95
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
2008-09
Enrolment Trends at Stanford
1800
1600
All CS intro courses
1400
1200
1000
800
600
400
CS106A (our CS1)
200
0
The Single Best Enrolment Predictor
5000
4000
3000
2000
1000
500
400
2008
2006
2004
2002
2000
1998
1996
1994
1992
1990
1988
1986
1984
300
Butstatistical
A
the NASDAQ—along
analysis undertaken
with by
other
my colleague,
markets—declined
Mehran Sahami,
steadily found
from
that 88%
2007
through
of 2008.
the 1993-2003
If enrollments
enrollment
have historically
variance tracked
at Stanford
the high-tech
can be
explained why
economy,
by the
areNASDAQ
enrollments
average
rising?
of the preceding year.
There are Fewer Places to Go
Industry 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
Employment Science are
high, sometimes exceeding the $100,000 mark. (thousands)
Growth
Top 10 job growth categories (2006-2016)
2006
2016
–
In
2005,
Money
magazine
rated
software
engineer
as
the
number
one
1. Network systems and data communications analysts
262
402
53.4
job in America.
2. Personal and home care aides
767
1,156
50.6
–
Labour
statistics
show
that
the
ratio
of
the
number
of
available
jobs
per
3. Home health aides
787
1,171
48.7
graduate is higher in computing than any other employment category.
4.
5.
6.
7.
8.
9.
10.
Computer software engineers, applications
Veterinary
technologists and technicians
Google and Facebook are fighting hard to hire this year’s
crop of computer
Personal
financial science
advisorsgraduates, we’ve heard, and
ground zero is Stanford. Most of the class of 2008 already
Makeup
theatrical
and performance
have job artists,
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 counselors
as much as
Substance
abuse and
behavioral
disorder
$130,000 for associate product manager jobs at Google.
507
71
176
2
465
62
83
733
100
248
3
148
84
112
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.
Degree Production vs. Job Openings
160,000
140,000
120,000
100,000
Ph.D.
Master’s
Bachelor’s
Projected job openings
80,000
60,000
40,000
20,000
Engineering
Physical Sciences
Biological Sciences
Computer Science
Sources: 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/content.php?cid=22.
But 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 field—and, more importantly,
all too much of the reality of work in the field—is
unattractive to most students and no longer seems fun,
particularly in comparison to other opportunities that
bright students might pursue.
The Real Image Problem
Dilbert
“The Knack”
http://www.youtube.com/watch?v=CmYDgncMhXw
The Reality Is Also a Problem
Has anyone considered the possibility that it’s 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 (Dilbert’s boss)
Dilbert vs. the Boss
Capital
Labour
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.
For 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:
I have an idea for a panel that I’d like to organize for SIGCSE’07. I’m asking for
volunteers (or nominations of others) to serve on the panel. The panel I’d like to
organize would have a title something like:
“Alternative Models for a Programming-lite Computer Science Curriculum”
The theme of the panel would be to share ideas and thoughts on how we might
reduce (or eliminate) the emphasis on programming within a computer science
curriculum. The basic idea is to cause discussion centered on the knowledge and
skills students of tomorrow will need in the global economic workspace and the
implications for the CS curriculum. As more and more aspects of software
development of “offshored”, what kind of curriculum would allow a student to be
successful in the IT field?
We have met the enemy and he is us.
— Walt Kelly
Industry Is Not Amused
• Every technical person in the industry with whom I’ve 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. He called it coding.
• 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.”
Programming Remains Central
• Calls to “reduce or eliminate” programming from computing
curricula arise from some undeniable assumptions:
– There are more jobs in IT that don’t 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.
But It Has Gotten More Complex
If I had had to learn C++, I would have majored in music.
1536 pages
—Don
Knuth, October 11, 2006
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?
We 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.
The End