1 / 43

Programming and the CS Curriculum:

Explore the decline in student interest in computer science and the need for a comprehensive understanding of the underlying causes.

kyser
Download Presentation

Programming and the CS Curriculum:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Employment (thousands) Top 10 job growth categories (2006-2016) 2006 2016 Growth 1. Network systems and data communications analysts 262 402 53.4 2. Personal and home care aides 767 1,156 50.6 3. Home health aides 787 1,171 48.7 4. Computer software engineers, applications 507 733 44.6 5. Veterinary technologists and technicians 71 100 41.0 6. Personal financial advisors 176 248 41.0 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. 7. Makeup artists, theatrical and performance 2 3 39.8 8. Medical assistants 465 148 35.4 62 84 35.0 9. Veterinarians 10. Substance abuse and behavioral disorder counselors 83 112 34.3 Source: U.S. Department of Labor, Bureau of Labor Statistics, Employment Projections: 2006-16, December 2007. The Pipeline Paradox in Computing • 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.

  3. Computer Science Degree Production vs. Job Openings 160,000 Ph.D. 140,000 Master’s 120,000 Bachelor’s 100,000 Projected job openings 80,000 60,000 40,000 20,000 Engineering Physical Sciences Biological Sciences 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.

  4. I have not seen a compelling narrative for the decline in student interest. — Bill Gates, Stanford University, February 19, 2008 The Need for Greater Understanding • 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.

  5. 1. 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. 2. 3. 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. 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. 4. The university curriculum is somehow broken and needs a radical overhaul. Why this Paradox?

  6. 1. 2. 3. It cannot explain why enrollments have varied so much over time. 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. Students decide to avoid computing long before they have any idea what the university curriculum is. 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:

  7. 3. Students decide to avoid computing long before they have any idea what the university curriculum is. The Curriculum Has a Second-Order Effect Source: Higher Education Research Institute at UCLA, 2005

  8. 1. 2. 3. 4. It cannot explain why enrollments have varied so much over time. 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. Students decide to avoid computing long before they have any idea what the university curriculum is. Students who take our courses tend to like them but still shy away from the computer science major. 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:

  9. Gateway Course for Management Science & Engineering Gateway Course for Computer Science Computer Science Management Science & Engineering student flow Students Like Our Courses But Go Elsewhere

  10. 1. 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. 3. 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 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. Why this Paradox?

  11. The Real Image Problem http://www.youtube.com/watch?v=CmYDgncMhXw

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

  13. The Code-Rush Syndrome

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

  15. Dilbert’s Boss Has More Appeal than Dilbert Everyone 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

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

  17. Capital Labor The Capital-Labor Divide

  18. Dangerous Trends We have met the enemy and he is us. — Walt Kelly • 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?

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

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

  21. There Are Also Contrary Arguments —January 26, 1998 Now Hiring! If You’re Young By 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.

  22. And Closer to Home In 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.

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

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

  25. 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. 3. 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. 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

  26. 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. 3. 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. 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

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

  28. 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. 3. 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. 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

  29. 1536 pages 911 pages 274 pages 266 pages The March of Progress

  30. 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?

  31. An Illustrative Example In 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?

  32. public 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; } } Java Scoping If you execute the program shown at the right in Java, what output will it generate? Why?

  33. 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. 3. 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. 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

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

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

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

  37. Paul Graham’s Hackers and Painters 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. Paul Graham (photo by Niall Kennedy) http://www.paulgraham.com/hp.html

  38. 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. Dick Gabriel’s Proposal for a Software MFA Dick Gabriel software wizard prizewinning poet http://www.dreamsongs.com/MFASoftware.html

  39. SEMESTER AT SEA 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.) 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. SEMESTER AT C++

  40. Three Student Personae Taking a cue from Microsoft’s classification of programmers, it is interesting to think about different students that computer science attracts: • 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. 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. Emily Carr Mary Cassatt Dora Carrington Frida Kahlo Georgie O’Keeffe

  41. <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. 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.” Don Knuth <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 http://doi.acm.org/10.1145/361604.361612

  42. Beauty is truth, truth beauty,that is all Ye know on earth, and all ye need to know. — John Keats, “Ode on a Grecian Urn,” 1819 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.

  43. The End

More Related