Meeting the Needs of Computing Across Campus

advertisement
Meeting Computing Needs Across
Campus
Mark Guzdial, School of Interactive Computing
Story
• Why we should teach computing to everyone
• Making computing work for everyone at
Georgia Tech.
– Lesson Learned:
Contextualized computing education.
– What our courses are like
•Side trip into second course
– Results
• Side trip: Applying the lesson to the BS in CS.
• Finally, what does it buy us in CS?
2
Time Warp to Fall 1999
• Fall 1999:
All students at Georgia Tech must take a
course in computer science.
– Considered part of General Education, like
mathematics, social science, humanities…
– Heroes: Peter Freeman, Rich LeBlanc, Kurt Eiselt,
Russ Shackelford
• Why did Georgia Tech make that decision?
– Computing was a College.
•Solved a problem for Engineering
– Making a competitive distinction for Liberal Arts
3
New reasons:
Computational Thinking
• Everyone needs to learn about process (Alan
Perlis)
• Algorithms control our lives: The tyranny of
the computationally literate (C.P. Snow)
• The tools of learning for computational
scientists and engineers brought to the
classroom (Jeanette Wing).
– Computers are cheaper than Super-Conducting
Supercolliders
5
1961 MIT Sloan School Symposium
6
Computing for Everyone
• In 1961, 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
7
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, Google
• 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 the 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.”
8
Adopting Computing:
With CS?
• At Georgia Tech and other Universities:
– Biology teaches programming for mathematical and
computational models.
– Physics teaches VPython for labs where they solve threebody problems.
• Computer science provides the tools and
metaphors for understanding our world
– Jeanette Wing’s “Computational Thinking”
• Scientists and engineers use computing to model,
simulate, and understand.
– Why shouldn’t science and engineering students?
– History repeating: Telescopes, microscopes.
– Computers are already cheap and plentiful.
9
Richard Dawkins on Fresh Aire
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.
10
Back to Georgia Tech in 1999
• Key Point: Only one course met the
requirement:
CS1321 Introduction to Computing
– Shackelford’s pseudocode approach in 1999
– Later Scheme: How to Design Programs
• Why only one?
– Resource issues
– “Service Ghetto”
– The offer to help them do their own
11
CS1321: Pass (A, B, or C) vs.
WDF (Withdrawal, D or F)
Pass
02 Fall
02 Spring
01 Fall
WDF
Total
74.01%
26.74%
Female
62.99%
36.65%
Male
77.00%
22.90%
Total
65.03%
34.87%
Female
65.56%
34.44%
Male
64.81%
35.04%
Total
70.98%
29.02%
Female
59.55%
40.45%
Male
73.63%
26.37%
12
Contextualized Computing
Education
• Since Spring 2003, we teach 3
introductory CS courses.
– Responding to research results about CS
being “irrelevant”
– Based on Margolis and Fisher
“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).
13
Our Three CS1’s Today
• CS1301/1321 Introduction to Computing
Traditional CS1 for our CS majors and
Science majors (math, physics, psychology,
etc.).
• CS1371 Computing for Engineers
CS1 for Engineers. Same topics as CS1301,
but using MATLAB with Engineering problems
in homework and examples.
• CS1315 Introduction to Media Computation
14
Introduction to Media Computation
• Average 400 students/term
– Overall, CS1315 has been 51% female
– Required in Architecture, Management, Ivan Allen
College of Liberal Arts, and Biology
• Focus: Learning programming and CS
concepts within the context of media
manipulation and creation
– Computing for communications, not calculation
15
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
16
MediaComp in Undergraduate,
High School, and Teacher Workshops
• Introductory media computing in Python
– Both majors and non-majors.
– At Georgia Tech, course is 300-400 students/term,
51% female
• Required in Liberal Arts, Architecture, and Management.
• (Enables BS in Computation Media, 27% female)
• Introduction to object-oriented programming in Java
• Introduction to data structures in Java
– Used at Georgia Tech, Gainesville College, Lindfield
College
• Introduction to programming and CS AP
• Integrating Alice and Media Computation
17
Some Media Computation
Examples: A Sunset Effect
• How do we turn this
beach scene into a
sunset?
• What happens at
sunset?
– Theory: As the sun sets,
less blue and green is
visible, which makes
things look more red.
18
A Sunset-generation Function
def makeSunset(picture):
for p in getPixels(picture):
value=getBlue(p)
setBlue(p,value*0.7)
value=getGreen(p)
setGreen(p,value*0.7)
19
SlowSunset as a movie
def slowsunset(directory):
canvas = makePicture(getMediaPath("beach-smaller.jpg"))
for frame in range(0,100): #99 frames
printNow("Frame number: "+str(frame))
makeSunset(canvas)
# Now, write out the frame
writeFrame(frame,directory,canvas)
def makeSunset(picture):
for p in getPixels(picture):
value=getBlue(p)
setBlue(p,value*0.99) #Just
value=getGreen(p)
setGreen(p,value*0.99)
1% decrease!
20
SlowSunset frames
21
Example Movies
22
Background subtraction
• Let’s say that you have a picture of someone,
and a picture of the same place (same
background) without the someone there,
could you subtract out the background and
leave the picture of the person?
– Where the same (x,y) pixel differs in color (by
some threshold value), assume it’s the person
• Could you change the background?
– When a pixel color differs, take the color from the
new background at the same (x,y)
23
Person (Katie) and
Background, and new version
24
Fading by background subtraction
• Background subtraction:
def swapbg(person, bg, newbg,threshold):
for x in range(1,getWidth(person)):
for y in range(1,getHeight(person)):
Threshold as an
personPixel = getPixel(person,x,y)
input. Using the
bgpx = getPixel(bg,x,y)
frame number
personColor= getColor(personPixel)
bgColor = getColor(bgpx)
if distance(personColor,bgColor) < threshold:
bgcolor = getColor(getPixel(newbg,x,y))
setColor(personPixel, bgcolor)
25
SlowFadeout
26
Example Movies
27
Examples of Student Work
SoupAudio
Collage
CanonLinkedList of
(MIDI) Music
28
Examples of Teacher Work
29
A Media Computation Data Structures Course
• Driving question:
“How did the
wildebeests
stampede in The
Lion King?”
30
Connecting to the Wildebeests
It’s all about data structures
31
Similar Assignments,
but with Objects and Agents
32
Results: CS1315 “Media Computation”
Pass
04 Fall
04 Spring
03 Fall
WDF
Total
80.33%
19.65%
Female
82.90%
17.10%
Male
77.46%
22.54%
Total
89.87%
9.37%
Female
91.94%
7.58%
Male
87.50%
11.41%
Total
86.47%
12.54%
Female
88.36%
10.27%
Male
84.71%
14.65%
33
Success Rates for Specific Majors
Success rates in traditional CS1 for students in various majors average
Fall ’99 to Fall ’02, compared to Spring ’03 to Fall ’05 in Media
Computation.
34
Results: CS1371 “Engineering”
Pass
04 Fall
04 Spring
03 Fall
WDF
Total
85.03%
14.87%
Female
85.55%
14.45%
Male
84.92%
14.96%
Total
75.27%
24.27%
Female
75.54%
23.74%
Male
75.19%
24.42%
Total
73.94%
26.06%
Female
71.72%
28.28%
Male
74.49%
25.51%
35
Results of four years of evaluation
• MediaComp students are more motivated and
engaged (retention data, interviews), and find the
course social, creative, and “relevant.”
– Replicated at several institutions now.
• Students in the contextualized courses program
outside of class.
– Immediately (engineers) and even a year later
(MediaComp)
• Students in MediaComp classes (both, and new
Architecture course) spend extra time on homework
“because it’s cool.”
36
“Did the class change how you
interact with computers?”
• Results from a survey a year later:
– “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, troubleshoot
problems on my own computer, use programs that I was
already familiar with in a more sophisticated way, and given me
more confidence to try to problem solve, explore, and fix my
computer.’
37
The Other Results
• We don’t know if they learn the same.
– The challenge of comparative studies when there
is no shared experience of computing.
• While engaging, majority of students do not
find the MediaComp courses relevant to their
degrees or professions.
– Many do find it relevant to their lives.
• Students distinguish between “more
MediaComp classes” and “more CS classes”
38
Next steps…
An alternative path and a minor
• What happens when you have an intro to CS course
for non-majors that students pass and even enjoy?
• Define a CS minor
– About 100 students today
• Create new BS in Computational Media
– Joint with School of Literature, Communications, and
Culture
– 58 majors in first year, 24% female
Over 200 majors today, still about ¼ female
39
How about CS?
Back to our own CS1
Pass
04 Fall
04 Spring
03 Fall
WDF
Total
84.34%
15.26%
Female
89.36%
10.64%
Male
83.17%
16.34%
Total
68.26%
31.74%
Female
67.57%
32.43%
Male
68.46%
31.54%
Total
81.42%
18.45%
Female
77.86%
22.14%
Male
82.18%
17.67%
40
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.
– Added a camera and media
computation abilities
41
Robot Movies
• Robots have cameras, and Myro has media
computation primitives.
• Wonderful project by Jay Summet:
Creative and Collaborative
– Robots are characters.
– One robot is camera
•How do you zoom?
Aim and go forward!
– Post-processing media computation, e.g., for
eerie disappearing effects.
42
Example movie
43
Using Context throughout the
CS Curriculum
• The future of computing is not in
merely being a good
programmer.
– Those skills are now commodities
that can be outsourced anywhere.
• When “The World is Flat”
(Friedman), we become
competitive by bridging areas
and differentiating.
44
The Threads™ Curriculum
• We have defined 8 Threads in
Computing:
– Computing and People
– Computing and Information Internetworking
– Computing and Media
– Computing and Platforms
– Computing and Intelligence
– Computing and Foundations
– Computing and Computational Modeling
– Computing and Devices (was Embodiment)
46
The BS in Computer Science under Threads™
• Each Thread specifies the courses needed to know
that area well.
– From introductory computing,
through advanced courses,
to beyond Computer Science
(Psychology, Physics, Computer Engineering).
• A degree is the union of any two Threads.
– Every Combination is a
full Computer Science degree,
but bridging disciplines and clearly different from “just
programming.”
– No Thread choice is necessary in first year,
Can always choose different Threads during degree.
47
Back to Computing Across Campus
• What do we in CS get from teaching computing to
the rest of campus?
– Maybe make our students more competitive (via diversity
and breadth)?
• Maybe attract more students to the field?
– New problems to work on.
• The difference between Computer Science and Computing.
– Where the interesting stuff is.
– A change in culture.
• Pedagogical methods.
– Critical design in Architecture
• Research methods
48
Computer Scientists and
Reading
• Alan Perlis, Norbert Weiner, J.C.R. Licklider, C.P. Snow
• Others included Vannevar Bush, Herbert A. Simon, Marvin L.
Minsky, Jay W. Forrester, Grace M. Hopper, Claude E.
Shannon, John G. Kemeny, Gene M. Amdahl
49
Summary
• The rest of campus needs what we have to offer.
– The Power of Computational Thinking
• We have found that the way they need computing
education is different than the way we offer it to our
students.
– Maybe we need to change how we offer intro computing
to our own students.
• We have found a contextualized computing
approach works (for the measures we have now).
• There may be benefits for CS in making more
connections to the rest of campus.
50
Thank you!
Mark Guzdial
http://www.cc.gatech.edu/~mark.guzdial
http://home.cc.gatech.edu/csl
For more on Threads:
http://www.cc.gatech.edu/threads
For more on MediaComp approach
(including papers, software, and
slides and workshops):
http://coweb.cc.gatech.edu/mediaCompplan
Media Computation Teachers’ Site:
http://coweb.cc.gatech.edu/mediaCompteach
51
Student voices
• Intro CS 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.”
• High School teacher: “This was the best (noncollege credit) workshop I have ever taken.”
• Students in multimedia data structures: “Data
structures is an important step. Use of media! It
makes it fun.”
52
Next steps in Threads: Roles
• Threads are about conceptual focus.
• Within any Thread, might play different roles:
–
–
–
–
–
A Master Practitioner
An Entrepreneur
A Researcher
A Communicator/Teacher
A Public Policy Maker
• We are defining recommendations for these roles in
terms of experiences and elective classes in
software engineering, management, and other
areas.
53
What Georgia Tech Teaches
CS1315 (Media
Computation
CS1 in Python)
CS1316
(Structure &
Behavior—
Multimedia data
structures in
Java)
CS2260:
Media Device
Architectures
CS1301
Intro to
Programming in
Python for CS
majors
CS1331
CS1+2 in
Java
CS1332
Data
Structures
and
Algorithms in
Java
CS2110
(Low-level
programming in C)
CS1371
(Computing for
Engineering in
MATLAB (only))
CS1372
Algorithm
Design in C
Institute for Computing
Education (ICE@GT)
Summer Workshops
for High School
Teachers: Media
Computation CS1 in
Java
54
Computing and Devices
55
Computing and Information Internetworking
56
Want a job in Information Security?
• Information Internetworking +
Foundations
– Encoding and storing information
securely for organizations
• Information Internetworking +
Platforms
– Making information flow securely
between large databases and small
cell phones and PDAs.
57
Preparing for Jobs to Come
• The Future of Robotics:
Devices + People
58
Preparing for Jobs to Come
• Platforms + Media
• Platforms + People
59
For More Information…
http://www.cc.gatech.edu/threads
60
Download