340 likes | 426 Views
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
E N D
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 • 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.
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 original 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)
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 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)) 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)
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