Title: Media as a Context for Learning Computation
1Media as a Context for Learning Computation
- Mark Guzdial
- College of Computing/GVU
2Story
- Computer science education is in a sorry state
- Thats a serious problem for GVU
- The challenges we need to face
- The argument for a course in digital media
- Description of the course thats on-going now
3Computer 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, were below the average
4Why?
- Tedious, boring, lacking creativity,
asocial - CS culture seems most attractive to white males.
5CS 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
6Why 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 Kays vision of the computer, the
Dynabook, programming itself is a medium
7The 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 cant 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
didnt.
8Why 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 thats important to
many. - Computer science is about process, which is
important to everyone
9The 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 thats not getting communicated
10Our 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 semesters CS1315
- Focus Learning programming within the context of
media manipulation and creation
11Motivating 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.
12Programming as a Communications Skill
- Knowing how to program means to understand ones
tools. - Maybe means can transfer tool skills more easily
- Students already telling us that theyre excited
to learn how PhotoShop works. - And it means that, if you have to, you may be
able to grow your own
13Programming 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
14Python as the programming language
- Huge issue
- Use in commercial contexts authenticates the
choice - ILM, Google, Nextel, etc.
- Minimal syntax
- Looks like other programming languages
- Potential for transfer
15How the class was developed
- Created in response to recent unpleasantness
- On-line surveys, meetings with students
- Inspired in part by ECEs DSP First
- Developed with an advisory board from across
campus Psych, HPS, Math, ECE, CETL - Trialed in faculty workshop in mid-December
16Course 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
17Use a loop!Our first picture recipe
original
def decreaseRed(picture) for p in
getPixels(picture) valuegetRed(p)
setRed(p,value0.5)
Used like this gtgtgt file"/Users/guzdial/mediasour
ces/barbara.jpg" gtgtgt picturemakePicture(file) gtgtgt
show(picture) gtgtgt decreaseRed(picture) gtgtgt
repaint(picture)
18A 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.
19A Sunset-generation Function
def makeSunset(picture) for p in
getPixels(picture) valuegetBlue(p)
setBlue(p,value0.7) valuegetGreen(p)
setGreen(p,value0.7)
20def clearRed(picture) for pixel in
getPixels(picture) setRed(pixel,0)
def greyscale(picture) for p in
getPixels(picture) rednessgetRed(p)
greennessgetGreen(p) bluenessgetBlue(p)
luminance(rednessbluenessgreenness)/3
setColor(p, makeColor(luminance,luminance,
luminance))
def negative(picture) for px in
getPixels(picture) redgetRed(px)
greengetGreen(px) bluegetBlue(px)
negColormakeColor(255-red,255-green,255-blue)
setColor(px,negColor)
21Using your personal pictures
22And messin with them
23Data-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.
24Rough 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
25Computer 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
26Assignments encourage collaboration
- Homework are all collaborative
- Quizzes are preceded by nearly-identical,
collaborative pre-quizzes - Two take-home exams (programming assignments)
are non-collaborative
27Assignments encourage creativity
- For several homework, the task is to manipulate
media in some way, but we dont 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
28These arent CMU CS undergrads
- Were realizing that these students are not like
the ones in the Fisher Margolis class. - Students who can get into CMUs 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?
29Tying it back to student goals and GVU
- Working with Jay Bolter (jay.bolter_at_lcc.gatech.edu
) and Diane Gromalas 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.
30Assessing 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
31Summary
- 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
weve identified, and were trying it now
32Acknowledgements
- 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
33For further information
- Course CoWeb http//coweb.cc.gatech.edu/cs1315
- Where we planned the coursehttp//coweb.cc.gatec
h.edu/mediaComp-plan - guzdial_at_cc.gatech.edu
34def 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 lt blueness
if (getRed(p) getGreen(p) lt getBlue(p))
Then, grab the color at the same spot from the
new background setColor(p,getColor(getPixe
l(bg,x,y))) return source