IntroToMediaComp-OhioState-Nov04 - Coweb

advertisement
Constructing Media as a Context for
Teaching Computing and
Motivating Women and Non-Majors:
Inventing a new approach to
computing education at Georgia Tech
Mark Guzdial
Associate Professor
College of Computing/GVU
Georgia Institute of Technology
Story

Why should we care about teaching computer
science to non-CS majors?


Our course: Introduction to Media Computation





Alan Perlis’ challenge to the field
It’s about context
How we built it
What students do in it
 The role of collaboration
Initial evaluation
Next steps


Beyond the course: A path into CS
Beyond Georgia Tech and undergrads
Computer Science Education
is Facing Challenging Times

Nationally



Women and minority percentage of
enrollment in CS dropping
High failure rates in CS1 (35-50% or more)
Fewer applications into CS (~20%)



“All programming jobs going overseas”
Research results: “Irrelevant,” “tedious,”
“boring,” “lacking creativity,” “asocial”
At a time when we recognize the critical
role of IT in our economy, in all jobs
“Preaching to the Choir”
Strategy:
Make CS education ubiquitous

Motivate non-CS students to care about
computing.



Create non-traditional courses, minors, and nontraditional paths into CS
Reach out beyond Georgia Tech
Make it relevant, social, and creative.
Why should we focus on non-CS majors?
Computer science is more important than
Calculus

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.
Calculus is about rates, and
that’s important to many.
Computer science is about
process, which is important
to everyone
The best uses for computing
technologies will come from others

Thomas Edison vs. D.W. Griffith


If we want computing technologies to become
useful, they have to get out of our hands.


Suggestion: D.W. Griffith knew things that Edison didn’t.
Innovation with computing can’t be just through
applications.
Computer science will never have the potential
that it might, if future practitioners hate our
introductory course!
CS1315 Introduction to Media
Computation

Started with 121 students in Spring 2003,
and averaging 300/term since then



2/3 female in Spring 2003 MediaComp
 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


Converting images to grayscale and negatives, splicing and
reversing sounds, writing programs to generate HTML,
creating movies out of Web-accessed content.
Computing for communications, not calculation
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)
Issues in selecting Python as
the programming language

Significant issue: Non-CS
faculty, who don’t program, but
choosing for their students.

Use in commercial contexts
authenticates the choice
 IL&M, Google, Nextel, etc.

Looks like other programming
languages
 Potential for transfer
Relevance through Data-first
Computing


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.
“Media Computation” works like
that.
 Students do use their own
pictures as starting points for
manipulations.


Starting in the second
week of the course!
Some students reversed
sounds looking for hidden
messages.
Rough overview of Syllabus


Defining and executing functions
Pictures



Sounds





Psychophysics, data structures, defining functions, for
loops, if conditionals
Sampled sounds vs. synthesized, MP3 vs. MIDI
Text


Psychophysics, data structures, defining functions, for
loops, if conditionals
Bitmap vs. vector notations
Converting between media, generating HTML, database,
and networking
Trees, hash tables
Movies
Then, Computer Science topics (last 1/3 class)
Computer science inter-mixed

We talk about algorithms
across media



Sampling a picture (to scale it)
is the same
algorithm as sampling a sound
(to shift frequency)
Blending two pictures (fading
one into the other) and two
sounds is the same algorithm.
We talk about representations
and mappings (Goedel)

From samples to numbers
(and into Excel), through a
mapping to pixel colors
Computer science topics
as solutions to their problems

“Why is PhotoShop so much faster?”



“Movie-manipulating programs take a long time to
execute. Why? How fast/slow can programs be?”


Compiling vs. interpreting
Machine language and how the computer works
Algorithmic complexity
“Writing programs is hard! Are there ways to make it
easier? Or at least shorter?”


Object-oriented programming
Functional programming and recursion
Liberal collaboration policy



On 6 homeworks, any
collaboration allowed.
Collaborative “pre-quizzes” before
each quiz
CoWeb (Collaborative Website)
created social context for class.



Q&A like on a newsgroup
Exam reviews
Posting completed media for
sharing.
http://coweb.cc.gatech.edu/cs1315
CoWeb: Collaborative Websites

Based on Ward Cunningham’s
WikiWiki Web

Hence it’s “other” name: Squeak
Wiki -> Swiki
http://minnow.cc.gatech.edu/swiki

Simple system:



It’s a website
Where any user can edit any page
(caveat “locks”)
And any user can create new
pages
Using the CoWeb
Does the class work?
Success
Rate




In Spring 2003, 121 students
(2/3 female),
3 drops
Since Spring 2004, the
developers aren’t the teachers
Average
GT’s CS1
60% of students surveyed at
end of course say that they
want a second course.
 These are non-majors, who
have already fulfilled their
requirement
We are getting transfers into
the CS major.
Media
Computation
Spring 2003
90.0%
Fall 2003
86.5%
Spring 2004
89.9%
71.2%
(2000-2002)
Were Students Motivated and
Engaged?
Q. What do you like best about this
course?
Survey responses
(Sp03) suggest that
students responded
well to the context of
media manipulation
and creation.
Course
Don't like
it/Nothing
Enjoy
Content
Content
is
Useful
Trad.
CS1
18.2%
12.1%
0.0%
Engin
12.9%
16.1%
25.8%
Media
Comp
0.0%
21.3%
12.4%
Were Students Motivated and
Engaged?

Homework
assignments
suggest they were.


Shared on-line in
collaborative web
space (CoWeb)
Some students
reported writing
programs outside of
class for fun.
Example Student Work
-Shared on the CoWeb Gallery
Example Student Work
-Shared on the CoWeb Gallery
The author of this collage via
IM as soon as she was
done: “Well, I looked at last
years’ collages, and I
certainly can’t be beat.”
Example student work
- Movies and audio homework
Soup
Stephen Hawking
Study-Abroad
CS
HW3: Collage
def hw3():
venice1=makePicture(getMediaPath("venice.jpg"))
print venice1
venice2=makePicture(getMediaPath("venice.jpg"))
print venice2
venice3=makePicture(getMediaPath("venice.jpg"))
print venice3
venice4=makePicture(getMediaPath("venice.jpg"))
print venice4
venice5=makePicture(getMediaPath("venice.jpg"))
print venice5
venice6=makePicture(getMediaPath("venice.jpg"))
print venice6
canvas=makeEmptyPicture(640,480)
print canvas
IncreaseRed(venice1)
targetX=1
for sourceX in range(1,getWidth(venice1),3):
targetY=1
for sourceY in range(1, getHeight(venice1),3):
px=getPixel (venice1, sourceX, sourceY)
cx=getPixel (canvas, targetX, targetY)
setColor(cx,getColor(px))
targetY=targetY +1
targetX=targetX +1
IncreaseBlue(venice2)
targetX=128
for sourceX in range(1, getWidth(venice2),3):
targetY=96
for sourceY in range(1, getHeight(venice2),3):
px=getPixel (venice2, sourceX, sourceY)
cx=getPixel (canvas, targetX, targetY)
setColor(cx,getColor(px))
targetY=targetY +1
targetX=targetX +1
negative(venice3)
targetX=1
for sourceX in range(1, getWidth(venice3),3):
targetY=192
for sourceY in range(1, getHeight(venice3),3):
px=getPixel (venice3, sourceX, sourceY)
cx=getPixel (canvas, targetX, targetY)
setColor(cx,getColor(px))
targetY=targetY +1
targetX=targetX +1
greyScaleNew(venice4)
targetX=128
for sourceX in range(1, getWidth(venice4),3):
targetY=288
for sourceY in range(1, getHeight(venice4),3):
px=getPixel (venice4, sourceX, sourceY)
cx=getPixel (canvas, targetX, targetY)
setColor(cx,getColor(px))
targetY=targetY +1
targetX=targetX +1
IncreaseGreen(venice5)
targetX=1
for sourceX in range(1, getWidth(venice5),3):
targetY=384
for sourceY in range(1, getHeight(venice5),3):
px=getPixel (venice5, sourceX, sourceY)
cx=getPixel (canvas, targetX, targetY)
setColor(cx,getColor(px))
targetY=targetY +1
targetX=targetX +1
targetX=256
for sourceX in range(1, getWidth(venice6),3):
targetY=192
for sourceY in range(1, getHeight(venice6),3):
px=getPixel (venice6, sourceX, sourceY)
cx=getPixel (canvas, targetX, targetY)
setColor(cx,getColor(px))
targetY=targetY +1
targetX=targetX +1
mirrorVertical(canvas)
show(canvas)
return(canvas)
def IncreaseRed (venice1):
for pixel in getPixels(venice1):
myred = getRed(pixel)
setRed (pixel, myred * 1.5)
def IncreaseBlue(venice2):
for pixel in getPixels(venice2):
myblue = getBlue(pixel)
setBlue (pixel, myblue * 1.5)
def IncreaseGreen(venice5):
for pixel in getPixels(venice5):
mygreen = getGreen(pixel)
setGreen (pixel, mygreen * 1.5)
def greyScaleNew(venice4):
for px in getPixels(venice4):
newRed = getRed(px) * 0.299
newGreen = getGreen(px) * 0.587
newBlue = getBlue(px) * 0.114
luminance = newRed+newGreen+newBlue
setColor(px,makeColor(luminance,luminance,luminance))
…
How did Women Respond to
the Course?

Did we make it:



Relevant?
Creative?
Social?
How did Women Respond to
the Course?

Did we make it:



Relevant?
“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!!!”
Creative?
Social?
How did Women Respond to
the Course?

Did we make it:



Relevant?
Creative?
“I just wish I had more time to play around with that and
make neat effects. But JES 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.”
Social?
How did Women Respond to
the Course?

Did we make it:



Relevant?
Creative?
Social?
20% of Spring 2003 students said
“Collaboration” was best part of
CS1315
“Actually, I think [collaboration] is one of the best things
about this class. My roommate and I abided by all the
rules... but we took full advantage of the collaboration. It
was more just the ideas bouncing off each other. I don’t
think this class would have been as much fun if I wasn’t
able to collaborate.”
On CoWeb use: “Yes, it’s not just about the class…
people talk about anything, it’s a little bit more friendly
than just here’s your assignment.”
Following-up Survey:
Did it have a lasting impact?


In Spring 2004, conducted an email survey
with students from Spring 2003 (n=120) and
Fall 2003 (n=303) students.
59 responses


11 (19%) had written a Python program on their
own since the class had ended.
27% had edited media that they hadn’t previously.
“Did the class change how you
interact with computers?”


20% said no.
80% said yes, but it was also more about changing
how they thought about computers.

“Definitely makes me think of what is going on behind the scenes
of such programs like Photoshop and Illustrator.”

“Other than making me a little more aware about what I can
make the computer do, it hasn't changed the way I particular
interact with technology. Yet I am uninterested in this field.
However, I now have a MUCH better understanding of the people
who are interested in this field, how they view things, and how to
interact with them more easily. For this, I appreciate the CS
class greatly.”
Next steps…
A second course


CS1316 “Representing
structure and behavior”
to be offered in Spring
2005
Driving question: “How
did the wildebeests
stampede in The Lion
King?”
Multimedia data structures

Present a standard (ACM/IEEE
CC2001) CS2, but still in a
media context

Professional media
manipulation represents
structure


Tree of music parts, scene
graphs
If we represent behavior, too,
can make stampedes (Lion
King) and villagers
(Hunchback) by simply filming
the simulation.

Discrete event simulation’s
event queue is a place where
sorting is natural in a media
context.
First posting to CS1316
CoWeb

(34 students enrolled, 75% female)
I'm really excited to be in the class,
although it's kinda funny since I don't
have to take it. Programming is fun, and
if that makes me weird, then I'm weird.
Next steps…
An alternative path and a minor

The two courses (Introduction to Media
Computation and Representing Structure and
Behavior) will become a pre-req to our
traditional second course.




Margolis and Fisher’s “alternative path”
We are now getting transfers into the CS major
Defined a CS minor
Created new BS in Computational Media


Joint with School of Literature, Communications,
and Culture
40 majors in first semester
Next steps…
Moving beyond GT

Versions of Media Computation appearing at
other institutions

Gainesville College (2 year in Ga.) has been
offering the course for over a year.



Just moved their major’s CS1 to Media Computation
Denison University is first trial of our Java
version.
University of Illinois at Chicago, U. California
Santa Cruz, DePauw, Brandeis (in Scheme),
Georgia Perimeter College and University of
Maryland at College Park (in Java) teaching their
own versions (using our materials).
Gainesville College Results
Success rates at Gainesville College before
and with Media Computation class.
ENROLLMENT
SUCCESS RATE
28
70.2%
Summer 2003
9
77.8%
Fall 2003
39
84.6%
Spring 2004
22
77.3%
Summer 2004
11
90.9%
Gainesville’s CSCI 1100
Average 2000 – 2003
Media Computation
“Would you like to take more courses
in CS or Media Computation?”
GEORGI A TECH
CS
Media Comp
GAINESVIL LE
CS
Media Comp
Strongly
Agree
Agree
4.1%
16.1%
6.2%
12.5%
19.3%
26.5%
25.0%
37.5%
Neutral
23.8%
23.3%
43.8%
18.8%
Disagree
Strongly
Disagree
37.7%
22.9%
25.0%
25.0%
15.2%
11.2%
0.0%
6.2%
Next steps…
Applying the approach for high school
teachers

Used the Media Computation approach (in Java)
with high school teachers in a two week workshop
during Summer 2004.




Materials developed by and course taught by Barbara
Ericson
Aimed at the Programming and Systems Management
course
Teachers did some of the same activities that we
use with the undergrads, e.g., the Collage activity.
Positive responses

“This was the best (non-college credit) workshop I have
ever taken!”
Towards a discipline of
Computing Education

Computing Education (like MathEd or
ScienceEd)



The study of how people understand and reason
about computational devices and processes, and
how we can improve that understanding.
Can we finally learn why some get
programming when so many do not?
What are the implications of everyone
learning Computing?
Summary


CS Education is in a sorry state,
and fixing it is important to us and others
Media Computation seems to be a useful context to
motivate student retention and learning.



Just started on evaluation: learning assessment, impact of
collaborative policies on student motivation, impact on long
term choices about CS learning
Bottom line: Context is a win.
Broad implications for computing as part of a
general, liberal education.
Acknowledgements




Faculty Collaborators: Barbara Ericson, Charles Fowler
(Gainesville)
Course Materials Development: Adam Wilson, Jason Ergle,
Claire Bailey, David Raines, Joshua Sklare, Mark Richman, Matt
Wallace, Alisa Bandlow, Ellie Harmon, Yu Cheung Ho, Keith
McDermott, Eric Mickley, Larry Olson, Lauren Biddle
Assessment: Andrea Forte, Rachel Fithian, Lauren Rich,
Heather Perry, Ellie Harmon, Bob Amar, Rachel Knickmeyer,
Allison Tew
Thanks to Bob McMath and the Al West Fund, to GVU and CoC,
to the students who participated in our evaluation, and to the
National Science Foundation
Thank you!
Mark Guzdial
http://www.cc.gatech.edu/~mark.guzdial
http://coweb.cc.gatech.edu/csl
To get the CoWeb/Swiki software:
http://minnow.cc.gatech.edu/swiki
For more on MediaComp approach
(including software and slides):
http://coweb.cc.gatech.edu/mediacompplan
Download