Computational Thinking Everywhere
Eric RobertsProfessor of Computer Science
Stanford University
The “Broad Audience for CS1” Approach
Computational Thinking WorkshopThe 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
CS 105Introduction to Computing
CS 106AProgramming Methodology
CS 106BProgramming Abstractions
CS 106XAccelerated version (A+B)
generaleducation
a more serious introduction
Introductory Course Enrollment Trends
0
200
400
600
800
1000
1200
1400
1600
180019
85-8
619
86-8
719
87-8
819
88-8
919
89-9
019
90-9
119
91-9
219
92-9
319
93-9
419
94-9
519
95-9
619
96-9
719
97-9
819
98-9
919
99-0
020
00-0
120
01-0
220
02-0
320
03-0
420
04-0
520
05-0
620
06-0
720
07-0
820
08-0
9pr
ojec
ted
All intro courses
CS106A
Eventual Majors of CS 106A Students
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 106BThere 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:
G ATCG GCATCAAT GTGAATC
1 1 1 1 1 1
1 2 2 2 1 2–
+
positive scores for matches
negative scores for misses
And Peter Lee Asks . . .
Is it possible to compose music automatically?
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
The Dangers of a Separate Course
• 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.
Stanford has deliberately chosen not to offer a “computational thinking” course for nonmajors to avoid the following pitfalls:
The End
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’s
Bachelor’s
Projected 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:
160,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’s
Bachelor’s
Projected 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:
And Various Data Seem to Agree
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 analysts
Personal and home care aidesHome health aidesComputer software engineers, applicationsVeterinary technologists and technicians
Personal 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:
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.
• 14% of graduates with degrees in the life sciences work in those fields.
National Science Foundation/Division of Science Resources Statistics, SESTAT (Scientists and Engineers Statistical Data System), 1999, as presented by Caroline Wardle at Snowbird 2002.
Sources:
• 39% of workers in computing have degrees in computing.
• 71% of students with degrees in computing remain in the field.
In computing, the pattern of degree production vs. employment is reversed.
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.
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.