In Pursuit of Collaborative Dynbooks • Mark Guzdial, [email protected] • Story: – What are Dynabooks and why collaborative? – CoWeb/Swiki and a finding – “Introduction to Media.

Download Report

Transcript In Pursuit of Collaborative Dynbooks • Mark Guzdial, [email protected] • Story: – What are Dynabooks and why collaborative? – CoWeb/Swiki and a finding – “Introduction to Media.

In Pursuit of Collaborative
Dynbooks
• Mark Guzdial, [email protected]
• Story:
– What are Dynabooks and why
collaborative?
– CoWeb/Swiki and a finding
– “Introduction to Media Computation” to
push on media composition
Alan Kay’s Dynabook
(1972)
• Alan Kay sees the Computer as Man’s first metamedium
– A medium that can represent any other media: Animation,
graphics, sound, photography, etc.
– Programming is yet another medium
• The Dynabook is a (yet mythical?) computer for creative
metamedia exploration and reading
– Handheld, wireless network connection
– Writing (typing), drawing and painting, sound recording,
music composition and synthesis
– End-user programming
Prototype Dynabook
(Xerox PARC Learning Research
Group)
• The Dynabook offered a
new way to learn new
kinds of things and a
better way of learning
older things
– Learning through
creating and exploring
media
– Knowledge representation
(Papert, 1980)
– Programming (Kay &
Goldberg, 1977)
Consider the Dynabook
• Early-1970’s were at the start of the
“Cognitive Revolution”
• Now that we know what we know about
learning, do we think that Alan is right?
– Will people learn with a Dynabook?
– Will it be useful in helping people learn
what they want to learn?
Do people learn from
creating media?
• Yes, more than simply watching media
– Children building educational software for other kids learn
fractions and science (Harel, 1988; Kafai & Harel, 1990)
– Students building multimedia end up with higher grades
(Hay et al., 1994)
• “Multimedia literacy” may be a component of
expertise
– For example, expert chemists constantly shift between
media and representations (Kozma et al., 1996)
How well do people learn
programming?
• Really, really badly
• Freshmen and Sophomores at Yale couldn’t handle
error conditions in loops in 1982 (Soloway et al.)
• Freshmen and Sophomores in 3 countries and 4
institutions can’t build calculators in 2001
(McCracken et al., 2001)
• Failure/withdrawl rate in CS1 is double-digits in most
institutions
– Percentage of women and minorities in CS is falling
The role of collaboration
• We are social beings
– An audience/critic/colleague
motivates/inspires/drives us
• Constructionism: Building a public representation of
one’s knowledge facilitates learning (Papert, 1991;
Resnick, Bruckman, Martin, 1996)
• Collaboration can even help with learning
programming
– MOOSE Crossing (Bruckman, 1997)
– Harel and Kafai studies
Our Goal:
Collaborative Dynabooks
Hypothesis:
Collaboratively creating and
exploring multimedia facilitates
learning
Collaborative Dynabooks
• Current work:
– CoWeb: Collaborative Websites
– Used to support learning, collaboration, and even
collaborative multimedia in over 100 classes
– Empirical research on learning, collaboration, and cost
• Where we’re going:
– Multimedia composition for CS Education:
“Introduction to Media Composition”
CoWeb:
Collaborative Websites
• Based on Ward Cunningham’s
WikiWiki Web
– Hence it’s “other” name: Squeak Wiki
-> Swiki
• Simple system:
– It’s a website
– Where any user can edit any page
(caveat “locks”)
– And any user can create new pages
In English Composition:
Collaborative “Close Reading”
Add asterisks for a
discussion
Does this help with
learning?
• Compared two composition classes (each
taught by Lissa Holloway-Attaway)
– One used the CoWeb (n=24)
– Other used existing tools (n=25)
• Benefits in learning (statistically significant)
– CoWeb students wrote better final essays
– CoWeb students had better attitudes toward
collaboration
And at a low cost!
• Students, teachers, and system
administrators all kept diaries of time
spent for class
– CoWeb students spent less time than
comparison class
– Teachers spent no extra time per week
– System administrators spent less than 1
hour per term supporting CoWeb
Why multimedia composition in
Computer Science?
• AAUW report:
CS classes tend to be
overly technical, with
little opportunity for
creativity
• Echoed in recent
SIGCSE papers and
Unlocking the
Clubhouse
CS1315 “Introduction to
Media Computation”
• A new course to meet the “Computing
General Literacy” requirement
– Georgia Tech requirement of Computing for every
major
– Only one class currently meets that need:
CS1321 Introduction to Computing
• Currently the most reviled class on campus
• Why? We’re aiming at meeting our students’ needs, but
maybe not everyone’s.
The Argument:
Computation for Communication
• All media are going digital
• Digital media are manipulated with software
• You are limited in your communication by
what your software allows
– What if you want to say something that Microsoft
or Adobe or Apple doesn’t let you say?
• Programming is now a communications skill
It’s still computer science
• For example, all the “under the hood”
standard data structures are there still:
– Sounds are arrays of samples
– Pictures are matrices of pixels
– Movies are arrays of pictures!
• Complexity: Why do movies process
slower than sounds or pictures?
– O(n^3) > O(n^2)>O(n)
Example: Opening a
Picture
fp=pickAFile()
p=makePicture(fp)
show(p)
Example: A “Photoshoplike” filter
def decreaseRed(pic):
for x in getPixels(pic):
setRed(x, 0.95 *
getRed(x))
Before
After
(twice)
Chromakey
• It’s what weather
people do
• Pose in front of a
blue screen
• Swap all “blue” for
the background
Example Solution
def chromakey2(source,bg):
for p in getPixels(source):
if (getRed(p)+getGreen(p) < getBlue(p)):
setColor(p,
getColor(getPixel(bg,
getX(p),getY(p))))
return source
Another way of saying
the same thing
def chromakey(source,bg):
# source should have something in front of blue, bg is the new
background
for x in range(1,source.getWidth()):
for y in range(1,source.getHeight()):
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
Summary
• We’ve been exploring collaboration and
show some neat benefits
• Now we’re pushing on the media part of
the Dynabook vision
– Lots of research to do: Collaboration here,
motivation effects, how much do students
learn?
Example: Background
Subtraction
• Let’s say that you
want to build a
picture of your
daughter on the
moon.
• Take a picture of her
against the wall,
then just the wall.
Example Solution
• For each pixel (dot) in the picture
– Get the pixel in the picture
– Get the pixel in the frame (without the
kid)
– Are the colors pretty darn close?
• Must be where the kid ISN’T, so grab
the picture of the moon
Example code
#Picture with person, background, and
newbackground
def swapbg(pic1, bg, newbg):
for x in range(1, getWidth(pic1)):
for y in range(1, getHeight(pic1)):
p1px = getPixel(pic1,x,y)
bgpx = getPixel(bg,x,y)
if (distance(getColor(p1px),getColor(bgpx)) < 15.0):
setColor(p1px,getColor(getPixel(newbg,x,y)))
return pic1
Why doesn’t it look
better?
• Can you figure out where the light
source was?
• The colors on the shirt and the
colors of the wall were awfully
similar
Better Final Essay
Performance
Overall: More concrete, better references, more authoritative
Attitudes toward
Collaboration
Average scores. All p<0.05
(1=strongly agree, 5=strongly disagree)
Programming is a
communications skill
• If you want to say something that your tools don’t
allow, program it yourself
• If you want to understand what your tools can or
cannot do, you should understand what the
programs are doing
• If you care about preparing media for the Web, for
marketing, for print, for broadcast… then it’s worth
your while to understand how the media are
manipulated.
• PROGRAMMING KNOWLEDGE = FREEDOM
What’s computation good
for
• Computer science is the study of recipes
• Computer scientists study…
– How the recipes are written (algorithms, software
engineering)
– The units used in the recipes (data structures,
databases)
– What can recipes be written for (systems,
intelligent systems, theory)
– How well the recipes work (human-computer
interfaces)
Specialized Recipes
• Some people specialize in crepes or
barbeque
• Computer scientists can also specialize on
special kinds of recipes
– Recipes that create pictures, sounds, movies,
animations (graphics, computer music)
• Still others look at emergent properties of
computer “recipes”
– What happens when lots of recipes talk to one
another (networking, non-linear systems)
KEY: The COMPUTER
does the recipe!
• Make it as hard, tedious, complex as you
want!
• Crank through a million genomes? No
problem!
• Find one person in a 30,000 campus? Yawn!
• Process a million dots on the screen or a
bazillion sound samples…MEDIA
COMPUTATION!
Why should you need to
study “recipes”?
• To understand better the recipe-way of
thinking
– It’s influencing everything, from computational
science to bioinformatics
– Eventually, it’s going to become part of everyone’s
notion of a liberal education
• To work with and manage computer
scientists
• AND…to communicate!
– Writers, marketers, producers communicate
through computation
“But PhotoShop is great!”
• Okay, but so are ProAudio Tools,
ImageMagick and the GIMP, and Java and
Visual Basic
• You can learn lots of tools
OR
You can learn a key set of tools, and a
general set of principles and programming
skills AND learn new tools easier