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 indepen-dent-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://accen-
ture.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
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).
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:
Give computing students experi- ˲
ence with the open source development process in a real-world practitioner environment;
Let them see firsthand the impor- ˲
tance of software-engineering principles;
Enable them to use their pro- ˲
gramming and problem-solving skills
to contribute to the expanding volun-teerism movement that characterizes
many of today’s college campuses;
Make it possible for them to gain ˲
firsthand contact with IT professionals in the computing industry;
Enable computing faculty to ex- ˲
periment with a variety of approaches
for incorporating FOSS into the curriculum; and
Invite all participants—faculty, ˲
students, IT professionals, and the
humanitarian community—to join in
a mutually beneficial educational and
social enterprise.
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.
serve society
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 nonprofit 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://source-
b See also a similar definition in http://
en.wikipedia.org/wiki/Humanitarian-FOSS.