Media as a context for learning computation
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

Media as a context for learning computation

  • “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):





Media as a context for learning computation

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






Using your personal pictures
Using your personal pictures

And messin with them
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
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 ( 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:


Media as a context for learning computation

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