What if undergraduate students viewed computer science as, in part, a discipline that designed and built free software to help one's friends and neighbors in need? Would that bring more of them in the front door of academic computing departments? What sort of curricular and pedagogical changes would be required to support such opportunities for these students? Would these changes help revitalize computing curricula and enrollments throughout the U.S.?
The Humanitarian Free and Open Source Software (HFOSS) Project is addressing these questions. The goal is to help revitalize U.S. undergraduate computing education by engaging students in developing FOSS that benefits humanity. What started as an independent study by two undergraduates in 2006, the Project today includes students from a number of U.S. colleges and universities engaged in a range of FOSS development projects, both global and local. Here, we provide an overview of the Project, along with some of the lessons learned and the challenges that remain. Our experience over the past three-and-a-half years suggests that engaging students in building FOSS that serves society is a positive step toward strengthening undergraduate computing education.
The Project has been supported since September 2007 by a National Science Foundation CPATHa grant, aiming in part to build a collaborative community of individuals from multiple educational institutions, computing and IT organizations, and nonprofit social-service agencies to support undergraduates in the development of socially useful FOSS. In general, the Project aims to answer whether getting students involved in humanitarian FOSS indeed also helps revitalize undergraduate computing education.
Inspiration came from the Sahana project, a FOSS disaster-management system developed by a group of Sri Lankan volunteers in the aftermath of the December 2004 Asian tsunami. The Project began working with Sahana in January 2006 after the author Trishan de Lanerolle learned about it during a visit to Colombo, Sri Lanka (see the sidebar "Five HFOSS Software Projects"). That spring, two Trinity College students installed Sahana on an Apache server and began exploring its LAMP architecture (Linux/Apache/MySQL/PHP) as part of their independent-study course. They worked with the code and seemed to enjoy the opportunity and challenge of being engaged in a real-world software project (as opposed to a class exercise). That summer, with support for a research student and in collaboration with community-minded volunteers from Accenture Corporation (http://accenture.com), it developed a volunteer-management module that was eventually accepted into Sahana's code base. Thus began an ongoing collaboration with the Sahana community.
The initial experience with Sahana dovetailed with two ideas outlined by former ACM president David Patterson in his "President's Letter" columns in Communications. In "Rescuing Our Families, Our Neighbors, and Ourselves" (November 2005), he suggested it might be the civic duty of computing professionals to be more involved in helping their communities recover from natural disasters while simultaneously helping the profession.5 In "Computer Science Education in the 21st Century" (March 2006), he explored the disconnect between how programming is taught in the classroom and how cutting-edge software is written in industry, urging educators to involve themselves in the open source movement.6
The call to build open source software to help our neighbors resonated with the Sahana experience, suggesting that a project organized around this theme might yield beneficial outcomes for undergraduate computing:
Problems that beset undergraduate computing education in the U.S. include sagging enrollment, out-of-date curricula, changing demographics, and rapidly evolving technologies. While they are most closely associated with the academic computing discipline, they are also associated with a number of myths and misconceptions that extend well beyond the academy to society in general: computer science is nothing but coding; computing students are geeks; programming is an isolating activity; and computing jobs are being outsourced to Asia and Eastern Europe.
These problems and myths cannot be addressed within the academy alone. Rather, what's needed is a sustained effort involving a broad coalition of computing educators and industry professionals. Only such an effort can change false perceptions about computing in the larger society. The effort also requires substantial support from the computing industry, which stands to benefit from a revitalized computing curriculum. It also may require the kind of infrastructure and publicity one finds in other communities (such as Teach for America and Habitat for Humanity) that attempt to mobilize students and others to take on real-world projects for the social good.
While FOSS applications run the gamut of computer software, HFOSS, as we define it, is software that serves society in some direct way. This deliberately broad definition is meant to be inclusive of a wide range of socially beneficial projects and activities.b To date, the HFOSS Project has not had to face the question of where to draw the line between humanitarian and non-humanitarian FOSS. As a practical measure we use the guideline that any software artifact the Project creates must intrinsically benefit a non-profit organization pursuing some kind of public-service mission.
As described by Chopra and Dexter2 the free-software movement has roots going back 60 years to the beginning of the computer age when sharing programming ideas and code was the norm. The modern free-software movement began in 1983 when Richard Stallman defined "free software" as the freedom to use, study, copy, change, and redistribute software "so that the whole community benefits" (http://www.gnu.org/philosophy/free-sw.html).
Following the spectacular success of the GNU/Linux project (http://www.gnu.org/), the free-software movement has grown in scope and importance. An April 2008 study by the Standish Group (http://www.standish-group.com/) estimated that open source software costs the software industry $60 billion in potential annual revenue.9 SourceForge (http://sourceforge.net), the primary open-source hosting site, lists more than 180,000 projects and 1.7 million registered users worldwide. Many top software and Internetrelated companies, including Dell, Google, Hewlett-Packard, IBM, Intel, and Microsoft, support the FOSS model in one way or another. According to an August 2008 Linux.com article, students are beginning to join open source projects as a way to gain relevant work experience needed for many entry-level computing positions (http://www.linux.com/archive/feature/143415).
The free-software movement is characterized by the way it distributes its products. The GNU General Public License (GPL) was the first of many free-software licenses stipulating how the software can be freely used and shared. As Stallman wrote, software freedom, in this sense, is "a matter of liberty, not price"; it is free as in free speech and not (necessarily) as in free beer. The free-software philosophy is supported and promoted by the Free Software Foundation (http://www.fsf.org).
The free-software movement is also characterized by an open development process, a highly distributed, nonhierarchical, peer-based activity. The FOSS approach stands in sharp contrast to the top-down, hierarchical, legacy-based model of traditional commercial software development. This distinction is often exemplified by the difference between how Linux and Microsoft Windows were developed. FOSS programmers collaborate in loosely organized communities, freely working on the projects and problems that are of most interest to them. The FOSS development process is also closely tied to the user community and marked by frequent releases closely monitored and tested by end users. To use a metaphor coined by Eric Raymond, author of The Cathedral and The Bazaar,7 the free software development process resembles a "babbling bazaar," unlike the "cathedral" model historically employed in commercial software development.7
The free-software movement split into two competing philosophies in 1998 when a group led by Raymond and Bruce Perens co-founded the Open Source Initiative (OSI) to make free software more commercially attractive (http://www.opensource.org). OSI has since become the steward of the open source definition and serves (together with the FSF8) as a standards body for vetting and approving open source licenses, of which there are dozens (http://www.opensource.org/licenses/alphabetical). As reflected in its name, the HFOSS Project accepts the principles and practicalities of the FOSS movement as characterized by both FSF and OSI.
Since spring 2006 the HFOSS Project has engaged students from Bowdoin College, Connecticut College, Trinity College, Wesleyan University, the University of Connecticut, and the University of Hartford in a number of software-development projects serving the community. Its main software-development activities take place during its annual 10-week summer internship program, now in its third year (see the figure here). But students also work on HFOSS projects in courses, independent studies, and thesis projects (outlined in the sidebar).
Given its primary goal of contributing to the revitalization of undergraduate computing education, the HFOSS Project has six specific objectives that, if met, would represent significant progress toward its overall community building and revitalization goal:
As a concept, HFOSS is clearly attractive to university computer science students and may help attract new students to computing. This is reflected not only in the interest that has been generated in the summer HFOSS Institutes, where typically two to three times more students apply than can be accommodated but also in the feedback we receive from students in HFOSS software-engineering and software-development courses throughout the curriculum.
To explore this concept further, in spring 2008 a "general education" course called "Open Source Software for Humanity," was taught (via videoconference) at Trinity College and Wesleyan University.4 Its "hook" was getting students to reflect on their own experience with FOSS products (such as Wikipedia and the Fire-fox browser). Not surprisingly, the students were receptive to the ideals of sharing, community, and the public good. They were also enthusiastic about discussing their experience with Wikipedia, blogging, open source politics, and other aspects of the free and open culture they had grown up with. As suggested by Benkler and Nissenbaum,1 they see the distributed FOSS model as an alternative means of producing culturally useful goods (Wikipedia) and services (SETI@home). Similarly, students generally see elements of the FOSS ethic in their own experience with file sharing. They recognize that this is a time of change in public thinking about intellectual property and the common good.
But despite their everyday use and enjoyment of FOSS products and their widespread acceptance of the freedom and openness characterizing the FOSS model, few students recognize the connections between the FOSS movement and the overall computing discipline. As one said, "Wow, I really got to look at how computer science can relate to humanitarian efforts. I now really understand [FOSS] and know why it came about."
As a methodology, the FOSS development model represents a revolutionary break from traditional software development.7 However, despite its commercial success, relatively little effort has gone toward incorporating the FOSS development model into undergraduate computing curricula. Our effort to see how others have incorporated FOSS into their curricula revealed only a handful of reports (reviewed by Ellis et al.3). Our experiments with introductory and advanced courses, independent studies, and summer internships have shown that FOSS software and tools, including Apache, PHP, MySQL, Eclipse, PhpMyAdmin, and SVN, are quite accessible to today's undergraduates.
Students are also eager to engage the HFOSS methodology, which differs from the traditional mode of undergraduate instruction. Working with mentors and in teams on real-world development projects is a motivator for students, despite the extra challenge it means for instructors. Similarly, working with local clients and international development communities is another motivator. For example, students get to see directly that writing good documentation is as important as writing good code. The quality of their work improves as they recognize their increased level of public accountability. This message is constantly reinforced by mentors, peers, and clients.
Depending on the specific course or project, students come with different levels of expertise, ranging from no prior programming experience for an introductory course to having nearly completed the major requirements for upper-level and software-engineering courses. Engaging students through HFOSS must be done with sensitivity to their backgrounds and interests. But the projects themselves are rich and varied enough to accept contributions from students with different backgrounds. For example, students with no programming experience are still able to make significant contributions in requirements-gathering and documentation-writing.4
We've found the sudents are comfortable working in virtual teams and groups, having grown up with Facebook and Instant Messenger and interacting with friends through all kinds of electronic media. They respond equally well to wikis for working collaboratively on documents and presentations and sharing their source code on Sourceforge. One student said, "I now have a better understanding of what it is like to work with and contribute to a team of people, even when I may never meet them in person."
Computer science has not been broadly attractive at the undergraduate level, especially to women and other underrepresented groups. An April 2006 article in Computing Research Association Bulletin, based on data from the National Science Foundation and other sources, reported "[c]omputer science has the dubious distinction of being the only science field to see a fall in the share of its bachelor's degrees granted to women between 1983 and 2002" (http://www.cra.org/wp/index.php?p=83).
The HFOSS development process has no room for lone programmers working in isolation.
Attracting women and other underrepresented groups to computing remains a particularly challenging HFOSS Project objective. Only four women were enrolled in a 13-student introductory course in spring 2008, and for the summer 2008 internship program, only six out of 29 applicants were women. Of the 10 CPATH-funded summer interns only three were women, and two others were African-American. These numbers are not good, though they are somewhat better than the numbers in non-HFOSS computer science courses. For example, the fall 2008 CS1 courses offered at Connecticut College, Trinity College, and Wesleyan University included only 10 women and two African-American students out of a total of 69 students.
While this data is too sparse to support conclusions one way or the other regarding the appeal of HFOSS to women and other historically underrepresented groups, evaluations received from participating students suggest that the HFOSS approach has the potential to attract more women students to computing in the future. The responses from them suggest they speak positively about the project to their female friends. To help address this issue, we will, in summer 2010, extend the HFOSS Project to include a women's college and a traditionally black university. However, given the relatively small number of women and minorities who come to college with an interest in computing in the first place, the initiative may not solve the problem altogether; the solution, if there is one, may ultimately extend beyond the academy.
A widespread misconception about computing is that it is all about programming or coding. At most U.S. schools the introductory sequence focuses largely on teaching a programming language, further reinforcing this misconception. The HFOSS approach addresses it by contextualizing programming within a broader problem-solving activity. Being engaged in real-world projects with teams of developers, students see that programming is part of a complex, team-oriented, creative process that produces software to benefit society. Working closely with real clients, they see the need for transparent and secure code, extensive testing, and writing excellent user manuals and other supporting materials. They want to master these activities to improve their systems rather than step through mere academic exercises.
Another important HFOSS element is the ethic of sharing and collaboration. For this reason, the HFOSS Project teams students with one another, as well as with mentors, IT professionals, and HFOSS community members. The HFOSS development process has no room for lone programmers working in isolation.
Student feedback on these points reflects these observations. For example, one student said, "[this activity] shows how computer science can be a very helpful field of study than what we just know of it as programming in different programming languages." Another said, "[this activity] definitely changed my views of how effective software projects can be run. If we work collectively for the greater good, then we can get much more done."
The HFOSS Project has focused on individual courses and internships and only just begun to address how its approach might fit into an undergraduate curriculum. Reinforced throughout our experience is the longstanding view that computer science must be presented as a problem-solving discipline, and the more this value is built into the computing curriculum the more attractive it will be to a wider variety of bright students eager to solve problems. Georgia Tech and other institutions have begun exploring curricular models that contextualize programming within broader applications of computing (http://www.insidehighered.com/news/2006/09/26/gatech). The HFOSS approach would clearly complement such a model.
A common software industry complaint is that new computing graduates are strong on theory but lack practical understanding of the modern IT workplace. A common complaint from academics is that IT professionals want colleges and universities to serve as training centers for their latest programming languages and software platforms. HFOSS addresses both by recruiting computing and IT professionals as advisers and mentors for its summer interns. For example, IT consultants from Accenture Corporation help mentor HFOSS students and serve as advisers in project management and other areas. Students appreciate the mentoring as they begin to understand the complexity of software development. They see that challenging problems rarely yield to "textbook" solutions and that the design process is often a protracted interaction between programmers and end users. One student said, "[this activity] definitely helped me understand more options of the IT profession. Now I know one more aspect of it, and how exciting it can be."
If the HFOSS model is to make a positive contribution to undergraduate computing curricula, it must continue to grow beyond the three campusesConnecticut College, Trinity College, and Wesleyan Universitywhere the Project began. During the past 18 months, with the support of the CPATH grant, we have seen evidence that such growth can be accomplished, as new HFOSS efforts began at Bowdoin College, Brunswick ME, and the University of Hartford, Hartford, CT. However, continued growth requires development of a supportive infrastructure and portable model that is easily adopted by other institutions.
Part of the effort to build a sustainable HFOSS model must include faculty development. Toward this end, we held outreach workshops for faculty at SIGCSE08 in Portland, OR, and CCSCNE08 in Staten Island, NY, (http://www.cs.trincoll.edu/hfoss/wiki/SIGCSE_2008_Workshop) to promote the HFOSS model as something worth trying. Feedback from workshop participants indicates that the humanitarian and FOSS aspects of the effort both have substantial appeal to computing faculty. However, despite this basic appeal, many challenges remain before more than a few other schools are able to integrate HFOSS into their computing curricula:
Faculty development. As with any new pedagogical endeavor, developing a new approach to teaching software design requires considerable initiative, time, and support. Faculty need time to learn new languages and tools and become active in the HFOSS community on their own before they are able to introduce HFOSS into their courses. To support this endeavor we are planning a summer training experience for faculty, similar to the week-long NSF-funded Chautauqua workshops (http://www.chautauqua.pitt.edu).
Software-tool support. Although FOSS software technology is free, creating a platform of FOSS tools to support a course or student project requires considerable time and effort. Faculty do not normally have time for downloading and installing software and making sure it works. One potential solution is a one-click installation that works on a variety of platforms. Another is for instructors to enlist such support among their universities' IT staff. The HFOSS project has begun to develop resources and processes to help, including a set of free and open Web-based resources, software tools, and other support materials (http://repository.hfoss.org).
Community development. Being involved in HFOSS means taking an active role in one or more HFOSS communities or projects, a process that can be somewhat bewildering and intimidating, especially for large well-established projects. We have identified and worked with communities and projects (described in the sidebar) that are accessible and welcoming. Sahana, OpenMRS, and InSTEDD are appreciative of student contributions and accepting of the compromises imposed by academic calendars and curricula. This summer we are working with the GNOME project on user-accessibility problems (http://projects.gnome.org/accessibility/). And a group of HFOSS students from several schools are currently working on the Portable Open Search and Identification Tool (POSIT), a disaster-management tool for the Google Android phone (http://code.google.com/p/posit-android/). All are ongoing projects that welcome contributions from faculty and students at other schools.
Cultural, institutional, curricular buy-in. Creating a new course or revising an existing one requires department support and approval. So the computer science academic community needs a more widespread and systematic discussion of how HFOSS might fit into the curriculum. Similarly, faculty development itself is not possible unless faculty and their departments recognize such engagement as an important form of community outreach and are therefore willing to invest the time and accept the complexity it requires. This may represent something of a cultural shift for some faculty.
Helping address these challenges, the HFOSS Project organized the first of what are planned to be an annual symposium on "Integrating FOSS into the Undergraduate Computing Curriculum" (http://www.hfoss.org/symposium09/). The March 2009 symposium's main goal was to bring together representatives from academia, industry, and the FOSS community to explore ways of integrating HFOSS into undergraduate teaching. The lively discussion that took place in Chattanooga, TN, helped identify a number of issues that stand in the way of more widespread adoption of the HFOSS model. For example, faculty participants identified a number of activities that could help them get involved, including summer training workshops and support for hosting open source code repositories.
Discussion focused on the kinds of support faculty and students would need to get started. One of the most promising ideas now being explored is establishment of a number of "HFOSS Chapters" whereby a faculty member and some students could take on a FOSS project (summer 2010). The software industry and FOSS-community representatives at the symposium expressed their eagerness to support the effort, including by helping train faculty to use FOSS tools and by providing "on ramps" to help faculty and students be integrated into the FOSS community.
Students see that challenging problems rarely yield to "textbook" solutions and that the design process is often a protracted interaction between programmers and end users.
To date, 15 additional schools have expressed interest in becoming HFOSS Chapters. Similarly, several more industry and FOSS-community supporters have volunteered to serve on the HFOSS Project steering committee and advisory board, including representatives from the GNOME project, Google, the Mozilla Foundation, RedHat, and Sun Microsystems.
Sustainability. No project can succeed in the long term without first encouraging the wide adoption of its methodologies and goals. But what would a sustainable model look like? In order to broadly influence undergraduate computing, high school and college students must be able to learn about FOSS and its humanitarian applications, thus requiring some kind of national organization and infrastructure to manage three functions:
The hope is that the computing industry and FOSS communities embrace the potential value of HFOSS for computing students. In addition to revitalizing undergraduate computing education, a strong and diverse cohort of U.S. college graduates who come into the work force with FOSS experience will enrich the computing industry, along with the various FOSS communities.
Given the relative youth and scale of the HFOSS Project, it would be premature to make sweeping claims on its behalf. However, its ongoing objective is to systematically monitor its effects on undergraduate education to determine what would happen if students see computing as a discipline that develops software to help their friends and neighbors in need. Toward this end, the Project employs instruments and metrics, including student and faculty questionnaires, presentations at computing-education venues, and outside consultants from academic institutions and industry.
Though this evaluation is still preliminary, a number of promising signs have emerged.
First, HFOSS as a concept and methodology can indeed be introduced into the undergraduate computing curriculum. Our pedagogical experiments suggest that positive results are achievable through several approaches. For example, a general-education course can provide a coherent one-semester introduction to HFOSS techniques and to the broader cultural and societal effect of the HFOSS movement. Independent-study projects and internships provide a flexible venue through which students and faculty contribute to specific HFOSS projects in both the academic year and the summer. Upper-level software-engineering courses can be used to engage students in real-world HFOSS projects as part of their course work.
Second, feedback from faculty outreach activities, including the 2008 SIGCSE and CCSCNE workshops and the 2009 symposium, suggest there is significant faculty interest in integrating FOSS into the computing curriculum in many undergraduate institutions. Despite ongoing questions involving where, when, and how best to do it, the FOSS model is flexible enough to allow different institutions to answer these questions in ways that best suit their own programs.
Third, the students engaged thus far are attracted to the HFOSS concept for the opportunity to learn concepts, languages, and skills they don't see in other courses and for their interest in community service. Over the long run, these motivations promise to attract a wider range of capable students to computing, including more women and members of other underrepresented groups.
Fourth, student feedback suggests that engaging students in HFOSS projects helps foster a more constructive perception of the craft of programming and problem solving while generally reducing the computing-is-coding misconception. The ongoing HFOSS challenge is to spread this more positive perception across the entire undergraduate landscape. To some degree it will happen through word of mouth, as students share their positive HFOSS experiences with one another. But, as noted earlier, truly changing perceptions of computer science requires a concerted and sustained effort with broad support from the computing industry, the FOSS communities, primary and secondary schools, and society at large.
Finally, the HFOSS Project has expanded from its three initial schools, single corporate partner, and single software project into a vibrant community that today includes active faculty participants from eight U.S. colleges and universities (and expressed interest from many more), industry representatives from five IT corporations, and ongoing software-development projects with two local nonprofit organizations and five international FOSS communities. This growthlargely unplanned at the beginning of the Projectis indicative of a latent (inter)national interest in the HFOSS concept. If such expansion is sustained, it will help demonstrate that HFOSS can significantly affect the undergraduate computing curriculum, culture, and enrollment demographics.
HFOSS is supported by the National Science Foundation under grants #0722137, #0722134, and #0722199 and by the Mellon Foundation. Any opinions, findings, and conclusions or recommendations expressed here are those of the authors and do not necessarily reflect the views of the National Science Foundation or the Mellon Foundation.
1. Benkler, Y. and Nissenbaum, H. Commons-based peer production and virtue. Journal of Political Philosophy 14, 4 (Nov. 2006), 394419.
2. Chopra, S. and Dexter, S. Decoding Liberation: A Philosophical Investigation of Free Software. Routledge, New York, 2007.
3. Ellis, H., Morelli, R., de Lanerolle, T., Damon, J., and Raye, J. Can humanitarian open source software development draw new students to CS? In Proceedings of the 38th ACM SIGCSE Technical Symposium on Computer Science Education (Covington, KY, Mar. 711), ACM Press, New York, 2007, 551555.
4. Morelli, R. and de Lanerolle, T. FOSS 101: Engaging introductory students in the open source movement. In Proceedings of the 40th ACM SIGSCE Technical Symposium on Computer Science Education (Chattanooga, TN, Mar. 47), ACM Press, New York, 2009, 311315.
5. Patterson, D. Rescuing our families, our neighbors, and ourselves. Commun. ACM 48, 11 (Nov. 2005), 2931.
6. Patterson, D. President's letter: Computer science education in the 21st century. Commun. ACM 49, 3 (Mar. 2006), 2730.
7. Raymond, E.S. The Cathedral and the Bazaar. O'Reilly Media, Sebastopol, CA, 2001; see also http://www.catb.org/~esr/writings/cathedralbazaar/.
8. Stallman, R. Viewpoint: Why 'open source' misses the point of free software. Commun. ACM 52, 6 (June 2009), 3133.
9. Standish Group International. Free open source software is costing vendors $60 billion, new Standish Group International study finds. Standish Group International Press Release (Apr. 2008); http://www.marketwire.com/press-release/Standish-Group-International-844462.html.
10. Tucker, A. Teaching client-driven software development. The Journal of Computing Sciences in College 24, 4 (Apr. 2009), 2939.
a. CPATH is a National Science Foundation program within the Directorate for Computer & Information Science & Engineering, formally known as CISE Pathways to Revitalize Undergraduate Computing Education (http://www.nsf.gov/cise/funding/cpath_faq.jsp).
b. See also a similar definition in http://en.wikipedia.org/wiki/Humanitarian-FOSS.
c. These and other activities involving Connecticut College, Trinity College, and Wesleyan University are funded by a Mellon Foundation grant for videoconferencing facilities.
d. The 2007 HFOSS Summer Institute was funded by a grant from the Aidmatrix Foundation (http://www.aidmatrix.org).
DOI: http://doi.acm.org/10.1145/1536616.1536635
Figure 1. Field testing the Sahana volunteer-management module at the Strong Angel III disaster response exercise, San Diego, CA (http://www.strongangel3.net).
Figure 2. Screenshot of the Chinese-language version of the volunteer-management module (http://blog.hfoss.org/?p=28).
©2009 ACM 0001-0782/09/0800 $10.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2009 ACM, Inc.
No entries found