130 likes | 294 Views
Computational Thinking Everywhere. The “Broad Audience for CS1” Approach. Eric Roberts Professor of Computer Science Stanford University. Computational Thinking Workshop The National Academies February 19, 2009. Stanford’s Strategy.
E N D
Computational Thinking Everywhere The “Broad Audience for CS1” Approach Eric Roberts Professor of Computer Science Stanford University Computational Thinking Workshop The National Academies February 19, 2009
Stanford’s Strategy • For at least the last 30 years, Stanford has tried to implement “computational thinking everywhere” by getting as many students as possible into one of our introductory courses, which are designed to be funnels rather than filters. • During the boom years of 1996-2001, our introductory course was the largest course at Stanford, CS was the second largest undergraduate major (behind economics), and 75 percent of all Stanford undergraduates took at least one CS course. • As at everywhere else, the number of CS majors fell after the dot-com collapse, from a high of 200 graduates in 2002 (12 percent of all undergraduates) to 141 in 2006. • In a trend that seems common to the larger programs, our numbers have begun to rise again. The number of students taking our introductory courses is almost back to its historical peak.
Entry Points into CS at Stanford general education a more serious introduction CS 105 Introduction to Computing CS 106A Programming Methodology CS 106X Accelerated version (A+B) CS 106B Programming Abstractions
All intro courses CS106A Introductory Course Enrollment Trends 1800 1600 1400 1200 1000 800 600 400 200 0 projected 2008-09 1994-95 1985-86 1986-87 1987-88 1988-89 1989-90 1990-91 1991-92 1992-93 1993-94 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
Strategies for Achieving Large Enrollments • Maintain a strong commitment to educating a broad audience. • Assemble a team of highly effective lecturers to teach the introductory curriculum. • Offer multiple entry points, both to create a greater range of opportunities and to allow students to self-select their level. • Make sure the introductory courses have a reputation for being challenging but also accessible. • Get undergraduates involved in teaching so that they can serve as “stepping-stone” role models. • Provide a robust safety net for students who are having trouble. • Draw examples from a broad range of disciplines. • Encourage students to go beyond the baseline requirements, particularly in their own areas of interest.
A Recent Assignment in CS 106B There are several alignment methods for measuring the similarity of two DNA sequences (which you can think of for the purposes as strings over a four-letter alphabet: A, C, G, and T). One method to align two sequences x and y consists of inserting spaces at arbitrary locations (including at either end) so that the resulting sequences x' and y' have the same length but never have a space in the same position. You can then assign a score to each position. Position j is scored as follows: +1 if x'[j] and y'[j] are the same and neither is a space, –1 if x'[j] and y'[j] are different and neither is a space, –2 if either x'[j] or y'[j] is a space. The score for a particular alignment is just the sum of the scores over all positions. For example, given the sequences GATCGGCAT and CAATGTGAATC, one such alignment (though not necessarily the best one) is: positive scores for matches + 1 1 1 1 1 1 G ATCG GCAT CAAT GTGAATC – 1 2 2 2 1 2 negative scores for misses
One of my students, in the second week of CS106A, sought to answer that question by using Karel the Robot to compose new Goldberg variations: — Jennifer Mazzon, January 2009 And Peter Lee Asks . . . Is it possible to compose music automatically?
The Dangers of a Separate Course Stanford has deliberately chosen not to offer a “computational thinking” course for nonmajors to avoid the following pitfalls: • Courses that allow students to use computers but insulate them from the process of writing programs are likely to push students away from a computer science major just when the economy needs many more people with those skills. • Courses that avoid teaching programming send the implicit message that programming is just as unpleasant as its current reputation implies. Our courses, by contrast, emphasize the “passion, beauty, joy, and awe.” • Teaching all types of students together makes it easier for students to switch into computer science, even if that was not their original intention. • Having a large fraction of undergraduates in these classes means the students reflect the diversity of the institution.
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.
In computing, the pattern of degree production vs. employment is reversed. 160,000 Ph.D. 140,000 Master’s 120,000 Bachelor’s 100,000 Projected job openings Employment • 39% of workers in computing have degrees in computing. (thousands) 80,000 Top 10 job growth categories (2006-2016) 2006 2016 Growth 60,000 1. Network systems and data communications analysts 262 402 53.4 2. Personal and home care aides 767 1,156 50.6 40,000 3. Home health aides 787 1,171 48.7 20,000 4. Computer software engineers, applications 507 733 44.6 5. Veterinary technologists and technicians 71 100 41.0 Engineering Physical Sciences Biological Sciences Computer Science 6. Personal financial advisors 176 248 41.0 • 14% of graduates with degrees in the life sciences work in those fields. • 71% of students with degrees in computing remain in the field. 7. Makeup artists, theatrical and performance 2 3 39.8 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. 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. 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. And Various Data Seem to Agree Working in the life sciences typically requires a degree in biology or some closely related field, but relatively few biology majors actually end up working in the field. • 80% of workers in the life sciences have degrees in the life sciences.
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.