38
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

In Pursuit of Collaborative Dynbooks Mark Guzdial, [email protected]@cc.gatech.edu Story: –What are Dynabooks and why collaborative? –CoWeb/Swiki

Embed Size (px)

Citation preview

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 inComputer 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 “Photoshop-like” 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 Solutiondef 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 toolsORYou can learn a key set of tools, and a general set of principles and programming skills AND learn new tools easier