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 openings19, 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