Design Process for a NonMajors Computing Course Mark Guzdial & Andrea Forte College of Computing/GVU Georgia Institute of Technology With thanks for support to NSF CCLI and CISE EI, College of Computing/GVU Story Aiming for computing for all: Addressing low success rates and student/faculty disinterest Definition of success: Improved success, long-term impact Our design process: Objectives, context, feedback, infrastructure, then course. Follow-up study Aiming for Ubiquitous Computing Education All Georgia Tech undergrads are required to take a course in computing. For first three years of requirement, only one course met the requirement. A statement about the importance of computing. One that Alan Perlis would agree with! Low success rates. Student and faculty dissatisfaction Enter: CS1315 Introduction to Media Computation Meets requirement. Create especially for Architecture, Management, and Liberal Arts students. Definition of Success for a Non-Majors Computing Course Students should succeed at the course at a higher rate than in the CS-majors course. 1. If we’re designing for them, then they should succeed at it. If they don’t, our design is flawed. The students should have a sense that the course impacted them, beyond the single term. 2. For most students, it will be their only course in computing. If no lasting impact, then we’ve lost our sole opportunity to influence these students. A Design Process for a Non-Majors Computing Course Set objectives Choose a context Set up a feedback process Define infrastructure 1. 2. 3. 4. 5. Pick your language Define the course Set objectives Where are your students coming from? Where are your students going? Where do they want to end up? For us: No previous programming experience. Implication: Can’t talk about the abstractions until they get some experience. They will not be software developers, but they will be tool modifiers. Implication: Software engineering issues matter less here. Goal: Improve issues raised in literature. Relevance, creativity, social experience. Choosing a Context Without a context, a computing course is a bad mathematics class. We chose Communications as a context relevant to Architecture, Management, and Liberal Arts. Our course context is Media Computation: Using the computer for communications, not calculations. Abstract, irrelevant, unlikely to transfer. Created synergies to address other issues. For example, if creating media artifacts, there is something to share to help create a social context. Other contexts viable: Web programming, visualization of data, etc. Set up feedback process Students On-line surveys Pizza lunch forum Faculty Panel of faculty from across campus. Roles: Feedback on ideas. Suggesting issues, answering questions. Creating local expertise for approval process! Define an Infrastructure Key issue: Picking a language. Key insight: Non-CS faculty may know as little about computing as their students! Yet, they own the curriculum, and they are responsible for what their students take. Several languages were considered: Scheme, Java, Squeak, Python. (Our Perception) Non-CS Faculty Decision Process for Language Is it appropriate for beginners or novices who are not computing majors? Is it easy to learn? Google “java” then “python” and see how often the phrase “easy to learn” appears. Might it help with learning other languages later? Use at MIT, or in upper-division CS courses is a negative. Visit a bookstore. Who uses it that I know? Python: Nextel, Industrial Light & Magic, Google—WIN! Couldn’t vet Squeak Building and offering the course Most of Computer Science at the end of the course. Swap CS content for context content. Wait for them to have questions and experience. Nyquist Theorem vs. efficiency. Heavy use of CoWeb. For sharing and creating a social context. Over time: “mine can’t be beat.” Considering our definition of success “I just wish I had more time to play around with that and make neat effects. But JES [course development environment] 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.” Enrollment Success Rate Georgia Tech’s CS 1 2000 - 2002 930 71.2% 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% (average) Media Computation 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=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.” “I feel more comfortable around computers and like I could learn and understand other computer programming languages more easily.” Impact doesn’t mean becoming a computer scientist “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.” Conclusion By our definition, the course has been successful. We believe that our process can be followed by others to create other successful nonmajors courses.