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