GVU-BB-MediaComp-16Jan

advertisement
Media as a Context for
Learning Computation
Mark Guzdial
College of Computing/GVU
Story
• Computer science education is in a sorry
state
– That’s a serious problem for GVU
• The challenges we need to face
• The argument for a course in digital media
• Description of the course that’s on-going now
Computer Science Classes
Today
• CS1 is one of the most despised courses for
non-majors
• CS retention rates are lower than the rest of
campus
– 65% for 1995 cohort, vs. 73% for Engineeering
• Drop-out rates near 50% at many institutions
• Female enrollment in CS is dropping nationally
– At Georgia Tech, we’re below the average
Why?
• “Tedious,” “boring,”
“lacking creativity,”
“asocial”
• CS culture seems most
attractive to white males.
CS Freshmen Majors, Fall
2001
Number
Female
Male
AfricanAmerican
Hispanic
Caucasian
Total
38
303
15
SAT avg
(combined)
1342
1371
1349
2
233
341
1350
1379
1368
Why should GVU care?
• What is our vision of
computation and
new media?
• Should people just
consume media?
Or should they
understand it? And
even be able to
create it?
In Alan Kay’s vision of
the computer, the
Dynabook,
programming itself is a
medium
The best uses for our
technologies will come from
others
• Thomas Edison vs. D.W. Griffith
• If we want our technologies to become
useful, they have to get out of our hands.
• It can’t be just through applications
– That presumes that we the researchers know how
the technologies should be used.
– Suggestion: D.W. Griffith knew things that Edison didn’t.
Why should anyone care?
• In 1961, Alan Perlis
argued that computer
science is more
important in a liberal
education than calculus
• Calculus is about rates,
and that’s important to
many.
• Computer science is
about process, which is
important to everyone
The Challenges
• We have to motivate non-CS students
to care about computing
• We have to make it social, creative,
exciting, and not tedious
– Which is how many of us already see
Computing, but that’s not getting
communicated
Our Attempt: Introduction
to Media Computation
• A course for non-CS and non-Engineering
majors
– International Affairs, STAC, Architecture,
Management, Biology, etc.
• 120 students this semester,
planning 400-600 in the Fall
– 2/3 female in this semester’s CS1315
• Focus: Learning programming within the
context of media manipulation and creation
Motivating the Computing
• As professionals, these students will often
the use the computer as a communications
medium.
• All media are going digital,
and digital media are manipulated with
software.
• Knowing how to program, then, is a
communications skill.
Programming as a
Communications Skill
• Knowing how to program means to
understand one’s tools.
– Maybe means can transfer tool skills more
easily
– Students already telling us that they’re
excited to learn how PhotoShop works.
• And it means that, if you have to, you
may be able to grow your own
Programming as
Communicating Process
• A program is a succinct, executable
process description
• That makes valuable for explaining
process
– We use examples from Biology and
Management to make this point
Python as the
programming language
• Huge issue
• Use in commercial contexts authenticates the
choice
– IL&M, Google, Nextel, etc.
• Minimal syntax
• Looks like other programming languages
– Potential for transfer
How the class was
developed
• Created in response to “recent
unpleasantness”
– On-line surveys, meetings with students
– Inspired in part by ECE’s DSP First
• Developed with an advisory board from
across campus: Psych, HPS, Math, ECE,
CETL
• Trialed in faculty workshop in mid-December
Course Objectives
• Students will be able to read, understand, and
modify programs that achieve useful communication
tasks
– Not programming from a blank piece of paper
• Students will learn what computer science is about,
especially data representations, algorithms,
encodings, forms of programming.
• Students will learn useful computing skills, including
graphing and database concepts
Use a loop!
Our first picture recipe
def decreaseRed(picture):
for p in getPixels(picture):
value=getRed(p)
setRed(p,value*0.5)
original
Used like this:
>>> file="/Users/guzdial/mediasources/barbara.jpg"
>>> picture=makePicture(file)
>>> show(picture)
>>> decreaseRed(picture)
>>> repaint(picture)
A Sunset-generating function
• How do we turn this
beach scene into a
sunset?
• What happens at
sunset?
– Tried increasing the red,
but that failed.
– New Theory: As the sun
sets, less blue and green
is visible, which makes
things look more red.
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)
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)
Using your personal
pictures
And messin’ with them
Data-first
• Real users come to a user with data
that they care about, then they
(unwillingly) learn the computer to
manipulate their data as they need.
• CS1315 can work the same.
– Students can bring their pictures, sounds,
and movies as starting points for
manipulations.
Rough overview of
Syllabus
• Defining and executing functions
• Pictures
– Psychophysics, data structures, defining functions, for
loops, if conditionals
• Sounds
– Psychophysics, data structures, defining functions, for
loops, if conditionals
• Text
– Converting between media, generating HTML, “flattening”
media and saving to a database
• Movies
• Then, Computer Science
Computer science as a
solution to their problems
• Writing programs is hard! Are there ways to
make it easier or shorter?
– Functional programming and recursion
– Object-oriented programming
• Movie-manipulating programs take a long
time to execute. Why?
– Algorithmic complexity
• Why is PhotoShop so much faster?
– Compiling vs. interpreting
Assignments encourage
collaboration
• Homework are all collaborative
• Quizzes are preceded by nearlyidentical, collaborative pre-quizzes
• Two “take-home exams” (programming
assignments) are non-collaborative
Assignments encourage
creativity
• For several homework, the task is to
manipulate media in some way, but we don’t
care what media
– Creating a collage, building an animation
• Encouraging homework results to be posted
to CoWeb in galleries
• Purchasing Webcams to loan to students to
create their own media
These aren’t CMU CS
undergrads
• We’re realizing that these students are not
like the ones in the Fisher & Margolis class.
• Students who can get into CMU’s CS
program (often the “computer experts” in
their families and schools) are not the same
as non-CS and non-Engineering students at
Georgia Tech.
– “I type the command and nothing happens. The
Enter key?”
– “Do I need a Zip disk to unpack a zip file?”
Tying it back to student
goals and GVU
• Working with Jay Bolter (jay.bolter@lcc.gatech.edu)
and Diane Gromala’s new course LCC 3404e
Designing for the Internet
– Aimed at Freshmen and Sophomores
– Students learn to analyze and design Web sites
– Approach combines:
• Visual design principles
• Information architecture and HCI
• CS1315 teaches the students’ the technologies,
LCC3404e teaches them how to use the technology
to communicate.
Assessing the effort
• Comparing CS1321, COE1361, and CS1315
in terms of learning and motivation, broken
out by gender and major
• Observational study of student performance
to understand problems and strategies
• Interview study of impact on women
Summary
• CS Education is in a sorry state,
and fixing it is important to us and others
• Media Computation may be a useful context
to motivate student performance
• Our class is aimed at addressing the
challenges we’ve identified, and we’re trying
it now
Acknowledgements
• Course materials development: Jason Ergle,
Claire Bailey, David Raines, Joshua Sklare,
Adam Wilson, Andrea Forte, Mark Richman,
Matt Wallace, Alisa Bandlow.
• Assessment: Andrea Forte, Rachel Fithian,
Lauren Rich
• Thanks to Bob McMath and the Al West
Fund, to GVU and CoC, and the National
Science Foundation
For further information
• Course CoWeb:
http://coweb.cc.gatech.edu/cs1315
• Where we planned the course:
http://coweb.cc.gatech.edu/mediaComp
-plan
• guzdial@cc.gatech.edu
def chromakey(source,bg):
for x in range(1,getWidth(source)):
for y in range(1,getHeight(source)):
p = getPixel(source,x,y)
# My definition of blue: If the redness + greenness < blueness
if (getRed(p) + getGreen(p) < getBlue(p)):
#Then, grab the color at the same spot from the new background
setColor(p,getColor(getPixel(bg,x,y)))
return source
Download