Media as a Context for Learning Computation

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Media as a Context for Media as a Context for Learning ComputationLearning ComputationMedia as a Context for Media as a Context for Learning ComputationLearning Computation

Mark GuzdialMark Guzdial

College of Computing/GVUCollege 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 SAT avg(combined)

Female 38 1342

Male 303 1371

African-American

15 1349

Hispanic 2 1350

Caucasian 233 1379

Total 341 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)

Used like this:>>> file="/Users/guzdial/mediasources/barbara.jpg">>> picture=makePicture(file)>>> show(picture)>>> decreaseRed(picture)>>> repaint(picture)

original

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 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)

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))

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 nearly-identical, 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

Recommended