a course that no faculty cared about. Courses just offered as a “service” get less attention. By putting all students in one class, it is in everyone’s interest to ensure the class is good.
The class received significant faculty interest and used innovative curricula. We started out using Shackelford’s pseudocode approach to learning. 7 Faculty in the other majors complained about students not gaining experience debugging programs. We later moved to Felleisen et al.’s How to Design Programs text using Scheme. 4 These were, and are, approaches for teaching computing that have been successfully used at many institutions.
By 2002, however, CS1321 may have been the most hated course on campus. From 1999 to 2002, the overall success rate (leaving the course with an A, B, or C—not counting those students who received a D, a failing grade, or withdrew from the course) was 78%. That’s not too bad for an introductory computing course. 1 However, this was a course with everyone in it. When we examine those majors where a computing requirement is atypical, we see 46.7% of architecture students succeeding each semester, 48.5% in management, and 47.9% in public policy. We failed more than half of the students in those majors each semester; females failed at nearly twice the rate of males. Statistics like these are a concern for both the Georgia Tech and the College of Computing—it hinders our relations with the rest of campus when computing is the gatekeeper holding back their students.
Developing contextualized computing education Around this time, several studies were published critiquing computing courses, including the AAUW’s Tech-Savvy report2 and Unlocking the Clubhouse by Margolis and Fisher. 6 These reports describe students’ experiences in computing as “tedious,” “asocial,” and surprisingly, “irrelevant.” A 2002 task force, chaired by Jim Foley, found similar issues at Georgia Tech. How could computing be “irrelevant” when it pervades so much of our world? Perhaps the problem was that our course had little connection to the computing in our students’ world. While students are amazed at the Web, handheld video
games, and smartphones, most introductory courses introduce students to the computing concepts behind these wonders with Fibonacci numbers and the Towers of Hanoi. What students saw as computing was disconnected from what we showed them in our computing class.
We adopted an approach that we call contextualized computing education. We chose to teach computing in terms of practical domains (a “context”) that students recognize as important. The context permeates the course, from examples in lecture, to homework assignments, and even to the textbooks specially written for the courses. We decided to teach multiple courses, to match majors to relevant contexts.
In spring 2003, the College of Computing began offering three different introductory computing courses. The first was a continuation of CS1321, aimed at computing and sciences majors. The second was a new course for students in the College of Engineering, with much the same content, but in MATLAB and using an engineering context. The third was a new course for students in the colleges of liberal arts, architecture, and management using a context of manipulating digital media.
The engineering course was developed jointly with faculty from the schools of aerospace, civil, mechanical, and chemical engineering. Several faculty members in these schools had already started developing an alternative to CS1321, using MATLAB, a common programming language in engineering. Their model involved small classes in a closed lab working on real engineering problems. That course was prohibitively expensive to ramp up to over 1,000 engineering students each semester.
The engineering faculty worked with David Smith of the College of Computing to create a course that used their examples and MATLAB, but taught the same computing concepts as CS1321.
9
The course around “media computation” was built with an advisory board of faculty from the colleges of liberal arts, architecture, and management. The board’s awareness and support for the course was important in getting the course approved as fulfilling the computing requirement in programs of those colleges. The advisory board favored a programming language that was perceived as being easy to learn but was not associated with “serious” computer science. We chose the Python implementation, over concerns about both Scheme and Java.
Media computation is the context of how digital media tools like Photoshop and GIMP work. We created cross-plat-form libraries to manipulate pixels in a picture and samples in a sound. We taught, for example, iterating across an array by generating grayscale and negative versions of an image and array concatenation by splicing sounds. We were able to cover all the introductory computing concepts using media examples. In their homework, students created pictures, sounds, HTML pages, and animations. We created an integrated development environment that provided the media functions as well as tools for inspecting pictures and sounds.
5
impact of contextualized computing education
Faculty and students are happier with the new courses. The success rates rose above 80% in both the engineering and media courses. When comparing success rates to those same majors mentioned previously, we found the average success rate in the first two years for architecture students rose to 85.7%, management to 87.8%, and public policy to 85.4% per semester. The media computation course has been majority female, and women succeed at the same or better rates than the male students. Similar improvements in success rates in media computation courses have been seen among underrepresented groups at other campuses. 8
New opportunities appear on campus when all students succeed at com-
References:
Archives