media as a context for learning computation
Skip this Video
Download Presentation
Media as a Context for Learning Computation

Loading in 2 Seconds...

play fullscreen
1 / 34

Media as a Context for Learning Computation - PowerPoint PPT Presentation

  • Uploaded on

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Media as a Context for Learning Computation' - jared-mason

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
media as a context for learning computation

Media as a Context for Learning Computation

Mark Guzdial

College of Computing/GVU

  • 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
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
  • “Tedious,” “boring,” “lacking creativity,” “asocial”
  • CS culture seems most attractive to white males.
why should gvu care
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
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
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
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
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
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
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
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
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
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
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
Use a loop!Our first picture recipe


def decreaseRed(picture):

for p in getPixels(picture):



Used like this:

>>> file="/Users/guzdial/mediasources/barbara.jpg"

>>> picture=makePicture(file)

>>> show(picture)

>>> decreaseRed(picture)

>>> repaint(picture)

a sunset generating function
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
A Sunset-generation Function

def makeSunset(picture):

for p in getPixels(picture):






def clearRed(picture):

for pixel in getPixels(picture):


def greyscale(picture):

for p in getPixels(picture):





setColor(p, makeColor(luminance,luminance,luminance))

def negative(picture):

for px in getPixels(picture):






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
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
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
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
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
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
Tying it back to student goals and GVU
  • Working with Jay Bolter ([email protected]) 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
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
  • 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
  • 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
For further information
  • Course CoWeb:
  • Where we planned the course:
  • [email protected]

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


return source