36
Media Computation as An Approach to Motivate and Retain Computing Students: Inventing a new approach to computing education at Georgia Tech Mark Guzdial School of Interactive Computing College of Computing Georgia Institute of Technology

Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Embed Size (px)

Citation preview

Page 1: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Media Computation as An Approach to Motivate and Retain

Computing Students: Inventing a new approach to

computing education at Georgia Tech

Mark GuzdialSchool of Interactive Computing

College of Computing

Georgia Institute of Technology

Page 2: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Story

Where have all the students gone?Teaching Computing for Everyone

First course: Introduction to Media Computation It’s about context What students do in it

Second course: Representing Structure and Behavior Using Disney’s Wildebeests and Villagers,

as a context for learning data structures Beyond the two courses: A path into CS

A context in our CS1 Applying contexts more broadly: Threads™

Page 3: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Where have all the students gone?

We’re losing students, at an increasing rate. Women and minority percentage of

enrollment dropping High failure rates in CS1 (35-50% or

more) Fewer applications into CS: “All

programming jobs going to Asia.” Research results: “Tedious,” “boring,”

“lacking creativity,” “asocial” All of this at a time when we recognize the

critical role of IT in our economy, in all jobs

Page 4: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Hypothesis: Economy (1st order) and Curriculum (2nd order)

Our computing curriculum has never been attractive. It is designed for the sole purpose of producing

software engineers. For years, software engineering was a

pathway to wealth (not just jobs) People will go through a lot for wealth.

Dot-com bust plus off-shoring =>it’s not about wealth. Recent uptick: “Google buys YouTube for $2B”

Page 5: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Strategy: Make CS education ubiquitous

Motivate students to care about the broad range of what is computing. Create contextualized courses, minors, and non-

traditional paths into CS Make it relevant, social, and creative.

By doing this, we give CS majors their reasons to be there, and discover new CS majors.

Page 6: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Our Three CS1’s

CS1301 Introduction to ComputingTraditional CS1 for our CS majors, Science majors (math, physics, psychology, etc.). Trialing this semester: All robotics.

CS1371 Computing for EngineersCS1 for Engineers. Same topics as CS1321, but using MATLAB with Engineering problems in homework and examples.

CS1315 Introduction to Media Computation

Page 7: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

What Georgia Tech TeachesCS1301Intro to

Programming in Python for CS

majors

CS1331CS1+2 in

Java

CS1332Data

Structures and

Algorithms in Java

CS1315 (Media Computation CS1 in Python)

CS1316 (Structure & Behavior—Multimedia data structures in Java)

CS1371(Computing forEngineering in MATLAB (only))

CS2110(Low-level programming in C)

CS2260: Media Device Architectures

CS1372Algorithm Design in C

Institute for Computing Education (ICE@GT) Summer Workshops for High School Teachers: Media Computation CS1 in Java

Page 8: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Media Computation: Teaching in a Relevant Context Presenting CS topics with

media projects and examples Iteration as creating negative

and grayscale images Indexing in a range as

removing redeye Algorithms for blending both

images and sounds Linked lists as song fragments

woven to make music Information encodings as

sound visualizations

Page 9: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Examples of Student Work

Soup-Audio Collage

Canon- LinkedList of (MIDI) Music

Page 10: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Overall Results Average CS1 success pre-MediaComp:

Average 72.8%In MediaComp (51% female): Average 84% (as high as 90%) Similar results at Gainesville, U.Ill-Chicago (76% => 91%),

ANU Specific majors more dramatic:

Management majors’s success rate 49% => 88% Students are excited, and becoming CS majors, CS

minors, CS teachers, and Computational Media majors (nearly 200, 25% female)

MediComp students succeed in traditional CS classes.

Page 11: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Student voices

Intro CS student (female): “I just wish I had more time to play around with that and make neat effects. But JES [IDE for class] will be on my computer forever, so… that’s the nice thing about this class is that you could go as deep into the homework as you wanted. So, I’d turn it in and then me and my roommate would do more after to see what we could do with it.”

High School teacher: “This was the best (non-college credit) workshop I have ever taken.”

Students in multimedia data structures: “Data structures is an important step. Use of media! It makes it fun.”

Page 12: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

CS1315 Introduction to Media Computation

Average 400/term Overall, CS1315 has been 51% female Required in Architecture, Management, Ivan Allen College

of Liberal Arts, and Biology

Focus: Learning programming and CS concepts within the context of media manipulation and creation Converting images to grayscale and negatives, splicing and

reversing sounds, writing programs to generate HTML, creating movies out of Web-accessed content.

Computing for communications, not calculation

Page 13: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

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

Page 14: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Rough overview of Syllabus for CS1315 (CS1)

Defining and executing functions Pictures

Psychophysics, data structures, defining functions, for loops, if conditionals

Bitmap vs. vector notations Sounds

Psychophysics, data structures, defining functions, for loops, if conditionals

Sampled sounds vs. synthesized, MP3 vs. MIDI Text

Converting between media, generating HTML, database, and networking

Trees, hash tables Movies Then, Computer Science topics (last 1/3 class)

Page 15: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Computer science inter-mixed We talk about algorithms

across media Sampling a picture (to scale it)

is the samealgorithm as sampling a sound (to shift frequency)

Blending two pictures (fading one into the other) and two sounds is the same algorithm.

We talk about representations and mappings (Goedel) From samples to numbers

(and into Excel), through a mapping to pixel colors

Page 16: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Computer science topicsas solutions to their problems

“Why is PhotoShop so much faster?” Compiling vs. interpreting Machine language and how the computer works

“Movie-manipulating programs take a long time to execute. Why? How fast/slow can programs be?” Algorithmic complexity

“Writing programs is hard! Are there ways to make it easier? Or at least shorter?” Object-oriented programming Functional programming and recursion

“What do other languages look like?” JavaScript introduction

Page 17: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Success Rates for Specific Majors

Success rates in traditional CS1 for students in various majors average Fall ’99 to Fall ’02, compared to Spring ’03 to Fall ’05 in Media Computation.

Page 18: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Example CollageCode

def hw3(): venice1=makePicture(getMediaPath("venice.jpg")) print venice1 venice2=makePicture(getMediaPath("venice.jpg")) print venice2 venice3=makePicture(getMediaPath("venice.jpg")) print venice3 venice4=makePicture(getMediaPath("venice.jpg")) print venice4 venice5=makePicture(getMediaPath("venice.jpg")) print venice5 venice6=makePicture(getMediaPath("venice.jpg")) print venice6 canvas=makeEmptyPicture(640,480) print canvas IncreaseRed(venice1) targetX=1 for sourceX in range(1,getWidth(venice1),3): targetY=1 for sourceY in range(1, getHeight(venice1),3): px=getPixel (venice1, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 IncreaseBlue(venice2) targetX=128 for sourceX in range(1, getWidth(venice2),3): targetY=96 for sourceY in range(1, getHeight(venice2),3): px=getPixel (venice2, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1

negative(venice3) targetX=1 for sourceX in range(1, getWidth(venice3),3): targetY=192 for sourceY in range(1, getHeight(venice3),3): px=getPixel (venice3, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 greyScaleNew(venice4) targetX=128 for sourceX in range(1, getWidth(venice4),3): targetY=288 for sourceY in range(1, getHeight(venice4),3): px=getPixel (venice4, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 IncreaseGreen(venice5) targetX=1 for sourceX in range(1, getWidth(venice5),3): targetY=384 for sourceY in range(1, getHeight(venice5),3): px=getPixel (venice5, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1

targetX=256 for sourceX in range(1, getWidth(venice6),3): targetY=192 for sourceY in range(1, getHeight(venice6),3): px=getPixel (venice6, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 mirrorVertical(canvas) show(canvas) return(canvas) def IncreaseRed (venice1): for pixel in getPixels(venice1): myred = getRed(pixel) setRed (pixel, myred * 1.5) def IncreaseBlue(venice2): for pixel in getPixels(venice2): myblue = getBlue(pixel) setBlue (pixel, myblue * 1.5) def IncreaseGreen(venice5): for pixel in getPixels(venice5): mygreen = getGreen(pixel) setGreen (pixel, mygreen * 1.5) def greyScaleNew(venice4): for px in getPixels(venice4): newRed = getRed(px) * 0.299 newGreen = getGreen(px) * 0.587 newBlue = getBlue(px) * 0.114 luminance = newRed+newGreen+newBlue setColor(px,makeColor(luminance,luminance,luminance)) …

Page 19: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Follow-up Survey:Did it have a lasting impact?

In Spring 2004, conducted an email survey with students from Spring 2003 (n=120) and Fall 2003 (n=303) students.

59 responses 11 (19%) had written a Python program on their

own since the class had ended. 27% had edited media that they hadn’t previously.

Page 20: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

“Did the class change how you interact with computers?”

20% said no. 80% said yes, but it was also more about changing

how they thought about computers. “Definitely makes me think of what is going on behind the scenes

of such programs like Photoshop and Illustrator.” 'I understand technological concepts more easily now; I am more

willing and able to experience new things with computers now’ 'I have learned more about the big picture behind computer

science and programming. This has helped me to figure out how to use programs that I've never used before, troubleshoot problems on my own computer, use programs that I was already familiar with in a more sophisticated way, and given me more confidence to try to problem solve, explore, and fix my computer.’

Page 21: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Second course: CS1316 “Representing structure and behavior”

Driving question: “How did the wildebeests stampede in The Lion King?”

31 students, 75% female, 91% success rate.

Page 22: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Connecting to the WildebeestsIt’s all about data structures

Page 23: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Rough Syllabus for CS1316

Weeks 1-4: Recreate media computation in Java (Images, sounds, turtles, MIDI).

Linked lists of MIDI. Goal: Creating flexible structures for design

Linked lists and trees of images. Scene graph as first tree.

Linked lists and trees of sampled sounds. Recursive traversals.

CanonSwan

Bells Fur Elise

Page 24: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Syllabus (continued) Generalized lists and trees. Graphical User Interfaces as

trees Layout managers as renderers

Continuous Simulations Predator-prey, disease

propagation UML (design notation) and

reuse

Mapping Simulations to Animation Finally! The wildebeests and

villagers Discrete Event Simulation

Stacks and queues are natural here

gal1-rightface.jpg gal1-

right2.jpg

gal1-right1.jpg

gal1-rightface.jpg

Page 25: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

HW2: Create a collage, but must use turtles

Page 26: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Steve Frederick Georgia Institute of Technology

Page 27: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Priya Harshini Georgia Institute of Technology

Page 28: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Steve Frederick Georgia Institute of Technology

Page 29: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Do the two semesters prepare students for a regular CS course?

- CS1322 was our previous CS2 for CS majors.

Success FailTOTAL

#

From 1321 (CS1 for CS) 78.1% 21.9% 333

From 1371 (From Engineering) 72.7% 27.3% 681

From 1316 (From CS1315) 60.0% 40.0% 20

Page 30: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

An alternative path, a minor, and a new degree

The two courses (Introduction to Media Computation and Representing Structure and Behavior) are now accepted as a valid path for CS students. Margolis and Fisher’s “alternative path”

Defined a CS minor Created new BS in Computational Media

Joint with School of Literature, Communications, and Culture

58 majors in first year, 24% femaleNearly 200 majors today, still about ¼ female

Page 31: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

A Context for CS1 for CS majors: Robotics Microsoft Research has funded the

Institute for Personal Robotics in Education Tucker Balch, Directing

Monica Sweat developing GT’s CS1

Joint between Bryn Mawr and Georgia Tech

http://www.roboteducation.org Goal is to develop a CS1 and CS2

with robotics as the context. HW2: Recursively follow a light CS2: Add a camera

Page 32: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Developing Threads™: Carrying Context to the Degree Level

A new conceptualization for an undergraduate degree.

We defined 8 “Threads” which together define Computing: Computing and Media, People, Platforms, Computational

Modeling, Information Internetworking, Intelligence, Embodiment, and Foundations

The courses within each are “core” CS (some), advanced/new CS, and some non-CS (e.g., Psychology in People Thread)

Page 33: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Threads™ as a Degree Our BS in Computer Science is defined as any two

Threads. 28 possible paths to a degree now.

Advantages: Clearly says what CS is. It isn’t just programming. Clear differentiator for students.

It’s not just India’s or China’s CS Explains why students take any particular course

Consider the possibilities if all degrees were Threaded. Interdisciplinary degrees became easier and more

interesting.

Page 34: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Summary It is time to fix the curriculum of Computer Science.

CS for everyone is a useful goal.

Media Computation is a powerful context to motivate student retention and learning. Our two courses having an impact on recruitment and

retention.

Bottom line: Context is a win. Media is a great context. We’re trying robotics next. Could be biology/bioinformatics, Facebook graphs, etc.

Page 35: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Acknowledgements Faculty Collaborators: Barbara Ericson, Charles Fowler

(Gainesville) Course Materials Development: Adam Wilson, Jason Ergle,

Claire Bailey, David Raines, Joshua Sklare, Mark Richman, Matt Wallace, Alisa Bandlow, Ellie Harmon, Yu Cheung Ho, Keith McDermott, Eric Mickley, Larry Olson, Lauren Biddle

Assessment: Andrea Forte, Allison Tew, Rachel Fithian, Lauren Rich, Heather Perry, Ellie Harmon, Bob Amar, Rachel Knickmeyer, Allison Tew, Lana Yarosh

Thanks to Bob McMath and the Al West Fund, to GVU and CoC, to the students who participated in our evaluation, and to the National Science Foundation

Page 36: Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial

Thank you!

Mark Guzdialhttp://www.cc.gatech.edu/~mark.guzdialhttp://coweb.cc.gatech.edu/csl

For more on MediaComp approach (including papers, software, and slides):

http://coweb.cc.gatech.edu/mediaComp-plan

Media Computation Teachers’ Site:http://coweb.cc.gatech.edu/mediaComp-teach