43
Programming and the CS Curriculum: Eric Roberts Professor of Computer Science, Stanford University Past Chair of the ACM Education Board FLICS Swarthmore College November 6, 2008 The More Things Change . . .

Programming and the CS Curriculum:

  • Upload
    blade

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Programming and the CS Curriculum:. The More Things Change . . . Eric Roberts Professor of Computer Science, Stanford University Past Chair of the ACM Education Board. FLICS Swarthmore College November 6, 2008. Employment. (thousands). Top 10 job growth categories (2006-2016). 2006. - PowerPoint PPT Presentation

Citation preview

Page 1: Programming and the CS Curriculum:

Programming and the CS Curriculum:

Eric RobertsProfessor of Computer Science, Stanford University

Past Chair of the ACM Education Board

FLICSSwarthmore CollegeNovember 6, 2008

The More Things Change . . .

Page 2: Programming and the CS Curriculum:

The Pipeline Paradox in Computing

262 402 53.41.767 1,156 50.62.787 1,171 48.73.507 733 44.64.

71 100 41.05.176 248 41.06.

2 3 39.87.465 148 35.48.

62 84 35.09.

Network systems and data communications analystsPersonal and home care aidesHome health aidesComputer software engineers, applicationsVeterinary technologists and techniciansPersonal financial advisorsMakeup artists, theatrical and performanceMedical assistantsVeterinariansSubstance abuse and behavioral disorder counselors 83 112 34.310.

Top 10 job growth categories (2006-2016) 2006 2016

Employment(thousands)

Growth

U.S. Department of Labor, Bureau of Labor Statistics, Employment Projections: 2006-16, December 2007.

Source:

Google and Facebook are fighting hard to hire this year’s crop of computer science graduates, we’ve heard, and ground zero is Stanford. Most of the class of 2008 already have job offers even though graduation is months away. Last year, salaries of up to $70,000 were common for the best students. This year, Facebook is said to be offering $92,000, and Google has increased some offers to $95,000 to get their share of graduates. Students with a Master’s degree in Computer Science are being offered as much as $130,000 for associate product manager jobs at Google.

• The computing industry offers some of the best employment opportunities for college graduates in the United States 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

high, sometimes exceeding the $100,000 mark.– In 2005, Money magazine rated software engineer as the number one

job in America.– Employment in this area is vital for national competitiveness.

• At the same time, student interest in these disciplines has plummeted. The Computing Research Association (CRA) estimates that computing enrollments have fallen by almost 50 percent since their peak in 2000.

• This decline has been even more rapid among women and minority students, reducing diversity as the pool shrinks.

Page 3: Programming and the CS Curriculum:

Degree Production vs. Job Openings160,000

140,000

120,000

100,000

80,000

60,000

40,000

20,000

Engineering Physical Sciences Biological Sciences Computer Science

Ph.D.Master’sBachelor’sProjected job openings

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.

Sources:

Page 4: Programming and the CS Curriculum:

The Need for Greater UnderstandingI have not seen a compelling narrative for the decline in student interest.

Bill Gates, Stanford University,February 19, 2008

• The failure of universities to produce a sufficient number of graduates with the necessary computing skills is now widely recognized as a crisis in both academia and industry.

• Unfortunately, the underlying causes for the decline in student interest are not well understood. Although several theories seek to explain the decline in student interest, they do not provide a comprehensive explanation of student behavior.

• These slides represent an early attempt toward developing a “compelling narrative” of the sort Bill Gates described during his visit to Stanford. That narrative is as yet incomplete, and I welcome any comments and criticism.

Page 5: Programming and the CS Curriculum:

Why this Paradox?Fears about the long-term economic stability of employment in the computing industry continue to have a profound effect on student interest in our discipline.

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.

3.

The university curriculum is somehow broken and needs a radical overhaul.

4.

Page 6: Programming and the CS Curriculum:

The Curriculum Has a Second-Order Effect• The computing curriculum as traditionally implemented has

deficiencies and can always be improved.• As an explanation for declining enrollments, however, the

“curriculum is broken” theory has serious shortcomings:It cannot explain why enrollments have varied so much over time.1.It fails to account for the fact that institutions saw a similar loss of enrollment even when their curricula were different. Most of the proposed curriculum improvements were in place somewhere in 2000-01, but declines occurred everywhere. The resurgence of enrollment in the last year also seems independent of curriculum.

2.

Students decide to avoid computing long before they have any idea what the university curriculum is.

3.

Page 7: Programming and the CS Curriculum:

The Curriculum Has a Second-Order EffectStudents decide to avoid computing long before they have any idea what the university curriculum is.

3.

Source: Higher Education Research Institute at UCLA, 2005

Page 8: Programming and the CS Curriculum:

The Curriculum Has a Second-Order Effect• The computing curriculum as traditionally implemented has

deficiencies and can always be improved.• As an explanation for declining enrollments, however, the

“curriculum is broken” theory has serious shortcomings:It cannot explain why enrollments have varied so much over time.1.It fails to account for the fact that institutions saw a similar loss of enrollment even when their curricula were different. Most of the proposed curriculum improvements were in place somewhere in 2000-01, but declines occurred everywhere. The resurgence of enrollment in the last year also seems independent of curriculum.

2.

Students decide to avoid computing long before they have any idea what the university curriculum is.

3.

Students who take our courses tend to like them but still shy away from the computer science major.

4.

Page 9: Programming and the CS Curriculum:

Students Like Our Courses But Go Elsewhere

Gateway Course for Computer ScienceGateway Course for Management Science & Engineering

Computer Science Management Science & Engineering

studentflow

Page 10: Programming and the CS Curriculum:

Why this Paradox?

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.

3.

Fears about the long-term economic stability of employment in the computing industry continue to have a profound effect on student interest in our discipline.

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.

Page 11: Programming and the CS Curriculum:

The Real Image Problem

http://www.youtube.com/watch?v=CmYDgncMhXw

Page 12: Programming and the CS Curriculum:

The Reality Is Also a Problem

• 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

—Don Knuth, October 11, 2006Has anyone considered the possibility that it’s just not fun anymore?

Page 13: Programming and the CS Curriculum:

The Code-Rush Syndrome

Page 14: Programming and the CS Curriculum:

The Reality Is Also a Problem

• 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– Programming 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)

—Don Knuth, October 11, 2006Has anyone considered the possibility that it’s just not fun anymore?

Page 15: Programming and the CS Curriculum:

Dilbert’s Boss Has More Appeal than DilbertEveryone knows who the pointy-haired boss is, right? I think most people in the technology world not only recognize this cartoon character, but know the actual person in their company that he is modelled upon.

— Paul Graham, May 2002

Page 16: Programming and the CS Curriculum:

But the Reality Is Also a Problem

• 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– Programming 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– A perception that programmers are definitely on the labor side of

the labor/capital divide

—Don Knuth, October 11, 2006Has anyone considered the possibility that it’s just not fun anymore?

Page 17: Programming and the CS Curriculum:

The Capital-Labor Divide

Capital Labor

Page 18: Programming and the CS Curriculum:

Dangerous Trends

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?

Walt Kelly—We have met the enemy and he is us.

• As an illustration of this trend, consider the following post that appeared on SIGCSE-MEMBERS on August 14, 2006:

Page 19: Programming and the CS Curriculum:

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.

• At an ACM Education Council meeting in September 2007, a panel of technical people from companies like Microsoft, Google, Amazon, and Boeing were united in their concern about the scarcity of competent software developers. I have summarized their position as “the computing curriculum is not nearly as broken as it seems likely to become.”

• 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.

• 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.

Page 20: Programming and the CS Curriculum:

Industry Reports a Labor Shortage

Gates Cites Hiring Woes, Criticizes Visa RestrictionsBy 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.”

— April 28, 2005

http://www.washingtonpost.com/wp-dyn/content/article/2005/04/27/AR2005042702241.html

Page 21: Programming and the CS Curriculum:

There Are Also Contrary Arguments

— January 26, 1998

Now Hiring! If You’re YoungBy Norman Matloff

DAVIS, Calif—Readers of recent reports about a shortage of computer programmers would be baffled if they also knew that Microsoft hires only 2 percent of its applicants for software positions. Even among those applicants whom Microsoft invites to its headquarters for interviews, according to David Pritchard, the director of recruiting, the company makes offers to only one in four.<tab>You don’t have to be a “techie” to see that such a low ratio, typical for the industry, contradicts the claims of a software labor shortage. If companies were that desperate, they simply could not be so picky.

http://query.nytimes.com/gst/fullpage.html?res=9E0CE6DF123BF935A15752C0A96E958260

Matloff argues that there is no programmer shortage. The only clear conclusion one can draw from the data is that companies perceive a shortage in applicants who pass their quality threshold.

Page 22: Programming and the CS Curriculum:

And Closer to HomeIn the July 2008 Communications of the ACM, Villanova professor Stephen Andriole and I debated the relevance of programming in the computing curriculum. Steve argues that the commodification of enterprise software means that there is no longer as much need for programming expertise in that sector. I respond that this sector is only one of many, and that the overall demand for people with programming not only remains large, but continues to grow.

Page 23: Programming and the CS Curriculum:

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.

Page 24: Programming and the CS Curriculum:

A Thought Experiment about Offshoring• Suppose that you are Microsoft and that you can hire a software

developer from Stanford whose loaded costs will be $200,000 per year. Over in Bangalore, however, you can hire a software developer for $75,000 per year. Both are equally talented and will create $1,000,000 annually in value. What do you do?

• Although the developer in Bangalore has a higher return, the optimal strategy is to hire them both. After all, why throw away $800,000 a year?

• Any elementary economics textbook will explain that one hires as long as the marginal value of the new employee is greater than the marginal cost. The essential point is that companies seek to maximize return, and not simply to minimize cost.

Page 25: Programming and the CS Curriculum:

Critical Observations about SoftwareSoftware 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.

1.

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.

2.

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.

3.

Page 26: Programming and the CS Curriculum:

Critical Observations about SoftwareSoftware 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.

1.

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.

2.

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.

3.

Page 27: Programming and the CS Curriculum:

Essential and Accidental ComplexityTo 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. . . .

Fred Brooks“No Silver Bullet”IEEE Computer, April 1987

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.

Page 28: Programming and the CS Curriculum:

Critical Observations about SoftwareSoftware 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.

1.

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.

2.

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.

3.

Page 29: Programming and the CS Curriculum:

The March of Progress

266 pages 274 pages911 pages

1536 pages

Page 30: Programming and the CS Curriculum:

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?

Page 31: Programming and the CS Curriculum:

An Illustrative ExampleIn their book Java Puzzler, Josh Bloch and Neal Gafter pose a variety of puzzles to test the reader’s understanding of Java, including the following:

Students are regularly taught that the statements

x++;

and

x += 1;

are equivalent.

In Java, describe a situation in which the first statement is legal, but not the second. How about the other way around?

Page 32: Programming and the CS Curriculum:

Java Scopingpublic class ScopeTest { public static void main(String[] args) { C1 obj = new C2(); System.out.println(obj.fn(obj)); }}

class C1 { public static final int N = 1;

public int fn(C1 obj) { return 10 + obj.N; }}

class C2 extends C1 { public static final int N = 2;

public int fn(C1 obj) { return 20 + obj.N; }}

If you execute the program shown at the right in Java, what output will it generate? Why?

Page 33: Programming and the CS Curriculum:

Critical Observations about SoftwareSoftware 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.

1.

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.

2.

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.

3.

Page 34: Programming and the CS Curriculum:

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.

Page 35: Programming and the CS Curriculum:

The Microsoft Programming PersonaeMicrosoft’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.

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.

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 low hiring ratio.

Page 36: Programming and the CS Curriculum:

Productivity Variations Are Common

• The idea that individuals might differ in productivity by two or more orders of magnitude 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.

Page 37: Programming and the CS Curriculum:

Paul Graham’s Hackers and Painters

http://www.paulgraham.com/hp.html

When I finished grad school in computer science I went to art school to study painting. A lot of people seemed surprised that someone interested in computers would also be interested in painting. They seemed to think that hacking and painting were very different kinds of work—that hacking was cold, precise, and methodical, and that painting was the frenzied expression of some primal urge.<tab>Both of these images are wrong. Hacking and painting have a lot in common. In fact, of all the different types of people I’ve known, hackers and painters are among the most alike.<tab>What hackers and painters have in common is that they’re both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things.

(photo by Niall Kennedy)Paul Graham

Page 38: Programming and the CS Curriculum:

Dick Gabriel’s Proposal for a Software MFA

http://www.dreamsongs.com/MFASoftware.html

Dick Gabriel

Software education today is embodied in Computer Science and Software Engineering programs, supplemented by informal mentoring on the job. I find this approach unsatisfactory. Software development is a performance exhibiting skills developed by an individual—often in groups of teams in order to achieve the scale of software required. In this way, software development is like putting on a play, which requires the skills and performances of a number of people working in tandem on stage and behind the scenes. Such skills can be developed in isolation through practice with other amateurs or even by putting on plays in public without any training at all. But how much faster could talent be developed in a educational program that recognized that writing software has enough of an arts-like performance component that the program was tailored to it?

Another apt comparison can be found in the creative writing arts. It is entirely possible to become an extraordinary writer by one’s self, by simply writing and reading, and many excellent writers progress this way. A faster way to gain competence is through a Master of Fine Arts program, which is designed to rapidly increase one’s skills and to get one prepared to bring to bear critical thinking to the process of continuing improvement. Some believe that all aspects of software design and development are really engineering or scientific disciplines where the models of engineering and science apply, and I will not quarrel with them nor try to convince them otherwise. . . .<tab>This proposal is predicated on the belief that being a good software designer and developer requires talent, and that talent can be developed. We explicitly liken the practice of software to the practice of fine art.

software wizardprizewinning poet

Page 39: Programming and the CS Curriculum:

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 perhaps a Hogwarts School for Software Wizardry.

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 perhaps a Hogwarts School for Software Wizardry.

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 perhaps a Hogwarts School for Software Wizardry.)

SEMESTER AT SEASEMESTER AT C++

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.

Page 40: Programming and the CS Curriculum:

Three Student PersonaeTaking a cue from Microsoft’s classification of programmers, it is interesting to think about different students that computer science attracts:

And consider not only how much easier it is to find female artists to serve as role models but also how much easier it is to convince women that the lifestyle of an artist might be attractive.

• In the boom years, we tended to attract the entrepreneur, lured by the dream of start-up riches. That student now heads for finance.

• Most academic programs tend to focus on creating the engineer, but that lifestyle strikes today’s students as boring.

• We need to attract the artist—someone who can appreciate the passion, beauty, joy, and awe that make our field exciting.

Emily CarrMary CassattDora CarringtonFrida KahloGeorgie O’Keeffe

Page 41: Programming and the CS Curriculum:

Knuth’s Turing Award Lecture (1974)

When Communications of the ACM began publication in 1959, the members of ACM’s Editorial Board made the following remark as they described the purposes of ACM’s periodicals:

“If computer programming is to become an important part of computer research and development, a transition of programming from an art to a disciplined science must be effected.”

<tab>Such a goal has been a continually recurring theme during the ensuing years; for example, we read in 1970 of the “first steps toward transforming the art of programming into a science.” Meanwhile we have actually succeeded in making our discipline a science, and in a remarkably simple way: merely by deciding to call it “computer science.” ACM Turing Award

1974

Don Knuth

<tab>Implicit in these remarks is the notion that there is something undesirable about an area of human activity that is classified as an “art”; it has to be a Science before it has any real stature. On the other hand, I have been working for more than 12 years on a series of books called “The Art of Computer Programming.” People frequently ask me why I picked such a title; and in fact some people apparently don’t believe that I really did so, since I’ve seen at least one bibliographic reference to some books called “The Act of Computer Programming.”<tab>In this talk I shall try to explain why I think “Art” is the appropriate word. I will discuss what it means for something to be an art, in contrast to being a science; I will try to examine whether arts are good things or bad things; and I will try to show that a proper viewpoint of the subject will help us all to improve the quality of what we are now doing.

http://doi.acm.org/10.1145/361604.361612

Page 42: Programming and the CS Curriculum:

What We Need To Do

• Recognize that the problems extend well beyond the university.• Press government and industry to improve computing education

at the K-12 level, possibly through public-private partnerships.• Take creative steps to bolster both the image and the reality of

work in the profession.• Make it clear to students (as well as faculty) that programming

remains essential to much of the work in the field.• Emphasize the “beauty” of programming by focusing more

attention on software as an art.• Explore new styles of pedagogy that are more finely attuned to

artistic domains.Beauty is truth, truth beauty, that is allYe know on earth, and all ye need to know.

— John Keats, “Ode on a Grecian Urn,” 1819

Page 43: Programming and the CS Curriculum:

The End