Meeting Everyone’s Need for Computing Mark Guzdial School of Interactive Computing

advertisement
Meeting Everyone’s Need for Computing
Mark Guzdial
School of Interactive Computing
Story
• Computing is important for more than just those who choose
to major in computing.
• The challenge of computer science isn’t enrollment,
it’s in meeting the demand.
• Part 1: The History of Teaching Computing to All
• Part 2: Who are “they,” what do they want, and why don’t they
take computer science degrees?
• Part 3: How do we teach those who do not want to become
software engineers or computer scientists?
• Computing for All at Georgia Tech
• 1999-2003: One course for all
• 2003-2008: Contextualized Computing Education
• Evaluation Results
The Two Cultures
The typical CS student:
Future Software Engineer
• To produce reliable,
robust, secure software.
• To work in
interdisciplinary teams.
• To use appropriate
design notations, such as
UML.
• To work in multiple
programming languages.
4
Declining Enrollments in Computer Science
Source: Higher Education Research Institute at UCLA, 2005
From Eric Roberts
It’s not likely to get better soon
From Jan Cuny
6
Latest numbers (March 24, 2010)
2010 CRA Taulbee Survey of
PhD-granting institutions
7
Who wants what CS has to offer?
• Computing is at the core of the modern society and modern
economy.
• Many people recognize the value of education in computing.
• Including many of our students.
• However, only a few of them want to become professional
software engineers.
• Why? Complex question.
• However, Computer Science has a much larger
potential audience elsewhere.
• Estimates: ~13 million non-professional programmer/end-user
programmers in US by 2012,
vs. ~3 million professional software developers (Scaffidi, Shaw, &
Myers, 2005)
8
An atypical CS student:
Future computational scientist or engineer
• To use computation as a tool to
enhance understanding.
• To write programs of (at most)
100 lines (most often, 10 lines)
for themselves.
• They care about the products of the
programs, not the programs.
• To learn as few languages as are
needed for their tasks.
• To work in interdisciplinary
teams, including software
engineers.
9
Computing for the Biologist
On US National Public Radio in April 2007:
• GROSS: You close your book saying, "I am thrilled to be alive at
a time when humanity is pushing against the limits of
understanding." How do you think that's happening in your
field of evolutionary biology?
• Mr. DAWKINS: Well, it's the most exciting time to be a
biologist… Since Watson and Crick in 1953, biology has
become a sort of branch of computer science. I
mean, genes are just long computer tapes, and they use a
code which is just another kind of computer code. It's
quaternary rather than binary, but it's read in a sequential way
just like a computer tape. It's transcribed. It's copied and
pasted. All the familiar metaphors from computer
science fit.
An atypical CS student:
Future high school CS teacher
• To use code to explore and
understand ideas of
computation.
• To learn what languages
are necessary to meet
standards and engage
students.
• To work with students with
a wide range of interests.
• Probably won’t work with professional
software engineers
11
An atypical CS student:
Future graphics designer
• To write programs to improve
their efficiency, and to
implement their dynamic (e.g.,
Web) designs.
• To do as little coding as
possible.
• To learn about computing ideas
in order to improve their
process, but with a focus on
people and creativity.
• Probably won’t work with professional
software engineers
12
How do we serve all these needs?
Elementary
School
(5-10 years)
Middle
School/Junior
High School
(11-13 years)
High
School
(14-18
years)
Undergraduate
Career
13
How do we serve all these needs?
Elementary
School
(5-10 years)
Middle
School/Junior
High School
(11-13 years)
High
School
(14-18
years)
Undergraduate
Career
14
Do we differentiate? Where?
Who serves them?
Elementary
School
(5-10 years)
Middle
School/Junior
High School
(11-13 years)
High
school
design
path
IT/IS/SE/CE
Media
High
school
science
path
15
How do meet this need?
• Our track record for the first CS course is
poor.
• 30-50% failure or withdrawal rates (Bennedsen &
Caspersen, 2007)
• Other majors tend to be more female and
more ethnically diverse than the typical
computing student.
• Our track record with these audiences is
particularly poor (Margolis & Fisher, 2003)
• Different motivations, different tools, different
products, and different languages.
16
Cleaving Computer Science
• Three Schools in Georgia Tech’s College of
Computing:
• School of Computer Science
• School of Interactive Computing
• (NEW!) School of Computational Science and Engineering.
• Currently, shared degrees: BS in CS, MS in CS, PhD
in CS.
• Prediction: Separate degrees within 5 years.
• CS RISC vs. IC People vs. CSE Science
http://computinged.wordpress.com/2010/02/14/cleavingcomputer-science-a-time-for-new-degrees/
17
Three points in this space
• Part 1: Historical: Should CS be teaching
computing to everybody?
• Part 2: Do students want what CS has to
offer, i.e., education about computing?
• Part 3: How do we teach everyone?
• Parts we’re skipping in the interest of time:
•
•
How do we get students interested at all?
How do we teach the teachers?
18
1961 MIT Sloan School Symposium
Learn Programming
to Re-Think Process Everywhere
• Alan Perlis argued that
computer science should be
part of a liberal education.
– Explicitly, he argued that all
students should learn to
program.
• Why?
– Because Computer Science
is the study of process.
– Automated execution of
process changes everything
• Including how we think about
things we already know
The Power and Fear of Algorithms
• The Economist (Sept., 2007)
spoke to the algorithms that
control us, yet we don’t
understand.
• Credit Ratings, Adjustable Rate
Mortgages, Search Rankings
• C.P. Snow foresaw this in
1961.
• Those who don’t understand
algorithms, can’t understand
how the decisions are made.
“A handful of people, having
no relation to the will of
society, having no
communication with the rest
of society, will be taking
decisions in secret which
are going to affect our lives
in the deepest sense.”
Alan Kay’s
Dynabook (~1970)
•Alan Kay (2004 ACM
Turing Awardee) sees the
Computer as humanity’s
first metamedium
• A medium that can
represent all other media.
• Programming as an
important new medium
•The computer-asDynabook is for creative
metamedia exploration
and reading
Why teach computing to everyone?
• Perlis: To have a powerful new tool to think
with.
• Snow: Because it’s necessary to participate
and understand in the modern world.
• Kay: To have full expressive power with the
most powerful and creative medium humans
have ever invented.
23
Part 2: Do they want what
we have to offer?
• Brian Dorn has been
studying graphics designers
who program.
• Just finished a series of
interviews and assessment
activities.
• Found that these subjects
want more computer
science, but don’t find
courses (and most other
resources) adequate
(submitted manuscript,
2009)
• P10:.A lot of people can just fly
airplanes..But if you put them in an
unusual situation, and they don't
understand it…
I think programming's probably the
same way. I've written classes and
thought, wow I've just created a
binary tree here. If I knew what I was
doing when I was doing it because I
had the academic understanding,
then I'd probably look for a base class
that's already been optimized, and I
wouldn't have to rewrite it. So, that
was a really long way of saying yes, I
think that an academic study would
make me a better programmer, but
not by a whole lot.
24
What do software engineers do?
Answer: The Boring Stuff.
• P2: I was able to take different samples from different places
and instead of just being let's say an MIS major, or computer
science major, you know it's—you're not going to be front-end
anything with computer science. You're going to be back-end
everything.
• P4: I think as a front-end developer, you focus more on the
design and the usability, and you're focusing more on the
audience. And then on the back-end I think you're focused on
more, these are like the software developers. And they're
programming something, and they don't really see what it's
gonna look like; they're just making it work.
25
Why don’t they take CS classes?
• P7: I started out in computer science, but didn't like it at all. The fact that I
wasn't learning anything new. I took an intro to programming course, and
then I talked to some other people in the program and it was all repetition
and I guess there wasn't any really new. So you weren't really learning any
concepts. You were learning the languages, and I didn't like that at all. So
that's why I left…
• P7: I'm looking for more concepts instead of examples I guess. I think the,
my problem with books was the same thing. They're teaching more of a
language than the concepts, and so I just want a place where I can learn
the concepts and that's it. And I really can't find that, you know? It's either
you learn a language and you hope to find out about the concepts, but
you never really do.
• Is it our methods? The content? The contexts?
26
They are not afraid of coding
• “What interests you about web design?”
• P12: The coding! I don't like to code. But the things
that the code can do is amazing, like you can come
up with this and voila, you know, it's there. Javascript
for one. The plugins and stuff. I think that's very
interesting, intriguing and stuff. Because I mean like
the code is just, there's so much you can do with
code and stuff. It's just like wow.
27
Part 3: How do we teach
computing to everyone?
•Fall 1999:
All students at Georgia Tech must take a
course in computer science.
• Considered part of General Education, like
mathematics, social science, humanities…
•Why did Georgia Tech make that decision?
• Computing is important
• Computing was a College.
•Solved a problem for Engineering
• Made a competitive distinction for Liberal Arts
Computer Science = =
Computer Science
•Only one course met the requirement:
CS1321 Introduction to Computing
• Shackelford’s pseudocode approach in 1999
• Later Scheme: How to Design Programs (MIT
Press)
•Why only one?
• It’s all the same computer science.
• Resource issues
• “Service Ghetto”
One-class CS1: Pass (A, B, or C) vs.
WDF (Withdrawal, D or F)
Success Rates in CS1 from Fall 1999 to
Spring 2002 (Overall: 78%)
Architecture
46.7%
Biology
64.4%
Economics
53.5%
History
46.5%
Management
48.5%
Public Policy
47.9%
Contextualized Computing Education
• What’s going on?
– Research results: Computing is “tedious,
boring, irrelevant”
• Since Spring 2003, Georgia Tech
teaches three introductory CS
courses.
– Based on Margolis and Fisher’s
“alternative paths”
• Each course introduces computing
using a context (examples, homework
assignments, lecture discussion)
relevant to majors.
– Make computing relevant by teaching it in
terms of what computers are good for
(from the students’ perspective)
Our Three CS1’s Today
• CS1301/1321 Introduction to Computing
Traditional CS1 for our CS majors and
Science majors (math, physics, psychology,
etc.). Now, uses robots.
• CS1371 Computing for Engineers
CS1 for Engineers. Same topics as
CS1301, but using MATLAB with
Engineering problems.
• CS1315 Introduction to Media
Computation for Architecture,
Management, and Liberal Arts students.
32
Media Computation:
Teaching in a Relevant Context
•Presenting CS topics with
media projects and
examples
– Iteration as creating negative
and grayscale images
– Indexing in a range as removing
redeye
– Algorithms for blending both
images and sounds
– Linked lists as song fragments
woven to make music
– Information encodings as sound
visualizations
33
def clearRed(picture):
for pixel in getPixels(picture):
setRed(pixel,0)
def greyscale(picture):
for p in getPixels(picture):
redness=getRed(p)
greenness=getGreen(p)
blueness=getBlue(p)
luminance=(redness+blueness+greenness)/3
setColor(p, makeColor(luminance,luminance,luminance))
def negative(picture):
for px in getPixels(picture):
red=getRed(px)
green=getGreen(px)
blue=getBlue(px)
negColor=makeColor(255-red,255-green,255-blue)
setColor(px,negColor)
Open-ended, contextualized homework
in Media Computation CS1
Sound collage
35
Results:CS1“Media Computation”
Change in Success rates in CS1 “Media
12.540% 10.270% 14.650% 9.370% 7.580% 11.410% 19.650% 17.100%
Computation” from Spring 2003 to Fall
2005
22.540%
(Overall 85%)
Architecture
46.7%
85.7%
86.470% 88.360% 84.710% 89.870% 91.940% 87.500%
Biology
64.4%
Economics
54.5%
92.0%
History
46.5%
67.6%
Total Females Males
Fall03 Fall03 Fall03
Management
Public Policy
Total Females Males
Sp04
Sp04
Sp04
48.5%
47.9%
90.4%
80.330% 82.900% 77.460%
Total Females Males
Fall04 Fall04 Fall04
87.8%
85.4%
WDF
Pass
Voices from Media
Computation Students
• Intl Affairs student (female): “I just wish I had more time to
play around with that and make neat effects. But JES [IDE for
class] will be on my computer forever, so… that’s the nice
thing about this class is that you could go as deep into the
homework as you wanted. So, I’d turn it in and then me and
my roommate would do more after to see what we could do
with it.”
• “I dreaded CS, but ALL of the topics thus far have been
applicable to my future career (& personal) plans—there isn't
anything I don't like about this class!!!"
• "Media Computation is a CS class but with less severity. The
media part of the class is extremely visually interesting. I
would only take another CS class if it were Media
Computation."
Survey One Year Later
• 19% of respondents had programmed since class ended
"Did the class change how you interact with
computers?”
• 80% say “Yes”
• “Definitely makes me think of what is going on behind
the scenes of such programs like Photoshop and
Illustrator.”
• 'I understand technological concepts more easily now; I
am more willing and able to experience new things with
computers now’
• 'I have learned more about the big picture behind
computer science and programming. This has helped
me to figure out how to use programs that I've never
used before.’
38
Results at Gainesville College
• Similar results at a 2 year
public college.
• What is relevance?
– Not useful for degree.
– Somewhat useful for career.
– Mostly useful for life.
• Would you like more CS?
– GT 15.2% “Strongly
Disagree”
– More MediaComp? GT and
Gainesville over 40% agree,
(Tew, Fowler,
Guzdial,
SIGCSE
(Tew, Fowler,
2005)
Guzdial,
SIGCSE 2005)
Results at
U. Illinois-Chicago
• A CS 0.5 (for CS majors
not ready for CS1) using
MediaComp Python.
• Improvements in
success rates.
• Even with a more diverse
population.
(Sloan and Troy,
SIGCSE 2008)
Introducing Computing in an
Engineering Context
• Developed in collaboration
with Civil, Mechanical, and
Aerospace Engineering.
• Uses Engineering problems
and MATLAB
• Covers traditional CS1
topics
• Among our 3 CS1’s, these
are the first students to
program outside of class.
Results:CS1 for Engineering
26.06% 28.28% 25.51% 24.27% 23.74% 24.42%
73.94% 71.72% 74.90% 75.27% 75.54% 75.19%
Total Females Males
Fall03 Fall03 Fall03
Total Females Males
Sp04
Sp04
Sp04
14.87% 14.45% 14.96%
85.03% 85.55% 84.92%
Total Females Males
Fall04 Fall04 Fall04
WDF
Pass
Side Trip: How about CS?
31.74% 32.43% 31.54%
84.34% 89.36% 83.17%
all
04
4
M
al
es
F
Fa
ll0
4
m
al
es
Fa
ll0
Fe
To
ta
l
p0
4
al
es
S
04
M
m
al
es
Sp
04
68.26% 67.57% 68.46%
Fe
To
ta
l
all
03
3
M
al
es
F
Fa
ll0
m
al
es
Fe
To
ta
l
Fa
ll0
3
81.42% 77.86% 82.18%
15.26% 10.64% 16.34%
Sp
18.45% 22.14% 17.67%
WDF
Pass
Comparing Spring 2004
CS for Engineers: ~1200 students/semester
Media Comp: ~300 students/semester
CS for CS majors: ~150 students/semester
9.3700%
24.2700%
31.7400%
89.9700%
75.2700%
Media Comp
Engineering
68.2600%
CS
WDF
Pass
A Context for CS1 for
CS majors: Robotics
• Microsoft Research has
funded the Institute for
Personal Robotics in
Education
• Tucker Balch, Deepak Kumar, Doug
Blank
• Joint between Bryn Mawr and
Georgia Tech
• http://www.roboteducation.org
• Goal is to develop a CS1
with robotics as the
context.
• Includes a camera and media
computation functions
How we teach computing to everyone?
• Use a context that is relevant to the target
audience students.
• Media, Engineering, Robotics
• Video games only captures some of the target
audience.
• Use languages and tools that make sense for
the Community of Practice (Lave & Wenger,
1991)
• Python for Liberal Arts majors
• MATLAB for Engineering majors
46
Going beyond the first course
•If students get a contextualized first course,
sometimes they want a second course.
• Is the context still useful?
• Or should we just merge those majors in with our
majors?
•How do we design curricula for majors whose
job will not be traditional software
development?
• Or whose job will be changing?
A Contextualized CS2:
MediaComp Data Structures
How did the
Wildebeests
charge over the
ridge in Disney's
"The Lion King"?
48
Contextualized Homework
in CS2
Music
49
Research Question:
Is context still useful in a second course?
• Mixed model research design
• Interviews informing whole-class survey
• 11% agreed with “Working with media is a waste of time that
could be used to learn the material in greater depth.”
• “I didn’t take this class to learn how to make pretty pictures.”
• A majority of the class (70%) agreed or strongly agreed that
working with media makes the class more interesting.
• 67% of the students agreed or strongly agreed that they were
really excited by at least one class project
• 66% reported doing extra work on projects to make the
outcome look “cool.”
(Yarosh and Guzdial, JERIC,
Jan 2008)
How do we get kids interested
in Computing?
What don't we know about context?
•What is a context?
•Do students learn the same in all contexts?
•What do students perceive as a relevant
context?
•When are contexts successful? For how long?
For whom?
•When do contexts lead to long term retention
and transfer?
Meeting the demand
• New major: BS in Computational Media
• ~300 students, 27% female
• Past the first course, we now offer more
undergraduate credit hours to NON-CS/CM
majors than to our own majors.
• Where is the greatest potential influence for
CS faculty in society?
• Through CS majors, or
through the rest of campus?
53
Conclusions
• Computing is important for everyone,
CS has had a goal for over 40 years to be able to teach
computing to everyone.
• End-user programmers want CS has to offer, and there are
more of them than there are professional software
developers.
• We don’t have a lack of students;
we have a challenge in meeting this demand.
• Contextualized Computing Education has great promise for
achieving the goal of teaching everyone about computing.
• We need to learn more about what makes contexts effective,
and how to teach with those contexts.
With thanks to our funding supporters
• US National Science Foundation
• Statewide BPC Alliance: Project “Georgia Computes!” http://www.gacomputes.org
• CCLI and CPATH Grants
• Microsoft Research
• Georgia Tech's College of Computing
• Georgia’s Department of Education
• GVU Center,
• Al West Fund,
• President's Undergraduate Research Award,
• Toyota Foundation
Thank you!
• http://www.cc.gatech.edu/~mark
.guzdial
• http://home.cc.gatech.edu/csl
• http://www.georgiacomputes.org
For more on MediaComp
approach:
• http://www.mediacomputation.org
56
How does Media Computation work?
• We are preparing students for a world where
computation (explicitly, programming) is part
of communications and knowledge building
practices in liberal arts, architecture, and
management.
• That world is not easily perceptible today.
• To engage students, we must convince them
that it exists.
Why do we believe that a white-gloved,
six foot mouse can talk?
Disney’s Imagineering
Using theme park design
to provide insight into
course design:
1. Start from the Story
2. Start from where the
expectations are
3. Pay attention to Details
4. Where necessary,
change reality
5. Pay attention to
Transitions
1. Start from the Story
• Everything at Disney theme
parks starts with a story.
• Even changes to vendor
booths start from a story.
• Examples:
–
–
–
–
Tomorrowland
Big Thunder Railroad
Splash Mountain
Emporium
1. Start from the Story
• In Media Computation CS1, we tell a
consistent story
• All media are going digital
• Digital media are manipulated in software
• Knowing how to program is an advantage in a
profession that manipulates media.
2. Start from where the expectations are
“Just as Main Street, U.S.A. in the
Magic Kingdom and Hollywood
Boulevard at Disney-MGM
Studios are not meant to
represent factual history, but to
evoke a collective cultural
memory, the flavor of the 1920’s
mid-Atlantic coast is apparent at
Disney’s BoardWalk”
--Kurti, Since the World Began
2. Start from where the expectations are
•These students have been peripherally
participating in media manipulation
culture
(what is called legitimate peripheral
participation.)
•All collect media
•Many use Photoshop
•Some work with MIDI and sound (“Acid”)
•We start with the media and
manipulations they know.
3. Pay Attention to Details
All the elements play off
one another and feed into
a consistent view.
3. Pay Attention to Details
• The lectures
match the book
which matches the assignments (which are about
media manipulation)
which match the shared on-line Galleries.
• The examples in the book used the same media as
on the CD at the back of the book.
• The story is told consistently and are selfsupporting pieces of evidence.
– “Of course people manipulate media with Python! Go
look at all the great things in the on-line Galleries!”
4. Where necessary, change reality
Three story buildings in
Disney World aren’t really
three stories.
My Favorite Example:
Cinderella’s Castle
-The View
-The Tunnel
4. Where necessary, change reality
• Python does not support media manipulation.
– So we wrote a set of libraries and tools.
– We embedded them into the programming environment
so that students never even see the media libraries
being imported.
– Now, obviously, Python supports media manipulation.
• Java’s media support is complicated.
– We never teach it.
– We teach Picture, Sound, Pixel, and SoundSamples.
– Result: Java multimedia is easy.
5. Pay Attention to Transitions
• Imagineers care
about what you see
between places.
– Why are there water
buffalo on top of the
Tiki-Tiki room?
– Why are the Thunder
Mountain mountains
scarier in Florida than
California?
5. Pay Attention to Transitions
• At each new topic, we relate the transition to
the story.
– We don’t start teaching string processing,
we start teaching HTML.
– We don’t teach linked lists,
we teach how to dynamically and creatively
insert and remove media elements.
It’s about teaching computing in terms
of what they want to know.
Download