Design Process for a Non-Majors 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
Design Process for a Non-Majors 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. A statement about the importance of computing. One that Alan Perlis would agree with!
For first three years of requirement, only one course met the requirement. 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 Course1. Students should succeed at the course at a
higher rate than in the CS-majors course. If we’re designing for them, then they should succeed at
it. If they don’t, our design is flawed.
2. The students should have a sense that the course impacted them, beyond the single term.
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 Course1. Set objectives
2. Choose a context
3. Set up a feedback process
4. Define infrastructure Pick your language
5. Define the course
Set objectives
Where are your students coming from? For us: No previous programming experience. Implication: Can’t talk about the abstractions until they get
some experience. Where are your students going?
Where do they want to end up? 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. Abstract, irrelevant, unlikely to transfer.
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. 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? Use at MIT, or in upper-division CS courses is a negative.
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?
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. Wait for them to have
questions and experience. Swap CS content for
context content. 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 (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%
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 non-majors courses.