Post on 31-Dec-2015
description
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