March 10, 20070
Service learning can play an important role in computer science education: it can address declining enrollments and increase current student satisfaction. Although computer science poses some serious problems for effectively implementing service learning, these can be surmounted by reconfiguring a course to include a substantial treatment of accessibility. I describe such a course, explain how it overcomes the problems, and discuss the results of the course from a student perspective.
K.3.2 [Computers and Education]: Computer and Information Science Education—computer science education, curriculum; K.4.2 [Computers and Society]: Social Issues—assistive technologies for persons with disabilities
accessibility, gender gap in computing, pedagogy, service learning, visually impaired computer users, web design
In this paper, I first describe service learning in general terms to orient the reader. Next I discuss some of the problems service learning poses in the computing context, but then balance these against some important advantages it offers. It turns out that by bringing a substantial treatment of accessibility into a course, we obtain a wedge for overcoming the problems of service learning and leveraging its advantages.1
I present an outline of such a course and explain in detail how it overcomes the problems presented earlier. Finally, I discuss the results of the course from a student perspective, drawing on the reflective essays done by students as part of their final class project. In light of the substantial advantages service learning offers the computer science curriculum, I conclude with a call for other instructors to hop on the bandwagon.
Service learning melds traditional classroom learning with community service2 in such a way that the service performed is integral to achieving the academic goals of a particular course. It is this tight integration of community service into the course that makes service learning different from other techniques of infusing service into the curriculum.3
An implication of this close integration of a service component into the course is that not every course will be a suitable arena for service learning. Ideally in service learning, the community service activity is structured in such a way that it serves as a catalyst to enhance the student's acquisition and retention of academic content. The service activity must also be focused on a real, unmet community need. In this way, both the service provider and the service recipient are benefited: the latter by the service performed, and the former by the opportunity the service activity offers for consolidating the knowledge content of the course as part of a student's epistemic holdings.4
While benefits are being assigned, it is worth noting that the instructor is not left out: there's the “feel good” aspect of facilitating worthwhile community service, of course, but there's also the satisfaction of seeing one's students better learn the course material.
An important aspect of a service learning course is that it provides space for structured reflection. Through appropriately chosen readings and discussions, students have the opportunity not simply to provide service, but to provide informed service. Similarly, space for reflection allows the students' service experience to feed back into classroom learning.
If service learning is pedagogically useful, then we'd certainly like to be able to leverage this effectiveness in computer science. But it may be the case that computer science has some unique characteristics that rule out service learning as I've described it above. (It's not clear, for example, how one would implement service learning in physics courses, and perhaps computer science is like physics in this regard.)
No matter what the field of study, integrating service learning into a course poses several problems:
The requirement for reflective space is certainly problematic—there's always a struggle at the end of each semester to cover everything we'd like to in a course. As noted above, however, service learning is not suitable for every course (automata theory comes to mind). Ideally, we'd like to have a course where student reflection could somehow be combined with the out-of-class exercises that students are ordinarily expected to complete.
Since service learning is tied to a particular class, there is typically only one semester in which students will learn new material and perform a community service project. This time constraint, along with the variability in student aptitude and interest one finds in any class, makes it a real possibility that the project will either not be completed or will be completed incorrectly.
The service project is certain to be useful to students, as they gain experience working with a client, setting and meeting deadlines, etc. This is the case even if the project is not a success, since the students will have an opportunity to learn from failure—nothing inspires better planning next time than the embarrassment of failing to produce a promised product, not for one's instructor, but for an actual client. So even if the service project is not a success, it can nonetheless be a learning experience for students. On the other hand, a failed project is clearly of no use to the community organization being assisted; it removes the ‘service’ from ‘service learning’.
The community service project(s) must be arranged by the instructor, adding additional overhead to what is most likely an already hectic schedule. One could try leaving it to students to arrange their own projects, but the findings of Eckerdal et al. suggest that for a significant project, most upper-level students will have difficulty designing such a project on their own .
Introducing service learning specifically into the computer science curriculum poses several further problems:
In order for students to perform useful service, it would appear that service learning could only be used in upper level courses when students have learned enough to do serious work. This severely limits the number of such courses that could be offered.
In most classes, there is a high variability in student aptitude and interest. If the community service project is serious enough to be truly useful, then it's probably complex enough that unmotivated or less talented students could do actual damage. Imagine, for example, having students create (or modify) a specialized disbursement tracking program for a nonprofit organization. Unlike working a suicide hotline, where a supervisor can see that a student volunteer is performing inappropriate or counterproductive telephone counseling and take appropriate action immediately, the internal workings of a student software package are a closed book to the supervisor, and problems might only be revealed when checks bounce or at the time of the yearly audit.
A real limitation on the type of projects that can be accommodated in a service learning course is that once the course is over, the students disperse, and there's no maintenance available for the nonprofit organization. Related to this is the strong possibility that a student project that is otherwise well done may lack adequate documentation to allow someone to assume the maintenance of the student work.
These are serious problems. But before dismissing service learning from computer science, let's examine some of its advantages.
The advantages are of two types: local to the course, and global to the discipline.
The local advantage is that students are much more patient in learning technical material, as they realize that they will be called upon to use it not only on an assignment or examination, but as part of their community service projects. This is particularly useful at the introductory level, where in a traditional course, students who already possess this patience excel, while less motivated students become even less motivated. This local advantage accrues both to students, who learn the material better, and to the instructor, who finds the class much more pleasant to teach.
The global advantage concerns a trend identified by Alt et al. in their review of current research in the area of computing and gender:
women tend to respond most favorably to computer science when it is demonstrated that the field is not just about programming, but rather is deeply interconnected to other already familiar academic areas and can be concretely applied to help solve important “realworld” problems. 
Incorporating service learning into the computer science curriculum would help dispel the view articulated in  that our discipline is asocial and inapplicable, as students discover for themselves exactly how applicable and community-oriented it can be. Thus service learning classes could contribute to reducing the “gender gap”5 in computer science.
In itself, this would be a good reason seriously to consider implementing service learning. Blum and Frieze, however, have argued that the view of computer science as asocial and inapplicable is not gender-specific, but is rather a more widespread phenomenon among students in general . In a time of declining enrollments in computer science courses [14,15], it is worth investigating whether service learning classes might help alleviate this serious nationwide problem.
For maximum impact in this regard, it would be ideal to offer some service learning classes at the introductory, perhaps even CS0, level. This, however, directly collides with the experience problem described above. I'll return to this point later.
The potential service learning offers for attracting more students to computer science clearly makes it worthy of investigation. At the same time, we've seen that computer science poses several problems for effectively implementing service learning. In this section, I describe a course that I believe surmounts these problems.
The course teaches an “Accessibility First!” approach to web design: instead of taking the traditional approach of teaching the basics and then treating the creation of accessible content as an advanced topic at the end of the semester, the course begins with a discussion of accessibility and then treats each topic in the course from an accessibility perspective.6
In the previous section, I mentioned that it would be ideal if a computer science service learning class could be offered at the CS0 level. Web design can certainly be taught at this level, and it has the further appeal that college students in general are interested in the World Wide Web: they use it all the time, and many students want to understand more about how it works and how content is generated. Further, it directly challenges the widespread “computer science equals programming” misconception cited by .
An advantage of an accessibility first approach, at least from a computer science perspective, is that it requires students to eschew fancy authoring tools and instead concentrate on the underlying markup language and related stylesheet language. (My students, for example, use the emacs editor as an authoring tool to create their XHTML  and CSS  files.) Further, accessibility implies interoperability which implies syntactically correct XHTML and CSS code. Students thus learn how to use validation software [20,19], which provides them with a compiler-like experience at the CS0 level. At the same time, the frustrations engendered from using the validators have a broader context than the typical compiler frustrations in a CS1 course: it's important to write syntactically correct code not just “so I can get my darn programming assignment to run,” but so that anyone on the web using a standards-compliant web client can read my content.
The service learning component of this course is to produce an accessibility and general usability audit of the websites of local nonprofit groups. In order for students adequately to do this, they must be able to read the source markup language (usually HTML 4.01 ); this is another reason why they are required to create their web pages “by hand” as they learn web design.
An interesting aspect of the audit is that the students taking an accessibility first course are in a position to evaluate a website from three different perspectives:
There are several ways to structure the service learning. A model that has worked well for me is to break the class into groups of three, with each group assigned to a nonprofit group's website. Each group is assigned these tasks:
Within each group, each student must:
Additionally, each group makes a presentation to its nonprofit group's webmaster, explaining how the target pages were evaluated, what metric was used, and providing a demo of the student website containing the audit documents.
This brief description provides us with enough information to examine whether such a course can conquer the list of problems set out earlier. For a more in-depth discussion of an accessibility first web design course, see ; for details on how such a course can be taught (including a syllabus, exercises, and schedule of readings) see .
I now turn to explaining how this course overcomes the problems set out in section 3.1.
Students need to create web pages to practice the web design principles they are learning in the course. These pages require content for the students to work with. A good source for this content is the students' reflections on outside readings on accessibility and visual impairment. Similarly, writing a reflective essay on the service experience is a requirement in most service learning classes; writing such an essay and presenting it as a well-designed web page is an exercise that fits naturally into a web design course.
For most websites of nonprofit community organizations, this project can be completed in a few weeks. Thus it is possible to teach students the material and have them apply it within the duration of a semester.
A student accessibility audit is a real service for the nonprofit community organizations because there do not currently exist automated tools that adequately perform this task. As the Education and Outreach Working Group of the W3C's Web Accessibility Initiative has pointed out,
Many accessibility checks require human judgement and must be evaluated manually using different techniques. Also, in some cases evaluation tools are prone to producing false or misleading results ... Web accessibility evaluation tools can not determine the accessibility of Web sites, they can only assist in doing so.
Additionally, there are usability aspects of a website for which there do not exist any evaluative tools; these are particularly difficult for the designers of a website to evaluate (it's similar to proofreading your own writing: if you know how you've structured a website, it's easy not to notice navigation problems). Further, the process of determining the optimal markup of content is not currently amenable to automation (e.g., whether a sequence of words is properly marked up as a paragraph or a list requires an understanding of the words and their context).
Although it is not especially conceptually difficult, the task of performing an accessibility audit of each page of a website is very time consuming. Thus a thorough review of a website is beyond the means of most nonprofit organizations, in which the webmaster either has several other computer-related responsibilities or is not a computer professional.
Finally, in assigning benefits from the community service project, we should not forget the visually impaired computer users who will now have better access to the nonprofit group's website. Thus students provide a real service in conducting an accessibility audit of a website and there is no asymmetry of benefits from the project.
This project has low overhead since all students are working on the same project but with different clients. Most nonprofit groups have outreach as part of their mission, so they are very motivated to participate. Further, there is no concern about transporting students to a client site—everything can be done on campus.
This course requires no prerequisites, so it has a large potential audience.
No dangerous situations arise: student access to the client website is read-only. It's possible that an inept or poorly motivated student will neglect to find some aspects of the client website that are inaccessible, but this hardly falls into the class of incorrect logic in an accounting program. (Further, the inept student problem can be alleviated by carefully balancing the student audit groups so that low-aptitude students are offset by high-aptitude students.)
The product produced by the students is a set of audit documents housed in a website. Beyond ensuring that the website isn't taken down before the client webmaster has time to review the audit documents, no maintenance is involved.
In my experience, the most common questions instructors have about service learning are:
These are important questions, and it is worth answering them with respect to the course outlined above.
Service learning contributes greatly to the course. It helps students absorb the course content, as they become very familiar with accessibility guidelines (for example, the W3C's Web Content Accessibility Guidelines ) while they are working on their accessibility audits. Likewise, the website they create to house their audit documents gives them experience in web design—experience that, in the absence of service learning, they would gain by constructing a “make work” website to satisfy a course requirement. Further, the knowledge that a professional will be reading the audit documents acts as inspiration to do a good job on them.
What about grading? It is a maxim in service learning that students should be graded not on the service, but on the learning. In this course, it's an easy separation. For students' reflective essays, for example, the pages are either well-designed with respect to accessibility and general usability standards or they are not, independently of the content of the essay. Similarly, a student's audit documents are either well-designed or not. Hence, including a service component does not imply degrading the rigor of the course.
As discussed earlier, conducting an accessibility audit is not conceptually difficult, but it is time consuming. But it is not busy work. Visually impaired persons tend to be low income and in need of the type of assistance that nonprofit community organizations offer. So by helping to make the websites of these groups accessible, students are contributing to the quality of life of an identifiable class of people.
At first glance, it might seem that given the sheer number of new web pages that come online every day, the amount of assistance that students can render is negligible—given the enormous number of existing websites (and most of them inaccessible), the one website that a student has helped make accessible seems to be meaningless. But this isn't the right way to think about it.
Consider Victor, a visually impaired computer user. Suppose that Victor browses 50 web pages a day, many of which are inaccessible. Further suppose that a student Samantha produces 10 accessible web pages, all of which contain content of interest to Victor. Although Samantha's pages are only a minute percentage of the total number of existing web pages, with respect to Victor, her pages are a much larger contribution: the number of accessible pages he will see today has increased by 20 percent.
The moral of this story is that if the web pages to be made accessible are carefully targeted, they can in fact have a large impact on visually impaired computer users. By targeting the websites of nonprofit community organizations, students are working with web pages that it is likely a visually impaired computer user will want to visit. Such a student is performing meaningful community service.
I have conducted this project twice in the past two years, servicing seven local nonprofit groups, so there is not yet enough data to make statistically meaningful generalizations. There is narrative anecdotal evidence, however, garnered from my surveys of the webmasters of the nonprofit websites and from the regular teacher-course evaluations filled out by the students.
With regard to the webmasters, the initial reaction is that the students have provided a worthwhile service. The webmasters' supervisors, who were also invited to attend the student presentations, were even more enthusiastic. In part this was because they realize the importance of web accessibility in extending the reach of their organizations to clients who can utilize their services, but it was also due to the fact that most nonprofit groups have as part of their mission outreach to the wider community. The audit project brought students in contact with some nonprofit groups with which they would otherwise never have become acquainted during their college years.
The students' reaction to the project was overwhelmingly positive. Most of them mentioned that although performing an audit was time consuming, it made them think more carefully about accessibility than simply doing textbook exercises would have. They also liked the fact that their work was actually going to be used by a real webmaster rather than simply graded by a professor. Finally, they found the audit process interesting because it gave them an opportunity to conduct an in-depth examination of a professionally designed website and to see real-life design techniques (some accessible, some not).
In this paper, I have suggested how offering service learning courses might benefit computer science as a discipline and described in detail how a particular course could be structured. A nice feature of the course is that it has low instructor overhead, both in terms of arranging the service learning and in terms of course content. Thus it would not be difficult to reproduce this course. I've explained why I think such a course could assist in recruiting and retaining computer science students, and I hope other instructors will try teaching it.8