Introduction to Media Computation: Inventing a new approach to computing education at Georgia Tech Mark Guzdial Associate Professor College of Computing/GVU Georgia Institute of Technology Computer Science Education is Facing Challenging Times Nationally Women and minority percentage of enrollment in CS dropping High failure rates in CS1 (35-50% or more) Fewer applications into CS (~20%) “All programming jobs going overseas” Research results: “Irrelevant,” “tedious,” “boring,” “lacking creativity,” “asocial” At a time when we recognize the critical role of IT in our economy, in all jobs Strategy: Make CS education ubiquitous Motivate non-CS students to care about computing. Create non-traditional courses, minors, and nontraditional paths into CS Reach out beyond Georgia Tech Make it relevant, social, and creative. Why should we focus on non-CS majors? Computer science is more important than Calculus In 1961, Alan Perlis argued that computer science should be part of a liberal education. Explicitly, he argued that all students should learn to program. Calculus is about rates, and that’s important to many. Computer science is about process, which is important to everyone CS1315 Introduction to Media Computation Started with 121 students in Spring 2003, and averaging 300/term since then 2/3 female in Spring 2003 MediaComp 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 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) Relevance through Data-first Computing 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. “Media Computation” works like that. Students do use their own pictures as starting points for manipulations. Starting in the second week of the course! Some students reversed sounds looking for hidden messages. Rough overview of Syllabus Defining and executing functions Pictures Sounds Psychophysics, data structures, defining functions, for loops, if conditionals Sampled sounds vs. synthesized, MP3 vs. MIDI Text Psychophysics, data structures, defining functions, for loops, if conditionals Bitmap vs. vector notations Converting between media, generating HTML, database, and networking Trees, hash tables Movies Then, Computer Science topics (last 1/3 class) Computer science topics as solutions to their problems “Writing programs is hard! Are there ways to make it easier? Or at least shorter?” “Movie-manipulating programs take a long time to execute. Why? How fast/slow can programs be?” Object-oriented programming Functional programming and recursion Algorithmic complexity “Why is PhotoShop so much faster?” Compiling vs. interpreting Machine language and how the computer works Does the class work? Success Rate In Spring 2003, 121 students (2/3 female), 3 drops Since Spring 2004, the developers aren’t the teachers Average GT’s CS1 60% of students surveyed at end of course say that they want a second course. These are non-majors, who have already fulfilled their requirement We are getting transfers into the CS major. Media Computation Spring 2003 88.5% Fall 2003 87.5% Spring 2004 90.5% 72.2% (2000-2002) Were Students Motivated and Engaged? Homework assignments suggest they were. Shared on-line in collaborative web space (CoWeb) Some students reported writing programs outside of class for fun. Example Student Work -Shared on the CoWeb Gallery Example Student Work -Shared on the CoWeb Gallery The author of this collage via IM as soon as she was done: “Well, I looked at last years’ collages, and I certainly can’t be beat.” Example student work - Movies and audio homework QuickTime™ and a Cinepak decompressor are needed to see this picture. Soup QuickTime™ and a Cinepak decompressor are needed to see this picture. Stephen Hawking Study-Abroad CS QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. QuickTime™ and a Cinepak decompressor are needed to see this picture. QuickTime™ and a TIFF (Uncompressed) decompressor are needed to see this picture. How did Women Respond to the Course? Did we make it: Relevant? Creative? Social? How did Women Respond to the Course? Did we make it: Relevant? “I dreaded CS, but ALL of the topics thus far have been applicable to my future career (& personal) plans—there isn't anything I don't like about this class!!!” Creative? Social? How did Women Respond to the Course? Did we make it: Relevant? Creative? “I just wish I had more time to play around with that and make neat effects. But JES 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.” Social? How did Women Respond to the Course? Did we make it: Relevant? Creative? Social? 20% of Spring 2003 students said “Collaboration” was best part of CS1315 “Actually, I think [collaboration] is one of the best things about this class. My roommate and I abided by all the rules... but we took full advantage of the collaboration. It was more just the ideas bouncing off each other. I don’t think this class would have been as much fun if I wasn’t able to collaborate.” On CoWeb use: “Yes, it’s not just about the class… people talk about anything, it’s a little bit more friendly than just here’s your assignment.” Following-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=305) students. 59 responses 11 (19%) had written a Python program on their own since the class had ended. 27% had edited media “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 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.” Next steps… A second course and an alternative path CS1316 Representing structure and behavior to be offered in Spring 2005 Essentially, data structures in a media context Context: How professional animators and computer musicians do their programming The two courses (CS1315 and CS1316) will be sufficient to take the rest of our traditional CS courses A CS minor now exists to support blending CS and other majors BoR just approved new BS in Computational Media Joint with School of Literature, Communication, and Culture Next steps… Moving beyond GT Versions of Media Computation appearing at other institutions Gainesville College (2 year in Ga.) has been offering the course for over a year. Kennesaw is considering adopting the course. University of Illinois at Chicago, U. California Santa Cruz, DePauw, Brandeis (in Scheme), Georgia Perimeter College and Dennison University (in Java) teaching their own versions using our materials. Gainesville College Results “Would you like to take more courses in CS or Media Computation?” Next steps… Applying the approach for high school teachers Used the Media Computation approach (in Java) with high school teachers in a two week workshop during Summer 2004. Materials developed by and course taught by Barbara Ericson Aimed at the Programming and Systems Management course Teachers did some of the same activities that we use with the undergrads, e.g., the Collage activity. Positive responses “This was the best (non-college credit) workshop I have ever taken!” 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, Rachel Fithian, Lauren Rich, Heather Perry, Ellie Harmon, Bob Amar, Rachel Knickmeyer, Allison Tew 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 Thank you! Mark Guzdial http://www.cc.gatech.edu/~mark.guzdial http://coweb.cc.gatech.edu/csl To get the CoWeb/Swiki software: http://minnow.cc.gatech.edu/swiki For more on course (including software and slides): http://coweb.cc.gatech.edu/mediacomp-plan