Computing for Everyone: Improving Global Competitiveness and Understanding of Our World Mark Guzdial (School of) Interactive and Intelligent Computing (Division) College of Computing Georgia Tech Story Why Computing for Everyone What would computing for everyone be like? For a liberal education Understanding our world Becoming Versatilists To realize the potential of computing Can we do it? Georgia Tech as Proof-of-Concept The power of contextualized computing Creating a computing for everyone Impact beyond the classroom Would it work anywhere else? Computing for Everyone 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. Compare to Calculus: Calculus is about rates, and that’s important to many. Computer science is about process, which is important to everyone Computer Science is the study of Process and Representation What can we specify so well that a machine can execute our specification? If you understand something well, you can teach it to a machine—write a program to do it. How can we represent the world in the barest of stuff—bits, numbers? Digital media is about the realization that all media (sounds, images, video, text) can be encoded as numbers. Why Perlis sees Value in Computer Science Computer science knows about process. Processes can be better or worse, and improved. Processes can be proven correct—or incorrect. The specification of process changes other fields deeply. Perlis talks about computing changing economics. Scientific computing is the new third branch of science. Computing not for Computing’s Sake Computing is not about professional software development. Even CS faculty fall into this fallacy Computing is about learning more about process and representation, and using that knowledge. If we understanding something well, we can create an (executable) model of it. The model’s behavior should match the observable behavior. If it doesn’t, maybe we don’t understand it yet. Consider: Modeling Animal Behavior Mitchel Resnick Turtles, Termites, and Traffic Jams: Explorations in Massively Parallel Microworlds Process—Each turtle: Move randomly If you find food: Grab it, go home, dropping scent. If you find scent, turn towards the direction of the scent (follow gradient) Checking our Models Tucker Balch’s work: Using vision algorithms to detect and label animal behavior Not about professional software development Results are significant and useful whether the software is done in C++ or Java, or Squeak, Python, or Lisp. Computing for everyone is not about getting a job as a programmer. It’s about having technical concepts and skills that one can use in any career. What might we teach everyone about Computing? Programming is important. It’s how we get processes specified and executed. Standards of professional software development are not. The laws, limits, uses, and wonders of computing are the focus. Such as… There are programs that can’t be written, or if written, will never stop executing. That the line between “data” and “program” is permeable, and that’s how viruses attack. That information, once encoded in bits, can be mapped & re-interpreted to any form or medium. The need for Versatilists “The world ‘versatilist’ was coined by Gartner Inc., the technology consultants, to describe the trend in the information technology world away from specialization and toward employees who are more adaptable and versatile…Enterprises that focus on technical aptitude alone will fail to align workforce performance with business value.” --Thomas Friedman, The World is Flat (2005) Even at Microsoft, Need Versatilists “The nature of these jobs is not closing the door and coding,” (Bill) Gates said. “The great missing skill is somebody who’s good at understanding engineering and bridges that to working with customers and marketing…We can promise these people most of what they’re doing won’t be coding.” Gates worried over decline in US computer scientists, ComputerWorld, July 18, 2005 (by Elizabeth Montalbano) Understanding Our World We ask students to take Chemistry, Biology, and Physics The virtual world is part of our students’ worlds, too. To understand the world in which they live To learn the scientific method for learning about the world. Understanding computing is as important as understanding photosynthesis in our students’ daily lives. Forget the “Driving the Car” Analogy Cars amplify our muscles; Computers amplify our minds. Workhorses Plowing Mental Fields Computers are cognitive beasts of burden. Anything we can tell it to do, it will do. Over and over. Never getting bored, never making mistakes. Settling for today’s computer applications is like settling for only using horses for merchant wagons. “What would you farmers want to use a horse for?” Meeting the Potential of Computing D.W. Griffith vs. Thomas Edison Understanding technology for communications vs. Understanding technology The most significant uses of the computer will appear when the development of the technology leaves the hands of the technologists. That’s when the real work of professional software developers will begin. Could we teach everyone computing? We currently can’t keep our own CS majors Women and minority percentage of enrollment dropping High failure rates in CS1 (35-50% or more) Failure rates for non-CS majors significantly higher. Fewer applications into CS: “All programming jobs going overseas” Fewer Computer Science teachers Research results: “Tedious,” “boring,” “lacking creativity,” “asocial” Georgia Tech as a Proof-of-Concept In Fall 1999, started a requirement for computing. Only one course met the requirement. In Spring 2003, started offering three different introductory courses. Now: A Minor in CS A BS in Computational Media (joint between College of Computing and School of Literature, Culture, and Communications) In one year, over 100 CM majors (24% female) Our Three CS1’s CS1321 Introduction to Computing Traditional “CS1” for our CS majors, Science majors (math, physics, psychology, etc.). Was in Scheme, now in Python. CS1371 Computing for Engineers “CS1” for Engineers. Same CS topics as CS1321, but using MATLAB with Engineering problems in homework and examples. CS1315 Introduction to Media Computation CS1315 Introduction to Media Computation Goal: Make computing relevant, social, and creative Averaging 300 students/term since Spring 2003 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 calculations A Design Process for a Non-Majors Computing Course Set objectives 1. Retention and impact beyond class Choose a context 2. It shouldn’t be a bad math class Set up a feedback process 3. Students and faculty Define infrastructure 4. Pick your language Define the course 5. Concrete first From: Guzdial, M., & Forte, A. (2005). Design process for a non-majors computing course, Proceedings of the 36th SIGCSE technical symposium on Computer science education. St. Louis, Missouri, USA: ACM Press. Selecting Python as the programming language Significant issue: Non-CS faculty, who don’t program, but should choose for their students. Check Google: General opinion counts. Looks like other programming languages Potential for transfer Use in commercial contexts authenticates the choice IL&M, Google, Nextel, etc. def clearRed(picture): for pixel in getPixels(picture): setRed(pixel,0) def greyscale(picture): for p in getPixels(picture): red=getRed(p) green=getGreen(p) blue=getBlue(p) luminance=(red+blue+green)/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 Movies Then, Computer Science topics (last 1/3 class) Opposite order of traditional CS1’s Touching on the laws and wonders of Computing We talk about algorithms across media Sampling a picture (to scale it) is the same algorithm 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 Computer science topics as solutions to their problems “Why is PhotoShop so much faster?” “Movie-manipulating programs take a long time to execute. Why? How fast/slow can programs be?” Compiling vs. interpreting Machine language and how the computer works Algorithmic complexity “Writing programs is hard! Are there ways to make it easier? Or at least shorter?” Object-oriented programming Functional programming and recursion Results: Improved success rates Enrollment Success Rate Georgia Tech’s CS 1 2000 - 2002 (average) 930 71.2% Media Computation Spring 2003 120 90.0% Fall 2003 303 86.5% Spring 2004 395 86.9% Summer 2004 120 73.3% Fall 2004 366 80.3% Spring 2005 317 84.5% Since Spring 2004, the developers aren’t the teachers. We are getting transfers into the CS major. For traditional CS1, Sp2005 had 95 students, 70.0% success rate. Engineering CS1 Spring 2005: 833 students, 76% success rate. Results: More Engaged Students Q. What do you like best about this course? Survey responses (Sp03) suggest that students responded well to the context of media manipulation and creation. Course Don't like it/Nothing Enjoy Content Content is Useful Trad. CS1 18.2% 12.1% 0.0% Engin 12.9% 16.1% 25.8% Media Comp 0.0% 21.3% 12.4% Results: Wonderful Creativity Homework assignments were open-ended to create opportunities for creativity. Shared on-line in collaborative web space (CoWeb) 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.” Results: Testing our Design Goals 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? “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.” 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. “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.” “Other than making me a little more aware about what I can make the computer do, it hasn't changed the way I particular interact with technology. Yet I am uninterested in this field. However, I now have a MUCH better understanding of the people who are interested in this field, how they view things, and how to interact with them more easily. For this, I appreciate the CS class greatly.” Second course: CS1316 “Representing structure and behavior” Driving question: “How did the wildebeests stampede in The Lion King?” Spring 2005: 31 students, 75% female, 91% success rate. Similar Assignments, but with Objects and Agents More Projects from “Representing Structure and Behavior” Assignment: Create music by repeating and weaving nodes. Canon Swan Bells Simulating emigration to America from Europe Could it work anywhere else? Versions of Media Computation appearing at other institutions Gainesville College (2 year in Ga.) has been offering the course for almost two years. Just moved their major’s CS1 to Media Computation Denison University is first trial of our Java version. Half-dozen schools trying it this semester: http://coweb.cc.gatech.edu/mediaComp-teach Gainesville College Results Success rates at Gainesville College before and with Media Computation class. ENROLLMENT SUCCESS RATE 28 70.2% Summer 2003 9 77.8% Fall 2003 39 84.6% Spring 2004 22 77.3% Summer 2004 11 90.9% Gainesville’s CSCI 1100 Average 2000 – 2003 Media Computation From: Tew, A. E., Fowler, C., & Guzdial, M. (2005). Tracking an innovation in introductory cs education from a research university to a two-year college, Proceedings of the 36th SIGCSE technical symposium on Computer science education. St. Louis, Missouri, USA: ACM Press. “Would you like to take more courses in CS or Media Computation?” GEORGIA TECH GAINESVILLE CS Media Comp CS Media Comp Strongly Agree 4.1% 16.1% 6.2% 12.5% Agree 19.3% 26.5% 25.0% 37.5% Neutral 23.8% 23.3% 43.8% 18.8% Disagree 37.7% 22.9% 25.0% 25.0% Strongly 15.2% Disagree 11.2% 0.0% 6.2% Summary: Computing can be for Everyone Computing makes sense as part of a general, liberal education. But not the same computing as we teach CS majors. To compete in a “Flat World” To understand our world Different goals, different contexts. At Georgia Tech, we have been successful with a computing requirement for all. Media is just one context—there are others. Acknowledgements Faculty Collaborators: Barbara Ericson, Charles Fowler (Gainesville), Monica Sweat, Blair MacIntyre 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 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 for support (CISE EI and CCLIASA) Thank you! Mark Guzdial http://www.cc.gatech.edu/~mark.guzdial http://coweb.cc.gatech.edu/csl For more on MediaComp approach (including papers, software, and slides): http://coweb.cc.gatech.edu/mediacompplan